The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── README.md
├── chapter1
    └── HelloWorld
    │   ├── .gitignore
    │   ├── app
    │       ├── .gitignore
    │       ├── 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-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── example
    │       │                   └── helloworld
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
├── chapter10
    ├── AndroidThreadTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── androidthreadtest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── ServiceBestPractice
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── servicebestpractice
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    └── ServiceTest
    │   ├── .gitignore
    │   ├── app
    │       ├── .gitignore
    │       ├── 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-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── example
    │       │                   └── servicetest
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
├── chapter11
    └── LBSTest
    │   ├── .gitignore
    │   ├── app
    │       ├── .gitignore
    │       ├── 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-v7a
    │       │       │   │   ├── 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
    │       │       │   ├── 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-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── example
    │       │                   └── lbstest
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
├── chapter12
    └── MaterialTest
    │   ├── .gitignore
    │   ├── app
    │       ├── .gitignore
    │       ├── build.gradle
    │       ├── proguard-rules.pro
    │       └── src
    │       │   ├── androidTest
    │       │       └── java
    │       │       │   └── com
    │       │       │       └── example
    │       │       │           └── materialtest
    │       │       │               └── ApplicationTest.java
    │       │   ├── main
    │       │       ├── AndroidManifest.xml
    │       │       ├── java
    │       │       │   └── com
    │       │       │   │   └── example
    │       │       │   │       └── materialtest
    │       │       │   │           ├── Fruit.java
    │       │       │   │           ├── FruitActivity.java
    │       │       │   │           ├── FruitAdapter.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-v21
    │       │       │       └── styles.xml
    │       │       │   ├── values-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── example
    │       │                   └── materialtest
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
├── chapter14
    └── CoolWeather
    │   ├── .gitignore
    │   ├── LICENSE
    │   ├── README.md
    │   ├── app
    │       ├── .gitignore
    │       ├── 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
    │       │       │   │           ├── MainActivity.java
    │       │       │   │           ├── WeatherActivity.java
    │       │       │   │           ├── db
    │       │       │   │               ├── City.java
    │       │       │   │               ├── County.java
    │       │       │   │               └── Province.java
    │       │       │   │           ├── gson
    │       │       │   │               ├── AQI.java
    │       │       │   │               ├── Basic.java
    │       │       │   │               ├── Forecast.java
    │       │       │   │               ├── Now.java
    │       │       │   │               ├── Suggestion.java
    │       │       │   │               └── Weather.java
    │       │       │   │           ├── service
    │       │       │   │               └── AutoUpdateService.java
    │       │       │   │           └── util
    │       │       │   │               ├── HttpUtil.java
    │       │       │   │               └── Utility.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.xml
    │       │       │       ├── forecast_item.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-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── coolweather
    │       │                   └── android
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
├── chapter2
    ├── ActivityLifeCycleTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── activitylifecycletest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    └── ActivityTest
    │   ├── .gitignore
    │   ├── app
    │       ├── .gitignore
    │       ├── 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-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── example
    │       │                   └── activitytest
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
├── chapter3
    ├── ListViewTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── build.gradle
    │   │   ├── proguard-rules.pro
    │   │   └── src
    │   │   │   ├── androidTest
    │   │   │       └── java
    │   │   │       │   └── com
    │   │   │       │       └── example
    │   │   │       │           └── listviewtest
    │   │   │       │               └── ApplicationTest.java
    │   │   │   ├── main
    │   │   │       ├── AndroidManifest.xml
    │   │   │       ├── java
    │   │   │       │   └── com
    │   │   │       │   │   └── example
    │   │   │       │   │       └── listviewtest
    │   │   │       │   │           ├── Fruit.java
    │   │   │       │   │           ├── FruitAdapter.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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── listviewtest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── RecyclerViewTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── build.gradle
    │   │   ├── proguard-rules.pro
    │   │   └── src
    │   │   │   ├── androidTest
    │   │   │       └── java
    │   │   │       │   └── com
    │   │   │       │       └── example
    │   │   │       │           └── recyclerviewtest
    │   │   │       │               └── ApplicationTest.java
    │   │   │   ├── main
    │   │   │       ├── AndroidManifest.xml
    │   │   │       ├── java
    │   │   │       │   └── com
    │   │   │       │   │   └── example
    │   │   │       │   │       └── recyclerviewtest
    │   │   │       │   │           ├── Fruit.java
    │   │   │       │   │           ├── FruitAdapter.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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── recyclerviewtest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── UIBestPractice
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── build.gradle
    │   │   ├── proguard-rules.pro
    │   │   └── src
    │   │   │   ├── androidTest
    │   │   │       └── java
    │   │   │       │   └── com
    │   │   │       │       └── example
    │   │   │       │           └── uibestpractice
    │   │   │       │               └── ApplicationTest.java
    │   │   │   ├── main
    │   │   │       ├── AndroidManifest.xml
    │   │   │       ├── java
    │   │   │       │   └── com
    │   │   │       │   │   └── example
    │   │   │       │   │       └── uibestpractice
    │   │   │       │   │           ├── MainActivity.java
    │   │   │       │   │           ├── Msg.java
    │   │   │       │   │           └── MsgAdapter.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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── uibestpractice
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── UICustomViews
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── uicustomviews
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── UILayoutTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── uilayouttest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    └── UIWidgetTest
    │   ├── .gitignore
    │   ├── app
    │       ├── .gitignore
    │       ├── 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-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── example
    │       │                   └── uiwidgettest
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
├── chapter4
    ├── FragmentBestPractice
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── build.gradle
    │   │   ├── proguard-rules.pro
    │   │   └── src
    │   │   │   ├── androidTest
    │   │   │       └── java
    │   │   │       │   └── com
    │   │   │       │       └── example
    │   │   │       │           └── fragmentbestpractice
    │   │   │       │               └── ApplicationTest.java
    │   │   │   ├── main
    │   │   │       ├── AndroidManifest.xml
    │   │   │       ├── java
    │   │   │       │   └── com
    │   │   │       │   │   └── example
    │   │   │       │   │       └── fragmentbestpractice
    │   │   │       │   │           ├── MainActivity.java
    │   │   │       │   │           ├── News.java
    │   │   │       │   │           ├── NewsContentActivity.java
    │   │   │       │   │           ├── NewsContentFragment.java
    │   │   │       │   │           └── NewsTitleFragment.java
    │   │   │       └── res
    │   │   │       │   ├── layout-sw600dp
    │   │   │       │       └── activity_main.xml
    │   │   │       │   ├── layout
    │   │   │       │       ├── activity_main.xml
    │   │   │       │       ├── news_content.xml
    │   │   │       │       ├── news_content_frag.xml
    │   │   │       │       ├── news_item.xml
    │   │   │       │       └── news_title_frag.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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── fragmentbestpractice
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    └── FragmentTest
    │   ├── .gitignore
    │   ├── app
    │       ├── .gitignore
    │       ├── 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-large
    │       │       │       └── activity_main.xml
    │       │       │   ├── layout-sw600dp
    │       │       │       └── activity_main.xml
    │       │       │   ├── layout
    │       │       │       ├── activity_main.xml
    │       │       │       ├── another_right_fragment.xml
    │       │       │       ├── left_fragment.xml
    │       │       │       └── right_fragment.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-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── example
    │       │                   └── fragmenttest
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
├── chapter5
    ├── BroadcastBestPractice
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── broadcastbestpractice
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── BroadcastTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── broadcasttest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    └── BroadcastTest2
    │   ├── .gitignore
    │   ├── app
    │       ├── .gitignore
    │       ├── 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-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── example
    │       │                   └── broadcasttest2
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
├── chapter6
    ├── BroadcastBestPractice
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── broadcastbestpractice
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── DatabaseTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── databasetest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── FilePersistenceTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── filepersistencetest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── LitePalTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── litepaltest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    └── SharedPreferencesTest
    │   ├── .gitignore
    │   ├── app
    │       ├── .gitignore
    │       ├── 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-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── example
    │       │                   └── sharedpreferencestest
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
├── chapter7
    ├── ContactsTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── contactstest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── DatabaseTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── databasetest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── ProviderTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │               └── dimens.xml
    │   │   │           └── values
    │   │   │               ├── colors.xml
    │   │   │               ├── dimens.xml
    │   │   │               ├── strings.xml
    │   │   │               └── styles.xml
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    └── RuntimePermissionTest
    │   ├── .gitignore
    │   ├── app
    │       ├── .gitignore
    │       ├── 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-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── example
    │       │                   └── runtimepermissiontest
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
├── chapter8
    ├── CameraAlbumTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   ├── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │       │   └── xml
    │   │   │       │       └── file_paths.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── cameraalbumtest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── NotificationTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── notificationtest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── PlayAudioTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── playaudiotest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    └── PlayVideoTest
    │   ├── .gitignore
    │   ├── app
    │       ├── .gitignore
    │       ├── 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-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── example
    │       │                   └── playvideotest
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
├── chapter9
    ├── NetworkTest
    │   ├── .gitignore
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── 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-w820dp
    │   │   │       │       └── dimens.xml
    │   │   │       │   └── values
    │   │   │       │       ├── colors.xml
    │   │   │       │       ├── dimens.xml
    │   │   │       │       ├── strings.xml
    │   │   │       │       └── styles.xml
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── com
    │   │   │               └── example
    │   │   │                   └── networktest
    │   │   │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    └── WebViewTest
    │   ├── .gitignore
    │   ├── app
    │       ├── .gitignore
    │       ├── 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-w820dp
    │       │       │       └── dimens.xml
    │       │       │   └── values
    │       │       │       ├── colors.xml
    │       │       │       ├── dimens.xml
    │       │       │       ├── strings.xml
    │       │       │       └── styles.xml
    │       │   └── test
    │       │       └── java
    │       │           └── com
    │       │               └── example
    │       │                   └── webviewtest
    │       │                       └── ExampleUnitTest.java
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │       └── wrapper
    │       │   ├── gradle-wrapper.jar
    │       │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
