实例介绍
Android第二行代码(郭霖全书源代码)
【实例截图】
【核心代码】
Android第二行代码(全书源代码)
└── Android第二行代码(全书源代码)
└── booksource
├── chapter1
│ └── HelloWorld
│ ├── app
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── helloworld
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── helloworld
│ │ │ │ └── HelloWorldActivity.java
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ └── hello_world_layout.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── helloworld
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── chapter10
│ ├── AndroidThreadTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── androidthreadtest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── androidthreadtest
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── androidthreadtest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── ServiceBestPractice
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── servicebestpractice
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── servicebestpractice
│ │ │ │ │ ├── DownloadListener.java
│ │ │ │ │ ├── DownloadService.java
│ │ │ │ │ ├── DownloadTask.java
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── servicebestpractice
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ └── ServiceTest
│ ├── app
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── servicetest
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── servicetest
│ │ │ │ ├── MainActivity.java
│ │ │ │ ├── MyIntentService.java
│ │ │ │ └── MyService.java
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── servicetest
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── chapter11
│ └── LBSTest
│ ├── app
│ │ ├── build.gradle
│ │ ├── libs
│ │ │ └── BaiduLBS_Android.jar
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── lbstest
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── lbstest
│ │ │ │ └── MainActivity.java
│ │ │ ├── jniLibs
│ │ │ │ ├── arm64-v8a
│ │ │ │ │ ├── libBaiduMapSDK_base_v4_0_0.so
│ │ │ │ │ ├── libBaiduMapSDK_map_v4_0_0.so
│ │ │ │ │ └── liblocSDK6a.so
│ │ │ │ ├── armeabi
│ │ │ │ │ ├── libBaiduMapSDK_base_v4_0_0.so
│ │ │ │ │ ├── libBaiduMapSDK_map_v4_0_0.so
│ │ │ │ │ └── liblocSDK6a.so
│ │ │ │ ├── armeabi-v7a
│ │ │ │ │ ├── libBaiduMapSDK_base_v4_0_0.so
│ │ │ │ │ ├── libBaiduMapSDK_map_v4_0_0.so
│ │ │ │ │ └── liblocSDK6a.so
│ │ │ │ ├── x86
│ │ │ │ │ ├── libBaiduMapSDK_base_v4_0_0.so
│ │ │ │ │ ├── libBaiduMapSDK_map_v4_0_0.so
│ │ │ │ │ └── liblocSDK6a.so
│ │ │ │ └── x86_64
│ │ │ │ ├── libBaiduMapSDK_base_v4_0_0.so
│ │ │ │ ├── libBaiduMapSDK_map_v4_0_0.so
│ │ │ │ └── liblocSDK6a.so
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── lbstest
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── chapter12
│ └── MaterialTest
│ ├── app
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── materialtest
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── materialtest
│ │ │ │ ├── FruitActivity.java
│ │ │ │ ├── FruitAdapter.java
│ │ │ │ ├── Fruit.java
│ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ ├── drawable-xxhdpi
│ │ │ │ ├── apple.jpg
│ │ │ │ ├── banana.jpg
│ │ │ │ ├── cherry.jpg
│ │ │ │ ├── grape.jpg
│ │ │ │ ├── ic_backup.png
│ │ │ │ ├── ic_comment.png
│ │ │ │ ├── ic_delete.png
│ │ │ │ ├── ic_done.png
│ │ │ │ ├── ic_menu.png
│ │ │ │ ├── ic_settings.png
│ │ │ │ ├── mango.jpg
│ │ │ │ ├── nav_call.png
│ │ │ │ ├── nav_friends.png
│ │ │ │ ├── nav_icon.png
│ │ │ │ ├── nav_location.png
│ │ │ │ ├── nav_mail.png
│ │ │ │ ├── nav_task.png
│ │ │ │ ├── orange.jpg
│ │ │ │ ├── pear.png
│ │ │ │ ├── pineapple.jpg
│ │ │ │ ├── strawberry.jpg
│ │ │ │ └── watermelon.jpg
│ │ │ ├── layout
│ │ │ │ ├── activity_fruit.xml
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── fruit_item.xml
│ │ │ │ └── nav_header.xml
│ │ │ ├── menu
│ │ │ │ ├── nav_menu.xml
│ │ │ │ └── toolbar.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ ├── values-v21
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── materialtest
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── chapter14
│ └── CoolWeather
│ ├── app
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── coolweather
│ │ │ └── android
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── assets
│ │ │ │ └── litepal.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── coolweather
│ │ │ │ └── android
│ │ │ │ ├── ChooseAreaFragment.java
│ │ │ │ ├── db
│ │ │ │ │ ├── City.java
│ │ │ │ │ ├── County.java
│ │ │ │ │ └── Province.java
│ │ │ │ ├── gson
│ │ │ │ │ ├── AQI.java
│ │ │ │ │ ├── Basic.java
│ │ │ │ │ ├── Forecast.java
│ │ │ │ │ ├── Now.java
│ │ │ │ │ ├── Suggestion.java
│ │ │ │ │ └── Weather.java
│ │ │ │ ├── MainActivity.java
│ │ │ │ ├── service
│ │ │ │ │ └── AutoUpdateService.java
│ │ │ │ ├── util
│ │ │ │ │ ├── HttpUtil.java
│ │ │ │ │ └── Utility.java
│ │ │ │ └── WeatherActivity.java
│ │ │ └── res
│ │ │ ├── drawable-nodpi
│ │ │ │ └── bg.jpg
│ │ │ ├── drawable-xxhdpi
│ │ │ │ ├── ic_back.png
│ │ │ │ └── ic_home.png
│ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── activity_weather.xml
│ │ │ │ ├── aqi.xml
│ │ │ │ ├── choose_area.xml
│ │ │ │ ├── forecast_item.xml
│ │ │ │ ├── forecast.xml
│ │ │ │ ├── now.xml
│ │ │ │ ├── suggestion.xml
│ │ │ │ └── title.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── logo.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── logo.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── logo.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── logo.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── logo.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── coolweather
│ │ └── android
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ ├── LICENSE
│ ├── README.md
│ └── settings.gradle
├── chapter2
│ ├── ActivityLifeCycleTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── activitylifecycletest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── activitylifecycletest
│ │ │ │ │ ├── DialogActivity.java
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── NormalActivity.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ ├── activity_main.xml
│ │ │ │ │ ├── dialog_layout.xml
│ │ │ │ │ └── normal_layout.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── activitylifecycletest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ └── ActivityTest
│ ├── app
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── activitytest
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── activitytest
│ │ │ │ ├── ActivityCollector.java
│ │ │ │ ├── BaseActivity.java
│ │ │ │ ├── FirstActivity.java
│ │ │ │ ├── SecondActivity.java
│ │ │ │ └── ThirdActivity.java
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ ├── first_layout.xml
│ │ │ │ ├── second_layout.xml
│ │ │ │ └── third_layout.xml
│ │ │ ├── menu
│ │ │ │ └── main.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── activitytest
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── chapter3
│ ├── ListViewTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── listviewtest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── listviewtest
│ │ │ │ │ ├── FruitAdapter.java
│ │ │ │ │ ├── Fruit.java
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── drawable-hdpi
│ │ │ │ │ ├── apple_pic.png
│ │ │ │ │ ├── banana_pic.png
│ │ │ │ │ ├── cherry_pic.png
│ │ │ │ │ ├── grape_pic.png
│ │ │ │ │ ├── mango_pic.png
│ │ │ │ │ ├── orange_pic.png
│ │ │ │ │ ├── pear_pic.png
│ │ │ │ │ ├── pineapple_pic.png
│ │ │ │ │ ├── strawberry_pic.png
│ │ │ │ │ └── watermelon_pic.png
│ │ │ │ ├── layout
│ │ │ │ │ ├── activity_main.xml
│ │ │ │ │ └── fruit_item.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── listviewtest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── RecyclerViewTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── recyclerviewtest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── recyclerviewtest
│ │ │ │ │ ├── FruitAdapter.java
│ │ │ │ │ ├── Fruit.java
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── drawable-hdpi
│ │ │ │ │ ├── apple_pic.png
│ │ │ │ │ ├── banana_pic.png
│ │ │ │ │ ├── cherry_pic.png
│ │ │ │ │ ├── grape_pic.png
│ │ │ │ │ ├── mango_pic.png
│ │ │ │ │ ├── orange_pic.png
│ │ │ │ │ ├── pear_pic.png
│ │ │ │ │ ├── pineapple_pic.png
│ │ │ │ │ ├── strawberry_pic.png
│ │ │ │ │ └── watermelon_pic.png
│ │ │ │ ├── layout
│ │ │ │ │ ├── activity_main.xml
│ │ │ │ │ └── fruit_item.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── recyclerviewtest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── UIBestPractice
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── uibestpractice
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── uibestpractice
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ ├── MsgAdapter.java
│ │ │ │ │ └── Msg.java
│ │ │ │ └── res
│ │ │ │ ├── drawable-xhdpi
│ │ │ │ │ ├── message_left.9.png
│ │ │ │ │ └── message_right.9.png
│ │ │ │ ├── layout
│ │ │ │ │ ├── activity_main.xml
│ │ │ │ │ └── msg_item.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── uibestpractice
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── UICustomViews
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── uicustomviews
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── uicustomviews
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── TitleLayout.java
│ │ │ │ └── res
│ │ │ │ ├── drawable-xhdpi
│ │ │ │ │ ├── back_bg.png
│ │ │ │ │ ├── edit_bg.png
│ │ │ │ │ └── title_bg.png
│ │ │ │ ├── layout
│ │ │ │ │ ├── activity_main.xml
│ │ │ │ │ └── title.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── uicustomviews
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── UILayoutTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── uilayouttest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── uilayouttest
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── uilayouttest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ └── UIWidgetTest
│ ├── app
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── uiwidgettest
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── uiwidgettest
│ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ ├── drawable-xhdpi
│ │ │ │ ├── img_1.png
│ │ │ │ └── img_2.png
│ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── uiwidgettest
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── chapter4
│ ├── FragmentBestPractice
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── fragmentbestpractice
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── fragmentbestpractice
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ ├── NewsContentActivity.java
│ │ │ │ │ ├── NewsContentFragment.java
│ │ │ │ │ ├── News.java
│ │ │ │ │ └── NewsTitleFragment.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ ├── activity_main.xml
│ │ │ │ │ ├── news_content_frag.xml
│ │ │ │ │ ├── news_content.xml
│ │ │ │ │ ├── news_item.xml
│ │ │ │ │ └── news_title_frag.xml
│ │ │ │ ├── layout-sw600dp
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── fragmentbestpractice
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ └── FragmentTest
│ ├── app
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── fragmenttest
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── fragmenttest
│ │ │ │ ├── AnotherRightFragment.java
│ │ │ │ ├── LeftFragment.java
│ │ │ │ ├── MainActivity.java
│ │ │ │ └── RightFragment.java
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── another_right_fragment.xml
│ │ │ │ ├── left_fragment.xml
│ │ │ │ └── right_fragment.xml
│ │ │ ├── layout-large
│ │ │ │ └── activity_main.xml
│ │ │ ├── layout-sw600dp
│ │ │ │ └── activity_main.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── fragmenttest
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── chapter5
│ ├── BroadcastBestPractice
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── broadcastbestpractice
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── broadcastbestpractice
│ │ │ │ │ ├── ActivityCollector.java
│ │ │ │ │ ├── BaseActivity.java
│ │ │ │ │ ├── LoginActivity.java
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ ├── activity_login.xml
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── broadcastbestpractice
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── BroadcastTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── broadcasttest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── broadcasttest
│ │ │ │ │ ├── BootCompleteReceiver.java
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MyBroadcastReceiver.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── broadcasttest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ └── BroadcastTest2
│ ├── app
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── broadcasttest2
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── broadcasttest2
│ │ │ │ ├── AnotherBroadcastReceiver.java
│ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── broadcasttest2
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── chapter6
│ ├── BroadcastBestPractice
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── broadcastbestpractice
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── broadcastbestpractice
│ │ │ │ │ ├── ActivityCollector.java
│ │ │ │ │ ├── BaseActivity.java
│ │ │ │ │ ├── LoginActivity.java
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ ├── activity_login.xml
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── broadcastbestpractice
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── DatabaseTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── databasetest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── databasetest
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MyDatabaseHelper.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── databasetest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── FilePersistenceTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── filepersistencetest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── filepersistencetest
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── filepersistencetest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── LitePalTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── litepaltest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── assets
│ │ │ │ │ └── litepal.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── litepaltest
│ │ │ │ │ ├── Book.java
│ │ │ │ │ ├── Category.java
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── litepaltest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ └── SharedPreferencesTest
│ ├── app
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── sharedpreferencestest
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── sharedpreferencestest
│ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── sharedpreferencestest
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── chapter7
│ ├── ContactsTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── contactstest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── contactstest
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── contactstest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── DatabaseTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── databasetest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── databasetest
│ │ │ │ │ ├── DatabaseProvider.java
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MyDatabaseHelper.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── databasetest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── ProviderTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── providertest
│ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ └── RuntimePermissionTest
│ ├── app
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── runtimepermissiontest
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── runtimepermissiontest
│ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── runtimepermissiontest
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── chapter8
│ ├── CameraAlbumTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── cameraalbumtest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── cameraalbumtest
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ ├── values-w820dp
│ │ │ │ │ └── dimens.xml
│ │ │ │ └── xml
│ │ │ │ └── file_paths.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── cameraalbumtest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── NotificationTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── notificationtest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── notificationtest
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── NotificationActivity.java
│ │ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ │ └── big_image.jpg
│ │ │ │ ├── layout
│ │ │ │ │ ├── activity_main.xml
│ │ │ │ │ └── notification_layout.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── notificationtest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── PlayAudioTest
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ ├── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── playaudiotest
│ │ │ │ └── ApplicationTest.java
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── playaudiotest
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── playaudiotest
│ │ │ └── ExampleUnitTest.java
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ └── PlayVideoTest
│ ├── app
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── playvideotest
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── playvideotest
│ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── playvideotest
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── chapter9
├── NetworkTest
│ ├── app
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ ├── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── networktest
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── networktest
│ │ │ │ ├── App.java
│ │ │ │ ├── ContentHandler.java
│ │ │ │ ├── HttpCallbackListener.java
│ │ │ │ ├── HttpUtil.java
│ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── values-w820dp
│ │ │ └── dimens.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── networktest
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── WebViewTest
├── app
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ ├── androidTest
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── webviewtest
│ │ └── ApplicationTest.java
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── webviewtest
│ │ │ └── MainActivity.java
│ │ └── res
│ │ ├── layout
│ │ │ └── activity_main.xml
│ │ ├── mipmap-hdpi
│ │ │ └── ic_launcher.png
│ │ ├── mipmap-mdpi
│ │ │ └── ic_launcher.png
│ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ ├── mipmap-xxxhdpi
│ │ │ └── ic_launcher.png
│ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── values-w820dp
│ │ └── dimens.xml
│ └── test
│ └── java
│ └── com
│ └── example
│ └── webviewtest
│ └── ExampleUnitTest.java
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
1049 directories, 1014 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论