Android —— 多渠道打包方式

###多渠道打包概念

>* 發(fā)布到不同渠道上的apk,標(biāo)記不同的渠道,目的是為了統(tǒng)計(jì)該渠道的下載量,留存率等等數(shù)據(jù)

>* 了解下載量

>* 針對(duì)性的打廣告

###渠道統(tǒng)計(jì)的核心

1 為apk打標(biāo)記(渠道的標(biāo)識(shí))

2 運(yùn)行apk的時(shí)候取出標(biāo)記

3 上傳標(biāo)記給服務(wù)器統(tǒng)計(jì)

###友盟渠道統(tǒng)計(jì)的實(shí)現(xiàn)

1. 打標(biāo)記:在清單文件中的meta-data結(jié)點(diǎn)下配置渠道

2. 運(yùn)行apk的時(shí)候,友盟的api,會(huì)取出meta-data的渠道信息

3. 上傳渠道標(biāo)記到友盟自己的服務(wù)器,用戶就可以通過友盟的后臺(tái)查看具體的渠道統(tǒng)計(jì)了

###多渠道打包的方式

0. 一個(gè)一個(gè)分別導(dǎo)出

1. ant:要求比較高,需要懂得如何編寫ant腳本,但是編寫好之后,執(zhí)行一個(gè)命令就可以

2. 友盟的打包工具

3. Gradle 多渠道打包 ,比較新,使用比較簡(jiǎn)單

4. 快速打包

###如何選擇

1. 如果只是修改`渠道名`可以考慮用`umeng打包工具`或者`gradle多渠道打包`,其實(shí)絕大數(shù)公司情況屬于此種情況;

2. 打包過程需要`定制化的配置`,可以考慮用ant或者gradle定制打包,可以參考`http://tech.meituan.com/mt-apk-adaptation.html`,說明的情況.

1.自定義包名

2.自定義簽名

###umeng打包工具

####下載地址

`https://github.com/umeng/umeng-muti-channel-build-tool`

####步驟

看具體視頻

###gradle多渠道打包

####1. 在AndroidManifest.xml中定義占位符

####2. 在module的gradle腳本中替換占位符

productFlavors {

wangdoujia {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wangdoujia"]

}

xiaomi {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]

}

anzhi {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "anzhi"]

}

}

productFlavors {

Wandoujia {}

_360 {}

baidu {}

xiaomi {}

tencent {}

taobao {}

...........

}

productFlavors.all {

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

}

###快速打包(1分鐘打900個(gè)渠道包,不是夢(mèng))

####參考網(wǎng)址:

http://www.open-open.com/lib/view/open1418262988402.html

http://m.blog.csdn.net/blog/u013651247/42426227

####準(zhǔn)備

下載python: https://www.python.org

下載別人寫好的腳本:? https://github.com/GavinCT/AndroidMultiChannelBuildTool

####步驟

1. 安裝Python

2. `..PythonTool\info\channel.txt`,里面去添加自己想要的渠道

3. 放置apk到`MultiChannelBuildTool.py`所在目錄

4. 雙擊`MultiChannelBuildTool.py`執(zhí)行腳本,完成多渠道打包;

5. 拷貝`ChannelUtil.java`到項(xiàng)目中

6. 代碼設(shè)置渠道`AnalyticsConfig.setChannel(ChannelUtil.getChannel(this));`

###新一代Android渠道打包工具:1000個(gè)渠道包只需要5秒

>* 參考:http://www.open-open.com/lib/view/open1453684213136.html(新一代Android渠道打包工具:1000個(gè)渠道包只需要5秒)

####步驟

1.修改項(xiàng)目根目錄的 build.gradle

buildscript {

......

dependencies{

// add packer-ng

classpath 'com.mcxiaoke.gradle:packer-ng:1.0.4'

}

}

2.修改Android模塊的 build.gradle

apply plugin: 'packer'

dependencies {

// add packer-helper

compile 'com.mcxiaoke.gradle:packer-helper:1.0.4'

}

3.Java代碼中獲取當(dāng)前渠道(在應(yīng)用程序啟動(dòng)的時(shí)候),在Application子類中的onCreate()方法中

public class MyApplication extends Application {

@Override

public void onCreate() {//程序的入口方法

....

// 如果沒有使用PackerNg打包添加渠道,默認(rèn)返回的是""

// com.mcxiaoke.packer.helper.PackerNg

final String market = PackerNg.getMarket(this);

// 或者使用 PackerNg.getMarket(Context,defaultValue)

// 之后就可以使用了,比如友盟可以這樣設(shè)置

AnalyticsConfig.setChannel(market);

....

}

}

4.添加打包的簽名,可以通過圖形界面添加

signingConfigs {

//add

releaseConfig {

keyAlias 'itheima'

keyPassword 'itheima'

storeFile file('C:/itheima.jks')

storePassword 'itheima'

}

}

buildTypes {

release {

minifyEnabled false

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

//add

signingConfig? signingConfigs.releaseConfig

}

}

5.創(chuàng)建markets.txt放到根目錄,#號(hào)后面是注釋,可有可無

Google_Play#play store market

Gradle_Test#test

SomeMarket#some market

HelloWorld

6. 通過命令進(jìn)行打包

gradle -Pmarket=markets.txt clean apkRelease

7.效果

![](img/tu3.png)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容