└── qrcode.jpg


/README.md:
--------------------------------------------------------------------------------
1 | # 关注我的微信公众号学习更多技术
2 | 
3 | <img src="https://raw.githubusercontent.com/guolindev/booksource/master/qrcode.jpg" width="250" />
4 | 
5 | 如果是对书中源码有疑问,也可以到公众号里给我留言。微信扫一扫上方二维码即可关注。
6 | 


--------------------------------------------------------------------------------
/chapter1/HelloWorld/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter1/HelloWorld/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter1/HelloWorld/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter1/HelloWorld/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter1/HelloWorld/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter1/HelloWorld/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter1/HelloWorld/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter1/HelloWorld/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter1/HelloWorld/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter1/HelloWorld/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter1/HelloWorld/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter1/HelloWorld/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter1/HelloWorld/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter1/HelloWorld/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter1/HelloWorld/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter1/HelloWorld/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">HelloWorld</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter1/HelloWorld/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
 1 | <resources>
 2 | 
 3 |     <!-- Base application theme. -->
 4 |     <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
 5 |         <!-- Customize your theme here. -->
 6 |         <item name="colorPrimary">@color/colorPrimary</item>
 7 |         <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
 8 |         <item name="colorAccent">@color/colorAccent</item>
 9 |     </style>
