手动打包Apk文件以及Aab

参考文档: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

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值