认识Android系统 | 青训营笔记

92 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第2天

认识Android系统

安卓平台架构图

img

系统应用层

这一层是各App所在的最上层,所有的 app都在这一层。一些系统的App提供的功能我们可以直接调用,比如打电话、发短信等,我们自己开发的app也可以给其他产品提供类似的调用功能。

Java ***API层

这一层主要是提供给开发者的接口,我们可以基于这些接口打造各自的app

技术栈:基础交付,页面-逻辑-页面,一些多媒体相关需求也有成熟的API可以直接使用

原生C/C++层

一些核心的系统服务和组件时C/C++写的,我们可以用安卓SDK直接从原生代码访问某些原生平台库,从这一层往下,一些多样化的需求就可以被满足的很好,比如音视频编解码,安全,质量、体验等。

Android Runtime

这一层会涉及虚拟机知识,这层会把DEX字节码进行编译,优化执行效率,在这里,我们可以做一些体验相关优化,让代码更高效,同时,对于技术的要求也更高一些

硬件抽象层(HAL)

主要提供硬件组建的封装,包括传感器和蓝牙等。当框架API要求访问设备硬件时,Android系统将为该硬件组件加载库模块

Linux内核

Android平台的基础时Linux内核,例如,Android Runtime(ART)依靠Linux内核来执行底层功能,例如线程和内存管理

使用Linux内核 可让Android利用主要安全功能,并且允许设备制造商为著名的内核开发硬件驱动程序

APK的构成

img

  • AndroidManifest.xml :生命app中四大组件,以及权限等
  • classes.dex :所有编写的java、
  • res文件夹 :资源文件夹,包括图片、颜色、字符串,以及搭建的XML布局文件
  • META-INF文件夹:存在签名和证书,用于校验和安全
  • lib文件夹:主要是存放C/C++代码编译成的so文件

认识工具

Android开发用的IDE是Android Studio

认识git

img

git是我们进行版本更新常用的一款工具,以及相对应的github代码仓库更是非常好用的代码托管平台,可以通过查一些资料进行学习。

\