美文网首页
进阶解密1 | Android系统结构

进阶解密1 | Android系统结构

作者: 北国雪WRG | 来源:发表于2019-03-31 17:21 被阅读0次

    让我们将事前的忧虑,换为事前的思考和计划吧!

    整整一个三月,投了很多家,面试机会很少,目前还是0 实习Offer,要加油(ง •_•)ง

    android 系统架构

    Android系统分为五层,从上到下依次是:应用层,应用框架层,系统运行库层,硬件抽象层,Linux内核层

    系统架构

    应用层 System Apps

    手机上自带的软件,比如相机,音乐播放器等,我们可以在代码中去调用。

    应用框架层 Java API Framework

    四大组件,Notification,Resource,Window等,平常用的比较多的。

    系统运行库层

    1. C/C++程序库,OpenGL ES 3D绘图函数库,SQLite数据库引擎,SSL安全套接层等
    2. Android运行时库,
      • 核心库:提供Java语言核心库大多数功能,开发者可以使用Java语言来编写Android应用。
      • ART/DVM:允许在有限的内存中运行多个虚拟机实例,每个实例作为一个独立的Linux进程。独立的进程保证了系统的稳定性。

    ART和DVM区别:DVM每次运行,字节码都需要即时编译器Just In Time转化为机器码。在ART中,Android应用的时候,会执行一次预编译Ahead of Time,将字节码预先存储到本地。

    这就导致了:同样的配置Android5.0 安装应用的速度比4.X慢,但是打开应用的速度快。

    硬件抽象层

    对蓝牙,照相机等硬件的抽象化,隐藏具体硬件的API,统一为一致的API,为上层提供支持。

    Linux内核层

    基于Linux系统,增加了Android专用的驱动,系统安全性,内存管理,进程管理等。

    Android 系统源码目录

    目录结构:/

    • Art : ART运行环境
    • bionic:C库
    • bootable:启动相关代码
    • build:编译规则
    • dalvik:Dalvik运行环境
    • device:设备相关配置
    • frameworks:应用程序框架,由Java和C++编写
    • hardware:硬件抽象
    • sdk:sdk
    • packages:应用程序包
    • tools:工具文件
    • ... 略

    应用层部分/packages/

    • apps 核心应用程序
    • experimental 第三方应用程序
    • inputmethods 输入法目录
    • providers 内容提供者目录
    • screensavers 屏幕保护
    • service 通信服务
    • wallpapers 壁纸

    应用框架层/frameworks/

    • api 定义API
    • core 核心库
    • docs 文档
    • include 头文件
    • libs 库
    • media 多媒体相关库
    • nfc-extras NFC相关
    • opengl 2D/3D图形API
    • sax XML接收器
    • telephony 电话通信管理
    • vr vr相关
    • cmds 重要指令
    • data 字体和声音数据
    • keystore 数字签名证书相关
    • location 地理位置
    • native 本地库
    • obex 蓝牙
    • packages 设置TTS,VPN
    • services 系统服务
    • wifi 无线网络

    /hardware/

    手机厂商改动最大的区域,更具不同的硬件,修改以保证向上层提供统一的Api。

    相关文章

      网友评论

          本文标题:进阶解密1 | Android系统结构

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