亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Android > 正文

為Android應(yīng)用增加渠道信息 自動(dòng)化不同渠道的打包過程的使用詳解

2020-04-11 12:25:33
字體:
供稿:網(wǎng)友

為什么需要在應(yīng)用程序中增加渠道信息?

Android應(yīng)用的發(fā)布需要面對(duì)各種各樣的市場(chǎng),我們稱之為渠道。有的時(shí)候,我們需要知道應(yīng)用是從哪個(gè)渠道下載的。比如,我們可能需要統(tǒng)計(jì)哪些市場(chǎng)帶來的用戶量比較大。再比如,我們可能有一些盈利需要和具體的渠道進(jìn)行分成。這些都是統(tǒng)計(jì)渠道的信息。

一般如何在應(yīng)用中加入渠道信息?

為了統(tǒng)計(jì)渠道信息,就不得不在程序的某個(gè)地方加入渠道的信息,然后針對(duì)不同的渠道打不同的包。一般可以在Manifest文件中加入渠道編號(hào),而不直接寫在代碼中。這樣做的好處是,可以針對(duì)不同渠道,自動(dòng)化去修改Manifest文件中的渠道編號(hào),然后自動(dòng)為該渠道打包。

Manifest文件支持Meta Data標(biāo)簽,建議使用這種自定義標(biāo)簽。例如下面的文件片段。

復(fù)制代碼 代碼如下:

<?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>


在這段代碼示例中,我們?cè)贏pplication節(jié)點(diǎn)下增加了一個(gè)meta-data標(biāo)簽,名稱是CHANNEL,值是C_001,是我們規(guī)定的一個(gè)渠道的編號(hào)。

為不同的渠道打包,就要手工或者自動(dòng)化修改C_001成為C_002、C_003等等其它我們定義的渠道編號(hào),然后再打不同的包。


程序如何讀取打包的渠道編號(hào)?

在程序代碼中,可以讀取Manifest文件中定義的meta-data。以下為代碼實(shí)例。

復(fù)制代碼 代碼如下:

   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;

    }


如何自動(dòng)化打包過程?

我們想要自動(dòng)化針對(duì)不同渠道打不同包的過程,有兩種情況。一種是有源代碼的情況,一種是沒有源代碼只有APK文件的情況。

有源代碼的情況。

有源代碼的情況比較簡(jiǎn)單。我們可以使用自動(dòng)化腳本工具進(jìn)行打包,比如使用Ant。

使用Ant打包,有兩個(gè)關(guān)鍵問題:一個(gè)是要在Ant中支持For循環(huán),以自動(dòng)做多次打包動(dòng)作;一個(gè)是如何能夠在Ant中修改Manifest文件,以支持不同的市場(chǎng)。只要解決了這兩個(gè)關(guān)鍵問題,配合Ant的基本功能,就能實(shí)現(xiàn)我們的要求了。

在Ant中支持循環(huán)

在Ant的核心包里沒有相關(guān)的For循環(huán)的Task,要下載相應(yīng)的擴(kuò)展包??梢允褂瞄_源的Ant-contrib包。

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

下載完成后,把a(bǔ)nt-contrib里的lib包復(fù)制到安裝好的Ant庫(kù)apache-ant-XXX/lib下面,就可以使用了。

具體如何使用,可以參考ant-contrib的官方網(wǎng)站。

在Ant中修改Manifest文件

利用 Ant 擴(kuò)展任務(wù)所提供的 <replaceRegExp> 任務(wù),還可以實(shí)現(xiàn)基于正則表達(dá)式的替換。

例如,要將AndroidManifest.xml文件中的行首“C_001”字符串替換為“C_002”,可以使用如下Ant腳本:

<replaceregexp

        file="AndroidManifest.xml"

        byline="true"

        match="C_001 "

        replace="C_002"

/>

<replaceRegExp> 任務(wù)很強(qiáng)大,這只是一個(gè)簡(jiǎn)單的例子。

只有APK文件的情況。

