No1:

操作系统层包括各种驱动程序:显示、Flash内存、照相机、音频、WiFi、键盘、蓝牙、Binder IPC、能源管理。

各种库和Android运行环境大多是用C和C++实现的。

Android运行环境主要指虚拟机技术---Dalvik。

Java VM是基于栈的虚拟机,而Dalvik是基于寄存器的虚拟机,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。

No2:

进程的类型按重要程度排序包括以下几项:前台进程(Foreground)、可见进程(Visible)、服务进程(Service)、后台进程(Background)、空进程(Empty)

No3:

Dalvik虚拟机执行的是Dalvik格式的可执行文件(.dex)----该格式经过优化,以将内存耗用降到最低。Java编译器将java源文件转为class文件,class文件又被内置的dx工具转化为dex格式文件,这种文件在Dalvik虚拟机上注册运行。

No4:

Android内核:

1)Android Binder:用户进程间通信

2)Android电源管理(PM):利用锁和定时器来切换系统状态,控制设备在不同状态下的功耗,以达到节能的目的。

3)低内存管理器(Low Memory Killer):根据需要杀死进程来释放需要的内存

4)匿名共享内存(Ashmem):为进程提供大块共享内存,同时为内核提供回收和管理这个内存的机制。

5)Android PMEM(Physical):用于向用户空间提供连续的物理内存区域

6)Android Logger:轻量级的日志设备,用于抓取Android系统的各种日志

7)Android Alarm:提供了一个定时器用于把设备从睡眠状态唤醒

8)USB Gadget驱动:基于Linux USB gadget驱动框架的设备驱动

9)Android Ram Console:Android允许将调试日志信息写入一个被称为RAM Console的设备里

10)Android timed device:提供了对设备进行定时控制功能

11)Yaffs2文件系统:是一个快速稳定的应用于NAND和NOR Flash的跨平台的嵌入式设备文件系统

No5:

在Android中添加扩展驱动程序的基本步骤如下:

1)在Linux内核中移植硬件驱动程序,实现系统调用接口

2)把硬件驱动程序的调用在HAL中封装成Stub

3)为上层应用的服务实现本地库,由Dalv让虚拟机调用本地库来完成上层Java代码的实现

4)最后编写Android应用程序,提供Android应用服务和用户操作界面

