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

Android开发之Android体系架构介绍

 
阅读更多

Android开发之Android体系架构介绍
8小时前
   在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框架体系架构是Android开发中的核心内容,涵盖了UI晋升、组件内核、IPC(Inter-Process Communication,进程间通信)以及数据持久化等关键知识点。本文将详细介绍这些知识,以此来深入理解Android平台的运作...

    Apple_IOS、Android、WebOS系统体系架构对比

    "Apple_IOS、Android、WebOS系统体系架构对比" 本文从系统架构角度对比分析了 Apple_IOS、Android、WebOS 三大移动设备操作系统。三大系统都采用 Unix 或 Linux 内核,但在具体实现上存在很大的差异。 WebOS 系统...

    基于android开发的点餐系统

    【基于Android开发的点餐系统】是一个以Android Studio和MyEclipse 10为开发工具,结合MySQL数据库构建的应用程序,旨在实现一个简单的点餐流程,适用于初学者学习和实践。这个系统分为客户端和服务器端两个主要部分...

    Android开发教学大纲.doc

    ### Android开发教学大纲知识点解析 #### 一、课程地位与教学目标 1. **课程定位与联系**: - **定位**:本课程是计算机科学与工程学院的专业方向限选课程,面向计算机科学与技术、软件工程、网络工程等相关专业...

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

    ### 微信ANDROID客户端架构演进及其对开发流程的影响 #### 概述 随着移动互联网技术的迅猛发展,微信作为一款国民级应用,其ANDROID客户端的架构经历了多次重大的变革与优化。这些变革不仅反映了软件工程实践中...

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

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

    Android开发15分钟扫盲.pdf

    通过以上介绍,我们可以了解到Android开发的基础知识和技术架构,以及如何搭建开发环境和使用各种工具。这对于初学者来说是非常重要的第一步。随着不断学习和实践,开发者将能够开发出更多有趣且实用的应用程序。

    李兴华Android 开发实战经典-PPT课件

    这份PPT课件通过深入讲解这些关键知识点,将帮助开发者逐步建立起完整的Android开发体系,无论是对初学者还是有经验的开发者来说,都是一个宝贵的参考资料。通过不断学习和实践,你将在Android开发的道路上不断前进...

    Android开发入门之路(初学者必读).zip

    在Android开发领域,初学者经常会面临许多挑战,如理解Android体系结构、学习Java或Kotlin编程语言、掌握Android Studio的使用以及布局设计等。"Android开发入门之路(初学者必读).zip"这个压缩包可能包含了一系列...

    《Android开发精要》范怀宇 PDF

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

    Android开发之旅(2):android架构宣贯.pdf

    在Android开发领域,理解其架构是至关重要的,因为它决定了应用程序的运行方式和系统资源的管理。在本篇中,我们将深入探讨Android系统的五个主要组成部分:Linux Kernel、Android Runtime、Libraries、Application ...

    精通Android游戏开发

    - **Android SDK**:包含了开发Android应用所需的库文件、文档和其他工具。 - **NDK (Native Development Kit)**:用于开发本地代码的工具包,能够使开发者使用C或C++来编写高性能的应用程序部分。 ##### 1.3 建立...

    android开发培训内容

    这些层次构建了Android开发的完整知识体系,对于想要深入理解并成为一名高素质Android开发者的学员至关重要。 首先,底层系统开发涉及到Linux内核驱动开发与Android本地框架中的硬件抽象层(HAL)开发。学习这一层次...

    Android技术体系结构

    Android 技术体系结构是 Android 操作系统的核心架构,它由四个主要部分组成:Linux Kernel、Android Runtime、Libraries 和 Applications。 一、Linux Kernel Linux Kernel 是 Android 操作系统的底层支撑系统...

    Android开发从入门到精通(随书光盘)【源码】第9章

    1. **Android基础**:第9章可能涵盖了Android的基本概念,包括Android系统架构、Activity生命周期、Intent机制等,这些都是Android开发的基础。 2. **UI设计**:Android应用的用户界面设计是开发者必须掌握的部分,...

    Android安全架构深究

    总的来说,《Android安全架构深究》将带领读者深入了解Android的多层次安全防护,学习如何开发更安全的应用,以及如何在日常使用中保护个人信息。无论是开发者希望提升应用的安全性,还是安全专家研究移动安全,这...

    android整体架构ppt

    总结来说,Android的整体架构是一个精心设计的多层次体系,它在Linux内核基础上进行优化,以满足移动设备的特殊需求和提供丰富的应用开发环境。Android内核与通用Linux内核的主要区别在于针对移动设备的定制化改进,...

    [Android开发从入门到精通].扶松柏.扫描版.pdf

    从给定的文件信息来看,这是一本名为《Android...这些知识点相互关联,共同构成了Android开发的完整体系。对于初学者而言,系统地学习和实践这些知识,将有助于快速提升自己的开发技能,成为Android领域的专业开发者。

Global site tag (gtag.js) - Google Analytics