android 多渠道打包

android多渠道打包

1.如何查看apk的簽名信息

1將apk解壓空厌;

2.找到META-INF 下的.RSA文件;

3.進入cmd環(huán)境银酬,進入.RSA文件文件所在路徑嘲更,命令:keytool -printcert -file XXX.RSA即可查看簽名信息。

查看Android開發(fā)的數(shù)字簽名信息:

1.cmd環(huán)境下進入C:\Users\用戶名.android目錄下揩瞪;

2.keytool -list -v -keystore debug.keystore赋朦;

1.png

debug.keystore

2.png

友盟的打包方案(常見) ##:

http://stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/

友盟統(tǒng)計多渠道為例:

1.在AndroidManifest.xml中配置placeholder

android:name="UMENG_CHANNEL"

android:value="${UMENG_CHANNEL_VALUE}" />

2.在build.gradle中設(shè)置productFlavors

android {

productFlavors {

xiaomi {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]

}

_360 {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "_360"]

}

baidu {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]

}

wandoujia {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]

}

}

}

或者批量修改

android {

productFlavors {

xiaomi {}

_360 {}

baidu {}

wandoujia {}

}

productFlavors.all {

flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]

}

}

直接執(zhí)行 gradle assembleRelease 慢慢等待打包完成

完整gradle 腳本

apply plugin: 'com.android.application'

def releaseTime() {

return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))

}

android {

compileSdkVersion 21

buildToolsVersion '21.1.2'

defaultConfig {

applicationId "com.boohee.*"

minSdkVersion 14

targetSdkVersion 21

versionCode 1

versionName "1.0"

// dex突破65535的限制

multiDexEnabled true

// 默認是umeng的渠道

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]

}

lintOptions {

abortOnError false

}

signingConfigs {

debug {

// No debug config

}

release {

storeFile file("../yourapp.keystore")

storePassword "your password"

keyAlias "your alias"

keyPassword "your password"

}

}

buildTypes {

debug {

// 顯示Log

buildConfigField "boolean", "LOG_DEBUG", "true"

versionNameSuffix "-debug"

minifyEnabled false

zipAlignEnabled false

shrinkResources false

signingConfig signingConfigs.debug

}

release {

// 不顯示Log

buildConfigField "boolean", "LOG_DEBUG", "false"

minifyEnabled true

zipAlignEnabled true

// 移除無用的resource文件

shrinkResources true

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

signingConfig signingConfigs.release

applicationVariants.all { variant ->

variant.outputs.each { output ->

def outputFile = output.outputFile

if (outputFile != null && outputFile.name.endsWith('.apk')) {

// 輸出apk名稱為boohee_v1.0_2015-01-15_wandoujia.apk

def fileName = "boohee_v${defaultConfig.versionName}${releaseTime()}${variant.productFlavors[0].name}.apk"

output.outputFile = new File(outputFile.parent, fileName)

}

}

}

}

}

// 友盟多渠道打包

productFlavors {

wandoujia {}

_360 {}

baidu {}

xiaomi {}

tencent {}

taobao {}

...

}

productFlavors.all { flavor ->

flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]

}

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

compile 'com.android.support:support-v4:21.0.3'

compile 'com.jakewharton:butterknife:6.0.0'

...

}

美團快速腳本打包方案:

美團前期打包方案 :

https://tech.meituan.com/mt-apk-packaging.html

原理:是在

MET-INF文件夾中添加個空文件 不需要重新編譯 命名上得以支持 應(yīng)用啟動的時候來讀取名字 區(qū)分渠道

后期由于sdk會就行簽名校驗 APK Signature Scheme v2

https://tech.meituan.com/android-apk-v2-signature-scheme.html

原理:是找個不受保護的 apksingblock這個區(qū)域 添加 id_value操作 寫入渠道信息 然后進行讀取

項目地址:https://github.com/Meituan-Dianping/walle

http://mp.weixin.qq.com/s/YmZ8M4TEd0yfPbNag8R1bw 在美團基礎(chǔ)上 進行封裝 里面包含360加固導(dǎo)致的打包失敗的 解決方法

兩種打包的使用場景 :

對于第一種:友盟打包 主要用于小公司 由于友盟有統(tǒng)計平臺 可以直觀的看到各個渠道的情況 缺點是:每次打包的時候 對于每個渠道都得重新編譯 時間消耗長

對于第二種 :打包時間短 只需要編譯一個包 通過復(fù)制修改內(nèi)部信息 來做到各個渠道的區(qū)別 應(yīng)用每次啟動 來讀取文件信息 請求接口 的時候帶來區(qū)分多渠道 缺點是: 需要后臺自己去做統(tǒng)計 成本較高

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市李破,隨后出現(xiàn)的幾起案子宠哄,更是在濱河造成了極大的恐慌,老刑警劉巖嗤攻,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件毛嫉,死亡現(xiàn)場離奇詭異,居然都是意外死亡妇菱,警方通過查閱死者的電腦和手機承粤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闯团,“玉大人辛臊,你說我怎么就攤上這事》拷唬” “怎么了彻舰?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長淹遵。 經(jīng)常有香客問我负溪,道長,這世上最難降的妖魔是什么辐真? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任侍咱,我火速辦了婚禮楔脯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昧廷。我一直安慰自己,他們只是感情好木柬,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布恶复。 她就那樣靜靜地躺著,像睡著了一般谤牡。 火紅的嫁衣襯著肌膚如雪梗摇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音糜烹,去河邊找鬼漱凝。 笑死,一個胖子當(dāng)著我的面吹牛愕乎,可吹牛的內(nèi)容都是我干的壁公。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼比肄,長吁一口氣:“原來是場噩夢啊……” “哼芳绩!你這毒婦竟也來了撞反?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤嘹害,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后吼拥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡惑折,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年枯跑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粗卜。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡续扔,死狀恐怖焕数,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情识脆,我是刑警寧澤善已,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布悉稠,位于F島的核電站啥寇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏辑甜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一猫牡、第九天 我趴在偏房一處隱蔽的房頂上張望邓线。 院中可真熱鬧煌恢,春花似錦瑰抵、人聲如沸器联。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渣磷。三九已至,卻和暖如春醋界,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背袜硫。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留官研,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像楼吃,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子酷宵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 按照渠道識別型分類: META-INF渠道識別型:網(wǎng)頁版浇垦、Python版荣挨、BAT腳本、Jar版此虑、Manifest渠...
    比薩u閱讀 1,985評論 9 18
  • 目錄一、Python打包及優(yōu)化(美團多渠道打包)二介杆、Gradle打包三况既、其他打包方案:修改Zip文件的commen...
    守望君閱讀 5,675評論 4 17
  • 一悲靴、什么是多渠道 我理解的是:APP發(fā)布到不同的應(yīng)用平臺莫其,監(jiān)測用戶是從哪個平臺安裝的。 二乱陡、為什么要多渠道打包 1...
    LucasAdam閱讀 905評論 0 1
  • ###多渠道打包概念 >* 發(fā)布到不同渠道上的apk,標記不同的渠道,目的是為了統(tǒng)計該渠道的下載量,留存率等等數(shù)據(jù)...
    未聞椛洺閱讀 600評論 0 0
  • 友盟就提供了多渠道打包的方式胳徽,可用于渠道統(tǒng)計等∷現(xiàn)在Android的構(gòu)建工具換成了gradle,通過gradle往核,...
    _柒安閱讀 730評論 0 8