美文网首页Android高级进阶
2019-08-12-Android系统架构简单介绍

2019-08-12-Android系统架构简单介绍

作者: 王元 | 来源:发表于2019-08-12 22:55 被阅读0次

    Android系统架构

    类别 包含的基本内容 更多内容
    应用层 Email,Calendar,Camera,开发者开发的App等等
    应用框架层(Java Framework API) Content Provider,View System Activity,location,Package,Notification,Resource,TelePhony,Window
    系统运行库(C/C++libs和Android 运行时) Sqlite,LibC,MediaFramework,OpenGL Android RunTime, ART,Core Libs
    硬件抽象层(HAL) Audio,BlueTooth,Camera,Sensors
    Linux内核 Drivers,Power Manager Aodio,Bindler(IPC),Display,KeyPad,BlueTooth,Camera,ShareMemory,USB,WIFI

    Android的系统架构分为五层,分别是应用层(system app),应用框架层(java api framework),运行时库(runtime libs 和 C/C++ libs),硬件抽象层(HAL),linux内核

    1,system app

    内置的应用和开发者开发的应用都属于应用层。负责和用户进行交互,通常由Java来开发
    2,java api framework

    为开发者提供开发所需要的API。我们平常开发应用调用的都是这一层的API,当然也包括系统应用

    名称 功能描述
    Activity Manager(活动管理器) 管理各个应用程序的生命周期,以及常用的导航会退功能
    Location Manager(位置管理器) 提供地理位置及定位功能
    Package Manager(包管理器) 管理所有安装在Android系统上的应用程序
    Notification Manager(通知管理器) 使得应用程序可以在状态栏中显示自定义的提示信息
    Resource Manager(资源管理器) 提供应用程序使用的各种非代码资源,如本地化字符串,图片,布局文件,颜色文件等
    Telephony Manager(电话管理器) 管理所有的移动设备功能
    Window Manager 管理所有开启的窗口程序
    Content Provider 使得不同应用程序之间可以共享数据
    View System(视图系统) 构建应用程序的基本组件

    3,系统运行库(native)

    从最开始的表格可以看出,系统运行库分为俩个部分,分别是C/C++程序库和Android RunTime库

    • C/C++程序库 能够被Android系统的各个组件所使用,并通过应用程序框架为开发者提供服务,
    名称 功能描述
    Open GL ES 3D绘图函数库
    Libc 从BSD继承来的标准C系统函数库,专门为嵌入式Linux的设备定制
    Media Framework 多媒体裤,支持常用的音频和视频的录制和回放
    Sqlite 轻型的关系型数据库引擎
    SGL 底层的2D图像渲染引擎
    SSL 安全套接层,是一种网络通信提供的安全及数据完整性的安全协议
    FreeType 可移植的字体引擎,它提供统一的接口来访问多种字体格式文件
    • Android运行时库

    运行时库又分为核心库和ART(Android 5.0之后Dalvik虚拟机被ART代替)虚拟机。
    核心库提供了Java语言核心库的大多数功能,这样开发者可以使用Java语言编写应用程序

    ART和Dalvik VM都是专门为移动设备定制的虚拟机。它们允许在有限的内存里运行多个虚拟机实例,并且每个Dalvik应用都作为一个单独的Linux进程执行,独立的进程可以防止在虚拟机奔溃的时候,所有的应用程序都被关闭

    ART虚拟机效率高的原因是每次安装应用程序的时候,AOT编译器都会进行一次预编译,将字节码编译成机器码并保存在本地,这样运行程序的时候就不需要执行编译,运行效率也大大提高

    4,硬件抽象层(HAL)

    隐藏特定厂商硬件接口细节,为操作系统提供虚拟硬件平台,使其具有与硬件无关性,为操作系统提供虚拟的硬件平台

    5,Linux 内核

    Android的核心服务基于Linux内核,在此基础上添加了部分Android专用的驱动,系统的安全性,内存管理,进程管理,网络协议栈和驱动模型等都依赖于内核

    相关文章

      网友评论

        本文标题:2019-08-12-Android系统架构简单介绍

        本文链接:https://www.haomeiwen.com/subject/zdfmjctx.html