什么是Android系统?

返回目录

官方英文文档

Android 是由操作系统(linux)、中间件以及核心应用程序组成的软件栈(software stack)。通过 android SDK 提供的 API 以及相应的开发工具, 程序员可以用java 语言开发android平台上的应用程序。

特点

  • 应用程序框架(Application framework) enabling reuse and replacement of components
  • Dalvik 虚拟机(Dalvik virtual machine) 针对移动设备进行了相关优化的寄存器型的 java 虚拟机
  • 内置浏览器(Integrated browser) 基于开源的 WebKit 引擎
  • 优化的绘图指令(Optimized graphics) 包括了 2D 及 3D绘图接口,其中 3D 绘图接口是基于OpenGL ES 1.0 的定制版本。 (可通过硬件加速)
  • SQLite 轻型数据库
  • 多媒体支持(Media support) 支持常见的视频、音频及图片格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • 支持GSM制式( GSM Telephony ) (需要手机硬件支持)
  • 支持蓝牙、EDGE、3G以及WIFI(Bluetooth, EDGE, 3G, and WiFi )(需硬件支持)
  • 支持摄像头、GPS、compass、acceleratrometer(Camera, GPS, compass, and accelerometer )(需硬件支持)
  • 丰富的开发工具 包括一个手机模拟器、调试工具、内存及运行性能分析工具以及一个用于 Eclipse IDE(java的编辑器) 的插件

Android 的结构

下图是android操作系统的结构图,我们会在后面详细地讨论每一个部分。


应用程序(Applications)

Android操作系统内置了一部分应用程序, 包括电子邮件客户端、SMS程序、日历、地图、浏览器、通讯录以及其他的程序,所有的这些程序都是用java编写的。


应用程序框架(Application Framework)

开发者开发的应用程序可以像核心应用程序那样调用框架的API。应用程序框架使得组件更易于重用。在遵守应用程序框架的安全机制约束的前提下,一个应用程序可以使用其他程序所开发的功能。 同时,框架允许用户替换掉任意的组件。

Underlying all applications is a set of services and systems, including:

  • Views 可以被用来构建一个应用程序,包括列表(lists),表格(grids),文本框(text boxes) ,按钮(buttons)甚至是一个浏览器(embeddable web browser)
  • 应用程序可以通过Content Providers 获取其他程序的数据,例如通讯录;也可以对外提供自己的数据。
  • 应用程序可以通过Resource Manager访问本地化字符串、图形以及布局文件。
  • Notification Manager 允许所有的应用程序在状态栏上显示自定义的信息。
  • Activity Manager 管理着所有应用程序的生命周期。

应用程序库(Libraries)

Android 提供了一系列的 C/C++ 程序库。通过应用程序框架,开发者可以使用这些库。下表列出了主要的应用程序库:

  • System C library - 基于 BSD 的标准C系统库(standard C system library (libc)), 已针对运行在嵌入式linux系统下的设备做了优化。
  • Media Libraries - 基于 PacketVideo's OpenCORE; 该库支持回放以及录制常见的视频、音频格式以及图片格式,这些格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG
  • Surface Manager - 用于管理图形显示系统,能够将来自不同程序的2D、3D图层整合到一起。
  • LibWebCore - 网页浏览器引擎。Android 浏览器以及可嵌入的浏览器视图(embeddable web view)均使用该引擎。
  • SGL -  2D 图形显示引擎。
  • 3D libraries - 基于OpenGL ES 1.0 的3D显示引擎; 可使用硬件加速。
  • FreeType - 用于位图及矢量字体渲染。
  • SQLite - 一个强大的、轻型的数据库系统。

Android运行库(Android Runtime)

每一个Android 应用程序都有自己的进程,每个进程都对应着一个Dalvik虚拟机进程。当一个Android系统中运行着多个 Dalvik 虚拟机时,我们不用担心其效率问题,Dalvik已对此作了相应的优化。Dalvik 虚拟机是基于寄存器的,所以速度要快一些,其可执行文件格式是(.dex) 格式。通过"dx"工具可以将java可执行程序转换成dex格式。Dalvik虚拟机通过linux内核来管理线程以及底层的内存操作。


Linux 内核(Linux Kernel)

Android 的Linux 内核版本为2.6。通过linux内核,android实现了以下的系统功能,例如系统安全、内存管理,进程管理,网络栈 以及驱动模型,同时,linux内核还扮演着软件栈与硬件之间的抽象层的角色。

返回目录

