From 38ac4e376d009aea5ba9c1de8f553ecb430296c7 Mon Sep 17 00:00:00 2001
From: Omooo <869759698@qq.com>
Date: Mon, 22 Apr 2019 20:52:02 +0800
Subject: [PATCH] =?UTF-8?q?add=20Android=20=E7=B3=BB=E7=BB=9F=E6=9E=B6?=
=?UTF-8?q?=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 6 ++
blogs/Android/Framework/Android 系统启动.md | 4 +
blogs/Android/Framework/Android 系统架构.md | 62 ++++++++++++++
.../Gradle/Gradle Plugin 之 Transform API.md | 78 ++++++++++++++++++
images/Android/Framework/Android 五层架构.png | Bin 0 -> 101554 bytes
images/Android/Gradle/Transform.png | Bin 0 -> 11844 bytes
6 files changed, 150 insertions(+)
create mode 100644 blogs/Android/Framework/Android 系统启动.md
create mode 100644 blogs/Android/Framework/Android 系统架构.md
create mode 100644 blogs/Android/Gradle/Gradle Plugin 之 Transform API.md
create mode 100644 images/Android/Framework/Android 五层架构.png
create mode 100644 images/Android/Gradle/Transform.png
diff --git a/README.md b/README.md
index cce44a1..c3c030e 100644
--- a/README.md
+++ b/README.md
@@ -76,6 +76,12 @@ Android Notes
[电量优化](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/%E7%94%B5%E9%87%8F%E4%BC%98%E5%8C%96.md)
+
+
+#### Framework
+
+[Android 系统架构]()
+
#### Java 基础
[final 你需要知道的一切](https://github.com/Omooo/Android-Notes/blob/master/blogs/Java/final.md)
diff --git a/blogs/Android/Framework/Android 系统启动.md b/blogs/Android/Framework/Android 系统启动.md
new file mode 100644
index 0000000..0e74ceb
--- /dev/null
+++ b/blogs/Android/Framework/Android 系统启动.md
@@ -0,0 +1,4 @@
+---
+Android 系统启动
+---
+
diff --git a/blogs/Android/Framework/Android 系统架构.md b/blogs/Android/Framework/Android 系统架构.md
new file mode 100644
index 0000000..ac017bb
--- /dev/null
+++ b/blogs/Android/Framework/Android 系统架构.md
@@ -0,0 +1,62 @@
+---
+Android 系统架构
+---
+
+#### 五层架构
+
+##### 概述
+
+Android 底层内核空间以 Linux Kernal 作为基石,上层用户空间由 Native 系统库、虚拟机运行环境、框架层组成,通过系统调用(Syscall)连通系统的内核空间与用户空间。对于用户空间主要采用 C++ 和 Java 代码编写,通过 JNI 打通用户空间的 Java 层 和 Native 层,从而连通整个系统。
+
+直接拿官方的图:
+
+
+
+##### Linux 内核层
+
+Android 平台的基础是 Linux 内核。例如,ART 依靠 Linux 内核来执行底层功能。Linux 内核的安全机制为 Android 提供了相应的保障,也允许设备制造商为内核开发硬件驱动程序。
+
+##### 硬件抽象层 HAL
+
+硬件抽象层提供标准界面,向更高级别的 Java Framework 层显示设备硬件功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如相机和蓝牙模块。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。
+
+##### Native C/C++ 库 && Android Runtime
+
+每个应用都在其自己的进程中运行,都有自己的虚拟机实例。ART 通过执行 DEX 文件可在设备上运行多个虚拟机,DEX 文件是一种专为 Android 设计的字节码格式,经过优化,使用内存很少。ART 主要功能包括:AOT 和 JIT 编译,优化的 GC,以及调试相关的支持。
+
+Native C/C++ 库主要包括 init 孵化来的用户空间的守护进程、HAL 层以及开机动画等。启动 init 进程,是 Linux 系统的用户进程,init 进程是所有用户进程的父进程。
+
+##### Java Framework 层
+
+Zygote 进程:
+
+是由 init 进程通过解析 init.rc 文件后 fork 生成的,Zygote 进程主要包括:
+
+- 加载 ZygoteInit 类,注册 Zygote Socket 服务端套接字
+- 加载虚拟机
+- 提前加载类 preloadClasses
+- 提前加载资源 preloadResources
+
+System Server 进程:
+
+是由 Zygote 进程 fork 而来,System Server 是 Zygote 孵化的第一个进程,System Server 负责启动和管理整个 Java Framework,包括 ActivityManager、WindowManager、PackageManager、PowerManager 等服务。
+
+Media Server 进程:
+
+是由 init 进程 fork 而来,负责启动和管理整个 C++ Framework,包括 AudioFlinger、Camera Service 等服务。
+
+##### System Apps 层
+
+Zygote 进程孵化出第一个 App 进程是 Launcher,这是用户看到的桌面 App;
+
+Zygote 进程还会创建 Browser、Phone、Email 等 App 进程,每个 App 至少运行在一个进程上。
+
+所有的 App 进程都是由 Zygote 进程 fork 生成的。
+
+系统内置的应用程序以及非系统级的应用程序都属于应用层,负责与用户进行直接交互。
+
+#### 参考
+
+[Android 平台架构](https://developer.android.com/guide/platform)
+
+[袁辉辉 --- Android 系统架构开篇]()
\ No newline at end of file
diff --git a/blogs/Android/Gradle/Gradle Plugin 之 Transform API.md b/blogs/Android/Gradle/Gradle Plugin 之 Transform API.md
new file mode 100644
index 0000000..cef71d1
--- /dev/null
+++ b/blogs/Android/Gradle/Gradle Plugin 之 Transform API.md
@@ -0,0 +1,78 @@
+---
+Gradle Plugin 之 Transform API
+---
+
+#### 前言
+
+在前面两篇文章中,我们熟悉了 [Gradle Plugin](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gradle Plugin.md) 的编写,同时也实践了一下,写了一个 [TinyPngPlugin](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gralde Plugin 实践之 TinyPng Plugin.md) ,利用 TinyPng 在打包时压缩 res 下的所有的 png 图片,这是一个非常好的实践,希望你也能掌握。
+
+本篇文章接着来讲解 Transfrom API,Transform 是用来对 class 转 dex 文件之前的 class 文件进行操作。
+
+
+
+这里的 Input 和 Output 都是 class 文件或者 jar 包,因此,我们就可以实现字节码插桩。
+
+#### Transform
+
+使用 Transform 依赖需要首先添加依赖:
+
+```java
+implementation 'com.android.tools.build:gradle:3.3.2'
+```
+
+Transfrom 使用还是相对简单的:
+
+```java
+public class DemoTransform extends Transform {
+
+ /**
+ * Transform 标识名
+ * 比如我在 app module 下依赖了这个 Plugin
+ * 那么在 app/build/intermediates/transforms/
+ * 下,就能看到我们的自定义 DemoTransform
+ */
+ @Override
+ public String getName() {
+ return "DemoTransform";
+ }
+
+ /**
+ * 设置文件输入类型
+ * 类型在 TransformManager 下有定义
+ * 这里我们获取 class 文件类型
+ */
+ @Override
+ public Set getInputTypes() {
+ return TransformManager.CONTENT_CLASS;
+ }
+
+ /**
+ * 设置文件所属域
+ * 同样在 TransformManager 下有定义
+ * 这里指定为当前工程
+ */
+ @Override
+ public Set super QualifiedContent.Scope> getScopes() {
+ return TransformManager.SCOPE_FULL_PROJECT;
+ }
+
+ /**
+ * 是否支持增量编译
+ */
+ @Override
+ public boolean isIncremental() {
+ return false;
+ }
+
+ @Override
+ public void transform(TransformInvocation transformInvocation) throws TransformException, InterruptedException, IOException {
+ super.transform(transformInvocation);
+ }
+}
+```
+
+这里最重要的方法就是 transform 方法。
+
+#### ASM
+
+ASM 是一个字节码操作库。
\ No newline at end of file
diff --git a/images/Android/Framework/Android 五层架构.png b/images/Android/Framework/Android 五层架构.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ce5f20e3445e090d35d6259b291a026a5d9956f
GIT binary patch
literal 101554
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
_n`#n8pK;_z`
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