`
nfq57nfq
  • 浏览: 14670 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android开发之Android体系架构介绍

 
阅读更多

Android开发之Android体系架构介绍
15小时前
   在Android中,整个框架由应用、应用框架、原生库、Android实时库、硬件抽象层、Linux内核等若干部分组成。
  其中最核心的Android虚拟机部分也已经开放源码。对开发者而言,如果期望在深度定制的基础上开发出差异化、高度竞争力的产品,需要在应用框架、原生库、硬件抽象层、Linux内核等方面有较深入的理解。图1显示了Android的体系架构。
  
  
  
  图1 Android体系架构
  1、核心服务
  所谓Android的核心服务主要包括熵服务(Entropy Service)、电源管理器(Power Manager)、Activity管理器(Activity Manager)、通话寄存器(Telephony Registry)、包管理器(Package Manager)、账户管理器(Account Manager)、内容管理器(Content Manager)、内容提供器(System Content Providers)、电池服务(Battery Service)、光线服务(Lights Service)、振动服务(Vibrator Service)、闹钟管理器(Alarm Manager)、看门狗(Init Watchdog)、窗口管理器(Window Manager)、蓝牙服务(Bluetooth Service)等。这些服务和应用程序密切相关,但通常应用程序不能直接接入核心服务。早期版本中的硬件服务(Hardware Service)和传感器服务(Sensor Service)已经被移除,光线服务和振动服务在核心服务通过系统服务器来启动。系统服务器的实现位于SystemServer.java中。
  2、原生服务
  在Android中,上层的应用是基于Java开发的,但是框架层的服务很多是基于C/C++的,为了说明的方便,在本书中,将基于C/C++的服务称为原生服务。目前,Android提供的和多媒体相关的原生服务主要有渲染管理器(Surface Flinger)、音频管理器(Audio Flinger)、Camera服务(Camera Service)、媒体播放服务(MediaPlayer Service)、音频策略服务(Audio Policy Service)等。
  3、原生库
  Android的原生库主要是基于C\C++实现的一些原生组件,包括C库Bionic、浏览器引擎Webkit、多媒体引擎OpenCORE、SQL数据库SQLite、3D渲染引擎OpenGL ES、位图和字体矢量渲染引擎FreeType、2D图像渲染引擎SGL(Skia Graphics Library)、互联网安全协议SSL和TSL等。
  4、运行时组件
  在Android中,比较重要的Java组件包括Java核心库、Dalvik虚拟机等,两者一起构成了Android的应用环境基础。
  5、硬件抽象层
  在Android中,考虑到并非所有组件都具有标准的Linux内核驱动接口,而且基于GPL V20许可的Linux驱动内核会暴露出专用IP核的细节,另外Android对硬件驱动也有些特殊的需求。为了屏蔽底层实现的细节,实现硬件逻辑和硬件接口的分离,Google定义了一个硬件抽象层的接口HAL(Hardware Abstraction Layer)。
  HAL在为商业开发带来便利的同时,对系统的性能略有阻碍,更多的层次会导致系统变慢,在桌面Ubunut Linux中,为了加快系统的启动速度,就彻底抛弃了HAL的理念。
  6、Linux内核
  Android平台是基于Linxu内核搭建的,Linux内核的优势在于大内存管理、进程管理、基于权限的安全模型、统一的驱动模型、共享库支持、代码开源等。
  Android平台在设计过程中,针对移动终端资源有限的特点,对Linux进行了一定程度的裁剪:砍掉了原生的窗口系统、去除了对GNU Libc的支持(引入了更高效、针对嵌入式优化过的Bionic)、裁剪掉了一些标准Linux工具的部分特性等。
  另外Android针对移动终端的特点还对Linux内核在闹钟(Alarm)、Low Memory Killer、Ashmem、内核调试(Kernel Debugger)、进程间通信(Binder)、日志(Logger)、电源管理(Power Management)等方面做了大量的优化。
  其中Low Memory Killer相对于Linux标准OOM(Out Of Memory)机制更加灵活,它可以根据需要杀死进程来释放需要的内存。Low Memory Killer的实现主要位于aurora\msm\msm drivers/staging/android/lowmemorykiller.c文件中。
  Ashmem为进程间提供大块共享内存,同时为内核提供回收和管理这个内存的机制。 Ashmem的实现位于system\core\libcutils\ashmem-dev.c文件中。
分享到:
评论

相关推荐

    微信ANDROID客户端架构演进及其对开发流程的影响.pdf

    微信ANDROID客户端架构演进及其对开发流程的影响.pdf

    android开发入门与实战(下)

    6.1 Android体系结构介绍 6.1.1 应用程序(Application) 6.1.2 应用程序框架(ApplicationFramework) 6.1.3 库(Libraries)和运行环境(RunTime) 6.2 Android应用程序组成 6.2.1 Activity介绍 6.2.2 ...

    Android十年终极开发经验_助您不走弯路_快速晋级Android架构师

    作者从事Android开发十年有余,走过的弯路不计其数,深感经验总结有助于在Android上快速前行,早日完全掌握Android,达到Android巅峰! 内容主要包括: *Android 开发积累的重要经验 *Android 开发知识体系 *...

    《Google Android开发入门与实战》.pdf

    6.1 android体系结构介绍 57 6.1.1 应用程序(application) 57 6.1.2 应用程序框架(application framework) 58 6.1.3 库(libraries)和运行环境(runtime) 58 6.2 android 应用程序组成 59 6.2.1 ...

    android开发入门与实战(上)

    6.1 Android体系结构介绍 6.1.1 应用程序(Application) 6.1.2 应用程序框架(ApplicationFramework) 6.1.3 库(Libraries)和运行环境(RunTime) 6.2 Android应用程序组成 6.2.1 Activity介绍 6.2.2 ...

    《Android开发精要》范怀宇 PDF

    《Android开发精要》如何才能写出贴近Android设计理念、能够更加高效和可靠运行的Android应用?通过Android的源代码去了解其底层实现细节是最重要的方法之一!然而,Android系统太过于庞大,源代码实现复杂,学习的...

    Google.Android开发入门与实战

    内容简介  《Android开发入门与实战》内容上涵盖了用Android开发的大部分场景,从Android基础介绍、... 最后,祝广大开发者的技术日益精进,早日开始Android开发之旅,赶上移动互联网的第一班车,共赢中国3G未来!

    徐宜生 Android群英传 书签索引

    《Android群英传》共分为13章,讲解了Android体系与系统架构、Android开发工具新接触、Android控件架构与自定义控件详解、ListView使用技巧、Android Scroll分析、Android绘图机制与处理技巧、Android动画机制与使用...

    Android驱动开发权威指南

    第2章Android体系结构 2.1四层空间基本结构 2.1.1 Android系统底层开发 2.1.2应用程序开发 2.2 Android代码目录结构 2.3 Android开发环境搭建 第二篇 勿于浮砂筑高台——Linux驱动基础篇 第3章Linux内核综述 3.1 OS...

    每一位Android开发者应该知道的Android体系架构和开发库

    每一位Android开发者应该知道的Android体系架构和开发库.Android的体系架构鼓励组件重用,允许开发者发布共享Activity、Service并且访问其他应用程序的数据,还可以根据开发者制定的安全限制进行管理。话虽如此,...

    Android群英传.pdf+源码

    《Android群英传》共分为13章,讲解了Android体系与系统架构、Android开发工具新接触、Android控件架构与自定义控件详解、ListView使用技巧、Android Scroll分析、Android绘图机制与处理技巧、Android动画机制与使用...

    Android群英传_徐宜生 完整带目录版

    《Android群英传》共分为13章,讲解了Android体系与系统架构、Android开发工具新接触、Android控件架构与自定义控件详解、ListView使用技巧、Android Scroll分析、Android绘图机制与处理技巧、Android动画机制与使用...

    Android群英传

    《Android群英传》共分为13章,讲解了Android体系与系统架构、Android开发工具新接触、Android控件架构与自定义控件详解、ListView使用技巧、Android Scroll分析、Android绘图机制与处理技巧、Android动画机制与使用...

    Google Android开发入门与实战的代码

    6.1 Android体系结构介绍 57 6.1.1 应用程序(Application) 57 6.1.2 应用程序框架(Application Framework) 58 6.1.3 库(Libraries)和运行环境(RunTime) 58 6.2 Android 应用程序组成 59 6.2.1 ...

    Android群英传_完整高清版

    《Android群英传》共分为13章,讲解了Android体系与系统架构、Android开发工具新接触、Android控件架构与自定义控件详解、ListView使用技巧、Android Scroll分析、Android绘图机制与处理技巧、Android动画机制与使用...

    Android群英传(套装共2册)pdf及配套源代码

    《Android群英传》共分为13章,讲解了Android体系与系统架构、Android开发工具新接触、Android控件架构与自定义控件详解、ListView使用技巧、Android Scroll分析、Android绘图机制与处理技巧、Android动画机制与使用...

    使用Android 系统测量软件开发技术 [武安状 主编] 2014年版

    Android基础知识1.1 Android简介1.1.1 Android简要介绍1.1.2 Android发展历史1.1.3 Androidl技术特点1.1.4.Antlroid开发语言1.2.Antiroidl系统架构1.2.1 Android系统内核1.2.2 Android架构概述1.2.3 Android安全机制...

    《Android群英传》完整扫描版

    2.1 Android开发IDE介绍 14 2.1.1 Android Studio初体验 14 2.1.2 Android Studio配置 15 2.2 Android Studio高级使用技巧 19 2.2.1 更新SDK 20 2.2.2 Android Studio常用界面 21 2.2.3 导入Android Studio工程 23 ...

Global site tag (gtag.js) - Google Analytics