《Android虚拟机》----Android系统的结构的更多相关文章

  1. 【Android 系统开发】Android框架 与 源码结构

    一. Android 框架 Android框架层级 : Android 自下 而 上 分为 4层; -- Linux内核层; -- 各种库 和 Android运行环境层; -- 应用框架层; -- 应 ...

  2. android源码的目录结构

    android源码的目录结构 [以下网络摘抄] |-- Makefile ! l/ a5 n% S% @- `0 d# z# a$ P4 V3 o7 R|-- bionic              ...

  3. 第一章 Android体系与系统架构

    1. Dalvik 和 ART(Android Runtime) 在Dalvik中应用好比是一辆可折叠的自行车,平时是折叠的,只有骑的时候,才需要组装起来用.在ART中应用好比是一辆组装好了的自行车, ...

  4. Android群英传》读书笔记 (1) 第一章 Android体系与系统架构 + 第二章 Android开发工具新接触

    第一章 Android体系与系统架构 1.Dalvik 和 ARTDalvik好比是一辆可折叠的自行车,平时是折叠的,只有骑的时候,才需要组装起来用.ART好比是一辆组装好了的自行车,装好就可以骑了. ...

  5. Android群英传笔记——第一章:Android体系与系统架构

    Android群英传笔记--第一章:Android体系与系统架构 图片都是摘抄自网络 今天确实挺忙的,不过把第一章的笔记做一下还是可以的,嘿嘿 1.1 Google的生态圈 还是得从Android的起 ...

  6. 【朝花夕拾】Android性能篇之(五)Android虚拟机

    前言 Android虚拟机的使用,使得android应用和Linux内核分离,这样做使得android系统更稳定可靠,比如程序中即使包含恶意代码,也不会直接影响系统文件:也提高了跨平台兼容性.在And ...

  7. Android 分析 Android 应用结构

    本文说明 Android 项目组成,虽然简单,但决不能忽视. 当你从简单 Hello World 程序,到会实现一些常见功能,比如,下拉(上拉)刷新最新(加载更多),消息处理(UI 通知更新),Vie ...

  8. 【Android】事件处理系统

    linux输入子系统 Android是linux内核的,所以它的事件处理系统也在linux的基础上完成的. Linux内核提供了一个Input子系统来实现的,Input子系统会在/dev/input/ ...

  9. Android特性与系统架构

    Android特性与系统架构 一.Android特性 • 应用程序框架支持组件的重用与替换 • Dalvik 虚拟机专为移动设备优化 • 集成的浏览器基于开源的WebKit 引擎 • 优化的图形库包括 ...

  10. Android框架 与 源码结构

    一. Android 框架 Android框架层级 : Android 自下 而 上 分为 4层; -- Linux内核层; -- 各种库 和 Android运行环境层; -- 应用框架层; -- 应 ...

随机推荐

  1. LightOJ 1017 - Brush (III) 记忆化搜索+细节

    http://www.lightoj.com/volume_showproblem.php?problem=1017 题意:给出刷子的宽和最多横扫次数,问被扫除最多的点是多少个. 思路:状态设计DP[ ...

  2. ASP.NET站点Web部署(一键发布的实现)

    在开发过程中经常需要发布到开发环境.测试环境或者预发布环境上给其他同事进行测试验证效果等等,每次发布都要备份,拷贝,修改配置文件等等重复操作非常的麻烦,效率大打折扣,而web部署提供了这样的解决方案: ...

  3. JavaScript定义类的几种方式

    提起面向对象我们就能想到类,对象,封装,继承,多态.在<javaScript高级程序设计>(人民邮电出版社,曹力.张欣译.英文名字是:Professional JavaScript for ...

  4. session_write_close()的作用

    简单地说,当开启session_start以后,这个session会一直开启,并且被一个用户使用.其他用户开启session的话要等待第一个session用户关闭以后才可以开启sessio,这样就造成 ...

  5. python作业员工信息表程序(第四周)

    作业需求: 1. 员工信息表程序,实现增删改查操作: 2. 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 ...

  6. Tensorflow常用函数说明(一)

    首先最开始应该清楚一个知识,最外面的那个[ [ [ ]]]括号代表第一维,对应维度数字0,第二个对应1,多维时最后一个对应数字-1:因为后面有用到 1 矩阵变换 tf.shape(Tensor) 返回 ...

  7. 记一次powershell反混淆(2)

    样本地址 https://www.hybrid-analysis.com/sample/4b4b8b13c264c8f7d7034060e0e4818a573bebc576a94d7b13b4c174 ...

  8. webgote的例子(6)SQL注入(盲注)

    SQL Injection - Blind (WS/SOAP) 本期演示的是盲注的手法.有些网站在与数据库交互的地方进行了很好的修饰,将报错的语句进行修改,即使你找到了注入点也无法下手拿数据,这个时候 ...

  9. 2-Python基础语法-内存管理-运算符-程序控制

    目录 1 Python 基础语法 1.1 注释 1.2 缩进 1.3 续行 1.4 标识符 1.5 转义序列 1.6 数字 1.7 字符串 1.8 其他 2 Python 运算符 2.1 赋值运算符 ...

  10. python近期遇到的一些面试问题(三)

    python近期遇到的一些面试问题(三) 整理一下最近被问到的一些高频率的面试问题.总结一下方便日后复习巩固用,同时希望可以帮助一些朋友们. 前两期点这↓ python近期遇到的一些面试问题(一) p ...