1. 2003.10,Andy Rubin创办Android公司。2005.8,Google收购之,并于2008年推出Android系统第一个版本。

2. ①Linux Kernel:基于Linux 2.6。

  Display Driver:基于Linux的帧缓冲(Frame Buffer)驱动。

  Camera Driver:常用的基于Linux的v412(Video for Linux)的驱动。

    Bluetooth Driver:基于IEEE 802.15.1标准的无线传输技术。

  Flash Memory Driver:基于MTD的Flash驱动程序。

  Binder(IPC)Driver:Android的一个特殊的驱动程序,具有单独的设备节点,提供进程间通信的功能。

  USB Driver:一个外部总线标准,用于规范电脑与外部设备的连接和通讯。

  Keypad Driver:作为输入设备的键区驱动。

  WiFi Driver:基于IEEE 802.11标准的驱动。

  Audio Drivers:常用的基于ALSA的高级Linux声音体系驱动。

  Power Management:电池电量等。

②Libraries:通过一些C/C++库为Android系统提供主要技术支持。

  Surface Manager:Android 框架类库之一,管理访问显示子系统和从多模块应用中无缝整合2D和3D的图形。

  Media Framework:Android系统多媒体库,基于PackerVideo OpenCORE,该库支持多种常见格式的音频、视频的回放和录制,以及图片,比如MPEG4、MP3、AAC、AMR、JPG、PNG等。

  SQLite:一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。

  OpenGL|ES:3D绘图,OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。

  FreeType:位图及矢量。

  WebKit:提供浏览器内核的支持。

  SGL:2D图形引擎库。

  SSL:位于TCP/IP协议与各种应用层协议之间,为数据通信提供支持。

  libc:ANSI C是基本的C语言函数库,包含了C语言最基本的库函数。

  Android Runtime:在Android操作系统中,每个Java程序都运行在Dalvik虚拟机上,其只能执行.dex的可执行文件,当Java程序通过编译后,最后还需要通过SDK中的dx工具转为成.dex格式才能正常在虚拟机上执行,Java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的则是其专有的文件格式dex(Dalvik Exceutable)的文件。

  Dalvik虚拟机有如下几个主要特征:

  1.专有的dex文件格式。

  2.dex的优化,dex文件的结构是紧凑的。

  3.基于寄存器。

  4.一个应用,一个虚拟机实例,一个进程。每一个Android应用度运行在一个Dalvik虚拟机实例中,每一个虚拟机实例都是一个独立的进程空间。

  Dalvik是专门为移动设备定制的,它针对手机内存、CPU性能有限等情况做了优化处理。

  ③Application Framework:提供了构建应用程序时可能用到的各种API。

  Activity Manager:用来管理应用程序生命周期并提供常用的导航退回功能。

  Window Manager:管理所有的窗口程序。

  Content Providers:可以让一个应用访问另一个应用的数据,或共享它们自己的数据。  

  View System:可以用来构建应用程序,它包括列表、网格、文本框、按钮以及可嵌入的Web浏览器。

  Notification Manager:应用可以在状态栏中显示自定义的提示信息。

  Package Manager:Android系统内的程序管理。

  Telephony Manager:提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。

  在应用程序中可以使用这些get方法获取相关数据。

  Resource Manager:提供非代码资源的访问,如本地字符串、图形和布局文件。

  Location Manager:位置服务的核心组件,它提供了一系列方法来处理与位置相关的问题,包括查询上一个已知位置、注册和注销来自某个LocationProvider的周期性的位置更新、

  注册和注销接近某个坐标时对一个已定义的Intent的触发等。

  XMPP Service:在线即时交流软件一个通用的进程,就是后台推送服务。

  ④Applications:用Java语言编写的在虚拟机上的程序。

  

