【转】Android系统中的.apk文件和dex文件
2016-03-07 15:37
351 查看
1. *.apk文件
APK是Android Package的缩写,即Android安装包。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。
使用Android打包工具(aapt)将DEX文件,资源文件以及AndroidManifest.xml文件组合成一个应用程序包(APK)。Dex是Dalvik VM executes的全称,即Android Dalvik执行程序。
[align=left]META-INF\ Jar文件[/align]
[align=left]res\ 存放资源文件[/align]
[align=left]AndroidManifest.xml 应用全局配置文件[/align]
[align=left]*.dex Dalvik虚拟机字节码(应用程序)[/align]
[align=left]resources.arsc 编译后的二进制资源文件[/align]
Android在运行程序时首先需要解压apk文件,然后获取编译后的androidmanifest.xml文件中配置信息,执行dex程序。
2..dex文件
Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,通常执行时都进行优化 。优化后的文件大小会有所增加。 优化发生的时机有两个:对于预置应用,可以在系统编译后,生成优化文件,以ODEX结尾。这样在发布时除APK文件(不包含DEX)以外,还有一个相应的Android DEX文件;对于非预置应用,包含在APK文件里的DEX文件会在运行时被优化,优化后的文件将被保存在缓存中。
Zygote是一个虚拟机进程,同时也是一个虚拟机实例的孵化器,每当系统要求执行一个 Android应用程序,Zygote就会FORK出一个子进程来执行该应用程序。这样做的好处显而易见:Zygote进程是在系统启动时产生的,它会完成虚拟机的初始化,库的加载,预置类库的加载和初始化等等操作,而在系统需要一个新的虚拟机实例时。
Zygote通过复制自身,最快速的提供个系统。另外,对于一些只读的系统库,所有虚拟机实例都和Zygote共享一块内存区域,大大节省了内存开销。
from:http://blog.chinaunix.net/uid-24439730-id-355883.html
APK是Android Package的缩写,即Android安装包。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。
使用Android打包工具(aapt)将DEX文件,资源文件以及AndroidManifest.xml文件组合成一个应用程序包(APK)。Dex是Dalvik VM executes的全称,即Android Dalvik执行程序。
[align=left]META-INF\ Jar文件[/align]
[align=left]res\ 存放资源文件[/align]
[align=left]AndroidManifest.xml 应用全局配置文件[/align]
[align=left]*.dex Dalvik虚拟机字节码(应用程序)[/align]
[align=left]resources.arsc 编译后的二进制资源文件[/align]
Android在运行程序时首先需要解压apk文件,然后获取编译后的androidmanifest.xml文件中配置信息,执行dex程序。
2..dex文件
Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,通常执行时都进行优化 。优化后的文件大小会有所增加。 优化发生的时机有两个:对于预置应用,可以在系统编译后,生成优化文件,以ODEX结尾。这样在发布时除APK文件(不包含DEX)以外,还有一个相应的Android DEX文件;对于非预置应用,包含在APK文件里的DEX文件会在运行时被优化,优化后的文件将被保存在缓存中。
Zygote是一个虚拟机进程,同时也是一个虚拟机实例的孵化器,每当系统要求执行一个 Android应用程序,Zygote就会FORK出一个子进程来执行该应用程序。这样做的好处显而易见:Zygote进程是在系统启动时产生的,它会完成虚拟机的初始化,库的加载,预置类库的加载和初始化等等操作,而在系统需要一个新的虚拟机实例时。
Zygote通过复制自身,最快速的提供个系统。另外,对于一些只读的系统库,所有虚拟机实例都和Zygote共享一块内存区域,大大节省了内存开销。
from:http://blog.chinaunix.net/uid-24439730-id-355883.html
相关文章推荐
- Android 图片缓存机制
- listview嵌套listview ScrollView嵌套listview 的冲突问题
- 【android】LayoutInflater 的 inflater 方法浅析
- Xamarin for Windows, 用C#开发android( 环境配置篇)
- Android应用安全之Content Provider安全
- Android Context相关总结
- android 中数据库
- Android三种常用动画分享
- Android开发之获取手机号码
- Android安全输入设计与思考,android设计思考 为什么使用安全键盘? 安全的输入 各大公司的安全键盘设计 开始自定义安全键盘 安全键盘还需要注意的
- Android 拦截短信
- Android开发之开机启动没有界面的应用程序
- 关于android应用程序的入口
- Android Monkey具体解释
- jenkins远程构建Android的过程
- Android入门:Activity四种启动模式
- Android命名规范
- 【Android】【小知识】如何获取指定目录下的所有文件的集合
- 如何实现一个只有广播和service的android应用没有activity
- Android总结02_Touch事件的分发与消费机制