C++学习(二四七)android的打包过程

本文详细介绍了APK包的内容组成,包括lib、META-INF、classes.dex、res和resources.arsc等关键部分,以及AndroidManifest.xml在其中的重要角色。此外,文章还探讨了APK的打包流程,从初步到细化的步骤,帮助读者深入了解APK的构建过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、apk包内容

apk是一个压缩包,里面有lib,META-INF,classes.dex,res,resources.arsc文件夹和文件。

lib 文件夹里面存放的是so动态链接库,so动态链接库是不需要在做apk打包时做一系列压缩处理的。

META-INF 签名文件夹,里面存放三个文件,有两个是对资源文件做的SHA1 hash处理,一个是签名和公钥证书。

res 资源文件夹,里面还会分animator,anim,color,drawable,layout,menu和raw这几个文件夹。

AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试)。这个文件是很重要的,里面有我们的Android四大组件和申请的权限。

classes.dex Android平台上的可执行文件,Android虚拟机Dalvik支持的字节码文件格式Google在新发布的Android平台上使用了自己的Dalvik虚拟机来定义, 这种虚拟机执行的并非Java字节码, 而是另一种字节码: dex格式的字节码。在编译Java代码之后,通过Android平台上的工具可以将Java字节码转换成Dex字节码。虽然Google称Dalvik是为了移动设备定做的,但是业界很多人认为这是为了规避向sun申请Javalicense。这个DalvikVM针对手机程式/CPU做过最佳化,可以同时执行许多VM而不会占用太多Resource。classes.dex也是由java的class文件重新编排而来,我们也可以通过反编译工具把dex文件转换成class文件。如果做了拆包那么会有classes1.dex,classes2.dex ...多个classes.dex文件。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值