Skip to content

Commit 9a4acb9

Browse files
committed
feat: 增加readme;
1 parent aaa1edd commit 9a4acb9

6 files changed

Lines changed: 132 additions & 16 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.fee.start
2+
3+
import android.app.Application
4+
import com.fee.start.tasks.*
5+
import com.github.androidstartup.StartupTasksManager
6+
import java.util.concurrent.Executor
7+
import java.util.concurrent.SynchronousQueue
8+
import java.util.concurrent.ThreadPoolExecutor
9+
import java.util.concurrent.TimeUnit
10+
11+
/**
12+
******************(^_^)***********************<br>
13+
* User: fee(QQ/WeiXin:1176610771)<br>
14+
* Date: 2023/3/12<br>
15+
* Time: 20:49<br>
16+
* <P>DESC:
17+
*
18+
* </p>
19+
* ******************(^_^)***********************
20+
*/
21+
class LocalApp : Application() {
22+
23+
override fun onCreate() {
24+
super.onCreate()
25+
val gloabalExecutor: Executor = ThreadPoolExecutor(
26+
1,
27+
3,
28+
1,
29+
TimeUnit.MINUTES,
30+
SynchronousQueue()
31+
)
32+
StartupTasksManager.getTasksManager()
33+
.withContext(this) //设置上下文 Context
34+
.withTaskExecutor(gloabalExecutor) //配置启动任务的全局 Executor(线程池)
35+
.withTask(Task1())
36+
.withTask(Task5())
37+
.withTask(Task3())
38+
.withTask(Task4())
39+
.withTask(Task2())
40+
.withTask(BuglyInitTask())
41+
.startUp() //开始启动任务
42+
}
43+
}

app/src/main/java/com/fee/start/MyApp.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
import com.fee.start.tasks.Task4;
99
import com.fee.start.tasks.Task5;
1010
import com.github.androidstartup.StartupTasksManager;
11-
import com.github.androidstartup.StartupTasksOrganizer;
1211

13-
import java.util.concurrent.ArrayBlockingQueue;
1412
import java.util.concurrent.Executor;
1513
import java.util.concurrent.SynchronousQueue;
1614
import java.util.concurrent.ThreadPoolExecutor;
@@ -34,21 +32,21 @@ public void onCreate() {
3432
new SynchronousQueue<>()
3533
);
3634
StartupTasksManager.Builder
37-
.addTask(new Task1())
38-
.addTask(new Task5())
39-
.addTask(new Task3())
40-
.addTask(new Task2())
41-
.addTask(new Task4())
35+
.withTask(new Task1())
36+
.withTask(new Task5())
37+
.withTask(new Task3())
38+
.withTask(new Task2())
39+
.withTask(new Task4())
4240
.withTaskExecutor(executor)
4341
.withContext(this)
4442
.startUp();
4543

4644
// new StartupTasksOrganizer.TasksBuilder()
47-
// .addTask(new Task1())
48-
// .addTask(new Task5())
49-
// .addTask(new Task3())
50-
// .addTask(new Task2())
51-
// .addTask(new Task4())
45+
// .withTask(new Task1())
46+
// .withTask(new Task5())
47+
// .withTask(new Task3())
48+
// .withTask(new Task2())
49+
// .withTask(new Task4())
5250
// .build(this)
5351
// .startUp();
5452

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.fee.start.tasks
2+
3+
import android.content.Context
4+
import com.github.androidstartup.AStartupTask
5+
import com.github.androidstartup.IStartupTask
6+
7+
/**
8+
******************(^_^)***********************<br>
9+
* User: fee(QQ/WeiXin:1176610771)<br>
10+
* Date: 2023/3/12<br>
11+
* Time: 21:21<br>
12+
* <P>DESC:
13+
* 第三方 SDK bugly的初始化任务
14+
* </p>
15+
* ******************(^_^)***********************
16+
*/
17+
class BuglyInitTask: AStartupTask<String>() {
18+
/**
19+
* 执行任务
20+
* @return [T] 执行了启动任务可能的 返回数据
21+
*/
22+
override fun doStartupTask(context: Context): String {
23+
return "bugly sdk init finish"
24+
}
25+
26+
/**
27+
* 标识启动任务是否依赖主线程的执行
28+
*/
29+
override fun isDependonMainThread(): Boolean {
30+
return true
31+
}
32+
33+
override fun dependentTask(): List<Class<out IStartupTask<*>>>? {
34+
return listOf(Task1::class.java)
35+
}
36+
}

readme.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# 介绍
2+
3+
本框架目的为提供 **Android** APP 在启动时的启动流程优化,统一管理和配置各初始化任务按照开发时所规划的依赖顺序和配置执行,可作为组件化的一个公共组件。
4+
5+
# 前言
6+
7+
我们所开发的 **Android** 项目,在APP启动的时候往往需要提前初始化一些业务模块、第三方SDK等,简单的写法是在 项目自定义的 **Application***onCreate()* 方法中根据可能的先后顺序一股脑的写上初始化代码,这样会让各模块的初始化工作太过于集中执行,可能引起主线程的耗时,因而非常有必要(尤其对于中大型项目来说)将项目中需要初始化的各功能模块及第三方SDK等的初始化任务按照一定的先后依赖顺序、有条理的 按照分任务的方式进行设计、规划。
8+
9+
# 使用
10+
11+
```kotlin
12+
class LocalApp : Application() {
13+
14+
override fun onCreate() {
15+
super.onCreate()
16+
val gloabalExecutor: Executor = ThreadPoolExecutor(
17+
1,
18+
3,
19+
1,
20+
TimeUnit.MINUTES,
21+
SynchronousQueue()
22+
)
23+
StartupTasksManager.getTasksManager()
24+
.withContext(this) //设置上下文 Context
25+
.withTaskExecutor(gloabalExecutor) //配置启动任务的全局 Executor(线程池)
26+
.withTask(Task1())
27+
.withTask(Task5())
28+
.withTask(Task3())
29+
.withTask(Task4())
30+
.withTask(Task2())
31+
.withTask(BuglyInitTask())
32+
.startUp() //开始启动任务
33+
}
34+
}
35+
```
36+
37+
# ToDo
38+
39+
发布至 **mavenCentral** 以供项目 gradle 依赖

theAndroidStartup/src/main/java/com/github/androidstartup/StartupTasksManager.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ class StartupTasksManager private constructor(): ITaskListener{
3838
/**
3939
* 添加启动任务
4040
*/
41-
fun addTask(startupTask: IStartupTask<*>): StartupTasksManager {
42-
return getTasksManager().addTask(startupTask)
41+
fun withTask(startupTask: IStartupTask<*>): StartupTasksManager {
42+
return getTasksManager().withTask(startupTask)
4343
}
4444

4545
/**
@@ -153,7 +153,7 @@ class StartupTasksManager private constructor(): ITaskListener{
153153
* 添加启动任务
154154
*/
155155
@MainThread
156-
fun addTask(startupTask: IStartupTask<*>): StartupTasksManager {
156+
fun withTask(startupTask: IStartupTask<*>): StartupTasksManager {
157157
mAddedTasksList.add(startupTask)
158158
return this
159159
}

theAndroidStartup/src/main/java/com/github/androidstartup/StartupTasksOrganizer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ class StartupTasksOrganizer(private val mAppContext: Context?,private val mAdded
8989

9090
private var mContext: Context? = null
9191

92-
fun addTask(task: IStartupTask<*>): TasksBuilder{
92+
fun withTask(task: IStartupTask<*>): TasksBuilder{
9393
mAddedTasks.add(task)
9494
return this
9595
}

0 commit comments

Comments
 (0)