当前位置: 首页 > news >正文

Android系统:系统架构

文章目录

    • 分层设计
    • 分块设计
    • 总结

分层设计

自上而下分为:应用层、应用架构层、系统运行层、硬件抽象层、Linux内核层

应用层

封装一系列系统App

应用架构层(Framework)

封装一系列运行App需要的Java框架

提供App开发需要的API

系统运行层(Libraries)

封装一系列C/C++库,包含C系统函数库、媒体库、2D和3D库等,为上层提供API

封装Android核心库,提供Java语言核心库所使用的绝大部分功能和Android 的一些核心API,如 android.os、android.net、android.media等

封装虚拟机,负责运行Android应用程序

Android核心库和虚拟机组成Android运行时

硬件抽象层(HAL)

封装一系列库模块,例如相机模块、蓝牙模块等

为上层提供API访问硬件设备

Linux内核层(Linux Kernel)

封装硬件的驱动程序、网络、电源、系统安全以及内存管理等功能

分块设计

层内分出不同的模块

应用框架层(framework)

提供一系列Manager,例如ActivityManager、WindowManager、PackageManager、TelephonyManager、ResourceManager、NotificationManager、LocationManager

系统运行库层(Libraries)

提供一系列程序库,包含WebKit、OpenMAX AL、Libc、Media Framework等

硬件抽象层(HAL)

提供一系列硬件相关模块,包含Audio、Bluetooth、Camera、Sensors等

Linux内核层(Linux Kernel)

提供一系列硬件驱动,包含Audio、Binder(IPC)、Display、Keypad、Bluetooth、Camera、Shared Memory、USB、WIFI

总结

Android的系统结构的设计混合了分层设计和分块设计

相关文章:

  • Mysql 架构
  • GS-SLAM论文阅读笔记--MM3DGS SLAM
  • vue打包后的dist文件如何启动测试
  • 苹果电脑系统重磅更新——macOS Sequoia 15 系统 新功能一 览
  • 2024年软考——信息系统监理师30天冲刺学习指南!!!
  • 2024年自动化、电气控制系统与设备国际学术会议(AECSE 2024)
  • 半导体制造过程中设备通信的高级概述
  • 无人机飞手入伍当兵技术优势分析
  • 【达梦数据库】临时表的使用测试
  • 使用Plotly绘制交互式图表:从入门到精通
  • LabVIEW界面输入值设为默认值
  • 【Python报错已解决】AttributeError: ‘tuple‘ object has no attribute ‘log_softmax‘
  • Voxel mamba :基于Mamba的3D目标检测算法解析
  • vue2+elementUI实现handleSelectionChange批量删除-前后端
  • 基于物联网技术的智能运动检测仪设计(微信小程序)(230)
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • canvas 五子棋游戏
  • codis proxy处理流程
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java 23种设计模式 之单例模式 7种实现方式
  • jdbc就是这么简单
  • oldjun 检测网站的经验
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • Vim 折腾记
  • 订阅Forge Viewer所有的事件
  • 搞机器学习要哪些技能
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 我看到的前端
  • 移动端解决方案学习记录
  • 智能合约Solidity教程-事件和日志(一)
  • Java数据解析之JSON
  • ​MySQL主从复制一致性检测
  • ‌移动管家手机智能控制汽车系统
  • #define、const、typedef的差别
  • #QT(QCharts绘制曲线)
  • #QT(TCP网络编程-服务端)
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (蓝桥杯每日一题)love
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四)stm32之通信协议
  • (五)MySQL的备份及恢复
  • (一)基于IDEA的JAVA基础12
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转)项目管理杂谈-我所期望的新人
  • .chm格式文件如何阅读
  • .FileZilla的使用和主动模式被动模式介绍