Android系统采用的是分层架构,分四层:

1.  Applicitations:应用层

2.  Applicitation Framework:架构层

3.  Libraries:类库层

4.  Linux Kernel:Linux内核层

执行流程:

Zygote三种创建进程的方法:

1.  frok()创建一个Zygote进程

2.  frokAndSpecialize()创建一个非Zygote进程

3.  frokSystemServer()创建一个系统服务进程

说明:Zygote进程可以frok()创建其他进程,系统服务结束后子进程也结束;非Zygote进程则不行

Dalvik虚拟机执行流程

Dalvik虚拟机的JIT(即时编译,动态编译)

Dalvik默认采用的是trace编译方式

JIT包含两种字节码编译方式:

1.  method:以函数为编译单位

2.  trace:以路径为编译单位

a)         trace分成两类

i. 热路径:函数执行中频繁执行的部分

ii.  冷路径:函数执行中不频繁执行的部分

2 Android程序的执行的更多相关文章

  1. android 程序代码执行adb

    Runtime.getRuntime().exec("adb pull /dev/graphics/fb0 C:/fb1"); Runtime. getRuntime().exec ...

  2. Delphi编写的Android程序获取Root权限实现(2015.4.15更新,支持Android 4.4)

    借助谷歌,并经过本大侠施展坑.蒙.拐.骗.偷五大绝技,终于成功实现在Delphi下获取Root权限并将其扩展为一个完整功能更加完整的TQAndroidShell记录,在华为荣耀2(Android 4. ...

  3. 用C++语言开发Android程序 配置开发环境

    转自:http://www.cnblogs.com/yaotong/p/3622430.html 用C++语言开发Android程序 配置开发环境   如果你是一个C++语言的死忠,你喜欢C++语言到 ...

  4. Android程序执行shell脚本

    在做Android应用时,经常需要执行shell脚本,以快速实现某些功能: 在Android应用程序中执行shell脚本可以省去一大堆繁琐的代码,还可以避免不必要的错误: 比如:拷贝文件夹时,可以执行 ...

  5. Android开发第一讲之目录结构和程序的执行流程

    1.如何在eclipse当中,修改字体 下面的这种办法,可以更改xml的字体 窗口--首选项--常规--外观--颜色和字体--基本--文本字体--编辑Window --> Preferences ...

  6. 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程

    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...

  7. Android 在Android代码中执行命令行

    1.路径最好不要是自己拼写的路径/mnt/shell/emulated/0/wifidog.conf 最好是通过方法获取的路径,不然可能导致命令无效  (挂载点的原因) public static f ...

  8. 控制 Android 程序使用的内存

    如何控制应用程序使用的内存? 1. 记得关闭启动的服务 当服务中的任务完成后,要记得停止该服务.可以考虑使用 IntentService,因为 IntentService 在完成任务后会自动停止. 2 ...

  9. Android程序crash处理

    Android程序crash处理 时间 2014-11-24 13:45:37  CSDN博客 原文  http://blog.csdn.net/allen315410/article/details ...

随机推荐

  1. lower_case_table_names=1 启动报错 mysql8.0

    我们知道在 Linux 环境下默认是区分大小写的,所以我们需要改变这种默认方式,经过网上各种搜索后,基本就是清一色的修改 lower_case_table_names,然后信誓旦旦的去修改了,但是修改 ...

  2. Springboot之自定义配置

    SpringBoot自定义配置 springboot在这里就不过多介绍了,大家都应该了解springboot零配置文件,所以配置信息都装配在属性文件(properties.yml.yaml)中,有时我 ...

  3. Redis4.0.9最新版本安装时出现的问题

    Redis Redis(REmote DIctionary Server,远程数据字典服务器)是开源的内存数据库,常用作缓存或者消息队列. Redis的特点: Redis存在于内存,使用硬盘作为持久化 ...

  4. listings技巧

    1. \lstdefinestyle 参考 https://blog.csdn.net/ProgramChangesWorld/article/details/52142313 我们在使用listin ...

  5. vue本地静态图片的路径问题解决方案

    不少人在vue的开发中遇到这样一个问题: img的src属性绑定url变量,然而图片加载失败. 大部分的情况中,是开发者使用了错误的写法,例如: <img src="{{ imgUrl ...

  6. 配置tomcat服务器内存大小中的Xms、Xmx、PermSize、MaxPermSize 详解

    1.参数的含义 -vmargs -Xms256m -Xmx512m -XX:PermSize=256M -XX:MaxPermSize=512M -vmargs 说明后面是VM的参数,所以后面的其实都 ...

  7. 常用war包插件

    <build> <resources> <resource> <directory>src/main/java</directory> &l ...

  8. c语言之连接符

    c语言之连接符 1.连接符 连接符的概念是结合define预编译指令的使用技巧,用户可以向define中传入字符串来调用不同功能的函数. 2.代码例子 #include <stdio.h> ...

  9. kaggle house price

    kaggle 竞赛入门 导入常用的数据分析以及模型的库 数据处理 Data fields 去除异常值 处理缺失值 分析 Utilities Exploratory Data Analysis Corr ...

  10. 安卓 App 性能专项测试之流畅度深度解析-中篇

    背景 毫无疑问,流畅度在Android众多性能指标中其重要程度不言而喻,而且也是最为复杂的一个.为了描述这样的一个维度,业界大佬纷纷提出了各种指标来对其进行衡量.在上篇文章中给大家介绍了FPS这一项指 ...