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

首頁 > 系統 > Android > 正文

Android多渠道打包總結(推薦)

2019-10-21 21:37:51
字體:
來源:轉載
供稿:網友

多渠道打包一般應用于向不同應用市場提交app后用來統計不同渠道下載量等一些信息。一般集成友盟sdk(同類型的sdk還有 諸葛io,量江湖等sdk),不同sdk集成方式大同小異,可去各自官網查看詳細文檔。本文以友盟sdk為例。 
渠道:各種應用市場比如 華為應用市場,小米應用市場, 積分墻(花錢的推廣渠道)等。

一,android自帶gradle打包

首先集成友盟sdk,集成方式參照友盟sdk集成,在項目的build.gradle文件中加入以下代碼

  productFlavors {    yingyongbao {}    oppo {}  }  productFlavors.all {    flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]  }

修改生成的apk名字

  applicationVariants.all{ variant->    variant.outputs.each { output->      def oldFile = output.outputFile      if(variant.buildType.name.equals('release')){        def releaseApkName = ''+variant.productFlavors[0].name +"-"+defaultConfig.versionName+ '.apk'        output.outputFile = new File(oldFile.parent, releaseApkName)      }    }  }

AndroidManifest.xml中加入友盟的集成代碼以及權限

  <meta-data      android:name="UMENG_APPKEY"      android:value="Your key" />    <!-- <meta-data android:value="faqiao" android:name="UMENG_CHANNEL"/> -->    <meta-data      android:name="UMENG_CHANNEL"      android:value="${UMENG_CHANNEL_VALUE}" /> //這里改成對應build.gradle中的 productFlavors.all 對應的字符串

然后選擇你要打包的渠道就 可以了 

Android,多渠道,打包 ->

Android,多渠道,打包

缺點:如果渠道過多這種打包方式很費時間20個渠道包差不多要40分鐘的時間。

二 美團walle(瓦力)打包

一些大廠的渠道會多到驚人,美團會有900+的渠道要是按上面的打包方式2*900肯定是不行的。美團技術大牛們也在一直研究快速多渠道打包方法。 

在這介紹美團最新的walle打包,之前美團還有一個打包方式是通過python腳本修改apk(apk也是一個壓縮包)中的一個配置文件的名稱,配置文件名稱也就是渠道名稱從而打不不同的包,這種速度很快,但是從android7.0以后android加入了APK Signature Scheme v2打包方式,因為這種打包方式改變的包里面的內容所以apk在7.0以后的系統中安裝會提示安裝失敗。

在此推薦美團walle打包,此種方式是不通過外部修改配置文件的方式打包具體打包細節可參考美團walle打包 

集成方式 

首先build.gradle中

