Android的程序文件为APK格式,APK文件是Android最终的运行程序,是Android Package的全称,类似于Symbian操作系统中sis文件,APK文件其实ZIP文件格式,但后缀名被修改为APK,通过UnZip解压后,可以 看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
一个APK文件结构为:
META-INF\Jar文件中常可以看到
res\ 存放资源文件的目录
AndroidManifest.xml程序全局配置文件
classes.dex Dalvik字节码
resources.arsc 编译后的二进制资源文件
总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的 Windows Gadgets或者说WPF也采用了这种构架方式。