多渠道打包

Android 多渠道打包

需要了解的知識

1、為什么需要多渠道打包
2、多渠道打包的方式及其優(yōu)缺點配置及操作步驟,是否存在風險
3、打包后各個apk真正區(qū)別是什么
4、涉及到的知識就是版本比較多的時候,需要自定義apk名字達到好區(qū)分的目的

針對上述問題進行一一分析

1、為什么需要多渠道打包

原因:在打包的時候添加標識,當請求網(wǎng)絡的時候會攜帶渠道信息,這樣后臺能進行相應運營統(tǒng)計。

2、多渠道打包的方式:

參考文章:
https://blog.csdn.net/mr_hmgo?t=1

1、友盟多渠道打包方式(傳統(tǒng)方式)
①、在清單文件中配置meta-data文件,渠道名一般由產(chǎn)品經(jīng)理定義,代碼如下:

<meta-data
     android:name="UMENG_CHANNEL"
     android:value="${UMENG_CHANNEL_VALUE}" />

②、在build.gradle中android{}中配置如下代碼:

productFlavors{
      wandoujia{
         manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
      }
      xiaomi{
         manifestPlaceholders=[UMENG_CHANNEL_VALUE: "xiaomi"]
      }
  }

③、優(yōu)化

productFlavors{
wandoujia{}
 xiaomi{}
 }
  //下面就是優(yōu)化增加的代碼
 productFlavors.all { flavor ->
 flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
 }

④、在代碼中獲取渠道信息,代碼如下:

private String getChannel() {
try {
   PackageManager pm = getPackageManager();
   ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), 
   PackageManager.GET_META_DATA);
   return appInfo.metaData.getString("UMENG_CHANNEL");
 } catch (PackageManager.NameNotFoundException ignored) {
 }
 return "";
 }

⑤在app/build/outputs/apk中就能看到自動打好的渠道包

優(yōu)缺點:

這種打包方式比較安全,是傳統(tǒng)打包方式。
缺點是:性能比較低

2、美團打包方式:
原理:apk文件其實可以看做是一個壓縮包,我們把一個Android應用包當作zip文件包進行解壓,然后發(fā)現(xiàn)在簽名生成的目錄下(META-INF)添加一個空文件不需要重新簽名。利用這個機制,該文件的文件名就是渠道名。這種方式不需要重新簽名等步驟,非常高效。

美團打包工具下載地址:
https://github.com/GavinCT/AndroidMultiChannelBuildTool

優(yōu)缺點:
優(yōu)點是:打包速度快
缺點是:如果google修改了打包規(guī)則,(META-INF)添加空文件需要重新簽名,那么這種方式就不可取。不安全,渠道商可以通過工具修改渠道,如果一個渠道商,通過網(wǎng)絡劫持和篡改渠道的組合方式來獲取 暴利,對于程序開發(fā)者來說可能會存在著巨大的經(jīng)濟損失

打包后各個apk真正區(qū)別

就是給每一個apk安裝包添加了標簽,有了特殊標識,根據(jù)這些標識,你可以針對不同的apk進行統(tǒng)計分析??梢宰鳛檫\營下一步的公關方向提供參考。

自定義apk名字

當多渠道打包的時候,打出的包都是按照一定規(guī)則生成的,如果打多個版本的包時,因為規(guī)則相同,我們就不能很好的區(qū)分哪個是哪個版本的,這個時候就需要自定義apk名字,把版本號或者是版本名字放在規(guī)則中,這樣打包的時候就會帶上版本信息,這樣就我們就很好的區(qū)分開了。

詳細可以參考此文自定義apk名字的文章
https://www.cnblogs.com/bluestorm/p/6228085.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容