├── app ├── .gitignore ├── app_start.png ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── chris.png │ │ │ │ ├── img1.png │ │ │ │ ├── img2.png │ │ │ │ ├── img3.png │ │ │ │ ├── img4.png │ │ │ │ ├── img5.png │ │ │ │ ├── img6.png │ │ │ │ ├── joanna.png │ │ │ │ ├── splash.png │ │ │ │ ├── shailen.png │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── layout │ │ │ │ ├── activity_droid_cards.xml │ │ │ │ ├── activity_memoryleak.xml │ │ │ │ ├── activity_memory.xml │ │ │ │ ├── testblank.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── item_img_layout.xml │ │ │ │ ├── news_item.xml │ │ │ │ └── news_item_constrainlayout.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ │ └── drawable │ │ │ │ └── ic_launcher_background.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── vincent │ │ │ │ └── appstart │ │ │ │ ├── tasks │ │ │ │ ├── delayinittask │ │ │ │ │ ├── DelayInitTaskB.java │ │ │ │ │ └── DelayInitTaskA.java │ │ │ │ ├── InitStethoTask.java │ │ │ │ ├── InitUmengTask.java │ │ │ │ └── GetDeviceIdTask.java │ │ │ │ ├── LaunchTimer.java │ │ │ │ ├── MyApp.java │ │ │ │ ├── DensityUtil.java │ │ │ │ ├── MainActivity.java │ │ │ │ └── TestActivity.java │ │ └── AndroidManifest.xml │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── vincent │ │ │ └── appstart │ │ │ └── ExampleInstrumentedTest.java │ └── test │ │ └── java │ │ └── com │ │ └── vincent │ │ └── appstart │ │ └── ExampleUnitTest.java ├── proguard-rules.pro └── build.gradle ├── launchstarter ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ └── values │ │ │ │ └── strings.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── org │ │ │ └── jay │ │ │ └── launchstarter │ │ │ ├── TaskCallBack.java │ │ │ ├── MainTask.java │ │ │ ├── stat │ │ │ ├── TaskStatBean.java │ │ │ └── TaskStat.java │ │ │ ├── utils │ │ │ ├── DispatcherLog.java │ │ │ ├── Utils.java │ │ │ └── DispatcherExecutor.java │ │ │ ├── DelayInitDispatcher.java │ │ │ ├── ITask.java │ │ │ ├── sort │ │ │ ├── Graph.java │ │ │ └── TaskSortUtil.java │ │ │ ├── DispatchRunnable.java │ │ │ ├── Task.java │ │ │ └── TaskDispatcher.java │ ├── test │ │ └── java │ │ │ └── org │ │ │ └── jay │ │ │ └── launchstarter │ │ │ ├── ExampleUnitTest.java │ │ │ └── TaskDispatcherTest.java │ └── androidTest │ │ └── java │ │ └── org │ │ └── jay │ │ └── launchstarter │ │ └── ExampleInstrumentedTest.java ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── gradle.properties ├── gradlew.bat ├── README.md └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /launchstarter/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /app/app_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/app_start.png -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name='TaskDispatcherProject' 2 | include ':app', ':launchstarter' 3 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | TaskDispatcherApp 3 | 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /launchstarter/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | LaunchStarter 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/chris.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xhdpi/chris.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xhdpi/img1.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xhdpi/img2.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xhdpi/img3.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/img4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xhdpi/img4.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/img5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xhdpi/img5.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/img6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xhdpi/img6.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/joanna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xhdpi/joanna.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xhdpi/splash.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/shailen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xhdpi/shailen.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /launchstarter/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentStory/TaskDispatcher/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /launchstarter/src/main/java/org/jay/launchstarter/TaskCallBack.java: -------------------------------------------------------------------------------- 1 | package org.jay.launchstarter; 2 | 3 | public interface TaskCallBack { 4 | 5 | void call(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #6200EE 4 | #3700B3 5 | #03DAC5 6 | 7 | -------------------------------------------------------------------------------- /launchstarter/src/main/java/org/jay/launchstarter/MainTask.java: -------------------------------------------------------------------------------- 1 | package org.jay.launchstarter; 2 | 3 | public abstract class MainTask extends Task { 4 | 5 | @Override 6 | public boolean runOnMainThread() { 7 | return true; 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_droid_cards.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Jun 10 20:45:15 CST 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | .idea 4 | /local.properties 5 | /.idea/caches 6 | /.idea/libraries 7 | /.idea/modules.xml 8 | /.idea/workspace.xml 9 | /.idea/navEditor.xml 10 | /.idea/assetWizardSettings.xml 11 | .DS_Store 12 | /build 13 | /captures 14 | .externalNativeBuild 15 | .cxx 16 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/vincent/appstart/tasks/delayinittask/DelayInitTaskB.java: -------------------------------------------------------------------------------- 1 | package com.vincent.appstart.tasks.delayinittask; 2 | 3 | import org.jay.launchstarter.MainTask; 4 | 5 | public class DelayInitTaskB extends MainTask { 6 | 7 | @Override 8 | public void run() { 9 | // 模拟一些操作 10 | 11 | try { 12 | Thread.sleep(200); 13 | } catch (InterruptedException e) { 14 | e.printStackTrace(); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_memoryleak.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /launchstarter/src/test/java/org/jay/launchstarter/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package org.jay.launchstarter; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_memory.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 |