如果沒有源代碼,只有APK文件,事情相對(duì)就稍微復(fù)雜一些了。我們知道有一個(gè)開源的APKTOOL,可以對(duì)APK文件進(jìn)行反編譯,或者重新打包。具體的請(qǐng)參考APKTOOL的官方文件。

有了APKTOOL的幫助,就可以有一個(gè)基本思路。

 先使用APKTOOL對(duì)APK文件進(jìn)行反編譯,反編譯出來資源文件和AndroidManifest.xml文件。

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

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

 使用jarsigner工具為APK文件簽名。

只要反復(fù)重復(fù)2-4步驟,即可對(duì)不同的渠道打出不同的APK安裝包。

根據(jù)這個(gè)思路,具體的實(shí)現(xiàn)就相對(duì)簡(jiǎn)單了??梢詫懗梢粋€(gè)BAT腳本文件,也可以寫成Java應(yīng)用程序。

 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
久久99精品久久只有精品| 久久久久久久久久久久久久久久av| 都市激情亚洲| 欧美日韩国产高清视频| 精品视频在线免费| 亚洲大片精品永久免费| 蜜桃视频免费网站| 成人免费在线网| 午夜欧美一区二区三区免费观看| 最新国产在线精品91尤物| 免费视频久久久| 伊人永久在线| 免费涩涩18网站入口| 4hu四虎永久在线影院成人| kk眼镜猥琐国模调教系列一区二区| 久久午夜夜伦鲁鲁一区二区| 久久久久久久久综合| 亚洲第一视频在线播放| 91久久久亚洲精品| 国产熟女一区二区| 精品少妇一区二区30p| 亚洲免费福利一区| 久久婷婷五月综合| 国产精品伦理在线| 久久久影院官网| www.日日操| 久久影院一区二区三区| 国产成人av在线影院| 欧美日韩精品一区| 国产成人97精品免费看片| 天天干天天干天天干天天干天天干| 91香蕉视频网址| 亚洲成人一区二区在线观看| 私人高清影院 强乱中文字| 亚洲视频在线播放免费| 免费av观看网址| 国产精品18久久久久久首页狼| 日韩精品一区在线视频| 交视频在线观看国产| 97人人爽人人澡人人精品| 欧美人与动性xxxxbbbb| 国产免费无遮挡| 97caopron在线视频| 亚洲成年人影院在线| 9191在线视频| 最新版天堂资源中文官网| 真实国产乱子伦对白视频| 精品国产18久久久久久| 国产乱淫片视频| 免费欧美日韩国产三级电影| 欧美深深色噜噜狠狠yyy| 嫩草影院国产精品| 国产欧美亚洲日本| 热99re久久精品精品免费| 99热播精品免费| 成年人在线视频免费观看| 欧美精品成人一区二区三区四区| 欧美性视频在线播放| 91亚洲国产高清| 国产激情视频一区二区三区欧美| 天天色综合社区| 熟女视频一区二区三区| 精人妻一区二区三区| 欧美视频四区| 新67194成人永久网站| 一区二区欧美日韩| 麻豆国产欧美一区二区三区r| 99久久久久久99| 黄色av中文字幕| 国产农村一级特黄α**毛片| 国产欧美日韩网站| 久久视频一区二区| 国产精品96久久久久久又黄又硬| 久久草在线看| 久草免费资源站| 91久久一区二区| 天堂网在线观看在线观看精品| 亚洲国产aⅴ精品一区二区三区| 国产女精品视频网站免费| 亚洲最大福利网站| 亚洲wwwav| 欧美理论视频| 天天综合网在线| 午夜精品久久久久久不卡8050| 国模大尺度视频| 蜜桃视频在线观看www| 欧美成人性生活| 亚洲欧美日韩久久久久久| 牛牛影视一区二区三区免费看| www.欧美日韩| 日日噜噜夜夜狠狠| 一区二区精品免费视频| 国产成a人亚洲精v品无码| 羞羞色国产精品网站| 日韩av一区二区三区| 欧洲午夜精品| 男人天堂久久久| 色噜噜狠狠狠综合欧洲色8| 亚洲欧洲日产国产综合网| 久久这里有精品| 国语对白中文字幕| 黑人精品xxx一区一二区| 欧美一区午夜视频在线观看| 欧美日韩人妻精品一区二区三区| 成人3d精品动漫精品一二三| 亚洲福利精品在线| 熟女高潮一区二区三区| 欧美丰满少妇人妻精品| 国产精品va在线播放| 在线观看国产精品91| 欧美日韩高清不卡| 波多野结衣欧美| 欧美日韩生活片| 9191在线视频| 99久久精品国产亚洲| 久久国产精品久久精品| 91精品国产色综合久久久蜜香臀| 日韩av自拍偷拍| 伊人色综合久久久天天蜜桃| 欧美激情黑白配| 国产精品美女主播| 日韩一区二区三区久久| 无码国产69精品久久久久同性| 夜夜精品视频一区二区| 国产精品欧美激情在线播放| 在线欧美三级| 欧美中文娱乐网| 国产日韩欧美在线看| 黑人玩欧美人三根一起进| 99精品在免费线中文字幕网站一区| 日韩一区免费观看| 小黄文在线观看| 5566先锋影音夜色资源站在线观看| 精品乱码亚洲一区二区不卡| 亚洲精品视频播放| 成人精品视频99在线观看免费| 国产成人免费视频网站| 99久久一区三区四区免费| 欧美性受xxxx黑人猛交88| 欧美zozo| 口述被爽到呻吟高潮自述| 天天插天天干| 欧美另类极品videosbestfree| 中国女人内谢69xxx视频| 国产在线xxxx| 亚洲天天在线日亚洲洲精| 欧美一级片在线观看| 精品欧美日韩一区二区| 热99精品里视频精品| 漫画在线观看av| 日韩精品在线中文字幕| 丝袜 亚洲 另类 欧美 重口| 性色视频在线| 日韩欧美手机在线| 91精品国产色综合久久不卡98口| 亚洲成a人片777777久久| 人妻夜夜爽天天爽| 自拍电影在线观看| 午夜天堂在线观看| 日韩中文字幕在线视频| 亚洲人成网站999久久久综合| 99v久久综合狠狠综合久久| 蜜桃视频成人在线观看| 久久99精品国产91久久来源| 成人精品视频网站| 亚洲欧美中文另类| 国产在线精品二区| 国产大片aaa| 中文字幕一区日韩电影| 91九色在线免费视频| 日本欧美一区二区三区乱码| 亚洲大片一区二区三区| 日韩美女主播视频| 婷婷在线播放| 中文一区二区| 欧美亚洲一区二区三区四区| 国产三级精品视频| 美女把尿口扒开给男人桶视频| 国产曰批免费观看久久久| 天天躁日日躁狠狠躁欧美巨大小说| 色婷婷精品视频| 男人天堂新地址| 大黑人xxx| gogo亚洲国模私拍人体| 日韩国产高清污视频在线观看| 色哟哟免费在线观看| 99久久国产综合精品色伊| 亚洲精品乱码久久久久久蜜桃动漫| 日韩欧美在线视频免费观看| 国产日韩影视精品| 在线资源av| 日韩成人伦理电影在线观看| 日本亚洲欧洲精品| 99久久99热久久精品免费看| 精品精品国产高清a毛片牛牛| 欧美午夜精品理论片| 东京热加勒比无码少妇| 亚洲精选视频免费看| 久久美女福利视频| 国产a级片免费看| 国产一区二区三区香蕉| 人人妻人人澡人人爽欧美一区双| 亚洲欧洲日产国产综合网| 麻豆久久婷婷| 国产欧美一区二| 亚洲欧美成人影院| 水蜜桃久久夜色精品一区的特点| 亚洲国产欧美精品| 中文 日韩 欧美| 欧美日韩一区二区精品| 久久人妻免费视频| 亚洲免费av电影| 蜜桃av一区二区| 欧美 国产 小说 另类| x99av成人免费| 国产精品二区影院| 成年女人免费视频| 久久久国产精品视频| 欧美tk丨vk视频| 日本一二三四区视频| 蜜桃视频在线观看网站| 欧美成人精品免费| 人妻 日韩 欧美 综合 制服| 国内精品400部情侣激情| 欧洲美女和动交zoz0z| 中国女人内谢69xxxx免费视频| 国产96在线亚洲| 欧美性理论片在线观看片免费| xfplay爱情电影网love| 国产综合亚洲精品一区二| 欧美激情一级片一区二区| 色婷婷av在线| 亚洲国产第一区| 国产人妖一区二区三区| 91精品国产乱码在线观看| 99在线精品免费视频九九视| 成人在线资源网址| 亚洲日本一区二区三区| 精东传媒在线观看| 美女搞黄视频在线观看| 国产精品大片wwwwww| 又黄又www| 精品一区二区三区中文字幕| 黄页网站在线播放| 欧美三级电影精品| 美女扒开腿让男人桶爽久久软| 天堂在线中文网官网| 亚洲av电影一区| 国产亚洲福利| 亚洲综合网狠久久| 精品国产亚洲在线| 日韩在线中文字幕视频| 操她视频在线观看| 久久亚洲精品一区| 欧美成人精品二区三区99精品| 亚洲乱码国产乱码精品| 国产在线视频欧美一区| 天天操天天插| 色网站免费在线观看| 久久精品一区二区免费播放| 国产精品亚洲美女av网站| 国产精品久久久久久久浪潮网站| 成人亚洲一区二区三区| 欧美mv日韩mv国产| 欧美淫片网站| 欧美日韩亚洲综合一区二区三区| 欧洲一区二区三区在线| 自拍一级黄色片| 好吊一区二区三区视频| 182在线观看视频| 国产成人极品视频| 制服.丝袜.亚洲.中文.综合懂| 国产精品一区一区三区| 国产成人精品视频ⅴa片软件竹菊| 中文字幕人妻一区二区| 久久久精品在线| av在线视屏| 久久在线免费| 男人天堂av在线播放| 亚洲性感美女99在线| 小早川怜子久久精品中文字幕| 久久亚洲精品无码va白人极品| 94色蜜桃网一区二区三区| 中文在线字幕av| 亚洲网友自拍偷拍| 国产又猛又黄又爽| 亚洲77777| aaaaa黄色片| 最好看的中文字幕| 国产综合久久久久久鬼色| 国产日韩欧美精品一区二区三区| 黑人巨大狂躁日本妞在线观看| 成人黄色免费电影| 中文字幕高清在线| 超碰公开在线| 中文字幕一区二区在线观看| 欧美成人xxx| 91黄色精品| 强开小嫩苞一区二区三区网站| 日日摸日日碰夜夜爽无码| 日本亚洲免费观看| 国产精品白丝喷水在线观看| 国产成人自拍视频在线| 国产成人免费视频精品含羞草妖精| 人人天天夜夜| √天堂中文在线| 国产乱码精品一区二区亚洲| 国内外成人免费激情在线视频网站| ,一级淫片a看免费| 欧美色精品天天在线观看视频| 99久热在线精品视频观看| 色系网站成人免费| 99re66热这里只有精品4| 蜜桃视频www网站在线观看| 亚洲 小说 欧美 激情 另类| 日韩免费看网站| 在线观看免费网站黄| 亚洲乱码国产一区三区| 中文字幕一区二区三区四区免费看| 日本中文字幕不卡免费| 精品少妇人妻一区二区黑料社区| 一色桃子一区二区| 亚洲综合视频在线播放| 中文区中文字幕免费看| 日本不卡视频| 亚洲区小说区图片区qvod按摩| 国产精品一区二区三区高清在线| 一色屋成人免费精品网|