什么是 AAPT(Android 资产打包工具),它是如何工作的?
Posted
技术标签:
【中文标题】什么是 AAPT(Android 资产打包工具),它是如何工作的?【英文标题】:What is AAPT (Android Asset Packaging Tool) and how does it work? 【发布时间】:2015-03-29 20:33:50 【问题描述】:AAPT(android 资产打包工具)是什么意思?它是如何工作的?
我可以将一个应用程序的.so
文件发送到另一个使用 AAPT 的应用程序的 APK 文件中吗?
【问题讨论】:
您的应用程序是用 NDK 构建的吗? aapt和ndk没有关系,虽然是用cpp写的@IgorGanapolsky @xetrasu 阅读问题,它提到了 .so 文件。 【参考方案1】:AAPT 允许您查看、创建和更新与 ZIP 兼容的档案(ZIP、JAR 和 APK)。它还可以将资源编译成二进制资产。它是 Android 应用程序的基础构建器。
当然,您可以从应用程序中发送 .so 文件,但如果您想使用它,则需要逆向工程插件,由于复杂性,不太推荐使用这些插件。我不认识任何人使用 Android,但有一堆环境插件。
你也可以在发帖前研究一下,
AAPT usages
Reverse engineering for Android
【讨论】:
嗨 MarcS,如何在 Windows 中执行 aapt 命令:我正在尝试关注但收到错误 D:\Android Software\Qt for android\adt-bundle-windows-x86_64-20140702\adt-bundle -windows-x86_64-20140702\sdk\build-tools\android-4.4W>aapt list D:\New folder\FirstActivity.apk 我错过了什么??? 不知道可以,试试***.com/questions/19433970/… 明白了,谢谢我正在学习android,这个答案对我有很大帮助【参考方案2】:它是 Android SDK 的默认工具,用于将所有类和资源打包到一个 APK 文件中。
【讨论】:
aapt 工具在哪里?我在 $ANDROID_HOME 目录中找不到它。 它位于每个构建工具下,例如Androidsdk\build-tools\23.0.2
【参考方案3】:
aapt
是关于 Android 资源 如.xml
等
AAPT 代表 Android 资产打包工具。 Android 资产打包工具 (aapt) 获取您的应用程序资源文件,例如 AndroidManifest.xml 文件和活动的 XML 文件,并编译它们。这是一个很好的工具,可帮助您查看、创建和更新 APK (以及 zip 和 jar 文件)。它还可以将资源编译成二进制资产。它是 Android 应用程序的基础构建器。该工具是 SDK(和组装框架)的一部分,允许您查看、制作和重新设计 Zip-perfect 编年史(zip、jolt、apk)
你可以找到它
..\android-sdk\build-tools\<buildToolsVersion>
aapt package
, aapt add
- 构建 Android 应用程序包 (APK)
aapt dump
- 通过以下方式从 APK 文件中转储信息:
读取版本代码
aapt dump badging <name>.apk
检查您的权限
aapt dump permissions <name>.apk
还有aapt
负责ProGuard进程中的资源[About]
阅读更多here、here、here
【讨论】:
【参考方案4】:当您的应用程序被编译时,AAPT 会生成 R 类,其中包含 res/
目录中所有资源的资源 ID。对于每种类型的资源,都有一个 R 子类(例如,所有可绘制资源的 R.drawable),对于该类型的每种资源,都有一个静态整数(例如,R.drawable.icon)。此整数是可用于检索资源的资源 ID。
来源:https://developer.android.com/guide/topics/resources/accessing-resources.html(复制/粘贴)
【讨论】:
以上是关于什么是 AAPT(Android 资产打包工具),它是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章
AndroidStudio升级3.3.1后打包生成APK报AAPT2的错误解决办法
Android 逆向使用 Python 编写 APK 批处理分析工具
Android 逆向使用 Python 编写 APK 批处理分析工具
Android项目打包遇com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details