鏈接參考地址: https://github.com/HongQiQu/AndroidMultiChannelBuildTool
, http://www.cnblogs.com/ct2011/p/4152323.html,https://github.com/HongQiQu/AndroidMultiChannelBuildTool
1、首先安裝Python(安裝和測試步驟自己補腦,百度很多)
2、下載github上的壓縮包隨便解壓到一個目錄下邊
解壓以後的:
javaUtil是放入自己項目中去的文件(放入就ok了)
javaUtil是放入自己項目中去的文件(放入就ok了)
使用:
將JavaUtil或ChannelUtil放入自己的工程中,然後在自定義的Application如(MyApplication)的oncreate中調用渠道號,如
PythonTool文件夾中是重點
Info文件和output_apk文件夾都是在MultiChannelBuildTool.py文件中設定的,點擊右鍵用記事本或者別的編輯工具打開MultiChannelBuildTool.py其中有獲取渠道號
設置生成apk以後的文件夾
其實這些不用管只要按照默認的就行了
這個是info文件夾中創建了一個txt文件用於存放渠道號
渠道號的形式
一行一個然後換行繼續
前期工作準備好了以後現在開始打包首先要打一個自己程序的默認包
把生成的apk放到MultiChannelBuildTool.py同目錄下,
然後直接雙擊MultiChannelBuildTool.py 運行完成以後可以看一下output_apk
中已經瞬間打好了我們想要的包。結束
執行流程: 將JavaUtil或ChannelUtil在MyApplication中的oncreate中調用Channel.getChannel(context,"xxxx隨意,不要也行");部署這個代碼之後,打第一個apk包,將此apk包放到MultiChannelBuildTool.py同目錄下,雙擊MultiChannelBuildTool.py,執行完就打好渠道包了。。。。
MultiChannelBuildTool.py的執行流程,讀取channel.txt的所有渠道號,將第一個apk包名稱替換成目標apk名稱,並且生成的目標apk名稱會加入一個METa-inf/cztchannel-{目標渠道號}的文件;注: METa-inf/cztchannel-{目標渠道號}這個中的 METa-inf/cztchannel就是JavaUtil的key使用的時候一定更要注意保持一致,否則無法修改
當啓動打好的渠道apk時,就會執行myapplication中的ChannelUtil.getchannel(context,"xxxx");此方法會直接匹配METa-inf/cztchannel-{目標渠道號}獲取目標渠道號,這個渠道變量是全局的,所以請求時就要所要的目標渠道
由於友盟需要新增用戶統計,以前的sdk不支持代碼修改channel,就是沒有AnalyticsConfig.setChannel(String
channel)這個接口,所以這種方式在以前sdk打的渠道包是沒法統計到新增用戶的;解決辦法就是替換sdk,然後在再啓動頁(xxxactivity)的oncreate中調用AnalyticsConfig.setChannel(String
channel),將此方法打的渠道包號獲取,通過此方法傳入就可以統計到新增戶用了;
注意:友盟的新增用戶定義:只能用未裝過渠道包的設備(手機)測試,纔會有數據,若是裝過渠道包,那麼不會認爲是新用戶,
新增用戶的數據是實時顯示的,而其它事件數據統計是下次啓動app纔會一次性上傳數據
注意:Android
Studio 2.2 和Android Gradle 2.2插件會使用APK Singnature Scheme v2和傳統簽名方案來簽署您的應用;apk中meta-info目錄添加渠道標示文件的方法打多渠道包,導致簽名後的apk文件與源文件不一致導致的。;所以as2.2以上不能使用這種多渠道包打包方式