Android Studio一步步教你集成發布適配

云漫100 9年前發布 | 28K 次閱讀 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