美團(tuán)walle打包教程

美團(tuán)walle打包教程

我們在android開發(fā)的時候經(jīng)常會遇到多渠道打包薛匪,傳統(tǒng)是使用productFlavors來進(jìn)行多渠道打包,但是這個隨著公司的需求越來越多古沥,安裝包越來越大岩齿。開始12個渠道包的速度還可以盹沈,可是安轉(zhuǎn)包過大的時候襟诸,通常渠道包要打半個小時左右,這是十分不能容忍的菇用。而且你的as說不好就會隨便的抽風(fēng)陷揪。又要從頭開始悍缠,于是就推薦了walle來打包。

1.walle介紹

Walle:美團(tuán)介紹滤港;https://tech.meituan.com/mt-apk-packaging.html

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

以下是個人使用步驟:如果有遺漏溅漾,或者你在使用的過程中有任何問題歡迎在簡書留言添履。

2. 個人推薦先配置gradle環(huán)境暮胧,配置成功后查看


顯示這個表示配置正確

3. jdk環(huán)境往衷,要安裝1.8以上的版本


4. 使用步驟

(1)在你的build.gradle中添加插件依賴

classpath 'com.meituan.android.walle:plugin:1.1.6'


(2)在你的項目build.gradle中添加

implementation 'com.meituan.android.walle:library:1.1.6'

由于本人項目使用的是

classpath 'com.android.tools.build:gradle:3.1.2'

官方的compile 'com.meituan.android.walle:library:1.1.6'中compile 不再使用炼绘,你可以查看as官方的文檔

apply plugin: 'walle'

(3)在你項目中build.gradle中添加(注意這個是在android外面)

附代碼