10 | 
11 | </resources>
12 | 


--------------------------------------------------------------------------------
/chapter1/HelloWorld/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter1/HelloWorld/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter1/HelloWorld/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Dec 28 10:00:20 PST 2015
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter1/HelloWorld/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/AndroidThreadTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/AndroidThreadTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/AndroidThreadTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/AndroidThreadTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/AndroidThreadTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">AndroidThreadTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/app/src/test/java/com/example/androidthreadtest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.androidthreadtest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/AndroidThreadTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 19:21:48 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter10/AndroidThreadTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/app/src/main/java/com/example/servicebestpractice/DownloadListener.java:
--------------------------------------------------------------------------------
 1 | package com.example.servicebestpractice;
 2 | 
 3 | public interface DownloadListener {
 4 | 
 5 |     void onProgress(int progress);
 6 | 
 7 |     void onSuccess();
 8 | 
 9 |     void onFailed();
10 | 
11 |     void onPaused();
12 | 
13 |     void onCanceled();
14 | 
15 | }
16 | 


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/ServiceBestPractice/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/ServiceBestPractice/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/ServiceBestPractice/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/ServiceBestPractice/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/ServiceBestPractice/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">ServiceBestPractice</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/ServiceBestPractice/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 20:00:17 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter10/ServiceBestPractice/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter10/ServiceTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter10/ServiceTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter10/ServiceTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/ServiceTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/ServiceTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/ServiceTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/ServiceTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/ServiceTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/ServiceTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/ServiceTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/ServiceTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/ServiceTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter10/ServiceTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter10/ServiceTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter10/ServiceTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter10/ServiceTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">ServiceTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter10/ServiceTest/app/src/test/java/com/example/servicetest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.servicetest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter10/ServiceTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter10/ServiceTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter10/ServiceTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 19:49:10 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter10/ServiceTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter11/LBSTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/libs/BaiduLBS_Android.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/libs/BaiduLBS_Android.jar


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/arm64-v8a/libBaiduMapSDK_base_v4_0_0.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/arm64-v8a/libBaiduMapSDK_base_v4_0_0.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/arm64-v8a/libBaiduMapSDK_map_v4_0_0.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/arm64-v8a/libBaiduMapSDK_map_v4_0_0.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/arm64-v8a/liblocSDK6a.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/arm64-v8a/liblocSDK6a.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/armeabi-v7a/libBaiduMapSDK_base_v4_0_0.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/armeabi-v7a/libBaiduMapSDK_base_v4_0_0.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/armeabi-v7a/libBaiduMapSDK_map_v4_0_0.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/armeabi-v7a/libBaiduMapSDK_map_v4_0_0.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/armeabi-v7a/liblocSDK6a.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/armeabi-v7a/liblocSDK6a.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/armeabi/libBaiduMapSDK_base_v4_0_0.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/armeabi/libBaiduMapSDK_base_v4_0_0.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/armeabi/libBaiduMapSDK_map_v4_0_0.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/armeabi/libBaiduMapSDK_map_v4_0_0.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/armeabi/liblocSDK6a.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/armeabi/liblocSDK6a.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/x86/libBaiduMapSDK_base_v4_0_0.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/x86/libBaiduMapSDK_base_v4_0_0.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/x86/libBaiduMapSDK_map_v4_0_0.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/x86/libBaiduMapSDK_map_v4_0_0.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/x86/liblocSDK6a.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/x86/liblocSDK6a.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/x86_64/libBaiduMapSDK_base_v4_0_0.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/x86_64/libBaiduMapSDK_base_v4_0_0.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/x86_64/libBaiduMapSDK_map_v4_0_0.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/x86_64/libBaiduMapSDK_map_v4_0_0.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/jniLibs/x86_64/liblocSDK6a.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/jniLibs/x86_64/liblocSDK6a.so


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">LBSTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
 1 | <resources>
 2 | 
 3 |     <!-- Base application theme. -->
 4 |     <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
 5 |         <!-- Customize your theme here. -->
 6 |         <item name="colorPrimary">@color/colorPrimary</item>
 7 |         <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
 8 |         <item name="colorAccent">@color/colorAccent</item>
 9 |     </style>
