Android 系统架构了解学习

Android 系统架构,真心不敢说讲解或者解释。只能说学习了解。

今天,我只是简单的学习了解一些非常基本和简单的介绍。

说到Android,大多数人的理解就是app。但是,Android并不是app,app只是Android的一个很小的部分。所以,看到很多网文说,Android快死了,要被h5干掉了的时候,真的觉得可笑。h5只会干掉那些只会写界面的Android程序员。

ok,话不多说,开始今天的学习吧。

Android,做Android的同学都是知道的,Android是用java写的(准确来说是用javaAPI,虽然现在用kotlin了,但是,依然调用的是javaAPI),但是,调用javaAPI之后,又干了什么?可能有些同学就不知道了。就像是,tv.settext("内容"),我们知道界面会出现“内容”,但我们不知道为什么会出现内容,或者说,为什么调用这句话,就会出现内容。其实,我也不是很清楚,我只能用自己的理解,参考Android官方文档,去解释。

首先,引入Android系统架构的概念:Android系统架构分为五层,从上到下依次是应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层。

这里,我盗图一下:如下图,我们的app其实就是在第一层。

当我们的app调用某个api的时候,其实是调用framework层的某个指令(方法)

,framewoek层对应的指令,又会向下传递(调用),

调用Native层(系统运行库层,这一层其实就是虚拟机层,这一层会将javaAPI“转换”为字节码,再将字节码“转换”为机器码)

然后再将机器码向下传递,给硬件抽象层(这一层,其实就是硬件接口层,是一层抽象)

最终的实现,其实是Linux内核层,这一层才能真正的调用硬件,让硬件干事情(当然,这里就是我的盲区了)

ok,最后总结一下;

应用层:系统内置的应用程序以及非系统级的应用程序都是属于应用层,主要负责与用户进行直接交互,比如计算器,qq等app

应用框架层:javaAPI,就是我们写app时,调用的那些自带的api,activity.finish()

系统运行库层: C/C++程序库比如多媒体播放器,Android运行时库 ,其实就是ART虚拟机(5.0系统之后,Dalvik虚拟机被ART取代,其实可以理解为JVM)

硬件抽象层(HAL):硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化,就是将控制硬件的动作放在硬件抽象层中。

Linux 内核:Android 的核心系统服务基于Linux 内核,在此基础上添加了部分Android专用的驱动。系统的安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。

下一篇,我想详细学习了解一下jvm虚拟机中,类加载过程。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,259评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,098评论 2 59
  • 转载请注明出处(//www.greatytc.com/p/5f538820e370),您的打赏是小编继续...
    福later阅读 28,547评论 8 73
  • 版权声明:本文为作者原创,转载必须注明出处。转载请注明出处://www.greatytc.com/p/c...
    Stan_Z阅读 4,702评论 3 15
  • 阳光下,雪反射出刺眼的光, 打破了冰雪世界童话般的美好。雪地上发出“吱吱…”的响声是那般的清脆,回眸望去,睫...
    听雨yl阅读 322评论 0 1