google android 系统介绍相关推荐

  1. Google Android向华为“闭源”,华为手机迎来至暗时刻!

    作者 | 屠敏 转载自CSDN(ID:CSDNnews) 居安思危任正非,未雨绸缪如华为.在贸易战的背景下,即使早在多年前已在多个层面做好"备胎"计划的华为,在面对美国对芯片乃至操 ...

  2. 《深入浅出Google Android》即将隆重上市!

    <深入浅出 Google Android > 作者在线答疑活动开始啦 :http://www.hiapk.com/bbs/forum-41-1.html 随着越来越多的手机 厂商和移动运营 ...

  3. 在Google Android模拟器中使用SD卡(命令行和eclipse环境)

    Android模拟器能够让我们使用fat32格式的磁盘镜像作为SD卡的模拟: 以下所有操作均在windows环境 首先,运行cmd,进入命令行界面(需要预先将你放置android sdk所在目录下的t ...

  4. Google Android开发精华教程

    本文汇总整理了时下关于Google Android技术教程的下载资源,供参考. 一.入门级: <Android中文教程>中文版 [简介]:<Android中文教程>简单易懂,对 ...

  5. 甲骨文指控 Google Android 复制其代码

    甲骨文又有动作了,这家全球最有名的数据库软件商正在立志成为全球最大的软件垄断企业,今天的目标是控告 Google Android 移动操作系统的部分组件"直接复制"了Java代码, ...

  6. 深入浅出Google Android这本书怎么样

    关于深入浅出Google Android 评论 读后感:对入门的知识讲的很详细,近乎罗嗦,例子比较少而且不够吸引人. 读后感:我还没收到货呢,昨天下午发的货,应该今天能到,因为是周末,我待会儿要回家, ...

  7. Android之提示Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider

    1 问题 接入SDK提示错误如下 java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.Mobil ...

  8. Google Android操作系统内核编译图文教程

    Google Android操作系统内核编译图文教程 和标准的Linux开发流程一样,Android平台开发的一个很重要的基础工作就是对其内核的编译和移植.本文结合Android的开发文档以及本人的实 ...

  9. Google Android 向华为“闭源”!华为手机迎来至暗时刻!

    作者 | 屠敏 出品 | CSDN(ID:CSDNnews) 居安思危任正非,未雨绸缪如华为.在贸易战的背景下,即使早在多年前已在多个层面做好"备胎"计划的华为,在面对美国对芯片乃 ...

最新文章

  1. Sublime Text 安装插件的方法
  2. java中解决Launch configuration TimezoneDump references non-existing project问题
  3. 【Java开发】生成二维码
  4. python矩阵相加_【python矩阵相加怎么做,这可是证明python功能的大好机会】- 环球网校...
  5. B1928 日期差值
  6. 构造代码块、静态代码块、构造方法的执行顺序
  7. 专家从美国联邦政府机构网络上发现后门
  8. 《图解TCPIP》知识学习(1.4):协议由谁规定
  9. docker 批量关闭处于exited状态的container容器--shell工具
  10. igbt原理动画演示视频_IGBT的结构与工作原理 测量方法详细讲解
  11. python计算累计收益率的函数_大盘及策略收益率的公式推导与Python代码
  12. 一行 Python 能实现什么丧心病狂的功能?
  13. 基于Linux的FTP文件传输项目(类似百度云)
  14. PAAS平台(摘360百科)
  15. 3DTouch功能开发
  16. Cobbler自动化安装系统2
  17. 爬虫入门教程-Spider
  18. java.lang.Exception: Method XXX should have no parameters
  19. java privatekey输出字符串_JAVA题:编写一个加密程序,对用户输入的字符串加密后输出。加密的方法是将每个字符映射成字母表中的对称...
  20. 安卓打开rpm文件_android打开文件及打开方式(打开程序列表) | 学步园

热门文章

  1. 脑洞 博弈 E. Competitive Seagulls 2017 ACM Arabella Collegiate Programming Contest
  2. 上升了百分之几怎么算_增长百分比怎么算
  3. orin+96712接GMSL2相机调试经验
  4. centos上安装cdh2.6的方法
  5. 人工智能python编程具体做什么_人工智能主要学习什么编程?
  6. 手机充电总要充到100%吗?充电时先插手机还是充电器
  7. 互联网:互联网进入下半场,这场赛怎么比?
  8. 数据库技术:关系型数据库设计总结
  9. iMeta | 南科大夏雨组纳米孔测序揭示微生物可减轻高海拔冻土温室气体排放
  10. Android集成百度语音识别