如何在Android应用中加入渠道信息

  次阅读 作者:智能小宝 来源:互联网 2016-01-14 11:26 我要评论(0)

为什么需要在应用程序中增加渠道信息?

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 {

ApplicationInfoai = 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;

}

如何自动化打包过程?

我们想要自动化针对不同渠道打不同包的过程,有两种情况。一种是有源代码的情况,一种是没有源代码只有APK文件的情况。

有源代码的情况。

有源代码的情况比较简单。我们可以使用自动化脚本工具进行打包,比如使用Ant。

使用Ant打包,有两个关键问题:一个是要在Ant中支持For循环,以自动做多次打包动作;一个是如何能够在Ant中修改Manifest文件,以支持不同的市常只要解决了这两个关键问题,配合Ant的基本功能,就能实现我们的要求了。

1. 在Ant中支持循环

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...