android多渠道打包&&幾個打包小技巧
android多渠道打包
多渠道的意義
- 更詳細的統計app被下載的途徑
- 檢視app在每個渠道的表現
- 有利於app的推廣
使用友盟實現多渠道打包
多渠道打包的原理
- 為每個渠道的apk指定一個唯一的識別符號
- android中通常在Manifest.xml中為其指定
- 也可以在程式碼中指定,但一般不用
使用友盟步驟
- 上友盟官網註冊並建立新應用,獲得Appkey
- 下載SDK並整合,推薦使用studio整合
- Manifest.xml中配置渠道號和Appkey
- 在moudle的build.gradle中編寫多渠道指令碼
1.整合友盟SDK
在build.gradle中新增依賴:
dependencies {
compile 'com.umeng.analytics:analytics:latest.integration'
}
2.Manifest.xml中配置渠道號和Appkey,以及相關許可權
<manifest……>
<uses-sdk android:minSdkVersion="4"></uses-sdk>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application ……>
……
<activity ……/>
<!--友盟AppKey-->
<meta-data
android:name ="UMENG_APPKEY"
android:value="YOUR_APP_KEY" />
<!--渠道號-->
<!--此處使用佔位符,然後在build.gradle中動態的替換它-->
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
</application>
</manifest>
3.在moudle的build.gradle中編寫多渠道指令碼
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.shaw.testapp"
minSdkVersion 9
targetSdkVersion 23
versionCode 100
versionName "1.0.0"
multiDexEnabled true//突破應用方法數65535的限制
manifestPlaceholders = [UMENG_CHANNEL_VALUE:"umeng"]//設定預設的渠道名
}
//新增我們的簽名檔案配置
signingConfigs{
//為我們的release包添加簽名檔案配置
myConfigs {
storeFile file("key.jks")//
storePassword "shaw666"
keyAlias "shaw"
keyPassword "shaw666"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//新增我們的簽名檔案配置
signingConfig signingConfigs.myConfigs
}
}
//多渠道的支援
productFlavors{
xiaomi{}
wandoujia{}
}
//遍歷渠道,將每個渠道的name替換到UMENG_CHANNEL_VALUE中
productFlavors.all{
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.2.1'
//新增友盟統計庫依賴
compile 'com.umeng.analytics:analytics:latest.integration'
}
4.使用命令列打包
在Terminal中使用命令gradlew assembleRelease自動打出所有的渠道包
gradlew assembleDebug //所有平臺的debug包
gradlew assemblewandoujiaRelease //只打wandoujia的Release包
關於打包的其他技巧
1.修改release包的輸出檔名
buildTypes {
release {
……
applicationVariants.all{ variant ->
variant.outputs.each{ output ->
def outFile = output.outputFile
if (outFile != null && outFile.name.endsWith(".apk")){
def fileName = defaultConfig.applicationId + '_v'
+ defaultConfig.versionName + '_'
+ variant.productFlavors[0].name + '.apk'
output.outputFile = new File(outFile.parent, fileName);
}
}
}
}
}
效果如下:
2.在每個渠道中的資源的變動
//多渠道的支援
productFlavors{
xiaomi{
resValue "string", "app_name", "xiaomi_app"
}
wandoujia{
resValue "string", "app_name", "wandoujia_app"
}
}
先定義,再在程式碼使用,最後在打包時,將之前定義的value替換掉。(需要將之前定義的value刪除,否則會報錯)
3.在同一裝置上同時安裝多個不同功能點的app
//多渠道的支援
productFlavors{
okhttp{
//給defaultConfig.applicationId新增字尾(不會影響程式中獲取的包名)
applicationIdSuffix"okhttp"
resValue "string", "app_name", "okhttp_app"
}
jpush{
applicationIdSuffix"jpush"
resValue "string", "app_name", "jpush_app"
}
}
效果如下:
相關推薦
android多渠道打包&&幾個打包小技巧
android多渠道打包 多渠道的意義 更詳細的統計app被下載的途徑 檢視app在每個渠道的表現 有利於app的推廣 使用友盟實現多渠道打包 多渠道打包的原理 為每個渠道的apk指定一個唯一的識別符號 android中通
學會這幾個Excel小技巧,加班從此對你說拜拜~
com 喜歡 外部 課程表 辦公 收集 部分 插入 外部鏈接 Excel是一個很實用的辦公軟件,為了使大家不用通宵加班整理數據,小編特意去為大家收集了一些Excel小技巧,掌握這些技巧大家就能快速制作出數據報表,從此再也不用加班! NO.1【導入外部數據】 在制作Excel
分享幾個Python小技巧函式裡的4個小花招
前面講了很多內容都是關於python的變數,資料結構,下面我們來談一談python的函式。python裡的函式知識點大概分為基礎的定義使用,作用域和引數傳遞,高階用法,其中引數傳遞最為靈活,作用域最為繞人. 函式其實是對程式邏輯進行結構化或者過程化的一種程式設計方法,把整塊的程式碼巧妙的隔離成易於管理的小塊
分享幾個Python小技巧函式裡的4個小花招!
前面講了很多內容都是關於python的變數,資料結構,下面我們來談一談python的函式。python裡的函式知識點大概分為 基礎的定義使用 , 作用域 和 引數傳遞 , 高階用法 ,其中引數傳遞
PLSQL Developer的幾個實用小技巧
PLSQL Developer的幾個實用小技巧 plsql作為開發oracle的視覺化工具,使我們更加方便快捷的操作資料庫。作為初入職場的菜鳥,看到公司的大神非常6的操作plsql,也很羨慕。網上能查到的plsql的技巧很多,對於我這樣的初學者來說大部分用不到,故此只整理了兩個簡單的
這幾個程式設計小技巧,讓你程式碼效率提高一個檔次
轉載自程式人生公眾號 2018/9/3 for迴圈 1.for迴圈變數初始化 在c語言中,我們常常這樣使用for語句: for (int i = 0; i < strlen(s); i++) 這看起來似乎很完美,程式碼也很漂亮,讓我們再看看另一種寫法: fo
PL/SQL Developer幾個使用小技巧
1、選中sql語句的當前行 滑鼠連續點選所在行3次。 2、記住登陸密碼 工具 -> 首選項 -> Oracle -> 登入歷史,勾選“帶口令儲存”。 3、檢視Oracle的tnsnames.ora內容 幫助 -> 支援資訊 -> TNS名
日常工作中的幾個excel小技巧
大家好!我是xyz,又和大家見面了!今天分享幾個日常工作中經常使用的小技巧,希望對大家能有所幫助
(精)DEVC++的幾個實用小技巧
依賴 DEV C++ 5.11 最新版 下載安裝DEV C++後,使用DEV C++開啟一個隨便的cpp檔案,你看到的應該是這樣的介面。(為了節約讀者的流量,圖片進行了有失真壓縮,但是字看得清楚) 重點是確認工具欄有AStyle選項。 相信編譯執行什麼的同學們肯定都
幾個UI小技巧,提高效率
減少程式碼量就是減少bug量,這也是程式開發中的真理之一。 這句話引起了我的共鳴,必須留著. 一些IB小技巧 同時新增多個outlet 在IB中,選中一個view並右鍵點選,將會出現灰色的HUD,可以在其上方便地拖拉或設定事件和outlet。你可以同時開啟多個這
網站優化的3個seo小技巧
分享 將他 jpg 指數 參考 關鍵詞 學習 搜索 自己 網站運營的基礎就是優化,對於很多人來講,想要把網站做好,提升排名,無疑是一件比較苦惱的事。但是做網站優化,實際上也並沒有想的那麽復雜,有時候我們可以運用一些優化技巧,就可以把網站優化做好。 做好網站優化,提
Java的幾個有用小Util函數(日期處理和http)
content lex .get get sta mmd 第幾天 service ret /** * 依據日期返回當前日期是一年的第幾天 * @param date * @return */ public stat
前端程序員應該知道的 15 個 jQuery 小技巧
php addclass target javascrip pro 前綴 屬性 用戶 cati 下面這些簡單的小技巧能夠幫助你玩轉jQuery。 返回頂部按鈕 預加載圖像 檢查圖像是否加載 自動修復破壞的圖像 懸停切換類 禁用輸入字段 停止加載鏈接 切換淡入/幻燈片 簡單
程序員都會的 35 個 jQuery 小技巧
console 相同 用戶 hide 到你 http 使用 his mouse 原文:http://www.open-open.com/code/view/1446774303092 1. 禁止右鍵點擊 $(document).ready(function(){
移動端的幾個面試小問題
怎麽辦 網絡相關 檢測 時間 什麽 mat move 出了 小問題 1. 安卓下大面積觸摸會導致觸發touchmove的問題 判斷一下touchstart的上一次位置和當前位置是否一樣,一樣就使move return掉 <body> <div cl
java的幾個入門小程序
col 成員變量 比較 oid pan 聲明 經典 名稱 沒有 1.先是最最經典的hello world! public class Hello { public static void main(String args[]) { System
幾個Python小案例,愛上Python編程!
ESS 內容 案例 sta 想象 win32 c99 編程語言 api Python是一種面向對象的解釋型編程語言,源代碼與解釋器CPython遵守GPL協議,Python語法簡潔清晰。 語法簡潔清晰,那麽我們用少量的Python代碼能做哪些有趣的東西?溫馨提示:文末必看。
能夠讓你裝逼的10個Python小技巧
pre 經驗 避免 優化 enum 抽象 淺拷貝 ima 在一起 列表推導式 你有一個list: bag = [1, 2, 3, 4, 5] 現在你想讓所有元素翻倍,讓它看起來是這個樣子: [2, 4, 6, 8, 10] 大多初學者,根據之前語言的經驗會大概
最實用的10個重構小技巧排行榜,您都用過哪些呢?
LZ最近一直在研究虛擬機器原始碼,可惜目前還只是稍微有一點點頭緒,無法與各位分享,龐大的JAVA虛擬機器原始碼果然不是一朝一夕能搞定的,LZ汗顏。 本次我們拋開JAVA虛擬機器原始碼這些相對底層的東西,LZ來與各位
Excel表格中的"="功能強大,這幾個不為人知的技巧你會嗎?
你知道“=”在Excel表格中的技巧嗎?今天就給大家分享一下在單元格中輸入等於號之後,會有哪些神奇的技巧,一起來看看吧! 快速對比資料差異 在單元格中輸入"=A2=B2",下拉填充,顯示"TRUE"表示資料一致,"FALSE"表示資料不一致。 具體操作如下: 快速將一列資料轉為多列 在單元格中輸入"