9.2 App 安装包的结构
9.2.1 Android安装包的结构
Android的安装包是apk格式的文件。我们将其后缀名apk改为zip,就可以看到安装包中的内容。
图9-1 Android安装包解压后的目录结构
如图9-1所示,所有的Android安装包解压后都具有这样的目录结构:
简单介绍一下这些目录和文件的用途:
·resources.arscz这个文件是编译后的二进制资源文件的索引,也就是apk文件的资源表(索引)。
·lib目录下的子目录armeabi存放的是一些so文件。
·META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。但这个目录下的文件却不会被签名,从而给了我们无限的想象空间。
·assets目录下面可以看到很多基础数据,以及一些本地会使用到的HTML、CSS和JavaScript文件。
·res目录下面的anim子目录很值得研究,这个目录存放App所有的动画效果。Android做动画可以使用xml来配置,而不是写代码。iOS的动画都是使用代码写出来的,这是件很费力气的事情。一种好的解决方案是,在App的Android版本中找到某个动画对应的xml,将其翻译为iOS的动画语言即可。
注意,res目录中的很多xml文件打开后是乱码,AndroidManifest.xml也是如此,那是因为打包的时候对xml文件进行了压缩,所以看到的往往是全角的字符和乱码,不便于查找到我们想要看的内容。有一款神器用于看到apk包中正常的内容,AXMLPrinter2.jar,它可以将apk中已经处理过的xml还原为可读格式。命令如下所示:
java -jar AXMLPrinter2.jar AndroidManifest.xml
9.2.2 iOS安装包的结构
iOS的安装包是ipa格式的文件。我们将其后缀名ipa改为zip,就可以看到安装包中的内容。
图9-2 iOS安装包解压后的目录结构
所有的iOS安装包解压后都具有如图9-2的目录结构:
其中Payload目录下是一个包,里面有这个App所需要的所有图片、音频、布局文件、配置文件和可执行文件、bundle文件、HTML5相关文件。
很多png图片是打不开的,那是因为在iOS打包时,对一部分png图片进行了压缩。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论