apk是怎么写的

1. APK怎样编写【apk是怎么写的】 第一部分:apk应用介绍,解包和打包,常用软件 相信每为机友对APK文件都不陌生 。
你可能每天都与APK文件打交道,无论是安装和卸载有用的应用工具、插件、好玩的游戏等等 。
尤其是最近关于2.3.4 XXJVP ROM的汉化,更成为论坛里的热门话题 。
你们可曾知道ROM是怎样汉化的吗?说来容易做来难 。这里要涉及很广泛的知识、手段,以及要花大量的时间 。
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文件 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目录存放资源文件 。
包括图片,字符串等等 。res下有若干个子目录,主要为drawable,layout,xml 。
解包后,几乎所有可能的修改和编辑工作基本都在这里 。汉化ROM的主要工作就在这里 。
汉化ROM实际上就是汉化所有的apk应用程序的字符文件 。? assets目录 assets目录可以存放一些配置文件,这些文件的内容在程序运行过程中可以通过相关的API获得 。
下面以“设置”应用程序Settings.apk为例 。用WinRAR打开文件后,看到以上介绍的六项内容 。
现在,即使你已经对文件解压,你还是无法直接阅读每个文件的内容 。为了读出这些文件的内容,从而进行进一步的修改和编辑,你就必须具有相应的工具了(请到第二节) 。
2. APK应用程序的解包和打包工具 这一节主要介绍在Windows系统中常用的几个工具包,用来对apk应用程序进行解包、打包、反编译、解析 。所有apk工具包都要求java环境(这个我就不介绍了,自己学习去吧) 。
这些工具可以从网上各个论坛获取 。我在近一个月里收集了几个常用的工具包,我会打包上传与有志于对apk进行操作的机友分享 。
主要推荐有三个工具包 。1) apktool apktool可能是当今最为流行的apk工具包,由解包、打包、签名程序组成 。