美文网首页
【Android】【系统架构】

【Android】【系统架构】

作者: 徐乙_ | 来源:发表于2019-08-13 23:34 被阅读0次

    架构

    image.png image.png

    Framework层暴露给应用层的能力

    1. Activity Manager:管理各个应用生命周期,以及常用的导航回退功能
    2. Location Manager
    3. Package Manager:管理所有安装的App
    4. Notification Manager
    5. Resource Manager
    6. Telephony Manager
    7. Window Manager
    8. Content Provider
    9. View System:UI绘制系统
      以上只是暴露的API,其实现非常复杂,Framework的很多一部分还是C实现的

    运行时

    C支持库

    1. OpenGL ES:3D渲染
    2. Libc:嵌入式Linux专用C支持库
    3. Media Framework
    4. SQLite
    5. SGL:2D渲染
    6. SSL
    7. FreeType:字体引擎

    运行时库 = Java核心库能力 + 虚拟机

    5.0以前是Dalvik,5.0后是ART
    Dalvik区别于JVM,专门为移动端定制,每个进程都是一个Dalvik虚拟机
    Dalvik的应用每次运行时,都通过JIT,把字节码转换为机器码
    ART的应用,在安装时,用AOT,一次把所有字节码转换为机器码
    前者运行慢,后者安装慢
    在后来的版本,出现了混合编译,各取所长

    硬件抽象

    这一层是操作系统内核、硬件电路之间的接口层
    抽象了硬件
    一来屏蔽不同设备上硬件的差异
    而来保护硬件厂商的知识产权

    Linux内核

    在Linux内核的基础上,定制了移动端的各个驱动
    Android系统的安全、内存管理、进程管理、网络协议栈、驱动模型都依赖这一层

    源码根目录

    art
    bionic:系统C库
    bootable:启动引导相关代码
    build:系统编译规则、generic等基础开发包配置
    cts:兼容性测试套件标准
    dalvik
    developers
    development
    device
    docs:
    external:开源模组
    frameworks
    hardware
    libcore
    libnativehelper:实现JNI库的基础
    out
    pdk:本地开发套件
    platform_testing
    prebuilts:X86和ARM架构下预编译的一些资源
    sdk
    packages:应用层
    system
    toolchain
    tools
    makefile

    应用层目录

    apps
    experimental:三方程序
    inputmethods:输入法
    providers
    screensavers:屏幕保护
    services
    wallpapers

    应用框架层目录

    api
    core
    docs
    include
    libs
    media
    nfc-extras:与NFC相关
    opengl
    sax
    telephony
    tests
    vr
    cmds
    data:字体、声音等数据文件
    graphics
    keystore
    location
    native
    obex:蓝牙
    packages:设置、TTS、VPN等
    services
    test-runner
    tools
    wifi

    C/C++程序库目录

    bionic:Google开发的系统C库,以BSD许可形式开源
    frameworks/av/media
    frameworks/native/opengl
    frameworks/native/services/surfaceflinger
    external/splite
    手机厂商最倾向于改动art/和hardware/目录

    收获

    阅读并理解抽象的Android系统架构图
    看似无用,实则有用
    看似简单,实则困难
    随着对Android理解的加深,对Android架构的认识也会发生变化
    建议在不同的学习阶段,都要温故此图,并得到更新的理解

    后记

    学习自
    《Android进阶解密》

    有什么写得错误、让人费解或遗漏的地方,希望可以不吝赐教,我会马上更改

    相关文章

      网友评论

          本文标题:【Android】【系统架构】

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