10 | 
11 | </resources>
12 | 


--------------------------------------------------------------------------------
/chapter11/LBSTest/app/src/test/java/com/example/lbstest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.lbstest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter11/LBSTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter11/LBSTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter11/LBSTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 20:35:19 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter11/LBSTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter12/MaterialTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/apple.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/apple.jpg


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/banana.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/banana.jpg


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/cherry.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/cherry.jpg


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/grape.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/grape.jpg


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/ic_backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/ic_backup.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/ic_comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/ic_comment.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/ic_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/ic_delete.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/ic_done.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/ic_done.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/ic_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/ic_menu.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/ic_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/ic_settings.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/mango.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/mango.jpg


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/nav_call.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/nav_call.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/nav_friends.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/nav_friends.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/nav_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/nav_icon.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/nav_location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/nav_location.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/nav_mail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/nav_mail.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/nav_task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/nav_task.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/orange.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/orange.jpg


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/pear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/pear.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/pineapple.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/pineapple.jpg


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/strawberry.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/strawberry.jpg


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/watermelon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/drawable-xxhdpi/watermelon.jpg


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 | 
4 |     <style name="FruitActivityTheme" parent="AppTheme">
5 |         <item name="android:statusBarColor">@android:color/transparent</item>
6 |     </style>
7 | 
8 | </resources>


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">MaterialTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter12/MaterialTest/app/src/test/java/com/example/materialtest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.materialtest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter12/MaterialTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter12/MaterialTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter12/MaterialTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Oct 03 10:06:04 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter12/MaterialTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter14/CoolWeather/README.md:
--------------------------------------------------------------------------------
1 | 酷欧天气(CoolWeather)
2 | ===========
3 | 酷欧天气是一款基于Android端开源的天气预报软件,具备查看全国的省市县、查询任意城市天气、自由切换城市、手动更新天气、后台自动更新天气等功能。酷欧天气中的天气数据由和风天气提供,背景图片由必应提供,代码遵循Apache v2 License开源协议。本软件主要作为学习和交流使用。
4 | 


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/assets/litepal.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <litepal>
 3 | 
 4 |     <dbname value="cool_weather" />
 5 | 
 6 |     <version value="1" />
 7 | 
 8 |     <list>
 9 |         <mapping class="com.coolweather.android.db.Province" />
