Android studio 多環境打包和多渠道打包
1.多環境打包
在android開發中經常遇到要打不同環境的包,所謂不同環境就是介面連線的伺服器域名不同,如開發環境為devIP,測試環境為buildIP,uat環境為uatIP,release環境為releaseIP 。以前的做法是同過一個static變數去配置環境變數,這樣每次打不同環境的包需要多次修改配置並且多次打包,現在使用as後發現一種可以一次性打所有環境的包 方法如下:
<1>首先要學習使用BuildConfig配置類(不知道的查一下)
在gradle 中新增配置BuildConfig配置
buildTypes {
...
dev{
buildConfigField("String" ,"Environment","DEV")
...
}
release{
buildConfigField("String","Environment","release")
...
}
}
這樣就在BuildConfig中新增啦Environment欄位,再在程式碼中根據Environment變數配置環境
<2>打包輸出所有環境的包
只需要在as命令列下使用gradlew build 就ok,也可以使用gradle build命令不過需要配置環境變數,打包可能出錯如需要加
android {
...
lintOptions {
abortOnError false
}
...
}
記得在每個module下的配置都加
<3>自定義打包apk的名字
在gradle檔案中的Android節點下新增如下程式碼
android.applicationVariants.all {
variant -> variant.outputs.each {
output -> output.outputFile = new File(output.outputFile .parent, "packageanme" + defaultConfig.versionCode + "_v" + defaultConfig.versionName +"_"+buildType.name+ ".apk");
}
}
動態獲取版本號:
在gradle檔案中的Android節點外新增如下程式碼
def getVersionNameFromManifest() {
def manifestParser = new com.android.builder.core.DefaultManifestParser()
return manifestParser.getVersionName(android.sourceSets.main.manifest.srcFile)
}
defaultConfig中配置版本號:直接在defaultConfig 中加入versionName 屬性,也可以直接呼叫上面方法(不過這裡有個坑,在改變配置xml中版本號時,會出現找不到對應版本apk,或者apk不更新,所以還是每次改變版本號時,versionName 也跟著改變就ok)
defaultConfig {
……
versionName "2.0.14"
……
}
2.多渠道打包
在使用友盟統計,騰訊雲統計的時候,需要配置渠道,打包不同渠道時每次修改配置檔案很繁瑣,as提供一種方便方法如下
<1>專案的manifest.xml中使用佔位符
<meta-data
android:name="UMENG_CHANNEL"
android:value="${CHANNEL_NAME}" />
<2>在gradle中給佔位符賦值
android {
// 你的其他配置程式碼
productFlavors {
yingyongbao {
manifestPlaceholders = [ CHANNEL_NAME:"YINGYONGBAO"]
}
umeng {
manifestPlaceholders = [ CHANNEL_NAME:"UMENG" ]
}
wandoujia {
manifestPlaceholders = [ CHANNEL_NAME:"WANDOUJIA" ]
}
}
// 你的其他配置程式碼
}
最後打包輸出即可
相關推薦
Android studio 多環境打包和多渠道打包
1.多環境打包 在android開發中經常遇到要打不同環境的包,所謂不同環境就是介面連線的伺服器域名不同,如開發環境為devIP,測試環境為buildIP,uat環境為uatIP,release環境為releaseIP 。以前的做法是同過一個static變
Android Studio多模組的SDK專案打包和混淆
任務遇到的難點 1.SDK專案多模組,編譯後每個模組自己生成了1個jar包。但是需求是隻對外發佈一個jar包,需要進行合併多個jar包。 2.生成的jar包中因為模組引入了百度地圖定位導致jar包內有不需要的asset檔案雜項 3.多模組的混淆問題 解決方案:
Android Studio 多環境打包(測試,開發,生產)
Android Studio 多環境打包 現在一般公司都擁有三套以上的環境,開發環境,測式環境,生產環境,有一些要求比較嚴格的公司還有一個預生產環境.這對公司來說是正常的,但是確苦了我們前端的開發人員,每次一在做上線之前,都要打一個測試包,需要把相關的伺服器路徑,日誌級別都要做一下修
ANDROID STUDIO系列教程六--GRADLE多渠道打包
tor 等待 time() utf 腳本 manifest file resource 一個 由於國內Android市場眾多渠道,為了統計每個渠道的下載及其它數據統計,就需要我們針對每個渠道單獨打包,如果讓你打幾十個市場的包豈不煩死了,不過有了Gradle,這再也不是事了。
Android studio 3.0上進行多渠道打包
1.生成簽名檔案 點選 Build -> Generate Signed APK: 2.建立一個簽名 3.多渠道打包 作用:就是根據不同的渠道值,去具體分析每個渠道的使用者情況 步驟一: 3.1在AndroidManifest.xml的application
Android Studio —— 多服務端介面地址打包技巧
Android開發中必不可少的就是向服務端請求資料,服務端小夥伴就會給你一個URL(http://192.168.1.194:8080)這樣 你就可以愉快的進行開發;但是隨著app的開發然後又多了外網測試地址、正式地址等等…. 所以這篇文章就來說說,如何優雅
android studio多模組專案多渠道實現打包不同域名
①先說說自己專案遇到的情況 1:專案多模組 2:專案配置域名的類不在app模組下如圖: 配置url的類在api模組下。②實現方法 1:根據自身情況,在url配置模組下建立不同環境的資料夾。如:(由於專案保密將包名打了下馬賽克)。
Android studio 多版本apk 打包
只需要在build.gradle中的 android{…….}中配置幾行程式碼即可: //配置多版本的apk productFlavors{ Beta{ applicationId "com.stfa
借騰訊開源 VasDolly,談談 Android 簽名和多渠道打包的原理!
一、前言 Hi,大家好,我是承香墨影! 當我們需要釋出一款 App 到應用市場的時候,一般需要我們針對不同的市場生產不同的渠道包,它們使用的是同一套程式碼,只是會包含一些各自的渠道資訊,用於我們做資料分析。 前幾天,企鵝電競團隊開源了自己的 And
Android 簡介和搭建Android Studio開發環境
Android簡介 Android(['ændrɔid])是一個以Linux為基礎的半開源作業系統,主要用於移動裝置,由Google和開放手持裝置聯盟開發與領導。 Android 系統最初由安迪·魯賓(Andy Rubin)製作,最初主要支援手機。2005年8月17日被Google收購。20
JDK和android Studio的環境變數配置
一、jdk的環境變數配置 我的電腦-屬性-高階系統設定-環境變數 變數名: JAVA_HOME(不區分大小寫) 變數值為: D:\Program Files\Java\jdk1.8.0_144 其中變數值是自己安裝的jdk的根路徑 在Path環境變數裡新增(如
spring boot 多環境配置開發及打包
使用 springboot 和沒有使用springboot的多環境配置是兩個完全不一樣的,前者是配置在application.properties(預設檔案中)或application.yml。 在沒
Android Studio升級到3.0的打包配置
以前在build.gradle檔案中經常有這樣的配置: 1. applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile =
Spring Cloud基於Docker進行打包部署1-環境配置和docker打包執行
1、使用linux虛擬機器離線安裝docker(2)將安裝包拷貝到本地linux虛擬機器中,使用dpkg -i xxx.deb命令安裝。這裡有個問題,docker有一些依賴包,需要一併安裝:下載依賴deb。網址:https://pkgs.org/搜尋:libltdl7搜尋:l
app打包、混淆、加固和多渠道打包
1:打包步驟: 1:桌面建立一個資料夾,名字叫keystore 2:點選build下面的 ,如下: 3:會出現如下介面: 4:下一步: 5:如果有keystore,請點選 choose existing,選擇以前的keystore,
Tinker的整合和多渠道打包
Tinker是什麼 Tinker是微信官方的Android熱補丁解決方案,它支援動態下發程式碼、So庫以及資源,讓應用能夠在不需要重新安裝的情況下實現更新。當然,你也可以使用Tinker來更新你的外掛。 它主要包括以下幾個部分: 1.gradle編譯外掛: tinke
騰訊樂固的加固和多渠道打包客戶端配置
1、概述 近日專案新版本上線,各大市場都正常,但是騰訊的應用寶稽核提示需要用樂固加固,因為之前一直用360加固並進行多渠道打包,但是提示如果不用樂固可能會稽核不通過,不給曝光率啥的,所以單
Android studio 引入 weex 中由.vue打包的.js檔案,ReferenceError: Vue is not defined錯誤
按照weex官網給出的配置,weex_sdk 版本是 0.5.1,就是由於這個版本太低,對vue.js1不支援導致的, 切換到最新sdk版本即可 還有的童鞋可能會遇到 WXSDKEngine.initialize 初始化失敗,有可能因為配置不正確 /** * 注意要在Ma
建立第一個Android Studio專案(介面介紹、打包簽名等)
開發第一應用 可以開發屬於自己的應用,是否有點小激動?好吧!讓我們開始,首先點選Start a new Android Studio Project建立工程: 接下來需要輸入應用名稱(第一個字母要大寫)、公司域以及指定應用存放目錄,點選Next按鈕進入下
Android產品研發(五)-->多渠道打包
國內的Android開發者還是很苦逼的,由於眾所周知的原因,google play無法在國內開啟(翻牆的就不在考慮之內了),所以Android系的應用市場,群雄爭霸。後果就是國記憶體在著有眾多的應用市場,產品在不同的渠道可能有這不同的統計需求,為此Andro