apply plugin: 'walle'  walle {    // 指定渠道包的輸出路徑//    apkOutputFolder = new File("${project.buildDir}/outputs/channels");    apkOutputFolder = new File("D:/Android/outputs/user/channels");    // 定制渠道包的APK的文件名稱//    apkFileNameFormat = '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk';    apkFileNameFormat = 'app-${channel}-v${versionName}.apk';    // 渠道配置文件    channelFile = new File("${project.getProjectDir()}/channel")  }dependencies { compile 'com.meituan.android.walle:library:1.1.6'//美團多渠道打包}

這里的 channelFile是一個channel(渠道的一個配置文件)放在該工程的對應的目錄下 

apkOutputFolder 是apk包生成的位置,可更改 

Android,多渠道,打包

該文件用editplus文件編輯器打開格式如下: 

Android,多渠道,打包

然后在 工程的 build.gradle中加入

 dependencies {    classpath 'com.meituan.android.walle:plugin:1.1.6'  }

這種打包方式不是更改AndroidManifest的方式,所以先把AndroidManifest中的配置友盟渠道的代碼注釋掉:

 <!--<meta-data-->      <!--android:name="UMENG_APPKEY"-->      <!--android:value="your key" />-->    <!--<!– <meta-data android:value="faqiao" android:name="UMENG_CHANNEL"/> –>-->    <!--<meta-data-->      <!--android:name="UMENG_CHANNEL"-->      <!--android:value="channel" />-->

通過調用walle的方法獲取到的channel的名稱,所以需要在app初始化的 BaseApplication中初始化友盟的channel配置信息。

 private void initUmeng(){    String appkey = "your appkey";    String channelId = WalleChannelReader.getChannel(this.getApplicationContext());    //初始化友盟配置信息 通過代碼方式配置友盟的渠道信息     MobclickAgent.UMAnalyticsConfig config =        new MobclickAgent.UMAnalyticsConfig(this, appkey, channelId);   }

配置好了那么就開始打包了,在as自帶的命令輸入框輸入打包命令,等兩分鐘左右所有的渠道包就打完了! 

Android,多渠道,打包

出現BUILD SUCCESSFUL 就說明打包成功了 

Android,多渠道,打包 
常用的walle打包命令 

//生成所有渠道包 gradlew clean assembleReleaseChannels // 生成單個渠道包: gradlew clean assembleReleaseChannels -PchannelList=meituan//生成多個渠道包: gradlew clean assembleReleaseChannels -PchannelList=meituan,dianping

總結

如果沒有渠道的限制一般用as自帶的gradle打包就可以,如果渠道過多推薦使用walle打包。文中介紹的美團的python打包方式現在還有一些開發者在用,因為那種方法在構建基礎apk包的時候 不選用v2打包方式是沒有問題的,但是我認為v2的簽名打包方式更符合現在的趨勢吧,所以推薦是用美團的walle打包方式。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区黄| 国产欧美一区二区三区在线| 国产成人综合亚洲| 国产精品网红直播| 国产成人精品999| 久久综合伊人77777尤物| 96精品久久久久中文字幕| 久久亚洲精品一区| 国产精品女主播| 欧美日韩亚洲精品内裤| 欧美性猛交丰臀xxxxx网站| 久久久在线视频| 亚洲成人av中文字幕| 中国china体内裑精亚洲片| 欧美精品video| 国产精品久久久久久五月尺| 国产精品美女久久久久av超清| 欧美性videos高清精品| 久久精品国产成人精品| 久热精品视频在线观看一区| 亚洲精品aⅴ中文字幕乱码| 成人av.网址在线网站| 精品久久久免费| 91av免费观看91av精品在线| 不卡av日日日| 国产午夜精品视频免费不卡69堂| 亚洲一区精品电影| 中文字幕亚洲综合久久| 亚洲天堂免费观看| 亚洲老司机av| 国产网站欧美日韩免费精品在线观看| 日韩高清有码在线| 91视频国产精品| 国产精品视频色| 国产精品久久久久91| 理论片在线不卡免费观看| 国产91热爆ts人妖在线| 狠狠久久五月精品中文字幕| 中文字幕亚洲欧美在线| 国产成人精品在线播放| 日韩av片永久免费网站| 亚洲第一精品夜夜躁人人躁| 日韩中文字幕网址| 久久久亚洲影院你懂的| 国产成人一区二| 亚洲欧美一区二区三区在线| 精品久久国产精品| 久久国产精品偷| 亚洲性夜色噜噜噜7777| 日韩激情第一页| 国产精品7m视频| 中文字幕亚洲在线| 91中文在线视频| 亚洲免费视频一区二区| 国内外成人免费激情在线视频| 国产精品福利网| 亚洲天堂成人在线视频| 欧美日韩在线一区| 国产精品情侣自拍| 国产精品三级美女白浆呻吟| 中文字幕精品视频| 日韩久久午夜影院| 日韩电影第一页| 国产精品美女视频网站| 亚洲成年人影院在线| 欧美乱大交做爰xxxⅹ性3| 亚洲a一级视频| 国产精品高清在线观看| 日韩精品在线观看视频| 69av在线视频| 国产一区二区成人| 亚洲免费电影一区| 成人www视频在线观看| 尤物九九久久国产精品的特点| 最近2019年日本中文免费字幕| 亚洲视频在线免费看| 成人网在线免费观看| 国产婷婷成人久久av免费高清| 久久99视频免费| 成人在线视频福利| 亚洲精品福利资源站| 精品久久久久久| 一级做a爰片久久毛片美女图片| 欧美性猛交xxxx乱大交蜜桃| 久久全球大尺度高清视频| 国产精品高清在线| 综合久久五月天| 日本精品久久中文字幕佐佐木| 国产亚洲日本欧美韩国| 久久久亚洲影院你懂的| 在线观看欧美成人| 午夜精品久久久久久久久久久久久| 日韩中文字幕在线免费观看| 国产日产久久高清欧美一区| 日韩精品999| 欧美高清视频在线| 久久精品国产精品| 69视频在线免费观看| 欧美怡春院一区二区三区| 精品美女久久久久久免费| 亚洲国产日韩欧美在线图片| 日韩av日韩在线观看| 精品日本高清在线播放| 精品动漫一区二区| 亚洲精品videossex少妇| 欧美一区二区.| 97国产成人精品视频| 国产91精品网站| 国产丝袜精品第一页| 欧美日韩xxxxx| 黑人狂躁日本妞一区二区三区| 久久亚洲精品小早川怜子66| 怡红院精品视频| 欧美激情性做爰免费视频| 精品中文字幕久久久久久| 亚洲精品第一页| 国产精品一区电影| 456亚洲影院| 欧美精品激情在线| 亚洲一区精品电影| xxxxx成人.com| 中文字幕日韩欧美精品在线观看| 亚洲乱码一区二区| 欧美裸体xxxxx| 91在线高清视频| 亚洲一二在线观看| 亚洲性69xxxbbb| 高潮白浆女日韩av免费看| 国产精品69精品一区二区三区| 国产专区精品视频| 国产成人精品视频在线观看| 97国产精品免费视频| 国产+成+人+亚洲欧洲| 久久久亚洲成人| 国产精品美女久久久久av超清| 欧美日韩亚洲一区二区三区| 青青草原一区二区| 亚洲第一福利视频| 国产精品你懂得| 亚洲美女视频网站| 大荫蒂欧美视频另类xxxx| 丁香五六月婷婷久久激情| 在线看日韩av| 色先锋资源久久综合5566| 神马久久桃色视频| 91精品免费久久久久久久久| 日韩精品极品视频免费观看| 国产成人一区三区| 日韩av一卡二卡| 91精品国产乱码久久久久久蜜臀| 亚洲天堂免费在线| 欧美韩国理论所午夜片917电影| 国产精品免费视频久久久| 欧美国产日本在线| 一区二区成人精品| 色综合五月天导航| 亚洲夜晚福利在线观看| 97色在线观看免费视频| 午夜精品国产精品大乳美女| 国产精品美女久久| 在线观看中文字幕亚洲| 欧美激情精品久久久久久免费印度| 国产一区二区丝袜高跟鞋图片| 亚洲缚视频在线观看|