hanfeng1635
本帖最后由 hanfeng1635 于 2021-11-21 08:36 编辑

引言】        
        由于前两天在矿工茶馆上说过,后期要发布关于Android相关的可持续更新的帖子,今天就开始做准备进行第一篇了。
        首先介绍我本地使用的这个笔记软件,它叫cherrytree,是我觉得本地做笔记非常不错的一款软件,极力推荐给大家,有兴趣的可以去试试。画图工具用的是一个process on的在线工具,也很方便。废话不多说,开始Android基础介绍,下面这个目录是暂定的,后续可能随着内容的改变而略微调整。
  【正文
        一. Android的起源和发展
        2003年10月,Andy Rubin等人一起创办了Android公司。05年8月被谷歌收购,此时公司才成立22个月,08年推出Android第一个版本。但在此之后,发展就收到了重重阻挠。乔布斯自始至终觉得Android是抄袭的iPhone,并声称要毁了Android,显然这并没有实现。而本身就基于Linux开发的Android在10年被Linux团队从Linux内核主线中除名。又由于Android的应用都是使用java开发的,甲骨文则针对Android侵犯java知识产权这件事对谷歌提起了诉讼,但是这些并没有扼杀掉Android的发展。
        Android是基于Linux内核开发的一款操作系统,现在被广泛用于手机,平板等移动设备,但是用途不仅限于此。由于基于linux内容,采用了和linux一样的开源制度,所以也让各大厂商和感兴趣的人去使用,去了解,并且不断改善。
        二. Android的整体架构
        Android分为应用层,framework层,native层,hal层(Android 8.0之后), kernel层。当然现在Android广泛用于手机,能够基站通信,所以一般还有个modem层,当然如果没有通信模块,就没有这一层。

        2.1 应用层
        应用层主要是手机上运行的apk, 包括不能卸载的系统应用和可安装可卸载的第三方应用,主要是完成用户的需求实现,进行人机交互。
        2.2 framework层
        是系统API透传层,应用层如何能够调用系统资源,实现各种功能呢?就是通过framework层的各种API。这些API和系统各大服务进行AIDL通信,才能和系统服务进行通信,而系统服务是开机就随着SystemServer进行启动的.
        2.3 native层
        旧的Android版本都存在JNI层,目的是为了从java层调用到C或者C++语言中,但是Android 8.0之后Android做了大更新,出现了hal层,所以目前这一层可以被归并hal层。主要是一些运行时库。
        2.4 hal层
        Android 8.0开始加入,通过HIDL进行接口统一,目的是为了让system分区和vendor分区的调用统一化,更方便版本升级和vendor厂商的适配。
        2.5 kernel层
        主要包含linux内核部分,还有各个硬件厂商继承的driver部分.
        2.6 modem层
        通信模组,由于需要基站通信,所以加入通信硬件,但是这些硬件和CPU是运行在不同的核上,所以这块有专门的库和厂商闭源代码。该模块和kernel的通信大多是通过uart或者I2C的方式进行通信.




PS: 不太会进行这个地方的排版,后期会慢慢学习,尽量排版做的好看点


lry314
关于我在BBS上课比在学校还认真的事~

第一页 上一页 下一页 最后一页