10 |         <mapping class="com.coolweather.android.db.City" />
11 |         <mapping class="com.coolweather.android.db.County" />
12 |     </list>
13 | 
14 | </litepal>


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/java/com/coolweather/android/gson/AQI.java:
--------------------------------------------------------------------------------
 1 | package com.coolweather.android.gson;
 2 | 
 3 | public class AQI {
 4 | 
 5 |     public AQICity city;
 6 | 
 7 |     public class AQICity {
 8 | 
 9 |         public String aqi;
10 | 
11 |         public String pm25;
12 | 
13 |     }
14 | 
15 | }
16 | 


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/java/com/coolweather/android/gson/Now.java:
--------------------------------------------------------------------------------
 1 | package com.coolweather.android.gson;
 2 | 
 3 | import com.google.gson.annotations.SerializedName;
 4 | 
 5 | public class Now {
 6 | 
 7 |     @SerializedName("tmp")
 8 |     public String temperature;
 9 | 
10 |     @SerializedName("cond")
11 |     public More more;
12 | 
13 |     public class More {
14 | 
15 |         @SerializedName("txt")
16 |         public String info;
17 | 
18 |     }
19 | 
20 | }
21 | 


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/drawable-nodpi/bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/drawable-nodpi/bg.jpg


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/drawable-xxhdpi/ic_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/drawable-xxhdpi/ic_back.png


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/drawable-xxhdpi/ic_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/drawable-xxhdpi/ic_home.png


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/mipmap-hdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/mipmap-hdpi/logo.png


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/mipmap-mdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/mipmap-mdpi/logo.png


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/mipmap-xhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/mipmap-xhdpi/logo.png


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/mipmap-xxhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/mipmap-xxhdpi/logo.png


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/mipmap-xxxhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/app/src/main/res/mipmap-xxxhdpi/logo.png


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 | <string name="app_name">酷欧天气</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter14/CoolWeather/app/src/test/java/com/coolweather/android/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.coolweather.android;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter14/CoolWeather/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter14/CoolWeather/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter14/CoolWeather/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 21:29:47 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter14/CoolWeather/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter2/ActivityLifeCycleTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter2/ActivityLifeCycleTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter2/ActivityLifeCycleTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter2/ActivityLifeCycleTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter2/ActivityLifeCycleTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">ActivityLifeCycleTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter2/ActivityLifeCycleTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 10:20:36 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter2/ActivityLifeCycleTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter2/ActivityTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter2/ActivityTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter2/ActivityTest/app/src/main/res/menu/main.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <menu xmlns:android="http://schemas.android.com/apk/res/android">
3 |     <item
4 |         android:id="@+id/add_item"
5 |         android:title="Add"/>
6 |     <item
7 |         android:id="@+id/remove_item"
8 |         android:title="Remove"/>
9 | </menu>


--------------------------------------------------------------------------------
/chapter2/ActivityTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter2/ActivityTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter2/ActivityTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter2/ActivityTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter2/ActivityTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter2/ActivityTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter2/ActivityTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter2/ActivityTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter2/ActivityTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter2/ActivityTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter2/ActivityTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter2/ActivityTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter2/ActivityTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter2/ActivityTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">ActivityTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter2/ActivityTest/app/src/test/java/com/example/activitytest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.activitytest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter2/ActivityTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter2/ActivityTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter2/ActivityTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 09:24:09 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter2/ActivityTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter3/ListViewTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/apple_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/apple_pic.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/banana_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/banana_pic.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/cherry_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/cherry_pic.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/grape_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/grape_pic.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/mango_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/mango_pic.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/orange_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/orange_pic.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/pear_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/pear_pic.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/pineapple_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/pineapple_pic.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/strawberry_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/strawberry_pic.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/watermelon_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/drawable-hdpi/watermelon_pic.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">ListViewTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter3/ListViewTest/app/src/test/java/com/example/listviewtest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.listviewtest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter3/ListViewTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/ListViewTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter3/ListViewTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 16:04:22 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter3/ListViewTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/apple_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/apple_pic.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/banana_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/banana_pic.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/cherry_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/cherry_pic.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/grape_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/grape_pic.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/mango_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/mango_pic.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/orange_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/orange_pic.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/pear_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/pear_pic.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/pineapple_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/pineapple_pic.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/strawberry_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/strawberry_pic.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/watermelon_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/drawable-hdpi/watermelon_pic.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">RecyclerViewTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/app/src/test/java/com/example/recyclerviewtest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.recyclerviewtest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/RecyclerViewTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 16:43:56 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter3/RecyclerViewTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/src/main/res/drawable-xhdpi/message_left.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIBestPractice/app/src/main/res/drawable-xhdpi/message_left.9.png


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/src/main/res/drawable-xhdpi/message_right.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIBestPractice/app/src/main/res/drawable-xhdpi/message_right.9.png


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIBestPractice/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIBestPractice/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIBestPractice/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIBestPractice/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIBestPractice/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">UIBestPractice</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/app/src/test/java/com/example/uibestpractice/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.uibestpractice;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIBestPractice/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 16:51:43 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter3/UIBestPractice/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter3/UICustomViews/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/drawable-xhdpi/back_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UICustomViews/app/src/main/res/drawable-xhdpi/back_bg.png


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/drawable-xhdpi/edit_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UICustomViews/app/src/main/res/drawable-xhdpi/edit_bg.png


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/drawable-xhdpi/title_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UICustomViews/app/src/main/res/drawable-xhdpi/title_bg.png


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3 |     android:layout_width="match_parent"
 4 |     android:layout_height="match_parent" >
 5 | 
 6 |     <com.example.uicustomviews.TitleLayout
 7 |         android:layout_width="match_parent"
 8 |         android:layout_height="wrap_content" />
 9 | 
