apk 是否包含有效载荷,或者如果我想通过 apk 文件共享我的应用程序,我是否必须添加它们?

does apk contain payloads or do I have to add them if I want to share my apps via an apk file?

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

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:包含应用程序资产的目录,可以通过 资产管理器。 AndroidManifest.xml: 一个额外的 Android 清单文件,描述名称、版本、 访问权限,应用程序引用的库文件。此文件可能是 Android 二进制文件 XML,可以使用 AXMLPrinter2、apktool 或 Androguard 等工具将其转换为人类可读的纯文本 XML。

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

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

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