├── app
├── .gitignore
├── src
│ └── main
│ │ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ ├── colors.xml
│ │ │ └── styles.xml
│ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ │ ├── 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
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ ├── layout
│ │ │ └── activity_main.xml
│ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ └── drawable
│ │ │ └── ic_launcher_background.xml
│ │ ├── java
│ │ └── com
│ │ │ └── example
│ │ │ └── whensunset
│ │ │ └── mytiktok
│ │ │ ├── TestPresenter.java
│ │ │ └── MainActivity.java
│ │ └── AndroidManifest.xml
├── proguard-rules.pro
└── build.gradle
├── camera
├── .gitignore
├── src
│ └── main
│ │ ├── res
│ │ └── values
│ │ │ └── strings.xml
│ │ └── AndroidManifest.xml
├── build.gradle
└── proguard-rules.pro
├── http
├── .gitignore
├── src
│ └── main
│ │ ├── res
│ │ └── values
│ │ │ └── strings.xml
│ │ └── AndroidManifest.xml
├── build.gradle
└── proguard-rules.pro
├── mvps
├── .gitignore
├── src
│ └── main
│ │ ├── res
│ │ └── values
│ │ │ └── strings.xml
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── mvps
│ │ ├── Presenter.java
│ │ └── BasePresenter.java
├── build.gradle
└── proguard-rules.pro
├── push
├── .gitignore
├── src
│ └── main
│ │ ├── res
│ │ └── values
│ │ │ └── strings.xml
│ │ └── AndroidManifest.xml
├── build.gradle
└── proguard-rules.pro
├── router
├── .gitignore
├── src
│ └── main
│ │ ├── res
│ │ └── values
│ │ │ └── strings.xml
│ │ └── AndroidManifest.xml
├── build.gradle
└── proguard-rules.pro
├── video
├── .gitignore
├── src
│ └── main
│ │ ├── res
│ │ └── values
│ │ │ └── strings.xml
│ │ └── AndroidManifest.xml
├── build.gradle
└── proguard-rules.pro
├── widget
├── .gitignore
├── src
│ └── main
│ │ ├── res
│ │ └── values
│ │ │ └── strings.xml
│ │ └── AndroidManifest.xml
├── build.gradle
└── proguard-rules.pro
├── annotation
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── java
│ └── com
│ └── example
│ └── annotation
│ ├── field
│ ├── FieldProvider.java
│ ├── Field.java
│ ├── Fetcher.java
│ └── Fetchers.java
│ ├── inject
│ ├── Injector.java
│ ├── NamedParam.java
│ ├── Reference.java
│ ├── Inject.java
│ ├── ObjectProvider.java
│ ├── Injectors.java
│ ├── ProviderHolder.java
│ └── ObjectProviderImpl.java
│ ├── invoker
│ ├── ForInvoker.java
│ └── InvokeBy.java
│ └── StandFor.java
├── logutil
├── .gitignore
├── src
│ └── main
│ │ ├── res
│ │ └── values
│ │ │ └── strings.xml
│ │ └── AndroidManifest.xml
├── build.gradle
└── proguard-rules.pro
├── annotation-processing
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── java
│ └── com
│ └── example
│ └── annotation_processing
│ ├── invoker
│ ├── InvokeMethod.java
│ ├── Invocation.java
│ └── InvokerProcessor.java
│ ├── util
│ ├── ClassBuilder.java
│ ├── BaseProcessor.java
│ ├── AptUtils.java
│ └── SortedElement.java
│ ├── inject
│ ├── InjectorHelperBuilder.java
│ ├── InjectorProcessor.java
│ └── InjectorBuilder.java
│ └── field
│ └── FieldProcessor.java
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── settings.gradle
├── README.md
├── .gitignore
├── library.gradle
├── gradle.properties
├── gradlew.bat
├── versions.gradle
├── 从零开始写一个抖音App——开始(mdn).md
└── gradlew
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/camera/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/http/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/mvps/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/push/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/router/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/video/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/widget/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/annotation/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/logutil/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/annotation-processing/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | MyTikTok
3 |
4 |
--------------------------------------------------------------------------------
/http/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Http
3 |
4 |
--------------------------------------------------------------------------------
/mvps/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | mvps
3 |
4 |
--------------------------------------------------------------------------------
/push/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Push
3 |
4 |
--------------------------------------------------------------------------------
/video/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Video
3 |
4 |
--------------------------------------------------------------------------------
/camera/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Camera
3 |
4 |
--------------------------------------------------------------------------------
/logutil/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | LogUtil
3 |
4 |
--------------------------------------------------------------------------------
/router/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Router
3 |
4 |
--------------------------------------------------------------------------------
/widget/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Widget
3 |
4 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dongmin2002345/MyTikTok/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/camera/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: rootProject.file('library.gradle')
2 |
3 | dependencies {
4 | implementation deps.rxjava2.rxjava
5 | }
6 |
--------------------------------------------------------------------------------
/http/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: rootProject.file('library.gradle')
2 |
3 | dependencies {
4 | implementation deps.rxjava2.rxjava
5 | }
6 |
--------------------------------------------------------------------------------
/push/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: rootProject.file('library.gradle')
2 |
3 | dependencies {
4 | implementation deps.rxjava2.rxjava
5 | }
6 |
--------------------------------------------------------------------------------
/router/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: rootProject.file('library.gradle')
2 |
3 | dependencies {
4 | implementation deps.rxjava2.rxjava
5 | }
6 |
--------------------------------------------------------------------------------
/video/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: rootProject.file('library.gradle')
2 |
3 | dependencies {
4 | implementation deps.rxjava2.rxjava
5 | }
6 |
--------------------------------------------------------------------------------
/widget/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: rootProject.file('library.gradle')
2 |
3 | dependencies {
4 | implementation deps.rxjava2.rxjava
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dongmin2002345/MyTikTok/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dongmin2002345/MyTikTok/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/camera/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/http/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/logutil/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: rootProject.file('library.gradle')
2 |
3 | dependencies {
4 | implementation deps.rxjava2.rxjava
5 | }
6 |
--------------------------------------------------------------------------------
/mvps/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/push/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/router/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/video/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/widget/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dongmin2002345/MyTikTok/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dongmin2002345/MyTikTok/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dongmin2002345/MyTikTok/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/logutil/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':mvps', ':logutil', ':router', ':push', ':http', ':video', ':camera', ':widget', ':annotation', ':annotation-processing'
2 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dongmin2002345/MyTikTok/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/dongmin2002345/MyTikTok/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dongmin2002345/MyTikTok/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/dongmin2002345/MyTikTok/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/dongmin2002345/MyTikTok/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # MyTikTok
2 | **文章列表**:
3 | - 1.[从零开始写一个抖音App——开始](https://www.jianshu.com/p/e92bd896ac35)
4 | - 2.[从零开始写一个抖音App——基本架构图与MVPs](https://www.jianshu.com/p/3867f6cf4e82)
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | .externalNativeBuild
10 | /.idea
11 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/annotation/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'java-library'
2 |
3 | dependencies {
4 | implementation fileTree(dir: 'libs', include: ['*.jar'])
5 | compile deps.gson
6 | compile deps.guava_android
7 | }
8 |
9 | sourceCompatibility = "1.8"
10 | targetCompatibility = "1.8"
11 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sat Jul 14 23:20:14 CST 2018
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-4.1-all.zip
7 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/annotation/src/main/java/com/example/annotation/field/FieldProvider.java:
--------------------------------------------------------------------------------
1 | package com.example.annotation.field;
2 |
3 | import java.util.Set;
4 |
5 | public interface FieldProvider {
6 | // void init();
7 |
8 | T get(String fieldName);
9 |
10 | T get(Class tClass);
11 |
12 | Set