Skip to content

Commit 67cfc12

Browse files
committed
文档完善
1 parent 39c2613 commit 67cfc12

File tree

6 files changed

+122
-23
lines changed

6 files changed

+122
-23
lines changed

README.md

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,39 @@
1-
<img src="https://blog.bihe0832.com/public/img/androidappfactory.png" />
2-
31
[ ![Github](https://img.shields.io/badge/bihe0832-AndroidAppFactory-brightgreen?style=social) ](https://github.com/bihe0832/AndroidAppFactory)
42
[ ![Github](https://img.shields.io/github/last-commit/bihe0832/AndroidAppFactory) ](https://github.com/bihe0832/AndroidAppFactory)
53
[ ![Github](https://img.shields.io/github/stars/bihe0832/AndroidAppFactory?style=social) ](https://github.com/bihe0832/AndroidAppFactory)
64
[ ![Github](https://img.shields.io/bitbucket/issues/bihe0832/AndroidAppFactory) ](https://github.com/bihe0832/AndroidAppFactory)
75
[ ![Download](https://api.bintray.com/packages/bihe0832/android/lib-wrapper/images/download.svg) ](https://bintray.com/bihe0832/android/lib-wrapper/_latestVersion)
86

7+
# 写在前面
8+
99
做酱油的时候发现做开发那么久竟然没有一整套顺手的开发方案,要从头开始一个一个搭建(相当于之前做的就没什么沉淀),因此开始逐渐整理一整套相对全面并且顺手的开发方案。随着这几年逐渐完善,现在基本上具备雏形了,因此逐渐总结一下。
1010

1111
AAF 是基于组件化方案,逐渐积累整理的一套完整的 Android 终端开发方案。
1212

1313
在新方案的设计和优化过程中,我们的最终目标是**统一技术栈,同一个问题彻底研究一次,然后提供唯一的解决方案,后续可以直接放心使用**。最终做到**技术方案可以轻松的从一个项目复用到另一个项目,或者可以快速在框架基础上开发出一个独立全新的应用,开发过程中基本聚焦在新业务的逻辑,而不是基础功能。**
1414

15+
# 框架介绍
16+
17+
这是AAF的一个总体架构:
18+
19+
<img src="./aaf_architecture.png" />
20+
21+
整个AAF框架共有四层:
22+
23+
- **基础组件**:基础组件 `Router*` 是路由相关的基础组件,`Lib*` 是自己沉淀或者统一对比以后选择的第三方技术栈,**与业务无关,可通用**
24+
25+
- **公共组件**:基础框架 `Framework` 负责通用资源、公共声明、页面路由以及对于底层第三方库的二次封装,所有业务通用的基础通用功能。`Common*` 则是聚焦一个具体的业务无关的功能,例如反馈、内置浏览器等,这部分功能**也与业务无关,可通用**
26+
27+
- **业务组件**:基础框架 `Application` 包含与业务相关的一些公共资源定义,基础功能封装等。`Base*` 则是聚焦一个具体的业务功能,例如页面卡片、广告等。
28+
29+
- **应用组件**:应用组件是可以独立运行的最小单元,而且他们基本只是一个Android Application 的空壳加一些配置文件,所有的业务逻辑都在业务组件层实现。其中里面比较特别的是APPTest,他既是底层业务组件开发中的临时入口,同时也是一些基础功能 和 所有 Pub的测试入口。
30+
31+
对于整个框架的更多内容,可以参考 [AAF相关文档](./summary/links.md) 里面列出来的文章。
32+
33+
对于基于框架开发的应用,可以参考 [应用事例](./summary/samples.md) 里面列举的具体应用案例。
34+
35+
# 框架使用
36+
1537
这个系列的文档重点介绍 AAF 框架的使用,包括:
1638

1739
- 组件使用:如何在自己开发的项目中直接使用 AAF 提供的基础库
@@ -20,7 +42,7 @@ AAF 是基于组件化方案,逐渐积累整理的一套完整的 Android 终
2042

2143
- 框架开发:如何扩展 AAF 的功能,增加更多组件
2244

23-
对于「组件使用」没有门槛,就是常见的 maven 第三方库,可以直接引入并使用。**对于「框架使用」和「框架开发」,熟悉、理解和使用有一定门槛,建议先仔细阅读 [安卓开发那些事总纲](https://blog.bihe0832.com/android-dev-summary.html) 里面关于「组件化框架介绍」的内容。**
24-
45+
对于「组件使用」没有门槛,就是常见的 maven 第三方库,可以直接引入并使用,文档中这部分内容主要介绍了当前包含的基础组件及其对应的功能。
2546

47+
**对于「框架使用」和「框架开发」,熟悉、理解和使用有一定门槛,建议先仔细阅读 [安卓开发那些事总纲](https://blog.bihe0832.com/android-dev-summary.html) 里面关于「组件化框架介绍」的内容。**
2648

SUMMARY.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
* [相关链接](summary/links.md)
55
* [应用事例](summary/samples.md)
66
* [组件使用]()
7-
* [组件介绍](use/summary.md)
87
* [组件引入](use/start.md)
98
* [公共组件信息]()
109
* [框架组件](use/common/framework.md)
@@ -75,8 +74,9 @@
7574
* [lib-router](use/libs/router/lib-router.md)
7675
* [lib-router-compiler](use/libs/router/lib-router-compiler.md)
7776
* [lib-router-annotation](use/libs/router/lib-router-annotation.md)
78-
* [框架使用](sample/start.md)
79-
* [运行Demo](sample/demo.md)
77+
* [框架使用]()
78+
* [运行Demo](sample/start.md)
79+
* [独立开发](sample/demo.md)
8080
* [框架开发]()
8181
* [组件开发](dev/dev.md)
8282
* [组件发布](dev/dev.md)
File renamed without changes.

sample/start.md

Lines changed: 93 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,94 @@
1-
## 文档整理中
1+
**AAF 对于Android的构建方式做了一定范围的重构与定制。**为了更贴近实际开发的场景,Demo 选择使用 [AndroidAppFactory-Sample](https://github.com/bihe0832/AndroidAppFactory-Sample) 来介绍。目前开发中可以根据开发内容按组件最小依赖进行开发,因此Demo演示也采用最小依赖的方式开发。
22

3+
## 与标准 Android 项目开发的区别
4+
5+
### 组件依赖
6+
7+
所有 `api` 或者 `implementation` 类型的依赖,不再分散在模块的`build.gradle`,统一迁移到 `dependencies.gradle`
8+
9+
### 构建配置
10+
11+
当前集成的模块,不再通过`settings.gradle`配置,通过修改 `dependencies.gradle` 中的 `ext.mainProject``ext.developModule``ext.includeALLDependOnDevelopModule``ext.pubModuleIsApplication`来控制,对于四个字段的具体含义,参考代码。
12+
13+
## 运行Demo
14+
15+
### 开发并运行APPTest
16+
17+
- 修改项目配置
18+
19+
```Java
20+
ext.mainProject = "APPTest"
21+
ext.developModule = "Application"
22+
ext.includeALLDependOnDevelopModule = false
23+
ext.pubModuleIsApplication = true
24+
```
25+
26+
- 查看项目导入信息
27+
28+
导入以后,点击右侧 Gradle 工具栏,运行`:showInfo`,如下图:
29+
30+
<img src="./start.png" width="60%" />
31+
32+
然后在控制台可以看到下面的信息
33+
34+
```Java
35+
========================================
36+
37+
当前工程导入组件如下:
38+
39+
[APPTest, Application, BaseCard]
40+
41+
========================================
42+
```
43+
44+
- 运行项目
45+
46+
此时直接运行项目,就可以运行 APPTest
47+
48+
### 开发并运行PubGetAPKInfo
49+
50+
- 修改项目配置
51+
52+
```Java
53+
ext.mainProject = "PubGetAPKInfo"
54+
ext.developModule = "Application"
55+
ext.includeALLDependOnDevelopModule = false
56+
ext.pubModuleIsApplication = true
57+
```
58+
59+
此时项目导入的项目为:[PubGetAPKInfo, Application, BaseCard]
60+
61+
- 运行项目
62+
63+
此时直接运行项目,就可以运行 PubGetAPKInfo
64+
65+
66+
### 将PubGetAPKInfo作为APPTest的模块开发并运行
67+
68+
- 修改项目配置
69+
70+
```Java
71+
ext.mainProject = "APPTest"
72+
ext.developModule = "Application"
73+
ext.includeALLDependOnDevelopModule = false
74+
ext.pubModuleIsApplication = false
75+
```
76+
77+
- 修改 APPTest 的依赖
78+
79+
修改 `dependencies.gradle` 中关于 APPTest的依赖的内容,修改为:
80+
81+
```Java
82+
"APPTest" : [
83+
"apidependenciesList": ["PubGetAPKInfo",
84+
"com.bihe0832.android:common-test:${project.aaf_version}",
85+
"Application", "BaseCard"
86+
]
87+
],
88+
```
89+
90+
此时项目导入的项目为:[APPTest, Application, PubGetAPKInfo, BaseCard]
91+
92+
- 运行项目
93+
94+
此时直接运行项目,就可以运行 APPTest,而且运行后的安装包,包含 PubGetAPKInfo 的完整内容

sample/start.png

102 KB
Loading

use/summary.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)