Android应用自动化渠道打包过程分析
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/ 爱加密官方网站。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。