10 | 
11 | </LinearLayout>


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UICustomViews/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UICustomViews/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UICustomViews/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UICustomViews/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UICustomViews/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">UICustomViews</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter3/UICustomViews/app/src/test/java/com/example/uicustomviews/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.uicustomviews;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter3/UICustomViews/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UICustomViews/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter3/UICustomViews/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 16:42:24 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter3/UICustomViews/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/app/src/main/java/com/example/uilayouttest/MainActivity.java:
--------------------------------------------------------------------------------
 1 | package com.example.uilayouttest;
 2 | 
 3 | import android.support.v7.app.AppCompatActivity;
 4 | import android.os.Bundle;
 5 | 
 6 | public class MainActivity extends AppCompatActivity {
 7 | 
 8 |     @Override
 9 |     protected void onCreate(Bundle savedInstanceState) {
10 |         super.onCreate(savedInstanceState);
11 |         setContentView(R.layout.activity_main);
12 |     }
13 | }
14 | 


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UILayoutTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UILayoutTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UILayoutTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UILayoutTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UILayoutTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">UILayoutTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/app/src/test/java/com/example/uilayouttest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.uilayouttest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UILayoutTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 15:27:59 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter3/UILayoutTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/src/main/res/drawable-xhdpi/img_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIWidgetTest/app/src/main/res/drawable-xhdpi/img_1.png


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/src/main/res/drawable-xhdpi/img_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIWidgetTest/app/src/main/res/drawable-xhdpi/img_2.png


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIWidgetTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIWidgetTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIWidgetTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIWidgetTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIWidgetTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">UIWidgetTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/app/src/test/java/com/example/uiwidgettest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.uiwidgettest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter3/UIWidgetTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 10:54:27 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter3/UIWidgetTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter4/FragmentBestPractice/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter4/FragmentBestPractice/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter4/FragmentBestPractice/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter4/FragmentBestPractice/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter4/FragmentBestPractice/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">FragmentBestPractice</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter4/FragmentBestPractice/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Tue Oct 04 08:38:40 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter4/FragmentBestPractice/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter4/FragmentTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter4/FragmentTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter4/FragmentTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter4/FragmentTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter4/FragmentTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter4/FragmentTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter4/FragmentTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter4/FragmentTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter4/FragmentTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter4/FragmentTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter4/FragmentTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter4/FragmentTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter4/FragmentTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter4/FragmentTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter4/FragmentTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter4/FragmentTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">FragmentTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter4/FragmentTest/app/src/test/java/com/example/fragmenttest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.fragmenttest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter4/FragmentTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter4/FragmentTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter4/FragmentTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Tue Oct 04 08:37:04 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter4/FragmentTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastBestPractice/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastBestPractice/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastBestPractice/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastBestPractice/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastBestPractice/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">BroadcastBestPractice</string>
3 |     <string name="login">Login Again</string>
4 | </resources>
5 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastBestPractice/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 23:02:50 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastBestPractice/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">BroadcastTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/app/src/test/java/com/example/broadcasttest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.broadcasttest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 22:21:29 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastTest2/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastTest2/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastTest2/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastTest2/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastTest2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">BroadcastTest2</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/app/src/test/java/com/example/broadcasttest2/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.broadcasttest2;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter5/BroadcastTest2/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 23:01:32 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter5/BroadcastTest2/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/BroadcastBestPractice/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/BroadcastBestPractice/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/BroadcastBestPractice/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/BroadcastBestPractice/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/BroadcastBestPractice/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">BroadcastBestPractice</string>
3 |     <string name="login">Login Again</string>
4 | </resources>
5 | 


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/BroadcastBestPractice/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 17:18:32 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter6/BroadcastBestPractice/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/DatabaseTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/DatabaseTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/DatabaseTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/DatabaseTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/DatabaseTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">DatabaseTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/app/src/test/java/com/example/databasetest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.databasetest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/DatabaseTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 17:21:35 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter6/DatabaseTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/FilePersistenceTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/FilePersistenceTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/FilePersistenceTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/FilePersistenceTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/FilePersistenceTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">FilePersistenceTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/FilePersistenceTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 17:11:33 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter6/FilePersistenceTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter6/LitePalTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter6/LitePalTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter6/LitePalTest/app/src/main/assets/litepal.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <litepal>
 3 |     <dbname value="BookStore" ></dbname>
 4 | 
 5 |     <version value="2" ></version>
 6 | 
 7 |     <list>
 8 |         <mapping class="com.example.litepaltest.Book"></mapping>
 9 |         <mapping class="com.example.litepaltest.Category"></mapping>
