首页 > 系统相关 >Linux: Android系统

Linux: Android系统

时间:2023-09-19 18:45:27浏览次数:75  
标签:厂商 Java App 系统 Framework Linux Android

Android系统架构

Android 是谷歌开发的一款基于 Linux 内核的操作系统。系统架构分为五层,从下到上依次是Linux内核层、硬件抽象层、系统运行库层、应用框架层和应用层。

通俗点从下往上依次是:

  • Linux kernel 层,很大一部分内容是驱动程序
  • HAL 层,对下封装驱动硬件操作,对上向 App 提供统一稳定的驱动操作接口
  • Native层,主要是 C/C++ 库以及 Java 虚拟机
  • Java 层,主要是 Java 库,系统服务
  • App 层,一些系统和三方APP

我们常说的 framework 大多数指的是中间三层的开发,即 Java层、Native层、HAL层

以 Android 系统启动过程为主线,以进程的视角来学习 Android 系统全貌,更为清晰明了

Android 系统启动过程由上图从下往上的一个过程是由 Boot Loader 引导开机,然后依次进入 -> Kernel -> Native -> Framework -> App

  • kernel 层主要向上提供了驱动,Hal 层加以封装后,向上提供驱动程序功能
  • Native 层通过 init 进程启动了很多守护进程用于支持系统的运转
  • Java 层通过 Zygote 孵化了 Java 守护进程,用于支持系统的运行和 App 的运行
作者:Android小瓜
链接:https://www.zhihu.com/question/48175796/answer/2905633138
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Framework 开发做什么

谷歌几乎每年都会发布最新的 AOSP 原生代码,AOSP 原生代码只支持极少数几款手机,比如 Pixel。

芯片厂商根据自己的芯片的特点修改 AOSP ,让其可以在自己芯片上跑起来

方案厂商根据自己开发的设备特点(主要是外设 如wifi 蓝牙 传感器等),修改芯片厂提供的源码,使得软件能在方案厂商的开发板上跑起来

大部分做产品的厂商拿到的就是芯片厂商提供的开发板硬件和系统源码,产品厂商主要工作就是:

  • 添加自己的硬件、驱动、HAL和硬件系统服务,硬件的提供商可能会提供相应软件支持
  • 定制系统 App,比如 Launcher Setting System UI Message Camera 等
  • 开发厂商自己的系统 App,比如 音视频播放器 应用商店 主题 红外遥控
  • 个性化功能开发,比如软件多开,手机分身,语音变声,录屏,双卡双待等等
  • 集成一些常用三方应用,比如 微信 淘宝 爱奇艺等
  • 系统稳定性 性能 安全相关优化
  • 系统裁剪

方案厂商提供的系统源码并不完美,App 中很多的 Bug 可能是 Framework 层导致的,产品在上市前需要针对系统 App 和热门三方 App 及游戏进行测试,解决掉 Framework 中存在的 bug。Framework 开发的主要工作就是解决这些 bug协助系统 App 的开发,同时可能要做一些新特性开发系统性能安全相关的工作。

Framework 中无穷无尽的 bug 也不能怪芯片厂商和方案厂商,因为 Android 打娘胎里出来就有数不清的 bug,在这里可以查看 aosp 相关的 bug 信息。

 

标签:厂商,Java,App,系统,Framework,Linux,Android
From: https://www.cnblogs.com/lzc978/p/17715319.html

相关文章

  • 探索相芯Animoji:与动漫滤镜一起开启独特的虚拟表情世界(Android)
    相芯SDK中的Animoji特效通过结合人像分割、面部识别和虚拟角色技术,为用户提供了丰富多样的动态特效体验。使用任意手机摄像头,即可实时驱动Xmoji。支持含面部、舌头、眼球在内的56种基础表情,可融合成千上万表情形态,让虚拟卡通形象实时跟随人脸做出活灵活现的表情。相芯SDK还提供了丰......
  • Linux 最近常用命令汇总
    vi文本替换#全文替换:%s/old/new/g#替换全文第一个匹配项:%s/old/new/#替换当前行所有匹配项:s/old/new/g#替换当前行第一个匹配项:s/old/new/使用crontab配置定时运行脚本#查看所有配置任务crontab-l#修改配置crontab-e除了必要的注释说明文字一......
  • Linux新建免密连接
    1.生成新的密钥对:打开终端窗口,在命令行中输入以下命令:ssh-keygen-trsa-b4096-f~/.ssh/new_key这将生成一个新的4096位的RSA密钥对,并将私钥保存在/.ssh/new_key文件中,公钥保存在/.ssh/new_key.pub文件中。您可以选择不同的文件名和路径。2.将公钥复制到目标主机:使用s......
  • 超市收银系统有什么用 怎么选择超市收银系统
    超市收银系统是帮助超市经营的信息化系统,包括硬件和软件两方面,使用超市收银系统有着记账方便、日常管理轻松、提高服务质量、提高工作效率等作用,超市收银系统的选择需要考虑操作简单方便、聚合多种支付方式、支持统计数据,管理营销活动等方面,下面让锦澄收银软件小编带大家一起来了解......
  • 天视通等小众冷门摄像机接入安防监控系统EasyCVR平台的常见兼容问题及解决方法
    众所周知,视频监控系统EasyCVR安防视频综合管理平台支持多类型设备、多协议方式接入,包括市场主流标准协议国标GB28181、RTMP、RTSP/Onvif协议等,以及厂家私有协议,如海康SDK、大华SDK、海康Ehome等。平台可兼容市面上绝大多数品牌的视频源设备,对外可分发RTSP、RTMP、FLV、HLS、WebRTC......
  • 龙蜥系统:二、网卡配置
    一、首先查看虚拟机虚拟网络配置:编辑--》虚拟网络编辑器--》查看配置的IP段、子网掩码、网关等信息; 二、通过dhcp自动获取的地址,先CRT连接机器,然后再配置静态ip1.配置文件的路径:cd/etc/sysconfig/network-scripts/2.修改网卡配置:vimifcfg-ens160TYPE=EthernetPROXY_METH......
  • AI系统论文:DSP。
    tag:AIcategory:系统论文又要读论文啦!!目的:联合利用多个GPU来训练图神经网络。方式:用一种特殊的数据布局来利用GPU之间的NVLink连接,并且GPU(显存)中存放了图形拓扑和popularnodefeatures。措施:引入集体采样源语:collectivesamplingprimitive设计了基于消费者生产者......
  • 四千行代码写的桌面操作系统GrapeOS完整代码开源了
    简介学习操作系统原理最好的方法是自己写一个简单的操作系统。GrapeOS是一个非常简单的x86多任务桌面操作系统,源代码只有四千行,非常适合用来学习操作系统原理。源码地址:https://gitee.com/jackchengyujia/grapeos视频教程地址:https://www.bilibili.com/video/BV1nv4y1b7Nj/课......
  • 视频监控系统/视频汇聚平台EasyCVR平台页面展示优化
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的......
  • sass 系统性学习
    学习随笔(Sass)该随笔是根据b站小满zs的Vue3+vite+Ts+pinia+实战+源码+electron的视频学习写的,Vue3+vite+Ts+pinia+实战+源码+electronbem格式类名中--代表,这个类的样式一样,仅颜色不一样。类名中__代表,这个类是上个类的子类。......