Android的APK包⾥的⽂件类型都是什么?
Android的程序⽂件为APK格式,APK⽂件是Android最终的运⾏程序,是Android Package的全称,类似于Symbian操作系统中sis⽂件,J2ME平台的JAR⽂件,APK⽂件其实ZIP⽂件格式,但后缀名被修改为APK,通过RAR解压后,可以看到Dex⽂件,Dex是Dalvik VM executes的全称,即Android Dalvik执⾏程序,并⾮Java的字节码⽽是Dalvik字节码。
⼀个APK⽂件结构为:
res/ 存放资源⽂件的⽬录
META-INF/ Jar⽂件中常可以看到java xml是什么
resources.arsc 编译后的⼆进制资源⽂件,主要是程序中使⽤字符串!
classes.dex Dalvik字节码⽂件,我们写的JAVA⽂件被编译成DEX格式的字节码了
总结下我们发现Android在运⾏⼀个程序时⾸先需要UnZip,然后类似Symbian那样直接,和Windows M
obile中的PE⽂件有区别,这样做对于程序的保密性和可靠性不是很⾼,通过dexdump命令可以反编译,但这样做符合发展规律,微软的 Windows Gadgets或者说WPF 也采⽤了这种构架⽅式。
1. Java⽂件-----应⽤程序源⽂件
我想这是⼤家听到android时就听到的⽂件,android本⾝相当⼀部分都是⽤java编写⽽成(基本上架构图⾥头蓝⾊的部份都是⽤Java 开发的),android的应⽤必须使⽤java来开发。
2. Class⽂件------Java编译后的⽬标⽂件
不像通常我们使⽤的J2se,java编译成class就可以直接运⾏,android平台上class⽂件不能直接在android上运⾏。由于Google使⽤了⾃⼰Dalvik来运⾏应⽤,所以这⾥的class也肯定不能在sun的java环境中运⾏,我个⼈感觉android的class⽂件实际上只是编译过程中的中间⽬标⽂件,需要链接成dex⽂件后才能在dalvik上运⾏。
3. Dex⽂件-----Android平台上的可执⾏⽂件
Android虚拟机Dalvik⽀持的字节码⽂件格式Google在新发布的Android平台上使⽤了⾃⼰的Dalvik虚拟机来定义,这种虚拟机执⾏的并⾮Java字节码,⽽是另⼀种字节码:dex格式的字节码。在编译Java代码之后,通过Android平台上的⼯具可以将Java字节码转换成Dex字节码。虽然Google称Dalvik是为
了移动设备定做的,但是业界很多⼈认为这是为了规避向sun申请Java license。由于没有太多的细节公开,现在还不到Dalvik的具体实现,只能根据SDK做⼀些简单的分析⼯作。
这个Dalvik VM针对⼿机程式/CPU做过最佳化,可以同时执⾏许多VM⽽不会占⽤太多Resource,Dalvik VM的source⽬前还没有开放让⼈下载(未来整个系统都会开放),⽬前Google的⾓度是希望能让⼤家⽤这套SDK开始开发AP,底层的东西会慢慢发布。
4. Apk⽂件-------Android上的安装⽂件
Apk是Android安装包的扩展名,⼀个Android安装包包含了与某个Android应⽤程序相关的所有⽂件。 apk⽂件将

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。