码迷,mamicode.com
首页 > 其他好文 > 详细

Andriod APK 文件结构详解

时间:2014-07-16 12:50:17      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:android   style   java   使用   strong   文件   

APK文件结构

       APK文件实际是一个zip压缩包,可以通过解压缩工具解开。

     下面是用解压缩工具解开的APK包的结构:

|-- AndroidManifest.xml

|-- META-INF

| |-- CERT.RSA

| |-- CERT.SF

| `-- MANIFEST.MF

|-- classes.dex

|-- res

| |-- drawable

| | `-- icon.png

| `-- layout

| `-- main.xml

`-- resources.arsc


Manifest文件

AndroidManifest.xml是每个应用都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等信息,如要把apk上传到Google Market上,也要对这个xml做一些配置。网上已有很多资料,在此就不多做介绍了。


在apk中的AndroidManifest.xml是经过压缩的,可以通过AXMLPrinter2工具解开,具体命令为:

java -jar AXMLPrinter2.jar AndroidManifest.xml


META-INF目录

META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。

在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。而在Android手机上安装apk包时,应用管理器会按照同样的算法对包里的文件做校验,如果校验结果与META-INF下的内容不一致,系统就不会安装这个apk。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码, 或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系 统的安全。


classes.dex文件

classes.dex是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。


res目录

res目录存放资源文件。


resources.arsc

编译后的二进制资源文件。通常本地化、汉化资源存储在该文件文件中。



Andriod APK 文件结构详解,布布扣,bubuko.com

Andriod APK 文件结构详解

标签:android   style   java   使用   strong   文件   

原文地址:http://blog.csdn.net/winceos/article/details/37874383

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!