Apk轉(zhuǎn)Aab(Android App Bundle)

根據(jù)Google Play的政策要求怕午,自 2021 年 8 月起,Google Play 將開始要求新應(yīng)用使用 Android App Bundle(以下簡稱aab) 進(jìn)行發(fā)布沦零。該格式將取代 APK 作為標(biāo)準(zhǔn)發(fā)布格式

正常情況下直接用AS的打包生成aab就可以滿足需求,上傳到Google play了辐赞。

但是會(huì)有這么一個(gè)問題钾埂,并不是所有時(shí)候你都可以拿到一個(gè)游戲工程或者源碼的,如果給你的是一個(gè)apk包断楷,那你怎么辦呢锨匆?

接下來,就向大家介紹如何從apk一步步轉(zhuǎn)化成aab冬筒。

需要工具

apk生成aab

解壓apk

通過apktool去解壓apk包

java -jar apktool_2.5.0.jar d test.apk -s -o decode_apk_dir

解壓apk后 decode_apk_dir 目錄結(jié)構(gòu):


decode_apk_dir.png

編譯資源

編譯資源使用aapt2編譯生成 *.flat文件集合

aapt2 compile --dir decode_apk_dir\res -o compiled_resources.zip

生成compiled_resources.zip文件

關(guān)聯(lián)資源

生成base.apk

aapt2 link --proto-format -o base.apk -I android_30.jar 
--min-sdk-version 19 
--target-sdk-version 29 
--version-code 1 
--version-name 1.0 
--manifest decode_apk_dir\AndroidManifest.xml 
-R compiled_resources.zip 
--auto-add-overlay

解壓base.apk

解壓到base文件夾匀奏,目錄結(jié)構(gòu):


base-apk-unzip.png

拷貝資源

創(chuàng)建base文件夾鞭衩,以base文件夾為根目錄

將解壓得到的resources.pb拷貝到 ./temp/base/resources.pb

將解壓得到的res拷貝到 ./temp/base/res

創(chuàng)建manifest文件夾, 將解壓得到的AndroidManifest.xml拷貝到 ./temp/base/manifest

拷貝assets , 將 ./temp/decode_apk_dir/assets 拷貝到 ./temp/base/assets

拷貝lib娃善, 將 ./temp/decode_apk_dir/lib 拷貝到 ./temp/base/lib

創(chuàng)建root文件夾论衍,拷貝unknown, 將 ./temp/decode_apk_dir/unknown 拷貝到 ./temp/base/root/unknown

拷貝kotlin聚磺, 將 ./temp/decode_apk_dir/kotlin拷貝到 ./temp/base/root/kotlin

root目錄下創(chuàng)建META-INF文件夾坯台,得到 ./temp/base/root/META-INF

創(chuàng)建dex 文件夾,將 ./temp/decode_apk_dir/*.dex拷貝到 ./temp/base/dex(多個(gè)dex都要一起拷貝過來)

base/resources.pb                    ============> base/resources.pb
base/res                             ============> base/res
base/AndroidManifest.xml             ============> base/manifest/AndroidManifest.xml
decode_apk_dir/assets                ============> base/assets
decode_apk_dir/lib                   ============> base/lib
decode_apk_dir/unknown               ============> base/root
decode_apk_dir/kotlin                ============> base/root/kotlin
創(chuàng)建META-INF                          ============> base/root/META-INF
decode_apk_dir/.dex                  ============> base/dex/.dex

最終的目錄結(jié)構(gòu)

base/
├── assets
├── dex
├── lib
├── manifest
├── res
├── resources.pb
└── root

壓縮資源

將base文件夾瘫寝,壓縮成base.zip 一定要zip格式

注意:壓縮后雙擊打開顯示的是所有資源蜒蕾,而不是顯示base稠炬,點(diǎn)擊base再顯示所有資源;否則會(huì)報(bào)AndroidManifest.xml找不到的錯(cuò)

編譯aab

打包app bundle需要使用bundletool

java -jar bundletool-all-1.6.1.jar build-bundle --modules=base.zip --output=base.aab 

aab簽名

jarsigner -digestalg SHA1 -sigalg SHA1withRSA 
-keystore <簽名文件路徑>
-storepass <簽名文件密碼>
-keypass <簽名文件密碼>
base.aab 
<簽名文件別名>

注意:您不能使用 apksigner 為 aab 簽名咪啡。簽名aab的時(shí)候不需要使用v2簽名首启,使用JDK的普通簽名就行。

測試與安裝

限于篇幅撤摸,Aab的測試與安裝放在下一篇文章
詳見Aab(Android App Bundle)測試與安裝

結(jié)束語

過程中有問題或者需要交流的同學(xué)毅桃、獨(dú)立開發(fā)者同學(xué)、都可以私信我拉群(加好友的備注下准夷,因?yàn)锳pk轉(zhuǎn)Aab和獨(dú)立開發(fā)俱樂部钥飞,是分開的兩個(gè)群)

關(guān)于腳本

鑒于很多同學(xué)想要Apk轉(zhuǎn)Aab腳本,決定免費(fèi)分享衫嵌。
各位大佬可以在評(píng)論區(qū)留下你們的Github賬號(hào)读宙,我會(huì)給你們開放Collaborators權(quán)限,腳本可以一行命令直接轉(zhuǎn)換楔绞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末结闸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子墓律,更是在濱河造成了極大的恐慌膀估,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耻讽,死亡現(xiàn)場離奇詭異察纯,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)针肥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門饼记,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人慰枕,你說我怎么就攤上這事具则。” “怎么了具帮?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵博肋,是天一觀的道長。 經(jīng)常有香客問我蜂厅,道長匪凡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任掘猿,我火速辦了婚禮病游,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘稠通。我一直安慰自己衬衬,他們只是感情好买猖,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著滋尉,像睡著了一般玉控。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上兼砖,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天奸远,我揣著相機(jī)與錄音,去河邊找鬼讽挟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛丸冕,可吹牛的內(nèi)容都是我干的耽梅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼胖烛,長吁一口氣:“原來是場噩夢啊……” “哼眼姐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起佩番,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤众旗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后趟畏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贡歧,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年赋秀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了利朵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡猎莲,死狀恐怖绍弟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情著洼,我是刑警寧澤樟遣,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站身笤,受9級(jí)特大地震影響豹悬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜展鸡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一屿衅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧莹弊,春花似錦涤久、人聲如沸涡尘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽考抄。三九已至,卻和暖如春蔗彤,著一層夾襖步出監(jiān)牢的瞬間川梅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工然遏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贫途,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓待侵,卻偏偏與公主長得像丢早,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子秧倾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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