Source code to omnibus edition of _The Busy Coder's Guide to Android Development_
Clone or download
Permalink
Failed to load latest commit information.
ACRA updated to AGP 3.1.4 Aug 11, 2018
Accessibility/FontScale updated to AGP 3.1.4 Aug 11, 2018
ActionBar updated to AGP 3.1.4 Aug 11, 2018
ActionMode updated to AGP 3.1.4 Aug 11, 2018
Activities updated to AGP 3.1.4 Aug 11, 2018
AlarmManager updated to AGP 3.1.4 Aug 11, 2018
Animation updated to AGP 3.1.4 Aug 11, 2018
AppCompat updated to AGP 3.1.4 Aug 11, 2018
AppShortcuts/WeakBrowser updated to AGP 3.1.4 Aug 11, 2018
AppWidget updated to AGP 3.1.4 Aug 11, 2018
Assist updated to AGP 3.1.4 Aug 11, 2018
AutoFill updated to AGP 3.1.4 Aug 11, 2018
Backup/BackupClient updated to AGP 3.1.4 Aug 11, 2018
Bandwidth/TrafficMonitor updated to AGP 3.1.4 Aug 11, 2018
Basic updated to AGP 3.1.4 Aug 11, 2018
BasicMaterial updated to AGP 3.1.4 Aug 11, 2018
Binding updated to AGP 3.1.4 Aug 11, 2018
Bitmaps updated to AGP 3.1.4 Aug 11, 2018
Bluetooth/RxEcho updated to AGP 3.1.4 Aug 11, 2018
CPU-Java updated to AGP 3.1.4 Aug 11, 2018
Calendar/Query updated to AGP 3.1.4 Aug 11, 2018
Camera updated to AGP 3.1.4 Aug 11, 2018
ConfigChange updated to AGP 3.1.4 Aug 11, 2018
Contacts updated to AGP 3.1.4 Aug 11, 2018
Containers updated to AGP 3.1.4 Aug 11, 2018
ContentProvider updated to AGP 3.1.4 Aug 11, 2018
DataBinding updated to AGP 3.1.4 Aug 11, 2018
Database updated to AGP 3.1.4 Aug 11, 2018
DesignSupport updated to AGP 3.1.4 Aug 11, 2018
DeviceAdmin updated to AGP 3.1.4 Aug 11, 2018
DeviceAuth updated to AGP 3.1.4 Aug 11, 2018
Diagnostics updated to AGP 3.1.4 Aug 11, 2018
Dialogs updated to AGP 3.1.4 Aug 11, 2018
Documents updated to AGP 3.1.4 Aug 11, 2018
DragDrop updated to AGP 3.1.4 Aug 11, 2018
Drawable updated to AGP 3.1.4 Aug 11, 2018
DynCode/ListLoader updated to AGP 3.1.4 Aug 11, 2018
EmPubLite-AndroidStudio updated to AGP 3.1.4 Aug 11, 2018
EventBus updated to AGP 3.1.4 Aug 11, 2018
Files/FilesEditor updated to AGP 3.1.4 Aug 11, 2018
Focus/Sampler updated to AGP 3.1.4 Aug 11, 2018
Fonts updated to AGP 3.1.4 Aug 11, 2018
Fragments updated to AGP 3.1.4 Aug 11, 2018
Gradle updated to AGP 3.1.4 Aug 11, 2018
GridLayout/Sampler updated to AGP 3.1.4 Aug 11, 2018
HTTP updated to AGP 3.1.4 Aug 11, 2018
InputMethod updated to AGP 3.1.4 Aug 11, 2018
Intents updated to AGP 3.1.4 Aug 11, 2018
Internet updated to AGP 3.1.4 Aug 11, 2018
Introspection updated to AGP 3.1.4 Aug 11, 2018
JVM/InterpreterService updated to AGP 3.1.4 Aug 11, 2018
Jank updated to AGP 3.1.4 Aug 11, 2018
Java8/VideoLambda updated to AGP 3.1.4 Aug 11, 2018
JobScheduler updated to AGP 3.1.4 Aug 11, 2018
KBMouse updated to AGP 3.1.4 Aug 11, 2018
LargeScreen updated to AGP 3.1.4 Aug 11, 2018
Leaks updated to LeakCanary v1.6.1 Aug 13, 2018
Leanback/VideoBrowse updated to AGP 3.1.4 Aug 11, 2018
Loaders updated to AGP 3.1.4 Aug 11, 2018
Location updated to AGP 3.1.4 Aug 11, 2018
Manifest updated to AGP 3.1.4 Aug 11, 2018
MapsV2 updated to AGP 3.1.4 Aug 11, 2018
Media updated to AGP 3.1.4 Aug 11, 2018
MediaProjection removed unused samples Aug 11, 2018
MediaRouter updated to AGP 3.1.4 Aug 11, 2018
MiscSecurity/SigDump updated to AGP 3.1.4 Aug 11, 2018
MiscUI/DelayedTimeout updated to AGP 3.1.4 Aug 11, 2018
MultiWindow updated to AGP 3.1.4 Aug 11, 2018
NFC updated to AGP 3.1.4 Aug 11, 2018
NavDrawer updated to AGP 3.1.4 Aug 11, 2018
Notifications updated to AGP 3.1.4 Aug 11, 2018
PDF updated to AGP 3.1.4 Aug 11, 2018
Parcelable/Marshall updated to AGP 3.1.4 Aug 11, 2018
Permissions updated to AGP 3.1.4 Aug 11, 2018
Phone/Dialer updated to AGP 3.1.4 Aug 11, 2018
Prefs updated to AGP 3.1.4 Aug 11, 2018
Presentation updated to AGP 3.1.4 Aug 11, 2018
Printing/PrintManager updated to AGP 3.1.4 Aug 11, 2018
Progress updated to AGP 3.1.4 Aug 11, 2018
RecyclerView new sample Aug 11, 2018
RecyclerViewPager updated to AGP 3.1.4 Aug 11, 2018
RestrictedProfiles updated to AGP 3.1.4 Aug 11, 2018
RichText/Search updated to AGP 3.1.4 Aug 11, 2018
Rx updated to AGP 3.1.4 Aug 11, 2018
SMS updated to AGP 3.1.4 Aug 11, 2018
SSL updated to AGP 3.1.4 Aug 11, 2018
Selection updated to AGP 3.1.4 Aug 11, 2018
Sensor/Monitor updated to AGP 3.1.4 Aug 11, 2018
Service updated to AGP 3.1.4 Aug 11, 2018
Slices new sample apps Aug 4, 2018
StrictMode/GreyMarker updated to AGP 3.1.4 Aug 11, 2018
Styles/NowStyled updated to AGP 3.1.4 Aug 11, 2018
SystemEvents updated to AGP 3.1.4 Aug 11, 2018
SystemServices updated to AGP 3.1.4 Aug 11, 2018
Tapjacking/RelativeSecure updated to AGP 3.1.4 Aug 11, 2018
Tasks updated to AGP 3.1.4 Aug 11, 2018
Testing updated to AGP 3.1.4 Aug 11, 2018
Threads updated to AGP 3.1.4 Aug 11, 2018
Toolbar updated to AGP 3.1.4 Aug 11, 2018
UnitTest updated to AGP 3.1.4 Aug 11, 2018
ViewPager updated to AGP 3.1.4 Aug 11, 2018
Views updated to AGP 3.1.4 Aug 11, 2018
WebKit updated to AGP 3.1.4 Aug 11, 2018
WidgetCatalog updated to AGP 3.1.4 Aug 11, 2018
external updated Gradle files for AS 1.0/Gradle for Android 1.0 Dec 9, 2014
LICENSE initial import Mar 12, 2012
README.markdown Fix project links in README.markdown Jul 11, 2017

