1. APK文件简介
APK是Android Package的缩写,即Android application package文件或Android安装包。每个要安装到Android平台的应用都要被编译打包为一个单独的文件,扩展名为 .apk。APK文件是 用专业软件eclipse编译生成的文件包 ,其中包含了应用的二进制代码、资源、配置文件等。通过将APK文件直接传到Android手机中执行即可安装。 APK文件其实就是zip格式 ,但其扩展名被改为apk,在Windows下用解压软件WinRAR/WinZIP/7-Zip可以直接打开。解压后,你会看到有几个文件和文件夹。 一个典型的APK文件通常有下列内容组成 :
AndroidManifest.xml 程序全局配置文件
classes.dex Dalvik字节码
resources.arsc 编译后的二进制资源文件
META-INF\ 该目录下存放的是签名信息
res\ 该目录存放资源文件
assets\ 该目录可以存放一些配置文件
下面对这些文件和目录做些基本的注释和介绍:
• AndroidManifest.xml
该文件是每个apk应用程序都必须包含的文件,它描述了 应用 程序的名字、版本、权限、引用的库文件 等信息。
• classes.dex文件
该文件 是java源码编译后生成的java字节码文件 。dex是Dalvik VM executes的全称,即Android Dalvik执行程序。利用解析工具可以将其转换成java来加以阅读和理解。
• resources.arsc
该文件 是 编译后的二进制资源文件 。
• META-INF目录
META-INF目录下存放的是 签名信息 ,有 三个 签名文件,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个apk包时,会对 要打包的所有文件 做一个校验计算,并把计算结果放在META-INF目录下。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码, 或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系统的安全。
• res目录
该 目录存放 资源文件 。包括图片,字符串等等。res下有若干个子目录,主要为drawable,layout,xml。
解包后, 几乎所有可能的修改 和 编辑工作 基本都在这里 。汉化ROM的主要工作就在这里。汉化ROM实际上就是汉化所有的apk应用程序的字符文件。
• assets目录
assets目录可以 存放一些配置文件 ,这些文件的内容在程序运行过程中可以通过相关的API获得。
下面以“设置”应用程序Settings.apk为例。用WinRAR打开文件后,看到以上介绍的六项内容。现在,即使你已经对文件解压,你还是无法直接阅读每个文件的内容。为了读出这些文件的内容,从而进行进一步的修改和编辑,你就必须具有相应的工具了。
APK是Android Package的缩写,即Android application package文件或Android安装包。每个要安装到Android平台的应用都要被编译打包为一个单独的文件,扩展名为 .apk。APK文件是 用专业软件eclipse编译生成的文件包 ,其中包含了应用的二进制代码、资源、配置文件等。通过将APK文件直接传到Android手机中执行即可安装。 APK文件其实就是zip格式 ,但其扩展名被改为apk,在Windows下用解压软件WinRAR/WinZIP/7-Zip可以直接打开。解压后,你会看到有几个文件和文件夹。 一个典型的APK文件通常有下列内容组成 :
AndroidManifest.xml 程序全局配置文件
classes.dex Dalvik字节码
resources.arsc 编译后的二进制资源文件
META-INF\ 该目录下存放的是签名信息
res\ 该目录存放资源文件
assets\ 该目录可以存放一些配置文件
下面对这些文件和目录做些基本的注释和介绍:
• AndroidManifest.xml
该文件是每个apk应用程序都必须包含的文件,它描述了 应用 程序的名字、版本、权限、引用的库文件 等信息。
• classes.dex文件
该文件 是java源码编译后生成的java字节码文件 。dex是Dalvik VM executes的全称,即Android Dalvik执行程序。利用解析工具可以将其转换成java来加以阅读和理解。
• resources.arsc
该文件 是 编译后的二进制资源文件 。
• META-INF目录
META-INF目录下存放的是 签名信息 ,有 三个 签名文件,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个apk包时,会对 要打包的所有文件 做一个校验计算,并把计算结果放在META-INF目录下。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码, 或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系统的安全。
• res目录
该 目录存放 资源文件 。包括图片,字符串等等。res下有若干个子目录,主要为drawable,layout,xml。
解包后, 几乎所有可能的修改 和 编辑工作 基本都在这里 。汉化ROM的主要工作就在这里。汉化ROM实际上就是汉化所有的apk应用程序的字符文件。
• assets目录
assets目录可以 存放一些配置文件 ,这些文件的内容在程序运行过程中可以通过相关的API获得。
下面以“设置”应用程序Settings.apk为例。用WinRAR打开文件后,看到以上介绍的六项内容。现在,即使你已经对文件解压,你还是无法直接阅读每个文件的内容。为了读出这些文件的内容,从而进行进一步的修改和编辑,你就必须具有相应的工具了。


发布评论