10 |     </list>
11 | </litepal>


--------------------------------------------------------------------------------
/chapter6/LitePalTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/LitePalTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/LitePalTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/LitePalTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/LitePalTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/LitePalTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/LitePalTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/LitePalTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/LitePalTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/LitePalTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/LitePalTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter6/LitePalTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter6/LitePalTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter6/LitePalTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">LitePalTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter6/LitePalTest/app/src/test/java/com/example/litepaltest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.litepaltest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter6/LitePalTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/LitePalTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter6/LitePalTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 17:27:08 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter6/LitePalTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/SharedPreferencesTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/SharedPreferencesTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/SharedPreferencesTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/SharedPreferencesTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/SharedPreferencesTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">SharedPreferencesTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter6/SharedPreferencesTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 17:13:34 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter6/SharedPreferencesTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter7/ContactsTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter7/ContactsTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter7/ContactsTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/ContactsTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/ContactsTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/ContactsTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/ContactsTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/ContactsTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/ContactsTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/ContactsTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/ContactsTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/ContactsTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/ContactsTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter7/ContactsTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter7/ContactsTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter7/ContactsTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">ContactsTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter7/ContactsTest/app/src/test/java/com/example/contactstest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.contactstest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter7/ContactsTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/ContactsTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter7/ContactsTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 17:41:53 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter7/ContactsTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/DatabaseTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/DatabaseTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/DatabaseTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/DatabaseTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/DatabaseTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">DatabaseTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/app/src/test/java/com/example/databasetest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.databasetest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/DatabaseTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 17:47:10 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter7/DatabaseTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter7/ProviderTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter7/ProviderTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /src/test
3 | /src/androidTest


--------------------------------------------------------------------------------
/chapter7/ProviderTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/ProviderTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/ProviderTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/ProviderTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/ProviderTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/ProviderTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/ProviderTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/ProviderTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/ProviderTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/ProviderTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/ProviderTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter7/ProviderTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter7/ProviderTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter7/ProviderTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">ProviderTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter7/ProviderTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/ProviderTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter7/ProviderTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 17:44:26 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter7/ProviderTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/RuntimePermissionTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/RuntimePermissionTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/RuntimePermissionTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/RuntimePermissionTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/RuntimePermissionTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">RuntimePermissionTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter7/RuntimePermissionTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 17:40:22 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter7/RuntimePermissionTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/CameraAlbumTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/CameraAlbumTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/CameraAlbumTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/CameraAlbumTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/CameraAlbumTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">CameraAlbumTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/app/src/main/res/xml/file_paths.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <paths xmlns:android="http://schemas.android.com/apk/res/android">
3 |     <external-path name="my_images" path="" />
4 | </paths>


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/app/src/test/java/com/example/cameraalbumtest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.cameraalbumtest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/CameraAlbumTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Oct 03 11:48:54 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter8/CameraAlbumTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter8/NotificationTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter8/NotificationTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter8/NotificationTest/app/src/main/res/drawable/big_image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/NotificationTest/app/src/main/res/drawable/big_image.jpg


