1. *.apk文件

APK是Android Package的缩写,即Android安装包。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。

使用Android打包工具(aapt)将DEX文件,资源文件以及AndroidManifest.xml文件组合成一个应用程序包(APK)。Dex是Dalvik VM executes的全称,即Android Dalvik执行程序。

  • META-INF\ Jar文件
  • res\ 存放资源文件
  • AndroidManifest.xml 应用全局配置文件
  • *.dex Dalvik虚拟机字节码(应用程序)
  • resources.arsc 编译后的二进制资源文件

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

最新文章

  1. 学习笔记:delphi之TStringGrid
  2. 关于input的file框onchange事件触发一次失效的新的解决方法
  3. Dynamics AX 2012 R2 创建一个专用的批处理服务器
  4. [LeetCode] Range Sum Query 2D - Immutable
  5. .NET的堆和栈01,基本概念、值类型内存分配
  6. yii2 用gii生成后台模块 view path描述
  7. DB2中的系统表SYSIBM.SYSDUMMY1
  8. Spring与Mybatis配置问题
  9. VueJs生产环境部署
  10. Struts2-文件上传下载
  11. SVN 安装与使用教程总结
  12. Django:(博客系统)使用使用mysql数据&创建post/category/tag实体,并同步到数据中
  13. 仿照selalchemy实现简单的mongo查询
  14. HTML常用标签1
  15. Java用FutureTask实现又返回值的线程
  16. C#委托+回调详解
  17. Ubuntu下Eclipse中文乱码解决
  18. python 二进制数相加
  19. es6 let关键字
  20. Flask:使用Eclipse+PyDev插件编辑基于package的项目

热门文章

  1. sublime3中如何快速生成html头部信息
  2. python学习之老男孩python全栈第九期_数据库day001知识点总结 —— MySQL操作数据库以及数据表、基本数据类型、基本增删改查、外键定义以及创建
  3. 微信网页授权获取code
  4. 前台提交数据(表单数据、Json数据及上传文件)的类型
  5. redis window 安装测试--记录
  6. CentOS7系列--10.1CentOS7中的GNOME桌面环境
  7. 企业实施ERP的先后步骤,你真的了解吗?
  8. demo.testfire.net 靶场测试流程记录
  9. Pwn Heap With Tcache
  10. 如何从 GitHub 上下载单个文件夹