[安卓百科]apk

首页 > 安卓百科 > 2016-08-12 15:25

APK是AndroidPackage的缩写,即Android安装包(apk)。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。 

 

APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别。

 

在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。安装的文件可能不是这个文件夹,而在androidrom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。

 

apk文件结构

 

1. META-INF\ (注:Jar文件中常可以看到);

 

2. res\ (注:存放资源文件的目录) ;

 

3. AndroidManifest.xml (注:程序全局配置文件) ;

 

4. classes.dex (注:Dalvik字节码);

 

5. resources.arsc (注:编译后的二进制资源文件)。

 

apk反编译就是通过使用apk编译工具将apk文件中的源文件和资源反编译出来,得到的源文件和资源文件可以进行处理后再进行编译,以达到个性化定制,汉化apk等目的。

 

apk反编译工具

 

1、最典型的apk编译工具的核心是apktool,但是因为操作需要调用cmd命令,所以出现了很多具有可视化界面的各种编译工具,像easyapk,apkdb,doapk

 

2、dex2jar.jar,将apk中的classes.dex转化成Jar文件,再通过jd-gui工具反编译jar文件。

推荐阅读apk安卓百科