walle {????apkOutputFolder = new File("${project.buildDir}/outputs/channels")????apkFileNameFormat = '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}-${flavorName}.apk'????//configFile與channelFile兩者必須存在一個,否則無法生成渠道包疟呐。兩者都存在時優(yōu)先執(zhí)行configFile????channelFile = new File("${project.getProjectDir()}/channel")????//configFile = new File("${project.getProjectDir()}/config.json")}// 根據(jù)不同的applicationId來配置不同的channelFile/configFileafterEvaluate {????project.android.applicationVariants.all { BaseVariant variant ->????????variant.assemble.doFirst {????????????if (variant.applicationId.endsWith(".debug")) {????????????????project.walle.channelFile = new File("${project.getProjectDir()}/channel_debug")????????????}????????}????}}


(4)在你項目中的build.gradle中android


附代碼

?signingConfigs {????????sankuai {????????????storeFile file("簽名路徑")????????????storePassword '密碼'????????????keyPassword '密碼'????????????keyAlias ''????????}????}????buildTypes {????????release {????????????buildConfigField("boolean", "PUBLIC", "false")????????????zipAlignEnabled true????????????minifyEnabled false// ???????????shrinkResources true//去掉不用資源????????????proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'????????????signingConfig signingConfigs.sankuai????????}????????debug {????????????minifyEnabled false????????????proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'????????????buildConfigField("boolean", "PUBLIC", "false")????????????signingConfig signingConfigs.sankuai????????????applicationIdSuffix 'debug'????????}???????????}

(5)在你的項目文件下新建文件


文件內(nèi)容:渠道包名稱測試隨便寫


(6)注意如果你的項目中有用c的代碼,請?zhí)砑樱ㄔ谀沩椖恐械腷uild.gradle中android下添加)


附代碼

task ndkBuild(type: Exec) {????commandLine 'cmd', "C:/D/sdk/ndk-bundle", '-C', file('src/main/jni').absolutePath}tasks.withType(JavaCompile) {????compileTask -> compileTask.dependsOn ndkBuild}

查看ndk路徑



Ndk路徑

5. 開始打包


附命令

(a)replease包:gradlew clean assembReleaseChannels

(b)Debug包 gradlew clean assembDebugChannels

成功如圖所示


安裝包25兆,打包用時2分鐘

6驗證渠道包正確

在你的application中添加代碼


定義String channel;

附代碼

/**?* 得到渠道標(biāo)識?*/private void readChanel() {????channel= WalleChannelReader.getChannel(this.getApplicationContext());????if(!TextUtils.isEmpty(channel)){????????Log.e("xxxxxxxxxxxxxxxxxxxxx",channel);????}}

就這樣多渠道打包完成了

7總結(jié):

由于公司項目以前是classpath 'com.android.tools.build:gradle:2.2.3'


升級跟換了很多撞芍,遇到了很多坑序无。以前混淆的無法使用衡创,加上會報錯,所以現(xiàn)在去掉了混淆哟玷,如果哪位大神遇到了混淆報錯一也,并且解決了,請留言謝謝了讼渊。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末爪幻,一起剝皮案震驚了整個濱河市须误,隨后出現(xiàn)的幾起案子京痢,更是在濱河造成了極大的恐慌,老刑警劉巖臭家,帶你破解...
    沈念sama閱讀 221,331評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钉赁,死亡現(xiàn)場離奇詭異携茂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)吩谦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評論 3 398
  • 文/潘曉璐 我一進(jìn)店門膝藕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人懒棉,你說我怎么就攤上這事策严。” “怎么了妻导?”我有些...
    開封第一講書人閱讀 167,755評論 0 360
  • 文/不壞的土叔 我叫張陵倔韭,是天一觀的道長寿酌。 經(jīng)常有香客問我醇疼,道長,這世上最難降的妖魔是什么秧荆? 我笑而不...
    開封第一講書人閱讀 59,528評論 1 296
  • 正文 為了忘掉前任乙濒,我火速辦了婚禮卵蛉,結(jié)果婚禮上毙玻,老公的妹妹穿的比我還像新娘廊散。我一直安慰自己,他們只是感情好运准,可當(dāng)我...
    茶點故事閱讀 68,526評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著该互,像睡著了一般韭畸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上随橘,一...
    開封第一講書人閱讀 52,166評論 1 308
  • 那天机蔗,我揣著相機(jī)與錄音萝嘁,去河邊找鬼扬卷。 笑死怪得,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的汇恤。 我是一名探鬼主播因谎,決...
    沈念sama閱讀 40,768評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼风皿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了桐款?” 一聲冷哼從身側(cè)響起魔眨,我...
    開封第一講書人閱讀 39,664評論 0 276
  • 序言:老撾萬榮一對情侶失蹤侄刽,失蹤者是張志新(化名)和其女友劉穎朋凉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體墓毒,經(jīng)...
    沈念sama閱讀 46,205評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡亲怠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,290評論 3 340
  • 正文 我和宋清朗相戀三年醉箕,在試婚紗的時候發(fā)現(xiàn)自己被綠了徙垫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讥裤。...
    茶點故事閱讀 40,435評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖姻报,靈堂內(nèi)的尸體忽然破棺而出己英,到底是詐尸還是另有隱情,我是刑警寧澤吴旋,帶...
    沈念sama閱讀 36,126評論 5 349
  • 正文 年R本政府宣布损肛,位于F島的核電站,受9級特大地震影響荣瑟,放射性物質(zhì)發(fā)生泄漏治拿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,804評論 3 333
  • 文/蒙蒙 一笆焰、第九天 我趴在偏房一處隱蔽的房頂上張望劫谅。 院中可真熱鬧,春花似錦嚷掠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挎峦。三九已至,卻和暖如春晴楔,著一層夾襖步出監(jiān)牢的瞬間税弃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留款青,地道東北人。 一個月前我還...
    沈念sama閱讀 48,818評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像签杈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鹦付,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,442評論 2 359

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,267評論 25 707
  • 最近在項目中遇到需要實現(xiàn) Apk 多渠道泽铛、定制化打包, Google 弛随、百度查找了一些資料舀透,成功實現(xiàn)了上述功能,在...
    看一季殘花落幕閱讀 2,500評論 1 8
  • 這一章主要針對項目中可以用到的一些實用功能來介紹Android Gradle,比如如何隱藏我們的證書文件强衡,降低風(fēng)險...
    acc8226閱讀 7,644評論 3 25
  • 今天所有的教師都來我們學(xué)校聽體育課缩搅。這是我們在別的小學(xué)的老師給我們班上課硼瓣。聽說老師給我們帶來了禮物我們很興奮首先老...
    惠政豪閱讀 291評論 0 0
  • 日記一則,記于2014.12.11晚 今天是我的生日葵擎,祝我生日快樂签餐!好慘啊,孤零零地在杭州過冠摄,沒有一個人知道耗拓,沒有...
    浩二R閱讀 648評論 4 16