参考文档:https://developer.android.google.cn/studio/build/building-cmdline#bundletool-build
工具:bundletool.jar apktool.jar android.jar aapt
-
下载地址:bunletool:https://github.com/google/bundletool/releases apktool: https://bitbucket.org/iBotPeaches/apktool/downloads/ aapt2:https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/4.2.2- 7147631/aapt2-4.2.2-7147631-windows.jar (自己根据需求去换版本和平台)
工作流程
解包
apktool d xxx.apk -s -o dic
-
通过apktool工具对apk进行解包操作 可以得到如下目录(这是-o的输出 加上-s之后会将smail将会是dex文件)
编译资源
aapt2 compile apk_source/res -o xxx.zip
这一步 如果是在windows上运行 需要输出zip文件 不然链接资源会报错
这个zip文件之中会有很多的flat文件 全是依据res目录下的资源文件生成
链接资源
aapt2 link --proto-format -o output.apk \ -I ./android.jar \ --manifest ./AndroidManifest.xml \ -R compiled_resources/*.flat \ --auto-add-overlay
官网文档:https://developer.android.google.cn/tools/aapt2?hl=fi
这一步会生成一个.apk文件 但是不能直接使用 里面包含了一个AndroidManifest resource.pb res
复制文件进入apk
.
├── assets
│ ├── ad_loder.json
│ ├── anim_rate_star.json
│ ├── anim_res
│ ├── anim_star_1to4.json
│ ├── animation_loader_1.json
│ ├── animation_new.json
│ ├── arrow.json
│ ├── config.json
│ ├── fonts
│ └── load_spinner.json
├── dex
│ ├── classes.dex
│ └── classes2.dex
├── lib
│ ├── arm64-v8a
│ └── armeabi-v7a
├── manifest
│ └── AndroidManifest.xml
├── res
│ ├── anim
│ ├── anim-v21
│ ├── animator
│ ├── animator-v21
│ ├── color
│ ├── color-v21
│ ├── color-v23
│ ├── drawable
│ ├── drawable-anydpi-v21
│ ├── drawable-ldrtl-mdpi-v4
│ ├── drawable-ldrtl-xxhdpi-v4
│ ├── drawable-mdpi-v4
│ ├── drawable-v21
│ ├── drawable-v23
│ ├── drawable-watch-v20
│ ├── drawable-xhdpi-v4
│ ├── drawable-xxhdpi-v4
│ ├── font
│ ├── interpolator
│ ├── interpolator-v21
│ ├── layout
│ ├── layout-land
│ ├── layout-sw600dp-v13
│ ├── layout-v21
│ ├── layout-v22
│ ├── layout-v26
│ ├── layout-watch-v20
│ ├── menu
│ ├── mipmap-hdpi-v4
│ ├── mipmap-xhdpi-v4
│ ├── mipmap-xxhdpi-v4
│ ├── mipmap-xxxhdpi-v4
│ ├── raw
│ └── xml
├── resources.pb
└── root
├── androidsupportmultidexversion.txt
├── kotlin
├── okhttp3
└── protolite-well-known-types.properties
-
目录结构如上所示 dex assets这些在进行解包操作的时候都可以看到
生成压缩包
zip -r base.zip
记得是进去文件夹 选中全部文件进行压缩
生成aab
java -jar /mnt/d/CodeSource/buildaab/bin/bundletool.jar build-bundle --modules=base.zip --output=wall.aab
aab转apks
bundletool --export-apks --input=app.aab --sign=test.keystore --pwd=123456
安装apks
bundletool install-apks --apks=app.apks
标签:layout,Aab,--,jar,Apk,json,v4,drawable,打包
From: https://blog.csdn.net/L2798537495/article/details/139470340