当前位置:  编程技术>移动开发

为Android应用增加渠道信息 自动化不同渠道的打包过程的使用详解

    来源: 互联网  发布时间:2014-10-15

    本文导语:  为什么需要在应用程序中增加渠道信息?Android应用的发布需要面对各种各样的市场,我们称之为渠道。有的时候,我们需要知道应用是从哪个渠道下载的。比如,我们可能需要统计哪些市场带来的用户量比较大。再比如,我们...

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

Android应用的发布需要面对各种各样的市场,我们称之为渠道。有的时候,我们需要知道应用是从哪个渠道下载的。比如,我们可能需要统计哪些市场带来的用户量比较大。再比如,我们可能有一些盈利需要和具体的渠道进行分成。这些都是统计渠道的信息。

一般如何在应用中加入渠道信息?

为了统计渠道信息,就不得不在程序的某个地方加入渠道的信息,然后针对不同的渠道打不同的包。一般可以在Manifest文件中加入渠道编号,而不直接写在代码中。这样做的好处是,可以针对不同渠道,自动化去修改Manifest文件中的渠道编号,然后自动为该渠道打包。

Manifest文件支持Meta Data标签,建议使用这种自定义标签。例如下面的文件片段。

代码如下:

      ……

   

        ……

   

   



在这段代码示例中,我们在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;

    }


如何自动化打包过程?

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

有源代码的情况。

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

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

在Ant中支持循环

在Ant的核心包里没有相关的For循环的Task,要下载相应的扩展包。可以使用开源的Ant-contrib包。

下载地址:http://ant-contrib.sourceforge.net/

下载完成后,把ant-contrib里的lib包复制到安装好的Ant库apache-ant-XXXlib下面,就可以使用了。

具体如何使用,可以参考ant-contrib的官方网站。

在Ant中修改Manifest文件

利用 Ant 扩展任务所提供的 任务,还可以实现基于正则表达式的替换。

例如,要将AndroidManifest.xml文件中的行首“C_001”字符串替换为“C_002”,可以使用如下Ant脚本:

任务很强大,这只是一个简单的例子。

只有APK文件的情况。

如果没有源代码,只有APK文件,事情相对就稍微复杂一些了。我们知道有一个开源的APKTOOL,可以对APK文件进行反编译,或者重新打包。具体的请参考APKTOOL的官方文件。

有了APKTOOL的帮助,就可以有一个基本思路。

 先使用APKTOOL对APK文件进行反编译,反编译出来资源文件和AndroidManifest.xml文件。

 使用脚本代码修改AndroidManifest.xml文件中的渠道ID文本。

 使用APKTOOL重新打包成APK文件。

 使用jarsigner工具为APK文件签名。

只要反复重复2-4步骤,即可对不同的渠道打出不同的APK安装包。

根据这个思路,具体的实现就相对简单了。可以写成一个BAT脚本文件,也可以写成Java应用程序。

 


    
 
 

您可能感兴趣的文章:

  • Android笔记之:App自动化之使用Ant编译项目多渠道打包的使用详解
  • 深入android Unable to resolve target 'android-XX'详解
  • Android工程:引用另一个Android工程的方法详解
  • Android TextView设置背景色与边框的方法详解
  • Android中的android:layout_weight使用详解
  • Android 实现永久保存数据的方法详解
  • 在android开发中尽量不要使用中文路径的问题详解
  • android开发环境搭建详解(eclipse + android sdk)
  • android双缓冲技术实例详解
  • 深入Android开发FAQ的详解
  • Android开发笔记之:一分钟学会使用Logcat调试程序的详解
  • Android对sdcard扩展卡文件操作实例详解
  • Android笔记之:onConfigurationChanged详解
  • Android 动画之AlphaAnimation应用详解
  • 解析后台进程对Android性能影响的详解
  • android ListView 一些重要属性详解
  • 解决Fedora14下eclipse进行android开发,ibus提示没有输入窗口的方法详解
  • Windows下获取Android 源码方法的详解
  • Android selector背景选择器的使用详解
  • Android 动画之RotateAnimation应用详解
  • Handler与Android多线程详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • android自动打包软件 AutopackingAndroid
  • 怎么发布打包并发布自己的Android应用(APP)
  • ANDROID应用程序的混淆打包分享
  • Android 数据库打包随APK发布的实例代码
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android访问与手机通讯相关类的介绍
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • Android小游戏 Android Shapes
  • Android电池监控 Android Battery Dog
  • android开发:“android:WindowTitle”没有对应项no resource
  • Android 上类似IOS 的开关控件。 Android ToggleButton
  • Android 将 android view 的位置设为右下角的解决方法
  • Android 2D游戏引擎 Android Angle


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3