README.markdown

About the Book

The Busy Coder's Guide to Android Development is a book covering Android application development, from basics through advanced capabilities. It is updated several times a year and is available through the Warescription program. Subscribers also have access to office hours chats and other benefits.

This repository contains the source code for the hundreds of sample apps profiled in the book. These samples are updated as the book is, with git tags applied to tie sample code versions to book versions.

The book, and the samples, were written by Mark Murphy. You may also have run into him through Stack Overflow:

profile for CommonsWare at Stack Overflow, Q&A for professional and enthusiast programmers

About the Code

All of the source code in this archive is licensed under the Apache 2.0 license except as noted.

The names of the top-level directories roughly correspond to a shortened form of the chapter titles. Since chapter numbers change with every release, and since some samples are used by multiple chapters, I am loathe to put chapter numbers in the actual directory names.

Using in Android Studio

All of the projects should have a build.gradle file suitable for importing the project into Android Studio. Note, though, that you may need to adjust the compileSdkVersion in build.gradle if it requests an SDK that you have not downloaded and do not wish to download. Similarly, you may need to adjust the buildToolsVersion value to refer to a version of the build tools that you have downloaded from the SDK Manager.

The samples also have stub Gradle wrapper files, enough to allow for easy import into Android Studio. However, always check the gradle-wrapper.properties file before importing anything into Android Studio, as there is always the chance that somebody has published material linking you to a hacked Gradle installation.

Using with Command-Line Gradle

Right now, you will need your own local installation of Gradle 3.3 in order to build the projects from the command line, as the repository does not contain gradlew or its corresponding JAR for security reasons.

List of Samples