您的位置:首页 > 移动开发 > Android开发

Android应用自动化渠道打包过程分析

2014-10-21 10:49 288 查看
Android应用开发完之后一般都要上传市场。发布的时候需要面对各种各样的市场,我们称之为渠道。既然上传市场,我们就可能需要每个市场的一些数据分析: 比如,哪个市场用户下载量比较大?有时候,我们还需要知道应用是从哪个渠道下载的。再比如,我们可能有一些盈利需要和具体的渠道进行分成。这些都是统计渠道的信息。
如何在应用中加入渠道信息? 为了统计渠道信息,就不得不在程序的某个地方加入渠道的信息,然后针对不同的渠道打不同的包。一般可以在Manifest文件中加入渠道编号,而不直接写在代码中。这样做的好处是,可以针对不同渠道,自动化去修改Manifest文件中的渠道编号,然后自动为该渠道打包。 Manifest文件支持Meta Data标签,建议使用这种自定义标签。例如下面的文件片段。<?xml version=“1.0″ encoding=“utf-8″?><manifest xmlns:android=“http://schemas.android.com/apk/res/android” android:versionCode=“X” android:versionName=“X.X.X” package=“com.XXX”> …… <application android:icon=“@drawable/icon” android:label=“@string/app_name”> …… <meta-data android:name=“CHANNEL” android:value=“C_001″ /> </application></manifest>在这段代码示例中,我们在Application节点下增加了一个meta-data标签,名称是CHANNEL,值是C_001,是我们规定的一个渠道的编号。 为不同的渠道打包,就要手工或者自动化修改C_001成为C_002、C_003等等其它我们定义的渠道编号,然后再打不同的包。
程序如何读取打包的渠道编号? 在程序代码中,可以读取Manifest文件中定义的meta-data。以下为代码实例。public static String getChannelCode(Context context) { String code = getMetaData(context, “CHANNEL”); if (code != null) { return code; } return “C_000″; } private static String getMetaData(Context context, String key) { try { ApplicationInfo ai = context.getPackageManager().getApplicationInfo( context.getPackageName(), PackageManager.GET_META_DATA); Object value = ai.metaData.get(key); if (value != null) { return value.toString(); } } catch (Exception e) { // } return null; }

如何自动化打包过程?

这里有两个工具:Ant、爱加密渠道监测。 使用Ant打包,需要注意两点:一个是要在Ant中支持For循环,以自动做多次打包动作;一个是如何能够在Ant中修改Manifest文件,以支持不同的市场。 1. Ant 在Ant的核心包里没有相关的For循环的Task,要下载相应的扩展包。可以使用开源的Ant-contrib包。 下载地址:http://ant-contrib.sourceforge.net/ 下载完成后,把ant-contrib里的lib包复制到安装好的Ant库apache-ant-XXX\lib下面,就可以使用了。 具体如何使用,可以参考ant-contrib的官方网站。 2. 爱加密渠道监测 使用地址:http://www.ijiami.cn/Channels 可以一键打多渠道包,精准获取国内外600个APP推广渠道信息,包括应用商店、下载站、论坛等。一站式监控所有APP相关渠道的信息,包括:版本、渠道、下载源、下载量等。方便快捷的辅助开发者管理APP在各大渠道的上线及推广运营工作。具体使用流程详见http://www.ijiami.cn/ 爱加密官方网站。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息