--------------------------------------------------------------------------------
/chapter8/NotificationTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/NotificationTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/NotificationTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/NotificationTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/NotificationTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/NotificationTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/NotificationTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/NotificationTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/NotificationTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/NotificationTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/NotificationTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter8/NotificationTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter8/NotificationTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter8/NotificationTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">NotificationTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter8/NotificationTest/app/src/test/java/com/example/notificationtest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.notificationtest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter8/NotificationTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/NotificationTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter8/NotificationTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Oct 03 11:20:14 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter8/NotificationTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/PlayAudioTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/PlayAudioTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/PlayAudioTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/PlayAudioTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/PlayAudioTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">PlayAudioTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/app/src/test/java/com/example/playaudiotest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.playaudiotest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/PlayAudioTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Oct 03 11:54:43 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter8/PlayAudioTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/PlayVideoTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/PlayVideoTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/PlayVideoTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/PlayVideoTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/PlayVideoTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">PlayVideoTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/app/src/test/java/com/example/playvideotest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.playvideotest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter8/PlayVideoTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Oct 03 11:58:19 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter8/PlayVideoTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter9/NetworkTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter9/NetworkTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter9/NetworkTest/app/src/main/java/com/example/networktest/HttpCallbackListener.java:
--------------------------------------------------------------------------------
1 | package com.example.networktest;
2 | 
3 | public interface HttpCallbackListener {
4 | 
5 |     void onFinish(String response);
6 | 
7 |     void onError(Exception e);
8 | 
9 | }


--------------------------------------------------------------------------------
/chapter9/NetworkTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter9/NetworkTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter9/NetworkTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter9/NetworkTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter9/NetworkTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter9/NetworkTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter9/NetworkTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter9/NetworkTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter9/NetworkTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter9/NetworkTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter9/NetworkTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter9/NetworkTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter9/NetworkTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter9/NetworkTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">NetworkTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter9/NetworkTest/app/src/test/java/com/example/networktest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.networktest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter9/NetworkTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter9/NetworkTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter9/NetworkTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 17:56:52 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter9/NetworkTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/chapter9/WebViewTest/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | 


--------------------------------------------------------------------------------
/chapter9/WebViewTest/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/chapter9/WebViewTest/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3 |     android:layout_width="match_parent"
 4 |     android:layout_height="match_parent" >
 5 | 
 6 |     <WebView
 7 |         android:id="@+id/web_view"
 8 |         android:layout_width="match_parent"
 9 |         android:layout_height="match_parent" />
10 | 
11 | </LinearLayout>


--------------------------------------------------------------------------------
/chapter9/WebViewTest/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter9/WebViewTest/app/src/main/res/mipmap-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter9/WebViewTest/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter9/WebViewTest/app/src/main/res/mipmap-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter9/WebViewTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter9/WebViewTest/app/src/main/res/mipmap-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter9/WebViewTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter9/WebViewTest/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter9/WebViewTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter9/WebViewTest/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/chapter9/WebViewTest/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter9/WebViewTest/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 |     <color name="colorPrimary">#3F51B5</color>
4 |     <color name="colorPrimaryDark">#303F9F</color>
5 |     <color name="colorAccent">#FF4081</color>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/chapter9/WebViewTest/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/chapter9/WebViewTest/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <string name="app_name">WebViewTest</string>
3 | </resources>
4 | 


--------------------------------------------------------------------------------
/chapter9/WebViewTest/app/src/test/java/com/example/webviewtest/ExampleUnitTest.java:
--------------------------------------------------------------------------------
 1 | package com.example.webviewtest;
 2 | 
 3 | import org.junit.Test;
 4 | 
 5 | import static org.junit.Assert.*;
 6 | 
 7 | /**
 8 |  * To work on unit tests, switch the Test Artifact in the Build Variants view.
 9 |  */
10 | public class ExampleUnitTest {
11 |     @Test
12 |     public void addition_isCorrect() throws Exception {
13 |         assertEquals(4, 2 + 2);
14 |     }
15 | }


--------------------------------------------------------------------------------
/chapter9/WebViewTest/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/chapter9/WebViewTest/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/chapter9/WebViewTest/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Oct 02 17:50:40 CST 2016
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-2.14.1-all.zip
7 | 


--------------------------------------------------------------------------------
/chapter9/WebViewTest/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/qrcode.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guolindev/booksource/e61f533816111c8899b2009a49b322e63cabbfd5/qrcode.jpg


--------------------------------------------------------------------------------