首页 > 解决方案 > apk 是否包含有效负载,或者如果我想通过 apk 文件共享我的应用程序,我是否必须添加它们?

问题描述

如果我希望其他人通过 apk 文件使用它,我想知道是否必须向 apk 文件添加有效负载或其他任何内容?

标签: androidapkpayload

解决方案


APK 文件是通常包含以下文件和目录的存档:

META-INF 目录:

MANIFEST.MF:清单文件

CERT.RSA:应用程序的证书。

CERT.SF:MANIFEST.MF文件中相应行的资源列表和SHA-1摘要;例如:

签名版:1.0

创建者:1.0 (Android)

SHA1-摘要-清单:wxqnEAI0UA5nO5QJ8CGMwjkGGWE=

...

名称:res/layout/exchange_component_back_bottom.xml

SHA1-摘要:eACjMjESj7Zkf0cBFTZ0nqWrt7w=

名称:res/drawable-hdpi/icon.png

SHA1-摘要:DGEqylP8W0n0iV/ZzBx3MW0WGCA=

lib:包含平台相关的编译代码的目录,该目录在其中分为多个目录:

armeabi:仅针对所有基于 ARM 的处理器的编译代码

armeabi-v7a:仅适用于所有基于 ARMv7 及以上处理器的编译代码

arm64-v8a:仅适用于所有基于 ARMv8 arm64 及以上处理器的编译代码[8]

x86:仅适用于 x86 处理器的编译代码

x86_64:仅适用于 x86 64 处理器的编译代码

mips:仅适用于 MIPS 处理器的编译代码

res:包含未编译到 resources.arsc 中的资源的目录(见下文)。

assets:包含应用程序资产的目录,可由 AssetManager 检索。AndroidManifest.xml:附加的 Android 清单文件,描述应用程序的名称、版本、访问权限、引用的库文件。此文件可能是 Android 二进制 XML,可以使用 AXMLPrinter2、apktool 或 Androguard 等工具转换为人类可读的纯文本 XML。

classes.dex:以 Dalvik 虚拟机和 Android Runtime 可理解的 dex 文件格式编译的类。

resources.arsc:包含预编译资源的文件,例如二进制 XML。

因此,APK 假设拥有所有二进制文件和资源来使用您的应用程序。


推荐阅读