在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 《精通 Android 3》源代码/《Pro Android 3》 source code

《精通 Android 3》源代码/《Pro Android 3》 source code

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:6.68M
  • 下载次数:1
  • 浏览次数:61
  • 发布时间:2020-08-02
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.zip
  • 所需积分:2
 

实例介绍

【实例简介】
《精通 Android 3》 是一本好书,这个书上的例子便是学号这本书的媒介,所有源代码都在这个附件中!
【实例截图】
【核心代码】
ProAndroid3源代码
└── Pro Android 3 Source Code
├── First_Readme.txt
├── ProAndroid3_Ch03_Resources
│   └── TestResources
│   ├── AndroidManifest.xml
│   ├── assets
│   │   └── test.txt
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── ai
│   │   │   └── android
│   │   │   └── book
│   │   │   └── resources
│   │   │   ├── BaseTester.class
│   │   │   ├── HelloWorldActivity.class
│   │   │   ├── IReportBack.class
│   │   │   ├── MonitoredActivity.class
│   │   │   ├── MonitoredDebugActivity.class
│   │   │   ├── MyApplication.class
│   │   │   ├── R$array.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$color.class
│   │   │   ├── R$dimen.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R$plurals.class
│   │   │   ├── R$raw.class
│   │   │   ├── R$string.class
│   │   │   ├── R$xml.class
│   │   │   ├── R.class
│   │   │   ├── ResourceTester.class
│   │   │   └── TestActivity.class
│   │   ├── resources.ap_
│   │   └── TestResources.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── ai
│   │   └── android
│   │   └── book
│   │   └── resources
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── icon.png
│   │   │   ├── my_rounded_rectangle.xml
│   │   │   ├── robot.png
│   │   │   └── sample_image.png
│   │   ├── layout
│   │   │   ├── debug_activity_layout.xml
│   │   │   └── main.xml
│   │   ├── menu
│   │   │   └── main_menu.xml
│   │   ├── raw
│   │   │   └── test.txt
│   │   ├── values
│   │   │   ├── strings1.xml
│   │   │   └── strings.xml
│   │   ├── values-en
│   │   │   └── strings_en.xml
│   │   ├── values-en-port
│   │   │   └── strings_en_port.xml
│   │   ├── values-en-rUS
│   │   │   └── strings_en_us.xml
│   │   ├── values-port
│   │   │   └── strings_port.xml
│   │   └── xml
│   │   └── test.xml
│   └── src
│   └── com
│   └── ai
│   └── android
│   └── book
│   └── resources
│   ├── BaseTester.java
│   ├── HelloWorldActivity.java
│   ├── IReportBack.java
│   ├── MonitoredActivity.java
│   ├── MonitoredDebugActivity.java
│   ├── MyApplication.java
│   ├── ResourceTester.java
│   └── TestActivity.java
├── ProAndroid3_Ch04_ContentProviders
│   └── TestProvider
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── ai
│   │   │   └── android
│   │   │   └── book
│   │   │   └── provider
│   │   │   ├── BaseTester.class
│   │   │   ├── BookProvider$DatabaseHelper.class
│   │   │   ├── BookProvider.class
│   │   │   ├── BookProviderMetaData$BookTableMetaData.class
│   │   │   ├── BookProviderMetaData.class
│   │   │   ├── HelloWorld.class
│   │   │   ├── IReportBack.class
│   │   │   ├── MonitoredActivity.class
│   │   │   ├── MonitoredDebugActivity.class
│   │   │   ├── MyApplication.class
│   │   │   ├── ProviderTester.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   └── R.class
│   │   ├── resources.ap_
│   │   └── TestProvider.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── ai
│   │   └── android
│   │   └── book
│   │   └── provider
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── icon.png
│   │   │   └── robot.png
│   │   ├── layout
│   │   │   ├── debug_activity_layout.xml
│   │   │   └── main.xml
│   │   ├── menu
│   │   │   └── main_menu.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── ai
│   └── android
│   └── book
│   └── provider
│   ├── BaseTester.java
│   ├── BookProvider.java
│   ├── BookProviderMetaData.java
│   ├── HelloWorld.java
│   ├── IReportBack.java
│   ├── MonitoredActivity.java
│   ├── MonitoredDebugActivity.java
│   ├── MyApplication.java
│   └── ProviderTester.java
├── ProAndroid3_Ch05_Intents
│   └── TestIntents
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── ai
│   │   │   └── android
│   │   │   └── testintents
│   │   │   ├── BasicViewActivity.class
│   │   │   ├── IntentsUtils.class
│   │   │   ├── MainActivity$1.class
│   │   │   ├── MainActivity.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R$raw.class
│   │   │   ├── R$string.class
│   │   │   └── R.class
│   │   ├── resources.ap_
│   │   └── TestIntents.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── ai
│   │   └── android
│   │   └── testintents
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── balloons.jpg
│   │   │   ├── icon48x48_1.png
│   │   │   ├── icon48x48_2.png
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   ├── basic_view.xml
│   │   │   └── main.xml
│   │   ├── menu
│   │   │   └── main_menu.xml
│   │   ├── raw
│   │   │   └── test.txt
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── ai
│   └── android
│   └── testintents
│   ├── BasicViewActivity.java
│   ├── IntentsUtils.java
│   └── MainActivity.java
├── ProAndroid3_Ch06_Controls
│   └── Common Controls
│   ├── AndroidManifest.xml
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── commoncontrols
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── button_focused.png
│   │   │   ├── button_pressed.png
│   │   │   ├── icon.png
│   │   │   ├── imagebuttonselector.xml
│   │   │   ├── manatee00.jpg
│   │   │   ├── manatee01.jpg
│   │   │   ├── manatee02.jpg
│   │   │   ├── manatee03.jpg
│   │   │   ├── manatee04.jpg
│   │   │   ├── manatee05.jpg
│   │   │   ├── manatee06.jpg
│   │   │   ├── manatee07.jpg
│   │   │   ├── manatee08.jpg
│   │   │   ├── manatee09.jpg
│   │   │   ├── manatee10.jpg
│   │   │   ├── manatee11.jpg
│   │   │   ├── manatee12.jpg
│   │   │   ├── manatee13.jpg
│   │   │   ├── manatee14.jpg
│   │   │   ├── manatee15.jpg
│   │   │   ├── manatee16.jpg
│   │   │   ├── manatee17.jpg
│   │   │   ├── manatee18.jpg
│   │   │   ├── manatee19.jpg
│   │   │   ├── manatee20.jpg
│   │   │   ├── manatee21.jpg
│   │   │   ├── manatee22.jpg
│   │   │   ├── manatee23.jpg
│   │   │   ├── manatee24.jpg
│   │   │   ├── manatee25.jpg
│   │   │   ├── manatee26.jpg
│   │   │   ├── manatee27.jpg
│   │   │   ├── manatee28.jpg
│   │   │   ├── manatee29.jpg
│   │   │   ├── manatee30.jpg
│   │   │   ├── manatee31.jpg
│   │   │   ├── manatee32.jpg
│   │   │   └── manatee33.jpg
│   │   ├── layout
│   │   │   ├── buttons.xml
│   │   │   ├── checkbox.xml
│   │   │   ├── datetimepicker.xml
│   │   │   ├── gallery.xml
│   │   │   ├── gridimage.xml
│   │   │   ├── gridviewcustom.xml
│   │   │   ├── gridview.xml
│   │   │   ├── imageview.xml
│   │   │   ├── listing6_41.xml
│   │   │   ├── listing6_42.xml
│   │   │   ├── listing6_43.xml
│   │   │   ├── listing6_45.xml
│   │   │   ├── listing6_46.xml
│   │   │   ├── list.xml
│   │   │   ├── radiogroup.xml
│   │   │   ├── spinner.xml
│   │   │   ├── styles.xml
│   │   │   └── textview.xml
│   │   └── values
│   │   ├── planets.xml
│   │   ├── strings.xml
│   │   └── styles.xml
│   └── src
│   └── com
│   └── androidbook
│   └── commoncontrols
│   ├── ButtonActivity.java
│   ├── CheckBoxActivity.java
│   ├── DateTimePickerActivity.java
│   ├── FrameLayoutActivity.java
│   ├── GalleryActivity.java
│   ├── GridViewActivity.java
│   ├── GridViewCustomAdapter.java
│   ├── ImageViewActivity.java
│   ├── LayoutActivity.java
│   ├── ListViewActivity2.java
│   ├── ListViewActivity3.java
│   ├── ListViewActivity4.java
│   ├── ListViewActivity.java
│   ├── RadioGroupActivity.java
│   ├── SpinnerActivity.java
│   ├── StylesActivity.java
│   └── TextViewActivity.java
├── ProAndroid3_Ch07_Menus
│   └── TestMenus
│   ├── AndroidManifest.xml
│   ├── assets
│   │   └── sample.txt
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── ai
│   │   │   └── android
│   │   │   └── testmenus
│   │   │   ├── IntentsUtils.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$dimen.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R$raw.class
│   │   │   ├── R$string.class
│   │   │   ├── R.class
│   │   │   └── SampleMenusActivity.class
│   │   ├── resources.ap_
│   │   └── TestMenus.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── ai
│   │   └── android
│   │   └── testmenus
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── balloons.jpg
│   │   │   ├── frame_animation.xml
│   │   │   ├── icon48x48_1.png
│   │   │   ├── icon48x48_2.png
│   │   │   ├── icon.png
│   │   │   ├── numbers11.png
│   │   │   ├── numbers12.png
│   │   │   ├── numbers13.png
│   │   │   ├── numbers14.png
│   │   │   ├── numbers15.png
│   │   │   ├── numbers16.png
│   │   │   ├── numbers17.png
│   │   │   ├── numbers18.png
│   │   │   ├── numbers19.png
│   │   │   ├── numbers1.png
│   │   │   ├── numbers2.png
│   │   │   ├── numbers3.png
│   │   │   ├── numbers4.png
│   │   │   ├── numbers5.png
│   │   │   ├── numbers6.png
│   │   │   ├── photo1.jpg
│   │   │   ├── photo2.jpg
│   │   │   ├── photo3.jpg
│   │   │   ├── photo4.jpg
│   │   │   ├── photo5.jpg
│   │   │   ├── photo6.jpg
│   │   │   ├── photo8.jpg
│   │   │   └── robot.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   ├── menu
│   │   │   └── my_menu.xml
│   │   ├── raw
│   │   │   └── test.txt
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── ai
│   └── android
│   └── testmenus
│   ├── IntentsUtils.java
│   └── SampleMenusActivity.java
├── ProAndroid3_Ch08_Dialogs
│   └── SampleDialogs
│   ├── AndroidManifest.xml
│   ├── assets
│   │   └── sample.txt
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── ai
│   │   │   └── android
│   │   │   └── sampledialogs
│   │   │   ├── Alerts.class
│   │   │   ├── DialogRegistry.class
│   │   │   ├── EmptyOnClickListener.class
│   │   │   ├── GenericManagedAlertDialog.class
│   │   │   ├── GenericPromptDialog.class
│   │   │   ├── IDialogFinishedCallBack.class
│   │   │   ├── IDialogProtocol.class
│   │   │   ├── IStringPrompterCallBack.class
│   │   │   ├── MainActivity.class
│   │   │   ├── ManagedActivityDialog.class
│   │   │   ├── ManagedDialogsActivity.class
│   │   │   ├── PromptListener.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R$raw.class
│   │   │   ├── R$string.class
│   │   │   ├── R$xml.class
│   │   │   └── R.class
│   │   ├── resources.ap_
│   │   └── SampleDialogs.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── ai
│   │   └── android
│   │   └── sampledialogs
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── balloons.jpg
│   │   │   ├── icon48x48_1.png
│   │   │   ├── icon48x48_2.png
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   ├── main.xml
│   │   │   ├── promptdialog.xml
│   │   │   └── test
│   │   │   └── test.xml
│   │   ├── menu
│   │   │   └── main_menu.xml
│   │   ├── raw
│   │   │   └── test.txt
│   │   ├── values
│   │   │   └── strings.xml
│   │   └── xml
│   │   └── test.xml
│   └── src
│   └── com
│   └── ai
│   └── android
│   └── sampledialogs
│   ├── Alerts.java
│   ├── DialogRegistry.java
│   ├── EmptyOnClickListener.java
│   ├── GenericManagedAlertDialog.java
│   ├── GenericPromptDialog.java
│   ├── IDialogFinishedCallBack.java
│   ├── IDialogProtocol.java
│   ├── IStringPrompterCallBack.java
│   ├── MainActivity.java
│   ├── ManagedActivityDialog.java
│   ├── ManagedDialogsActivity.java
│   └── PromptListener.java
├── ProAndroid3_Ch09_Preferences
│   ├── PreferencesDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── preferences
│   │   │   └── sample
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   ├── menu
│   │   │   │   └── mainmenu.xml
│   │   │   ├── values
│   │   │   │   ├── arrays.xml
│   │   │   │   └── strings.xml
│   │   │   └── xml
│   │   │   ├── chkbox.xml
│   │   │   ├── flightoptions.xml
│   │   │   ├── foodoptions1.xml
│   │   │   ├── foodoptions2.xml
│   │   │   ├── packagepref.xml
│   │   │   └── ringtone.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── preferences
│   │   └── sample
│   │   ├── CheckBoxPreferenceActivity.java
│   │   ├── EditTextPreferenceActivity.java
│   │   ├── FlightPreferenceActivity.java
│   │   ├── FoodPreferenceActivity.java
│   │   ├── MainActivity.java
│   │   └── RingtonePreferenceActivity.java
│   ├── PreferencesProgDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── preferences
│   │   │   └── sample
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   ├── menu
│   │   │   │   └── mainmenu.xml
│   │   │   ├── values
│   │   │   │   └── strings.xml
│   │   │   └── xml
│   │   │   └── flightoptions.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── preferences
│   │   └── sample
│   │   ├── FlightPreferenceActivity.java
│   │   └── MainActivity.java
│   ├── PreferencesWithDefaultsDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── preferences
│   │   │   └── sample
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   ├── menu
│   │   │   │   └── mainmenu.xml
│   │   │   ├── values
│   │   │   │   ├── arrays.xml
│   │   │   │   └── strings.xml
│   │   │   └── xml
│   │   │   └── flightoptions.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── preferences
│   │   └── sample
│   │   ├── FlightPreferenceActivity.java
│   │   └── MainActivity.java
│   └── SavingStateDemo
│   ├── AndroidManifest.xml
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── preferences
│   │   └── sample
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── androidbook
│   └── preferences
│   └── sample
│   └── MainActivity.java
├── ProAndroid3_Ch10_Security
│   ├── ClientofCustomPermission
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── client
│   │   │   └── cust
│   │   │   └── perm
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── client
│   │   └── cust
│   │   └── perm
│   │   └── ClientCustPermMainActivity.java
│   └── CustomPermission
│   ├── AndroidManifest.xml
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── cust
│   │   └── perm
│   │   ├── Manifest.java
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── cust
│   └── perm
│   ├── CustPermMainActivity.java
│   └── PrivActivity.java
├── ProAndroid3_Ch11_Services
│   ├── ApplicationEx
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── services
│   │   │   └── applicationex
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── services
│   │   └── applicationex
│   │   ├── ApplicationEx.java
│   │   └── HttpActivity.java
│   ├── ApplicationEx2.2
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── services
│   │   │   └── applicationex
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── services
│   │   └── applicationex
│   │   ├── ApplicationEx.java
│   │   └── HttpActivity.java
│   ├── ApplicationExAndroidHttpClient
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── services
│   │   │   └── applicationex
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── services
│   │   └── applicationex
│   │   ├── ApplicationEx.java
│   │   └── HttpActivity.java
│   ├── AsyncTaskDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── services
│   │   │   └── asynctask
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── services
│   │   └── asynctask
│   │   ├── CustomHttpClient.java
│   │   ├── DownloadImageTask.java
│   │   └── HttpActivity.java
│   ├── AsyncTaskRotateDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── services
│   │   │   └── asynctaskrotate
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── services
│   │   └── asynctaskrotate
│   │   ├── CustomHttpClient.java
│   │   ├── DownloadImageTask.java
│   │   └── HttpActivity.java
│   ├── DownloadManagerDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── services
│   │   │   └── download
│   │   │   └── R.java
│   │   ├── proguard.cfg
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── services
│   │   └── download
│   │   └── MainActivity.java
│   ├── HttpSingleton
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── services
│   │   │   └── httpsingleton
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── services
│   │   └── httpsingleton
│   │   ├── CustomHttpClient.java
│   │   └── HttpActivity.java
│   ├── MultiPartPost
│   │   ├── AndroidManifest.xml
│   │   ├── assets
│   │   │   └── data.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── multipart
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── multipart
│   │   └── TestMultipartPost.java
│   ├── SimpleHTTPGet
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── services
│   │   │   └── httpget
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── services
│   │   └── httpget
│   │   └── HttpGetDemo.java
│   ├── SimpleHTTPPost
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── services
│   │   │   └── httppost
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── services
│   │   └── httppost
│   │   └── HttpPostDemo.java
│   ├── SimpleLocalService
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── services
│   │   │   └── simplelocal
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   ├── emo_im_winking.png
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── services
│   │   └── simplelocal
│   │   ├── BackgroundService.java
│   │   └── MainActivity.java
│   ├── StockQuoteClient
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   ├── stockquoteclient
│   │   │   │   └── R.java
│   │   │   └── stockquoteservice
│   │   │   └── IStockQuoteService.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   ├── stockquoteclient
│   │   │   └── MainActivity.java
│   │   └── stockquoteservice
│   │   └── IStockQuoteService.aidl
│   ├── StockQuoteClient2
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   ├── sayed
│   │   │   │   └── R.java
│   │   │   └── syh
│   │   │   └── IStockQuoteService.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   ├── sayed
│   │   │   └── MainActivity.java
│   │   └── syh
│   │   ├── IStockQuoteService.aidl
│   │   ├── Person.aidl
│   │   └── Person.java
│   ├── StockQuoteService
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── stockquoteservice
│   │   │   ├── IStockQuoteService.java
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── stockquoteservice
│   │   ├── IStockQuoteService.aidl
│   │   └── StockQuoteService.java
│   ├── StockQuoteService2
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── services
│   │   │   └── stock2
│   │   │   ├── IStockQuoteService.java
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── emo_im_happy.png
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── services
│   │   └── stock2
│   │   ├── IStockQuoteService.aidl
│   │   ├── MainActivity.java
│   │   ├── Person.aidl
│   │   ├── Person.java
│   │   └── StockQuoteService2.java
│   ├── StockQuoteService3
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── services
│   │   │   └── stock3
│   │   │   ├── IStockQuoteService.java
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   ├── emo_im_happy.png
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── services
│   │   └── stock3
│   │   ├── IStockQuoteService.aidl
│   │   ├── MainActivity.java
│   │   ├── Person.aidl
│   │   ├── Person.java
│   │   └── StockQuoteService3.java
│   └── TranslateDemo
│   ├── AndroidManifest.xml
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── translation
│   │   ├── ITranslate.java
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   └── icon.png
│   │   ├── drawable-hdpi
│   │   │   └── icon.png
│   │   ├── drawable-ldpi
│   │   │   └── icon.png
│   │   ├── drawable-mdpi
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   └── values
│   │   ├── arrays.xml
│   │   └── strings.xml
│   └── src
│   └── com
│   └── androidbook
│   └── translation
│   ├── ITranslate.aidl
│   ├── MainActivity.java
│   ├── TranslateService.java
│   └── Translator.java
├── ProAndroid3_Ch12_Libraries
│   ├── TestLibrary
│   │   ├── AndroidManifest.xml
│   │   ├── bin
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── library
│   │   │   └── testlibrary
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R.class
│   │   │   └── TestLibActivity.class
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── library
│   │   │   └── testlibrary
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   ├── icon.png
│   │   │   │   └── robot.png
│   │   │   ├── layout
│   │   │   │   └── lib_main.xml
│   │   │   └── menu
│   │   │   └── lib_main_menu.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── library
│   │   └── testlibrary
│   │   └── TestLibActivity.java
│   └── TestLibraryApp
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── androidbook
│   │   │   └── library
│   │   │   ├── testlibrary
│   │   │   │   ├── R$attr.class
│   │   │   │   ├── R$drawable.class
│   │   │   │   ├── R$id.class
│   │   │   │   ├── R$layout.class
│   │   │   │   ├── R$menu.class
│   │   │   │   ├── R$string.class
│   │   │   │   ├── R.class
│   │   │   │   └── TestLibActivity.class
│   │   │   └── testlibraryapp
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R$string.class
│   │   │   ├── R.class
│   │   │   └── TestAppActivity.class
│   │   ├── resources.ap_
│   │   └── TestLibraryApp.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── library
│   │   ├── testlibrary
│   │   │   └── R.java
│   │   └── testlibraryapp
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── icon.png
│   │   │   └── robot.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   ├── menu
│   │   │   └── main_menu.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── androidbook
│   └── library
│   └── testlibraryapp
│   └── TestAppActivity.java
├── ProAndroid3_Ch13_Handlers
│   └── TestHandlers
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── androidbook
│   │   │   └── handlers
│   │   │   ├── DeferWorkHandler.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R.class
│   │   │   ├── ReportStatusHandler.class
│   │   │   ├── TestHandlersDriverActivity.class
│   │   │   ├── Utils.class
│   │   │   └── WorkerThreadRunnable.class
│   │   ├── resources.ap_
│   │   └── TestHandlersBook3v2.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── handlers
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── icon.png
│   │   │   └── robot.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   └── menu
│   │   └── main_menu.xml
│   └── src
│   └── com
│   └── androidbook
│   └── handlers
│   ├── DeferWorkHandler.java
│   ├── ReportStatusHandler.java
│   ├── TestHandlersDriverActivity.java
│   ├── Utils.java
│   └── WorkerThreadRunnable.java
├── ProAndroid3_Ch14_TestReceivers
│   ├── StandaloneBCR
│   │   ├── AndroidManifest.xml
│   │   ├── bin
│   │   │   ├── classes.dex
│   │   │   ├── com
│   │   │   │   └── androidbook
│   │   │   │   └── salbcr
│   │   │   │   ├── ALongRunningNonStickyBroadcastService.class
│   │   │   │   ├── ALongRunningReceiver.class
│   │   │   │   ├── GreenRoomOriginal.class
│   │   │   │   ├── LightedGreenRoom.class
│   │   │   │   ├── NotificationReceiver.class
│   │   │   │   ├── R$attr.class
│   │   │   │   ├── R$drawable.class
│   │   │   │   ├── R$id.class
│   │   │   │   ├── R$layout.class
│   │   │   │   ├── R$menu.class
│   │   │   │   ├── R$string.class
│   │   │   │   ├── R.class
│   │   │   │   ├── StandaloneReceiver.class
│   │   │   │   ├── Test30SecBCR.class
│   │   │   │   ├── Test30SecBCRService.class
│   │   │   │   ├── Test60SecBCR.class
│   │   │   │   ├── Test60SecBCRService.class
│   │   │   │   ├── TestLRBCR.class
│   │   │   │   ├── TestLRBCRService.class
│   │   │   │   ├── TestPlain30SecBCR.class
│   │   │   │   ├── TestPlain30SecBCRService.class
│   │   │   │   └── Utils.class
│   │   │   ├── resources.ap_
│   │   │   └── StandaloneBroadcastReceiver.apk
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── salbcr
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   ├── icon.png
│   │   │   │   └── robot.png
│   │   │   ├── layout
│   │   │   │   ├── layout_multi_view_test_view.xml
│   │   │   │   └── main.xml
│   │   │   ├── menu
│   │   │   │   └── main_menu.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── salbcr
│   │   ├── ALongRunningNonStickyBroadcastService.java
│   │   ├── ALongRunningReceiver.java
│   │   ├── GreenRoomOriginal.java
│   │   ├── LightedGreenRoom.java
│   │   ├── NotificationReceiver.java
│   │   ├── StandaloneReceiver.java
│   │   ├── Test30SecBCR.java
│   │   ├── Test30SecBCRService.java
│   │   ├── Test60SecBCR.java
│   │   ├── Test60SecBCRService.java
│   │   ├── TestLRBCR.java
│   │   ├── TestLRBCRService.java
│   │   ├── TestPlain30SecBCR.java
│   │   ├── TestPlain30SecBCRService.java
│   │   └── Utils.java
│   └── TestBCR
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── androidbook
│   │   │   └── bcr
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R$string.class
│   │   │   ├── R.class
│   │   │   ├── TestBCRActivity.class
│   │   │   ├── TestReceiver2.class
│   │   │   ├── TestReceiver.class
│   │   │   ├── TestTimeDelayReceiver.class
│   │   │   └── Utils.class
│   │   ├── resources.ap_
│   │   └── TestBroadcastReceiverBook3V2.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── bcr
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── icon.png
│   │   │   └── robot.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   ├── menu
│   │   │   └── main_menu.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── androidbook
│   └── bcr
│   ├── TestBCRActivity.java
│   ├── TestReceiver2.java
│   ├── TestReceiver.java
│   ├── TestTimeDelayReceiver.java
│   └── Utils.java
├── ProAndroid3_Ch15_AlarmManager
│   └── TestAlarmManager
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── androidbook
│   │   │   └── alarms
│   │   │   ├── AlarmIntentPrimacyTester.class
│   │   │   ├── BaseTester.class
│   │   │   ├── CancelRepeatingAlarmTester.class
│   │   │   ├── IReportBack.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R.class
│   │   │   ├── ScheduleIntentMultipleTimesTester.class
│   │   │   ├── SendAlarmOnceTester.class
│   │   │   ├── SendRepeatingAlarmTester.class
│   │   │   ├── TestAlarmsDriverActivity.class
│   │   │   ├── TestReceiver.class
│   │   │   └── Utils.class
│   │   ├── resources.ap_
│   │   └── TestAlarmManager.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── alarms
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── icon.png
│   │   │   └── robot.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   └── menu
│   │   └── main_menu.xml
│   └── src
│   └── com
│   └── androidbook
│   └── alarms
│   ├── AlarmIntentPrimacyTester.java
│   ├── BaseTester.java
│   ├── CancelRepeatingAlarmTester.java
│   ├── IReportBack.java
│   ├── ScheduleIntentMultipleTimesTester.java
│   ├── SendAlarmOnceTester.java
│   ├── SendRepeatingAlarmTester.java
│   ├── TestAlarmsDriverActivity.java
│   ├── TestReceiver.java
│   └── Utils.java
├── ProAndroid3_Ch16_Animation
│   ├── SampleFrameAnimation
│   │   ├── AndroidManifest.xml
│   │   ├── assets
│   │   │   └── sample.txt
│   │   ├── bin
│   │   │   ├── classes.dex
│   │   │   ├── com
│   │   │   │   └── ai
│   │   │   │   └── android
│   │   │   │   └── frameanimation
│   │   │   │   ├── FrameAnimationActivity$1.class
│   │   │   │   ├── FrameAnimationActivity.class
│   │   │   │   ├── MainActivity.class
│   │   │   │   ├── R$anim.class
│   │   │   │   ├── R$attr.class
│   │   │   │   ├── R$drawable.class
│   │   │   │   ├── R$id.class
│   │   │   │   ├── R$layout.class
│   │   │   │   ├── R$menu.class
│   │   │   │   ├── R$raw.class
│   │   │   │   ├── R$string.class
│   │   │   │   ├── R$xml.class
│   │   │   │   └── R.class
│   │   │   ├── resources.ap_
│   │   │   └── SampleFrameAnimation.apk
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── ai
│   │   │   └── android
│   │   │   └── frameanimation
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── anim
│   │   │   │   ├── layout_bottom_to_top_slide.xml
│   │   │   │   └── slide_right.xml
│   │   │   ├── drawable
│   │   │   │   ├── colored_ball1.png
│   │   │   │   ├── colored_ball2.png
│   │   │   │   ├── colored_ball3.png
│   │   │   │   ├── colored_ball4.png
│   │   │   │   ├── colored_ball5.png
│   │   │   │   ├── colored_ball6.png
│   │   │   │   ├── colored_ball7.png
│   │   │   │   ├── colored_ball8.png
│   │   │   │   ├── colored_ball9.png
│   │   │   │   ├── frame_animation.xml
│   │   │   │   ├── icon48x48_1.png
│   │   │   │   ├── icon48x48_2.png
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   ├── animations_main_screen.xml
│   │   │   │   ├── frame_animations_layout.xml
│   │   │   │   └── main.xml
│   │   │   ├── menu
│   │   │   │   └── main_menu.xml
│   │   │   ├── raw
│   │   │   │   └── test.txt
│   │   │   ├── values
│   │   │   │   └── strings.xml
│   │   │   └── xml
│   │   │   └── test.xml
│   │   └── src
│   │   └── com
│   │   └── ai
│   │   └── android
│   │   └── frameanimation
│   │   ├── FrameAnimationActivity.java
│   │   └── MainActivity.java
│   ├── SampleLayoutAnimation
│   │   ├── AndroidManifest.xml
│   │   ├── bin
│   │   │   ├── classes.dex
│   │   │   ├── com
│   │   │   │   └── ai
│   │   │   │   └── android
│   │   │   │   └── SampleLayoutAnimation
│   │   │   │   ├── LayoutAnimationActivity.class
│   │   │   │   ├── MainActivity.class
│   │   │   │   ├── R$anim.class
│   │   │   │   ├── R$attr.class
│   │   │   │   ├── R$drawable.class
│   │   │   │   ├── R$id.class
│   │   │   │   ├── R$layout.class
│   │   │   │   ├── R$menu.class
│   │   │   │   ├── R$raw.class
│   │   │   │   ├── R$string.class
│   │   │   │   └── R.class
│   │   │   ├── resources.ap_
│   │   │   └── SampleLayoutAnimation.apk
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── ai
│   │   │   └── android
│   │   │   └── SampleLayoutAnimation
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── anim
│   │   │   │   ├── alpha_translate.xml
│   │   │   │   ├── alpha.xml
│   │   │   │   ├── list_layout_controller.xml
│   │   │   │   ├── rotate.xml
│   │   │   │   └── scale.xml
│   │   │   ├── drawable
│   │   │   │   ├── icon48x48_1.png
│   │   │   │   ├── icon48x48_2.png
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   ├── list_layout.xml
│   │   │   │   └── main.xml
│   │   │   ├── menu
│   │   │   │   └── main_menu.xml
│   │   │   ├── raw
│   │   │   │   └── test.txt
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── ai
│   │   └── android
│   │   └── SampleLayoutAnimation
│   │   ├── LayoutAnimationActivity.java
│   │   └── MainActivity.java
│   └── SampleViewAnimation
│   ├── AndroidManifest.xml
│   ├── assets
│   │   └── sample.txt
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── ai
│   │   │   └── android
│   │   │   └── ExerciseSystemIntents
│   │   │   ├── IntentsUtils.class
│   │   │   ├── MainActivity.class
│   │   │   ├── R$anim.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R$raw.class
│   │   │   ├── R$string.class
│   │   │   ├── R.class
│   │   │   ├── ViewAnimation1.class
│   │   │   ├── ViewAnimation2.class
│   │   │   ├── ViewAnimation3.class
│   │   │   ├── ViewAnimationActivity$1.class
│   │   │   ├── ViewAnimationActivity.class
│   │   │   ├── ViewAnimation.class
│   │   │   └── ViewAnimationListener.class
│   │   ├── resources.ap_
│   │   └── SampleViewAnimation.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── ai
│   │   └── android
│   │   └── ExerciseSystemIntents
│   │   └── R.java
│   ├── res
│   │   ├── anim
│   │   │   ├── alpha_translate.xml
│   │   │   ├── alpha.xml
│   │   │   ├── list_layout_controller.xml
│   │   │   ├── rotate.xml
│   │   │   └── scale.xml
│   │   ├── drawable
│   │   │   ├── balloons.jpg
│   │   │   ├── icon48x48_1.png
│   │   │   ├── icon48x48_2.png
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   ├── list_layout.xml
│   │   │   ├── main.xml
│   │   │   ├── promptdialog.xml
│   │   │   └── test
│   │   │   └── test.xml
│   │   ├── menu
│   │   │   └── main_menu.xml
│   │   ├── raw
│   │   │   └── test.txt
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── ai
│   └── android
│   └── ExerciseSystemIntents
│   ├── IntentsUtils.java
│   ├── MainActivity.java
│   ├── ViewAnimation1.java
│   ├── ViewAnimation2.java
│   ├── ViewAnimation3.java
│   ├── ViewAnimationActivity.java
│   ├── ViewAnimation.java
│   └── ViewAnimationListener.java
├── ProAndroid3_Ch17_Maps
│   ├── GeocodingDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── geocode.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   ├── FirstGeocodingDemoActivity.java
│   │   └── GeocodingDemoActivity.java
│   ├── LocationManagerDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── location
│   │   │   └── update
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── location
│   │   └── update
│   │   └── LocationUpdateDemoActivity.java
│   ├── MapViewDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── mapview.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── MapViewDemoActivity.java
│   ├── MyLocationDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── location
│   │   │   └── myoverlay
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── location
│   │   └── myoverlay
│   │   └── MyLocationDemoActivity.java
│   ├── MyLocationDemo2
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── location
│   │   │   └── myoverlay
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── location
│   │   └── myoverlay
│   │   ├── MyCustomLocationOverlay.java
│   │   └── MyLocationDemoActivity.java
│   ├── OverlayDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   ├── androidmarker.png
│   │   │   │   ├── icon.png
│   │   │   │   ├── mapmarker.PNG
│   │   │   │   ├── mm_blue.png
│   │   │   │   └── mm_pink.png
│   │   │   ├── layout
│   │   │   │   └── mapview.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── MappingOverlayActivity.java
│   └── ProximityAlertDemo
│   ├── AndroidManifest.xml
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── location
│   │   └── proximity
│   │   └── R.java
│   ├── res
│   │   ├── drawable-hdpi
│   │   │   └── icon.png
│   │   ├── drawable-ldpi
│   │   │   └── icon.png
│   │   ├── drawable-mdpi
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── androidbook
│   └── location
│   └── proximity
│   ├── ProximityActivity.java
│   └── ProximityReceiver.java
├── ProAndroid3_Ch18_Telephony
│   ├── EmailviaIntent
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── email
│   │   │   └── intent
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── email
│   │   └── intent
│   │   └── MainActivity.java
│   ├── PhoneCalls
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── phonecall
│   │   │   └── demo
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── phonecall
│   │   └── demo
│   │   └── PhoneCallActivity.java
│   ├── SMSFolders
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── sms
│   │   │   └── folders
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── sms_inbox.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── sms
│   │   └── folders
│   │   └── SMSInboxDemo.java
│   └── TelephonyDemo
│   ├── AndroidManifest.xml
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── telephony
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── androidbook
│   └── telephony
│   ├── MySMSMonitor.java
│   └── TelephonyDemo.java
├── ProAndroid3_Ch19_Media
│   ├── AsyncPlayer
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── media
│   │   │   └── asyncplayer
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── media
│   │   └── asyncplayer
│   │   └── MainActivity.java
│   ├── AudioRecord
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── media
│   │   │   └── audiorecord
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── media
│   │   └── audiorecord
│   │   └── MainActivity.java
│   ├── AudioRecordWithCallbacks
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── media
│   │   │   └── audiorecord
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── media
│   │   └── audiorecord
│   │   └── MainActivity.java
│   ├── CaptureImageWithIntent
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── record
│   │   │   └── image
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── record
│   │   └── image
│   │   └── MainActivity.java
│   ├── CaptureImageWithIntent2
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── record
│   │   │   └── image
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── record
│   │   └── image
│   │   └── MainActivity.java
│   ├── CaptureImageWithIntent3
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── record
│   │   │   └── image
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── record
│   │   └── image
│   │   └── MainActivity.java
│   ├── CaptureImageWithIntent4
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── record
│   │   │   └── image
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── record
│   │   └── image
│   │   └── MainActivity.java
│   ├── MediaDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── mediademo
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   ├── raw
│   │   │   │   └── music_file.mp3
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── mediademo
│   │   └── MainActivity.java
│   ├── MediaScanner
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── media
│   │   │   └── scanner
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── media
│   │   └── scanner
│   │   └── MediaScannerActivity.java
│   ├── MediaScannerBroadcast
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── media
│   │   │   └── scanner
│   │   │   └── broadcast
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── media
│   │   └── scanner
│   │   └── broadcast
│   │   └── MainActivity.java
│   ├── RecordAudio
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── record
│   │   │   └── audio
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── record.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── record
│   │   └── audio
│   │   └── RecorderActivity.java
│   ├── RecordAudioWithIntent
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── record
│   │   │   └── audio
│   │   │   └── intent
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── record
│   │   └── audio
│   │   └── intent
│   │   └── UsingMediaStoreActivity.java
│   ├── RecordVideo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── record
│   │   │   └── video
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── mainold.xml
│   │   │   ├── layout-land
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── record
│   │   └── video
│   │   └── MainActivity.java
│   ├── SoundPoolDemo
│   │   ├── AndroidManifest.xml
│   │   ├── assets
│   │   │   └── dogbark.mp3
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── media
│   │   │   └── soundpool
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   ├── raw
│   │   │   │   ├── chimp.mp3
│   │   │   │   ├── crickets.mp3
│   │   │   │   ├── roar.mp3
│   │   │   │   └── rooster.mp3
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── media
│   │   └── soundpool
│   │   └── MainActivity.java
│   └── VideoDemo
│   ├── AndroidManifest.xml
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── videodemo
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── androidbook
│   └── videodemo
│   └── MainActivity.java
├── ProAndroid3_Ch20_OpenGL
│   └── TestOpenGL
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── androidbook
│   │   │   └── OpenGL
│   │   │   ├── AbstractRenderer.class
│   │   │   ├── AbstractSingleTexturedRenderer.class
│   │   │   ├── AnimatedSimpleTriangleRenderer.class
│   │   │   ├── AnimatedTriangleActivity.class
│   │   │   ├── ES20AbstractRenderer.class
│   │   │   ├── ES20SimpleTriangleRenderer.class
│   │   │   ├── GLES20TestRenderer.class
│   │   │   ├── GLES20TriangleRenderer.class
│   │   │   ├── MultiViewTestHarnessActivity.class
│   │   │   ├── OpenGL15TestHarnessActivity.class
│   │   │   ├── OpenGL20MultiViewTestHarnessActivity.class
│   │   │   ├── OpenGLTestHarnessActivity.class
│   │   │   ├── PolygonRenderer.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R$raw.class
│   │   │   ├── R.class
│   │   │   ├── RegularPolygon.class
│   │   │   ├── SimpleRectangleRenderer.class
│   │   │   ├── SimpleTriangleRenderer2.class
│   │   │   ├── SimpleTriangleRenderer.class
│   │   │   ├── SquareRenderer.class
│   │   │   ├── TestOpenGLMainDriverActivity.class
│   │   │   ├── TexturedPolygonRenderer.class
│   │   │   └── TexturedSquareRenderer.class
│   │   ├── resources.ap_
│   │   └── TestOpenGL.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── OpenGL
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── icon.png
│   │   │   └── robot.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   ├── menu
│   │   │   └── main_menu.xml
│   │   └── raw
│   │   └── robot.png
│   └── src
│   └── com
│   └── androidbook
│   └── OpenGL
│   ├── AbstractRenderer.java
│   ├── AbstractSingleTexturedRenderer.java
│   ├── AnimatedSimpleTriangleRenderer.java
│   ├── AnimatedTriangleActivity.java
│   ├── ES20AbstractRenderer.java
│   ├── ES20SimpleTriangleRenderer.java
│   ├── GLES20TestRenderer.java
│   ├── GLES20TriangleRenderer.java
│   ├── MultiViewTestHarnessActivity.java
│   ├── OpenGL15TestHarnessActivity.java
│   ├── OpenGL20MultiViewTestHarnessActivity.java
│   ├── OpenGLTestHarnessActivity.java
│   ├── PolygonRenderer.java
│   ├── RegularPolygon.java
│   ├── SimpleRectangleRenderer.java
│   ├── SimpleTriangleRenderer2.java
│   ├── SimpleTriangleRenderer.java
│   ├── SquareRenderer.java
│   ├── TestOpenGLMainDriverActivity.java
│   ├── TexturedPolygonRenderer.java
│   └── TexturedSquareRenderer.java
├── ProAndroid3_Ch21_LiveFolders
│   └── TestLiveFolders
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── androidbook
│   │   │   └── livefolders
│   │   │   ├── AllContactsLiveFolderCreatorActivity.class
│   │   │   ├── BetterCursorWrapper.class
│   │   │   ├── MyContactsProvider.class
│   │   │   ├── MyCursor.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$string.class
│   │   │   └── R.class
│   │   ├── resources.ap_
│   │   └── TestLiveFolders.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── livefolders
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── androidbook
│   └── livefolders
│   ├── AllContactsLiveFolderCreatorActivity.java
│   ├── BetterCursorWrapper.java
│   ├── MyContactsProvider.java
│   └── MyCursor.java
├── ProAndroid3_Ch22_Widgets
│   └── TestWidgets
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── androidbook
│   │   │   └── BDayWidget
│   │   │   ├── APrefWidgetModel.class
│   │   │   ├── BDayWidgetModel.class
│   │   │   ├── BDayWidgetProvider.class
│   │   │   ├── ConfigureBDayWidgetActivity$1.class
│   │   │   ├── ConfigureBDayWidgetActivity.class
│   │   │   ├── IWidgetModelSaveContract.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$color.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R$string.class
│   │   │   ├── R$xml.class
│   │   │   ├── R.class
│   │   │   └── Utils.class
│   │   ├── resources.ap_
│   │   └── TestWidgets.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── BDayWidget
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── box1.xml
│   │   │   ├── icon.png
│   │   │   ├── robot.png
│   │   │   ├── shape_1.xml
│   │   │   ├── shape1.xml
│   │   │   ├── shape_2.xml
│   │   │   ├── shape_3.xml
│   │   │   ├── shape_4.xml
│   │   │   └── shape_5.xml
│   │   ├── layout
│   │   │   ├── bday_widget.xml
│   │   │   ├── edit_bday_widget.xml
│   │   │   ├── layout_multi_view_test_view_1.xml
│   │   │   ├── layout_multi_view_test_view.xml
│   │   │   └── main.xml
│   │   ├── menu
│   │   │   └── main_menu.xml
│   │   ├── values
│   │   │   ├── colors.xml
│   │   │   └── strings.xml
│   │   └── xml
│   │   └── bday_appwidget_provider.xml
│   └── src
│   └── com
│   └── androidbook
│   └── BDayWidget
│   ├── APrefWidgetModel.java
│   ├── BDayWidgetModel.java
│   ├── BDayWidgetProvider.java
│   ├── ConfigureBDayWidgetActivity.java
│   ├── IWidgetModelSaveContract.java
│   └── Utils.java
├── ProAndroid3_Ch23_Search
│   ├── CustomSuggestionProvider
│   │   ├── AndroidManifest.xml
│   │   ├── bin
│   │   │   ├── classes.dex
│   │   │   ├── com
│   │   │   │   └── androidbook
│   │   │   │   └── search
│   │   │   │   └── custom
│   │   │   │   ├── R$attr.class
│   │   │   │   ├── R$drawable.class
│   │   │   │   ├── R$id.class
│   │   │   │   ├── R$layout.class
│   │   │   │   ├── R$string.class
│   │   │   │   ├── R$xml.class
│   │   │   │   ├── R.class
│   │   │   │   ├── SearchActivity.class
│   │   │   │   └── SuggestUrlProvider.class
│   │   │   ├── CustomSuggestionProvider.apk
│   │   │   └── resources.ap_
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── search
│   │   │   └── custom
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   ├── icon.png
│   │   │   │   └── robot.png
│   │   │   ├── layout
│   │   │   │   └── layout_test_search_activity.xml
│   │   │   ├── values
│   │   │   │   └── strings.xml
│   │   │   └── xml
│   │   │   └── searchable.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── search
│   │   └── custom
│   │   ├── SearchActivity.java
│   │   └── SuggestUrlProvider.java
│   ├── SearchRegularActivities
│   │   ├── AndroidManifest.xml
│   │   ├── bin
│   │   │   ├── classes.dex
│   │   │   ├── com
│   │   │   │   └── androidbook
│   │   │   │   └── search
│   │   │   │   └── nosearch
│   │   │   │   ├── LocalSearchEnabledActivity.class
│   │   │   │   ├── NoSearchActivity.class
│   │   │   │   ├── R$attr.class
│   │   │   │   ├── R$drawable.class
│   │   │   │   ├── R$id.class
│   │   │   │   ├── R$layout.class
│   │   │   │   ├── R$menu.class
│   │   │   │   ├── R$string.class
│   │   │   │   ├── R$xml.class
│   │   │   │   ├── R.class
│   │   │   │   ├── RegularActivity.class
│   │   │   │   ├── SearchActivity.class
│   │   │   │   └── SearchInvokerActivity.class
│   │   │   ├── resources.ap_
│   │   │   └── SearchRegularActivities.apk
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── search
│   │   │   └── nosearch
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   ├── icon.png
│   │   │   │   └── robot.png
│   │   │   ├── layout
│   │   │   │   ├── local_search_enabled_activity.xml
│   │   │   │   ├── main.xml
│   │   │   │   ├── no_search_activity.xml
│   │   │   │   ├── search_activity.xml
│   │   │   │   └── search_invoker_activity.xml
│   │   │   ├── menu
│   │   │   │   ├── main_menu.xml
│   │   │   │   └── search_invoker_menu.xml
│   │   │   ├── values
│   │   │   │   └── strings.xml
│   │   │   └── xml
│   │   │   └── searchable.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── search
│   │   └── nosearch
│   │   ├── LocalSearchEnabledActivity.java
│   │   ├── NoSearchActivity.java
│   │   ├── RegularActivity.java
│   │   ├── SearchActivity.java
│   │   └── SearchInvokerActivity.java
│   └── SimpleSuggestionProvider
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── androidbook
│   │   │   └── search
│   │   │   └── simplesp
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R$string.class
│   │   │   ├── R$xml.class
│   │   │   ├── R.class
│   │   │   ├── SearchActivity.class
│   │   │   ├── SimpleMainActivity.class
│   │   │   └── SimpleSuggestionProvider.class
│   │   ├── resources.ap_
│   │   └── SimpleSuggestionProvider.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── search
│   │   └── simplesp
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── icon.png
│   │   │   └── robot.png
│   │   ├── layout
│   │   │   ├── layout_test_search_activity.xml
│   │   │   └── main.xml
│   │   ├── menu
│   │   │   └── reset_suggestions_menu.xml
│   │   ├── values
│   │   │   └── strings.xml
│   │   └── xml
│   │   └── searchable.xml
│   └── src
│   └── com
│   └── androidbook
│   └── search
│   └── simplesp
│   ├── SearchActivity.java
│   ├── SimpleMainActivity.java
│   └── SimpleSuggestionProvider.java
├── ProAndroid3_Ch24_TextToSpeech
│   ├── TTSDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── tts
│   │   │   └── demo
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── tts
│   │   └── demo
│   │   └── MainActivity.java
│   ├── TTSDemo2
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── tts
│   │   │   └── demo
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── tts
│   │   └── demo
│   │   └── MainActivity.java
│   ├── TTSDemo2ShowLanguages
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── tts
│   │   │   └── demo
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── tts
│   │   └── demo
│   │   └── MainActivity.java
│   └── TTSDemo3
│   ├── AndroidManifest.xml
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── tts
│   │   └── demo
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── androidbook
│   └── tts
│   └── demo
│   └── MainActivity.java
├── ProAndroid3_Ch25_Touchscreens
│   ├── GestureRevealer
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── gestures
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   ├── raw
│   │   │   │   ├── gesturelibrary
│   │   │   │   └── gestures_letters
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── gestures
│   │   └── MainActivity.java
│   ├── MultiTouchDemo1
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── multitouch
│   │   │   └── demo1
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── multitouch
│   │   └── demo1
│   │   └── MainActivity.java
│   ├── MultiTouchDemo2
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── multitouch
│   │   │   └── demo2
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── multitouch
│   │   └── demo2
│   │   └── MainActivity.java
│   ├── ScaleDetector
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── touch
│   │   │   └── scaledetector
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── touch
│   │   └── scaledetector
│   │   └── MainActivity.java
│   ├── StreetViewMaps
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── maps
│   │   │   └── streetview
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── mapview.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── maps
│   │   └── streetview
│   │   ├── ClickReceiver.java
│   │   └── MainActivity.java
│   ├── StreetViewMapsPinchZoom
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── maps
│   │   │   └── streetview
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── mapview.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── maps
│   │   └── streetview
│   │   ├── ClickReceiver.java
│   │   └── MainActivity.java
│   ├── StreetViewMapsPinchZoom2.2
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── maps
│   │   │   └── streetview
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── mapview.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── maps
│   │   └── streetview
│   │   ├── ClickReceiver.java
│   │   └── MainActivity.java
│   ├── TouchDemo1
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── touch
│   │   │   └── demo1
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── touch
│   │   └── demo1
│   │   ├── BooleanButton.java
│   │   ├── FalseButton.java
│   │   ├── MainActivity.java
│   │   └── TrueButton.java
│   ├── TouchDragDemo1
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── touch
│   │   │   └── dragdemo1
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── touch
│   │   └── dragdemo1
│   │   ├── Dot.java
│   │   └── MainActivity.java
│   └── VelocityTracker
│   ├── AndroidManifest.xml
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── touch
│   │   └── velocity
│   │   └── R.java
│   ├── res
│   │   ├── drawable-hdpi
│   │   │   └── icon.png
│   │   ├── drawable-ldpi
│   │   │   └── icon.png
│   │   ├── drawable-mdpi
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── androidbook
│   └── touch
│   └── velocity
│   └── MainActivity.java
├── ProAndroid3_Ch26_Sensors
│   ├── AccelerometerRecordToFile2.1
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── sensor
│   │   │   └── accel
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── sensor
│   │   └── accel
│   │   └── MainActivity.java
│   ├── AccelerometerRecordToFileAlwaysOn
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── sensor
│   │   │   └── accel
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── sensor
│   │   └── accel
│   │   └── MainActivity.java
│   ├── AccelerometerSensor
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── sensor
│   │   │   └── accelerometer
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── sensor
│   │   └── accelerometer
│   │   └── MainActivity.java
│   ├── CompassSensor
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── sensor
│   │   │   └── compass
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── sensor
│   │   └── compass
│   │   └── MainActivity.java
│   ├── GravityDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── sensor
│   │   │   └── gravity
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── sensor
│   │   └── gravity
│   │   └── MainActivity.java
│   ├── GyroSensor
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── sensor
│   │   │   └── gyro
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── sensor
│   │   └── gyro
│   │   └── MainActivity.java
│   ├── LightSensor
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── sensor
│   │   │   └── light
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── sensor
│   │   └── light
│   │   └── MainActivity.java
│   ├── ProximitySensor
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── sensor
│   │   │   └── proximity
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── sensor
│   │   └── proximity
│   │   └── MainActivity.java
│   ├── SensorList
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── sensors
│   │   │   └── list
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── sensors
│   │   └── list
│   │   └── MainActivity.java
│   ├── TemperatureSensor
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── sensor
│   │   │   └── temperature
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── sensor
│   │   └── temperature
│   │   └── MainActivity.java
│   └── VirtualJax
│   ├── AndroidManifest.xml
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── android
│   │   └── sensor
│   │   └── virtualjax
│   │   └── R.java
│   ├── res
│   │   ├── drawable-hdpi
│   │   │   └── icon.png
│   │   ├── drawable-ldpi
│   │   │   └── icon.png
│   │   ├── drawable-mdpi
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   ├── layout-land
│   │   │   └── main.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── android
│   └── sensor
│   └── virtualjax
│   └── MainActivity.java
├── ProAndroid3_Ch27_Contacts
│   └── TestContacts
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── androidbook
│   │   │   └── contacts
│   │   │   ├── AccountsFunctionTester.class
│   │   │   ├── AddContactFunctionTester.class
│   │   │   ├── AggregatedContact.class
│   │   │   ├── AggregatedContactFunctionTester.class
│   │   │   ├── BaseTester.class
│   │   │   ├── ContactData.class
│   │   │   ├── ContactDataFunctionTester.class
│   │   │   ├── DebugActivity.class
│   │   │   ├── IReportBack.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── RawContact.class
│   │   │   ├── RawContactFunctionTester.class
│   │   │   ├── R.class
│   │   │   ├── TestContactsDriverActivity.class
│   │   │   ├── URIFunctionTester.class
│   │   │   └── Utils.class
│   │   ├── resources.ap_
│   │   └── TestContactsNext.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── contacts
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── icon.png
│   │   │   └── robot.png
│   │   ├── layout
│   │   │   └── debug_activity_layout.xml
│   │   ├── menu
│   │   │   └── main_menu.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── androidbook
│   └── contacts
│   ├── AccountsFunctionTester.java
│   ├── AddContactFunctionTester.java
│   ├── AggregatedContactFunctionTester.java
│   ├── AggregatedContact.java
│   ├── BaseTester.java
│   ├── ContactDataFunctionTester.java
│   ├── ContactData.java
│   ├── DebugActivity.java
│   ├── IReportBack.java
│   ├── RawContactFunctionTester.java
│   ├── RawContact.java
│   ├── TestContactsDriverActivity.java
│   ├── URIFunctionTester.java
│   └── Utils.java
├── ProAndroid3_Ch29_Fragments
│   ├── DialogFragmentDemo
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── fragments
│   │   │   └── dialogs
│   │   │   └── R.java
│   │   ├── res
│   │   │   ├── drawable
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   ├── help_dialog.xml
│   │   │   │   ├── main.xml
│   │   │   │   └── prompt_dialog.xml
│   │   │   ├── menu
│   │   │   │   └── menu.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── fragments
│   │   └── dialogs
│   │   ├── AlertDialogFragment.java
│   │   ├── HelpDialogFragment.java
│   │   ├── MainActivity.java
│   │   ├── OnDialogDoneListener.java
│   │   └── PromptDialogFragment.java
│   ├── ShakespeareInstrumented
│   │   ├── AndroidManifest.xml
│   │   ├── default.properties
│   │   ├── gen
│   │   │   └── com
│   │   │   └── androidbook
│   │   │   └── fragments
│   │   │   └── bard
│   │   │   └── R.java
│   │   ├── proguard.cfg
│   │   ├── res
│   │   │   ├── animator
│   │   │   │   ├── bounce_in_down.xml
│   │   │   │   ├── fade_in.xml
│   │   │   │   ├── fade_out.xml
│   │   │   │   ├── slide_in_left.xml
│   │   │   │   ├── slide_out_down.xml
│   │   │   │   └── slide_out_right.xml
│   │   │   ├── drawable-hdpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── icon.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── icon.png
│   │   │   ├── layout
│   │   │   │   ├── details.xml
│   │   │   │   └── main.xml
│   │   │   ├── layout-land
│   │   │   │   └── main.xml
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── com
│   │   └── androidbook
│   │   └── fragments
│   │   └── bard
│   │   ├── DetailsActivity.java
│   │   ├── DetailsFragment.java
│   │   ├── MainActivity.java
│   │   ├── Shakespeare.java
│   │   └── TitlesFragment.java
│   └── ShakespeareSDK
│   ├── AndroidManifest.xml
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── fragments
│   │   └── bard
│   │   └── R.java
│   ├── proguard.cfg
│   ├── res
│   │   ├── drawable-hdpi
│   │   │   └── icon.png
│   │   ├── drawable-ldpi
│   │   │   └── icon.png
│   │   ├── drawable-mdpi
│   │   │   └── icon.png
│   │   ├── layout
│   │   │   ├── details.xml
│   │   │   └── main.xml
│   │   ├── layout-land
│   │   │   └── main.xml
│   │   └── values
│   │   └── strings.xml
│   └── src
│   └── com
│   └── androidbook
│   └── fragments
│   └── bard
│   ├── DetailsActivity.java
│   ├── DetailsFragment.java
│   ├── MainActivity.java
│   ├── Shakespeare.java
│   └── TitlesFragment.java
├── ProAndroid3_Ch30_Actionbar
│   └── TestActionBar30
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── androidbook
│   │   │   └── actionbar
│   │   │   ├── BaseActionBarActivity.class
│   │   │   ├── BaseListener.class
│   │   │   ├── DebugActivity.class
│   │   │   ├── IReportBack.class
│   │   │   ├── ListListener.class
│   │   │   ├── ListNavigationActionBarActivity.class
│   │   │   ├── R$attr.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R.class
│   │   │   ├── SimpleSpinnerArrayAdapter.class
│   │   │   ├── StandardNavigationActionBarActivity.class
│   │   │   ├── TabListener.class
│   │   │   └── TabNavigationActionBarActivity.class
│   │   ├── resources.ap_
│   │   └── TestActionBar30_v2.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── actionbar
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── balloons.jpg
│   │   │   ├── creep001.png
│   │   │   ├── creep002.png
│   │   │   ├── creep003.png
│   │   │   ├── creep004.png
│   │   │   ├── creep005.png
│   │   │   ├── creep006.png
│   │   │   ├── creep007.png
│   │   │   ├── creep008.png
│   │   │   ├── icon48x48_1.png
│   │   │   ├── icon48x48_2.png
│   │   │   ├── icon.png
│   │   │   └── robot.png
│   │   ├── layout
│   │   │   └── main.xml
│   │   └── menu
│   │   └── menu.xml
│   └── src
│   └── com
│   └── androidbook
│   └── actionbar
│   ├── BaseActionBarActivity.java
│   ├── BaseListener.java
│   ├── DebugActivity.java
│   ├── IReportBack.java
│   ├── ListListener.java
│   ├── ListNavigationActionBarActivity.java
│   ├── SimpleSpinnerArrayAdapter.java
│   ├── StandardNavigationActionBarActivity.java
│   ├── TabListener.java
│   └── TabNavigationActionBarActivity.java
├── ProAndroid3_Ch31_ListWidgets
│   └── TestListWidget
│   ├── AndroidManifest.xml
│   ├── bin
│   │   ├── classes.dex
│   │   ├── com
│   │   │   └── androidbook
│   │   │   └── homewidgets
│   │   │   └── listwidget
│   │   │   ├── R$attr.class
│   │   │   ├── R$color.class
│   │   │   ├── R$drawable.class
│   │   │   ├── R$id.class
│   │   │   ├── R$layout.class
│   │   │   ├── R$menu.class
│   │   │   ├── R$string.class
│   │   │   ├── R$xml.class
│   │   │   ├── R.class
│   │   │   ├── TestListWidgetProvider.class
│   │   │   ├── TestRemoteViewsFactory.class
│   │   │   └── TestRemoteViewsService.class
│   │   ├── resources.ap_
│   │   └── TestListWidget.apk
│   ├── default.properties
│   ├── gen
│   │   └── com
│   │   └── androidbook
│   │   └── homewidgets
│   │   └── listwidget
│   │   └── R.java
│   ├── res
│   │   ├── drawable
│   │   │   ├── box1.xml
│   │   │   ├── icon.png
│   │   │   ├── robot.png
│   │   │   ├── shape_1.xml
│   │   │   ├── shape1.xml
│   │   │   ├── shape_2.xml
│   │   │   ├── shape_3.xml
│   │   │   ├── shape_4.xml
│   │   │   └── shape_5.xml
│   │   ├── layout
│   │   │   ├── list_item_layout.xml
│   │   │   └── test_list_widget_layout.xml
│   │   ├── menu
│   │   │   └── main_menu.xml
│   │   ├── values
│   │   │   ├── colors.xml
│   │   │   └── strings.xml
│   │   └── xml
│   │   └── test_list_appwidget_provider.xml
│   └── src
│   └── com
│   └── androidbook
│   └── homewidgets
│   └── listwidget
│   ├── TestListWidgetProvider.java
│   ├── TestRemoteViewsFactory.java
│   └── TestRemoteViewsService.java
└── ProAndroid3_Ch31_TestDragAndDrop
└── DragDropFragDemo
├── AndroidManifest.xml
├── default.properties
├── gen
│   └── com
│   └── androidbook
│   └── drag
│   └── drop
│   └── demo
│   └── R.java
├── proguard.cfg
├── res
│   ├── drawable-hdpi
│   │   └── icon.png
│   ├── drawable-ldpi
│   │   └── icon.png
│   ├── drawable-mdpi
│   │   └── icon.png
│   ├── layout
│   │   ├── dropzone.xml
│   │   ├── main.xml
│   │   └── palette.xml
│   └── values
│   ├── attrs.xml
│   └── strings.xml
└── src
└── com
└── androidbook
└── drag
└── drop
└── demo
├── Dot.java
├── DropZone.java
├── MainActivity.java
└── Palette.java

1757 directories, 1679 files

标签:

实例下载地址

《精通 Android 3》源代码/《Pro Android 3》 source code

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警