├── app ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── values │ │ │ └── strings.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 │ │ ├── menu │ │ │ └── menu_main_activity_bottom_navigation_view.xml │ │ ├── layout │ │ │ └── layout_main_activity.xml │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ └── drawable │ │ │ └── ic_launcher_background.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── me │ │ └── jiahuan │ │ └── androidlearn │ │ ├── App.java │ │ └── MainActivity.java ├── build.gradle └── proguard-rules.pro ├── clint ├── .gitignore ├── build.gradle └── src │ └── main │ └── java │ └── me │ └── jiahuan │ └── androidlearn │ └── clint │ ├── CIssueRegistry.java │ ├── NewThreadDetector.java │ └── LogDetector.java ├── README.md ├── clint-aar ├── .gitignore ├── src │ └── main │ │ └── AndroidManifest.xml ├── build.gradle └── proguard-rules.pro ├── lib_base ├── .gitignore ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ ├── res │ │ ├── drawable │ │ │ └── lib_base_drawable_item_decoration.xml │ │ ├── values │ │ │ ├── colors.xml │ │ │ └── styles.xml │ │ └── layout │ │ │ └── lib_base_layout_tool_bar.xml │ │ └── java │ │ └── me │ │ └── jiahuan │ │ └── androidlearn │ │ └── base │ │ ├── BaseFragment.java │ │ ├── BaseActivity.java │ │ ├── DividerItemDecoration.java │ │ └── DividerGridItemDecoration.java ├── build.gradle └── proguard-rules.pro ├── module_ui ├── .gitignore ├── src │ └── main │ │ ├── res │ │ └── layout │ │ │ ├── module_ui_layout_recycler_view_activity_item.xml │ │ │ ├── module_ui_layout_recycler_view_activity.xml │ │ │ ├── module_ui_layout_ui_fragment.xml │ │ │ └── module_ui_layout_view_pager_activity.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── me │ │ └── jiahuan │ │ └── androidlearn │ │ └── ui │ │ ├── UIFragment.java │ │ ├── viewpager │ │ ├── TabFragment.java │ │ └── ViewPagerActivity.java │ │ └── recyclerview │ │ └── RecyclerViewActivity.java ├── build.gradle └── proguard-rules.pro ├── module_function ├── .gitignore ├── src │ └── main │ │ ├── aidl │ │ └── me │ │ │ └── jiahuan │ │ │ └── androidlearn │ │ │ └── function │ │ │ └── binder │ │ │ ├── Book.aidl │ │ │ └── IBookManager.aidl │ │ ├── res │ │ └── layout │ │ │ ├── module_function_layout_lru_activity.xml │ │ │ ├── module_function_layout_jni_activity.xml │ │ │ ├── module_function_layout_hook_activity.xml │ │ │ ├── module_function_layout_binder_activity.xml │ │ │ ├── module_function_layout_permission_activity.xml │ │ │ ├── module_function_layout_rxjava2_activity.xml │ │ │ └── module_function_layout_function_fragment.xml │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── me │ │ │ └── jiahuan │ │ │ └── androidlearn │ │ │ └── function │ │ │ ├── jni │ │ │ └── JNIActivity.java │ │ │ ├── hook │ │ │ ├── HookHelper.java │ │ │ ├── HookActivity.java │ │ │ └── ProxyInstrumentation.java │ │ │ ├── binder │ │ │ ├── Book.java │ │ │ ├── BookRemoteService.java │ │ │ └── BinderActivity.java │ │ │ ├── lru │ │ │ └── LruCacheActivity.java │ │ │ ├── FunctionFragment.java │ │ │ ├── rxjava2 │ │ │ └── RxJava2Activity.java │ │ │ └── permission │ │ │ └── PermissionActivity.java │ │ └── cpp │ │ └── native-lib.cpp ├── CMakeLists.txt ├── build.gradle └── proguard-rules.pro ├── .gitignore ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── settings.gradle ├── gradle.properties ├── gradlew.bat └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /clint/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Android 代码实例库 2 | -------------------------------------------------------------------------------- /clint-aar/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /lib_base/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /module_ui/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /module_function/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .gradle 3 | /local.properties 4 | .DS_Store 5 | /build 6 | *.iml 7 | .externalNativeBuild 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Only 3 | 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiahuanyu/android-example-code/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiahuanyu/android-example-code/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiahuanyu/android-example-code/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiahuanyu/android-example-code/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiahuanyu/android-example-code/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiahuanyu/android-example-code/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /clint-aar/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /lib_base/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiahuanyu/android-example-code/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/jiahuanyu/android-example-code/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/jiahuanyu/android-example-code/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | println "setting.gradle start" 2 | include ':app', ':module_function', ':lib_base', ':clint', ':clint-aar', ':module_ui' 3 | println "setting.gradle end" -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiahuanyu/android-example-code/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/jiahuanyu/android-example-code/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /module_function/src/main/aidl/me/jiahuan/androidlearn/function/binder/Book.aidl: -------------------------------------------------------------------------------- 1 | // Book.aidl 2 | package me.jiahuan.androidlearn.function.binder; 3 | 4 | parcelable Book; 5 | -------------------------------------------------------------------------------- /module_function/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.4.1) 2 | 3 | add_library(native-lib SHARED src/main/cpp/native-lib.cpp) 4 | 5 | find_library(log-lib log) 6 | 7 | target_link_libraries(native-lib ${log-lib}) 8 | -------------------------------------------------------------------------------- /lib_base/src/main/res/drawable/lib_base_drawable_item_decoration.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Dec 22 21:33:35 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.6-all.zip 7 | -------------------------------------------------------------------------------- /lib_base/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /module_function/src/main/aidl/me/jiahuan/androidlearn/function/binder/IBookManager.aidl: -------------------------------------------------------------------------------- 1 | // IBookManager.aidl 2 | package me.jiahuan.androidlearn.function.binder; 3 | 4 | import me.jiahuan.androidlearn.function.binder.Book; 5 | 6 | interface IBookManager { 7 | // 定义方法 8 | List getBookList(); 9 | void addBook(in Book book); 10 | } 11 | -------------------------------------------------------------------------------- /module_ui/src/main/res/layout/module_ui_layout_recycler_view_activity_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /clint/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | 3 | 4 | sourceCompatibility = "1.7" 5 | targetCompatibility = "1.7" 6 | 7 | 8 | jar { 9 | manifest { 10 | attributes("Lint-Registry-v2": "me.jiahuan.androidlearn.clint.CIssueRegistry") 11 | } 12 | } 13 | 14 | dependencies { 15 | compileOnly "com.android.tools.lint:lint-api:26.1.2" 16 | compileOnly "com.android.tools.lint:lint-checks:26.1.2" 17 | } 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_main_activity_bottom_navigation_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /module_ui/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /clint/src/main/java/me/jiahuan/androidlearn/clint/CIssueRegistry.java: -------------------------------------------------------------------------------- 1 | package me.jiahuan.androidlearn.clint; 2 | 3 | import com.android.tools.lint.client.api.IssueRegistry; 4 | import com.android.tools.lint.detector.api.Issue; 5 | 6 | import java.util.ArrayList; 7 | import java.util.Arrays; 8 | import java.util.List; 9 | 10 | 11 | public class CIssueRegistry extends IssueRegistry { 12 | @Override 13 | public List getIssues() { 14 | return Arrays.asList(LogDetector.ISSUE, NewThreadDetector.ISSUE); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib_base/src/main/java/me/jiahuan/androidlearn/base/BaseFragment.java: -------------------------------------------------------------------------------- 1 | package me.jiahuan.androidlearn.base; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.app.Fragment; 6 | import android.util.Log; 7 | 8 | public class BaseFragment extends Fragment { 9 | private static final String TAG = "BaseFragment"; 10 | @Override 11 | public void onCreate(@Nullable Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | Log.d(TAG, "onCreate"); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib_base/src/main/res/layout/lib_base_layout_tool_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | -------------------------------------------------------------------------------- /lib_base/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /module_function/src/main/res/layout/module_function_layout_lru_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 |