pb文件夾復制
A. Apk轉Aab(Android App Bundle)
根據 Google Play的政策 要求,自 2021 年 8 月起,Google Play 將開始要求新應用使用 Android App Bundle(以下簡稱aab) 進行發布。該格式將取代 APK 作為標准發布格式
正常情況下直接用AS的打包生成aab就可以滿足需求,上傳到Google play了。
但是會有這么一個問題,並不是所有時候你都可以拿到一個游戲工程或者源碼的,如果給你的是一個apk包,那你怎麼辦呢?
接下來,就向大家介紹如何從apk一步步轉化成aab。
解壓apk
通過apktool去解壓apk包
解壓apk後 decode_apk_dir 目錄結構:
編譯資源
編譯資源使用aapt2編譯生成 *.flat文件集合
生成compiled_resources.zip文件
關聯資源
生成base.apk
解壓base.apk
解壓到base文件夾,目錄結構:
拷貝資源
創建base文件夾,以base文件夾為根目錄
將解壓得到的resources.pb拷貝到 ./temp/base/resources.pb
將解壓得到的res拷貝到 ./temp/base/res
創建manifest文件夾, 將解壓得到的AndroidManifest.xml拷貝到 ./temp/base/manifest
拷貝assets , 將 ./temp/decode_apk_dir/assets 拷貝到 ./temp/base/assets
拷貝lib, 將 ./temp/decode_apk_dir/lib 拷貝到 ./temp/base/lib
創建root文件夾,拷貝unknown, 將 ./temp/decode_apk_dir/unknown 拷貝到 ./temp/base/root/unknown
拷貝kotlin, 將 ./temp/decode_apk_dir/kotlin拷貝到 ./temp/base/root/kotlin
root目錄下創建META-INF文件夾,得到 ./temp/base/root/META-INF
創建dex 文件夾,將 ./temp/decode_apk_dir/*.dex拷貝到 ./temp/base/dex(多個dex都要一起拷貝過來)
最終的目錄結構
壓縮資源
將改扮base文件夾,壓縮成base.zip 一定要zip格式
注意:壓縮後雙擊打開顯示的是租帶所有資源,而不是顯示base,點擊base再顯示所有弊殲蘆資源;否則會報AndroidManifest.xml找不到的錯
編譯aab
打包app bundle需要使用bundletool
aab簽名
注意 :您不能使用 apksigner 為 aab 簽名。簽名aab的時候不需要使用v2簽名,使用JDK的普通簽名就行。
限於篇幅,Aab的測試與安裝放在下一篇文章
詳見 Aab(Android App Bundle)測試與安裝
過程中有問題或者需要交流的同學、獨立開發者同學、都可以私信我拉群(加好友的備注下,因為Apk轉Aab和獨立開發俱樂部,是分開的兩個群)