《第一行代码》学习笔记1-Android系统架构的更多相关文章

  1. Android 笔记之 Android 系统架构

    Android笔记之Android系统架构 h2{ color: #4abcde; } a{ color: blue; text-decoration: none; } a:hover{ color: ...

  2. 《Android第一行代码》笔记

    学习Android开发差点儿相同有两年时间了.期间也做了大大小小的一些项目.近来抽出闲暇想把Android基础强化一下,之前在网上看到了郭霖郭大神的几篇博客.从中受益不少.于是花了近一周时间看完了郭神 ...

  3. 第一行代码阅读笔记---AndroidMainfest.xml分析

    按照这本书的指引,我随作者一样创建了一个安卓应用,开始了安卓开发的启程. 找到AndroidMainfest.xml这个文件,打开后看到了我创建的Activity在这个文件里被成功注册,文件内容如下: ...

  4. 《第一行代码》之——1.Android简介

    Android简介 Android系统架构 (图片源自维基百科) Android大致分为四层架构,五块区域. Linux内核层 Android系统基于Linux2.6,这一层为Android设备的各种 ...

  5. 第一行代码阅读笔记---详解分析第一个Android程序

    以下是我根据作者的思路,创建的第一个Android应用程序,由于工具强大,代码都自动生成了,如下: package com.example.first_app; import android.os.B ...

  6. 学习笔记TF048:TensorFlow 系统架构、设计理念、编程模型、API、作用域、批标准化、神经元函数优化

    系统架构.自底向上,设备层.网络层.数据操作层.图计算层.API层.应用层.核心层,设备层.网络层.数据操作层.图计算层.最下层是网络通信层和设备管理层.网络通信层包括gRPC(google Remo ...

  7. Android开发学习之路--Android系统架构初探

    环境搭建好了,最简单的app也运行过了,那么app到底是怎么运行在手机上的,手机又到底怎么能运行这些应用,一堆的电子元器件最后可以运行这么美妙的界面,在此还是需要好好研究研究.这里从芯片及硬件模块-& ...

  8. 第一行代码阅读笔记----显示隐式Intent的基本用法

    1.显示Intent意图明显,通过Intent启动另外一个活动,这是安卓中各组件进行交互的一种重要方式.一般用于启动活动,启动服务,发送广播等场景. 实现方法,这里我只说思路,实践还是要自己实操才能明 ...

  9. 20172327 2018-2019-1 《第一行代码Android》第一章学习总结

    学号 2018-2019-1 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这 ...

  10. $《第一行代码:Android》读书笔记——第1章 Android系统

    (一)Android系统架构 1.Linux内核层:各种底层驱动,如显示驱动.音频驱动.电源管理等. 2.系统运行库层:各种库支持,如3D绘图.浏览器内核.数据库等. 3.应用框架层:各种API,各种 ...

随机推荐

  1. BZOJ 1028 麻将

    Description 麻将是中国传统的娱乐工具之一.麻将牌的牌可以分为字牌(共有东.南.西.北.中.发.白七种)和序数牌(分为条子.饼子.万子三种花色,每种花色各有一到九的九种牌),每种牌各四张.在 ...

  2. Tunnel Warfare

    hdu1540:http://acm.hdu.edu.cn/showproblem.php?pid=1540 题意:给你一列村庄,每个村庄给一个标号,1--n,然后毁掉一些村庄,或者重建几个村庄,重建 ...

  3. javascript类型系统之Array

    原文:javascript类型系统之Array 目录 [1]数组创建 [2]数组操作 [3]继承的方法 [4]实例方法 数组转换 数组检测 栈和队列 排序方法 操作方法 位置方法 前面的话 数组是一组 ...

  4. Unity 3D物体的点击事件响应以及NGUI坐标和世界坐标的互相转换

    Unity 版本:4.5 NGUI版本:3.6.5 参考链接:http://game.ceeger.com/Script/Camera/Camera.ScreenPointToRay.html,Uni ...

  5. bzoj2539

    这道题真的不难,但是细节挺多(具体见程序)题目本身而言,显然是个费用流模型(或者写KM) type node=record point,next,flow,cost:longint; end; ..] ...

  6. 【video】m3u8

    Safari浏览器识别不了.UC浏览器可以识别. 优酷的Safari浏览器和UC浏览器都可以识别.

  7. 【转】Android4.3 蓝牙BLE初步

    原文网址:http://www.cnblogs.com/savagemorgan/p/3722657.html 一.关键概念: Generic Attribute Profile (GATT) 通过B ...

  8. 【模拟】NEERC15 G Generators(2015-2016 ACM-ICPC)(Codeforces GYM 100851)

    题目链接: http://codeforces.com/gym/100851 题目大意: n个序列.每个序列有4个值x,a,b,c,之后按照x=(a*x+b)%c扩展无穷项. 求每个序列各取一个数之后 ...

  9. 【扩展欧几里德】Vijos P1009 清帝之惑之康熙

    题目链接: https://vijos.org/p/1009 题目大意: 两个人,一个在坐标x,每天走m,一个在坐标y,每天走n,坐标长L,问几天后碰面. 题目思路: [扩展欧几里德] 根据同余方程的 ...

  10. HDOJ 2056 Rectangles

    Problem Description Given two rectangles and the coordinates of two points on the diagonals of each ...