Android 系统及相关开发工具简介 | 青训营笔记
这是我参与「第四届青训营 」笔记创作活动的第1天。
本节课主要内容
这节课主要介绍了客户端开发中我们扮演的角色、Android系统及其相关开发工具Android Studio和Git等等,本篇笔记主要对Android系统、Android Studio的安装和相关Git命令进行总结。
Android系统
Android系统架构
系统应用层
这一层是App所在的最上层,系统自带的App和自己开发的App都在这一层。一些系统的App提供的功能可以直接调用,例如打电话、发短信等,自己开发的App也可以给其他产品提供功能,例如拍照、编辑图像等等。
Java API层
这层是Android Framework提供给开发者的接口,可以基于这些接口打造自己的App。后续的数据开发和UI开发都会用到这些接口。
原生C/C++层和Android Runtime
这一层包括C/C++程序库和运行时库Runtime。
许多核心 Android 系统组件和服务(例如 ART 和 HAL)是通过C 和 C++ 编写的。Android 平台提供 Java 框架 API 来供用户实现一些功能。例如,我们可以通过 Android 框架的 Java OpenGL API 访问 OpenGL ES,以支持在应用中绘制和操作 2D 和 3D 图形。
Runtime是运行时的虚拟机,从 Android 4.4 开始,Google 开发者引进了新的 Android 运行环境 ART(Android Runtime)。Core Libraries是核心的运行时库,可提供Java API框架使用的java编程语言大部分功能。
硬件抽象层
这层主要提供硬件组件的封装,包括相机、传感器和蓝牙等。当框架API要求访问设备硬件时,Android系统将为该硬件组件加载库模块。例如我们使用抖音App拍摄短视频时,系统会请求打开摄像头,这时系统会为相机组件加载模块。
Linux内核
Android平台的基础是Linux内核,Linux内核主要负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。
APK的构成
完成客户端的开发后,编译的代码和资源最终会打包成一个.apk文件装在用户的手机上。APK主要由以下五部分构成:
- AndroidManifest.xml:声明App中的四大组件以及权限等
- classes.dex:所有编写的Java、Kotlin等代码
- res文件夹:资源文件夹,包括图片、颜色、字符串,以及搭建的XML布局文件
- lib文件夹:主要存放C/C++代码编译成的so文件
- META-INF文件夹:存在签名和证书,用于校验和安全
开发工具
Andorid Studio
Android Studio是Android开发用的IDE,下载和配置可以参考官方文档:developer.android.google.cn/studio/inst…。
安装好和配置好IDE后,还需要创建AVD,具体步骤可以参考下面的链接:
developer.android.google.cn/studio/run/…
Android Studio最详细安装及使用教程 - 知乎 (zhihu.com)
注意在创建AVD时,在下面这个界面中,如果是第一次创建,需要先点击左侧列表中的Download进行下载,然后才能点击Next:
Git
git的工作/管理流程如下图:
workspace:工作区,本地存放项目文件的地方
Index:暂存区,这里临时保存你的改动。暂存区一般存放在 .git 目录下的 index 文件中(.git/index),所以暂存区有时也叫作索引。
Repository:本地仓库,这个目录中的所有文件都被git管理,做的所有操作都会被记录,包括:增加、删除、修改文件等。
Remote:远程仓库,是指在网络中中的你的项目的版本库,我们可以通过git命令将本地仓库的内容添加到远程仓库中。
git的常用命令如下图所示:
引用参考
Android系统架构的部分内容参考:
Git的部分内容参考: