Android Studio一步步教你集成發布適配
來自: http://www.jianshu.com/p/5993310dd643
- 開門見山,本章教你如何配置多渠道一鍵打包,本教程只符合使用Android Studio的童鞋
1.首先檢查本地gradle版本是否是最新的,我建議換成最新的編譯版本gradle版本查看
我用的是gradle-2.10-all用迅雷下載更快 https://downloads.gradle.org/distributions/gradle-2.10-all.zip 下載其它版本把“2.10”替換成你所需要的版本號就ok啦
點擊可下載
下載后解壓到任意你所指定的文件夾
2.最后給你的工程指定gradle版本位置,使用本地的,如圖所示

gradle.png
3.我相信java環境都已經配置好了,所以無需再提。本教程并沒有去木有配置gradle的環境變量,因為--沒用到,至于gradle環境變量配置教程,有需要的童鞋可以看一下
環境變量配置錯誤,出現問題找我,我也不會認的0 - 0因為本教程,木有去配置gradle環境,木有去配置gradle環境,重要事情說三遍
(gradle環境變量配置)
WIN下環境變量添加方法: 我的電腦→屬性→高級系統屬性設置→高級→環境變量,先新建一個用戶變量 GRADLE_HOME填入你上面解壓知道的文件夾路徑,之后在系統PATH變量下添 加GRADLE_HOME/bin;確定保存即可,重啟命令行,然后運行 gradle -version查看當前gradle的版本號. MAC下添加環境變量: $ vim .bash_profile export GRADLE_HOME=/Applications/gradle-2.3; export PATH=$PATH:$GRADLE_HOME/bin 檢查是否成功 $ gradle -version
- 開始我們的配置
1.首先是友盟渠道,相信很多公司產品都融入了這個
把UMENG_CHANNEL下面的值改為 ${UMENG_CHANNEL_VALUE}<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />
然后打開app目錄下的build.gradle文件配置渠道productFlavors { abc { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "abc"] } baiduyun { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baiduyun"] } wandoujia { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"] } }
2.多渠道配置結束,就是這么簡單,然后我們打包的時候肯定都希望能夠區分每一個包是哪個渠道的,添加下面的代碼可以實現buildTypes { release { minifyEnabled true//是否混淆 zipAlignEnabled true shrinkResources true//移除未使用的資源文件 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' applicationVariants.all { variant -> variant.outputs.each { output -> if (output.outputFile != null && output.outputFile.name.endsWith('.apk')) { File outputDirectory = new File(outputFile.parent); def fileName if (variant.buildType.name == "release") { fileName = "appName_v${defaultConfig.versionName}_${packageTime()}_${variant.productFlavors[0].name}.apk" } else { fileName = "appName_v${defaultConfig.versionName}_${packageTime()}_beta.apk"}output.outputFile = new File(outputDirectory, fileName) } } } } }
然后點擊 Sync Now
然后報錯了是吧?恩,packageTime()這個方法都還沒給你,放在頂部即可def packageTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC")) }
3.Sync Now然后按照下面步驟打包吧Build->Clean Project Build->Rebuild Project Build->Generate Singned APK... ->next配置你的簽名配置->next 解釋在下圖 ->finish
generater singned apk.png
完了就會在文件夾看到你需要的包了

apk.png
-
自定義配置文件
1.多個自動升級sdk的時候
比如想把包放入360和百度的時候,呵呵,大家都懂的,360是最近才開始必須接入他的升級sdk才能上架的。這里就不吐槽了,公司要求要去上架這些應用商城。
打一次包就能搞定這些接入問題,因為我一開始接入的是友盟自動升級,需求的增加就越來越多,ok開始配置:
先來做個假設:假設上面的abc包是360升級的,wandoujia是友盟升級的,baiduyun是百度升級的
定義一個名字為AUTO_TYPE的String類型常量 默認值為umeng放在defaultConfig里面defaultConfig { buildConfigField "String", "AUTO_TYPE", "umeng" }
2.然后配置渠道包
productFlavors { abc { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "abc"] buildConfigField "String", "AUTO_TYPE", "360" } wandoujia { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"] buildConfigField "String", "AUTO_TYPE", "umeng" } baiduyun { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baiduyun"] buildConfigField "String", "AUTO_TYPE", "baiduyun" } }
next
Build->Clean Project Build->Rebuild Project
3.看看是否生成了這個文件
BuildConfig.png</div>
</li> </ul>
文件夾名是根據你productFlavors下面最后一個渠道名生成的
Auto_Type.png</div>
生成了我們想要的文件,就可以運用了if (ConstantField.AUTO_TYPE_BAIDU.equals(BuildConfig.AUTO_TYPE)){ BDAutoUpdateSDK.silenceUpdateAction(this);//百度靜默更新 L.e(TAG,"baidu更新"); }else if(ConstantField.AUTO_TYPE_360.equals(BuildConfig.AUTO_TYPE)){ UpdateManager.checkUpdate(this); L.e(TAG,"360更新"); }else{ UmengUpdateAgent.update(this); L.e(TAG,"umeng更新"); }
添加是否打印log這個就無需再說了吧,方法類似,把string改成boolean即可
放兩個所學習到的文章
轉載注明來源即可
美團Android自動化之旅—適配渠道包
美團Android自動化之旅—生成渠道包本文由用戶 云漫100 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!相關資訊