Android


Hello Android
An excellent introduction into what the Google mobile OS is and how to develop software for it. Book details: introduction, which compilers you can use [there are several, many are free] the android SDK, the emulator, how to set up your development environment, general concepts and architecture of the OS, user interface, 2D graphics, multimedia, three ways to store local data, web services, the location API, SQLite, and OpenGL [graphics]. Appendix has notes on the java language subset, the standard library subset, as well as 3rd party libaries. would rate this 5 out of 5.
(Pragmatic Bookshelf, Burnette, 2008, 218 Pages)
Unlocking Android
A great second book. Dives into development in more detail. The books chapter on geographic applications discusses different XML schemas offered as standards including GPX (GPS eXchange Format) and KML (Keyhole Markup Language) The book explains how one can use the DDMS tool (Dalvik Debug Monitoring Service) to send coordinates and debug with the emulator. Interestingly enough they also point out you can use the emulator console and send GPS coordinates that way as well. i.e. "geo fix -21.55 64.1" Book covers: general introduction to the tools and SDK, user interfaces, intents and services, three methods of persisting data. The coverage of all three types is good here, they dive into SQLite quite well. Book continues with networking and web services, the telphony API, notifications and alarms, graphics and animation via OpenGL ES and the Android Graphics APIs, multimedia: playing sound and video, and native C development via the CodeSourcery compiler. The book pulls all of the technologies together in a sample field service application. Appendices cover: the Eclipse IDE, the Android SDK, and signing and installing applications.
(Manning, 2009, 392 Pages)
Pro Android Games
Read this book in three days, not that I am planning on writing games but the books coverage enables you to first enhance your understanding of the media APIs of sound and video with Android. Secondly it provides insight and concrete examples of using JNI to call C from Java and call Java from C. Most of this book was written before the NDK was published so native work required using the Java Native Interface. The book covers how to "port" the bulk of games written in C/C++ over to Android with very little rewriting of code. The book provides examples using Java and Android's XML layouts for the top level of the games interface. While the C++ guts can be slightly reworked. He proves this through four solid examples of games: asteroids, space blaster, wolfenstein and doom. [Source code downloadable] Even if you don't write games this is well worth the tour on how to optimize and port legacy C/C++ projects over to Android. He also talks a little bit about the Native Development Toolkit (NDK) which arrived later on. Other topics include: OpenGL, how to use shared libaries in Linux.
(Apress, 2009, 298 Pages)
Android Wireless Application Development
Twenty chapters, good coverage, original book written to the 1.5 version, but newer revisions are out. Covers: Overview, setting up development environment with Eclipse on Mac, Windows or Linux, life cycle of android, manifest, resources, UI elements, layouts, drawing, animation, data storage, SQLite, content providers, network APIs, location based services, google maps, multimedia APIs, 3D graphics and Open GL ES, hardware APIs, notifications, services, designing bulletproof apps, selling your apps, emulator, DDMS, Debug Bridge and SQLite quick start guide.
(Addison-Wesley, 2010, 573 Pages, CD of Source Code Included)
Professional Android 2 Application Development
Fifteen chapters, newer versions are out. Covers: Overview, setting up development environment with Eclipse, development tools, application structure and activities, UIs and layouts, views and custom views, resolution density, menus, broadcast receivers, intents, adapters, dialogs, preferences, SqLite, content providers, google maps and LBS API, services, threads, toasts, notifications, alarms, widgets, quick search, audio, video, camera, SMS, MMS, bluetooth, networks and WiFi, compass, accelerometer, sensors, permissions, wake locks, text to speech libraries, IPC via AIDL, tweened animation, handling key, screen and trackball events. Great detail and coverage, helps since the author is google staff. (5 out of 5)
(Wrox Press, 2010, 541 Pages, Source Code on line)
Embedded Android - Porting, Extending and Customizing
One of perhaps two books out on the subject. [ a newer version of this published in late 2015 ] Not a quick read due to the level of detail it covers. Overview, pulling down android source code, legal/licensing issues, development setup, CTS, Internals: framework, native development (C/C++), linux kernel, hardware support, native user space, Dalvik, system services, stock AOSPs. Building AOSP, its architecture, hardware primer, deep dive into native user space: file system, build variables, adb, android's command line, init process... deep dive into the framework: bootup, support utilities, support daemons, HAL... If your doing custom work or breathing life into a hardware implementation this will definitely assist.
(O'Reilly Press, 2013, 385 Pages)
Pro Android Media - Developing Graphics, Music, Video and Rich Media Apps for Smartphones and Tablets
Excellent book covers topics fully, complete with code examples. Intro to Android imaging, building custom camera apps, image editing/processing, graphics and touch events, Intro to Android audio, background and networked audio, audio capture, audio synthesis/analysis, Intro to Android video, advanced video, video capture, media consumption and publishing using web services. [ 5 out of 5 ]
(APress, 2009, 302 Pages)
Enterprise Android - Programming Android Database Applications for the Enterprise
Book covers this entensive topic through an open source application which provides data synchronization across the "enterprise". While the open source project is incomplete it illustrates the complexity of attacking this process of merging data both up and down the chain. Uses JSON syntax for defining data and database objects dynamically. Example code along with an in depth illustration of all the issues involved. Contents: introduction, developing a code base for phones and tablets via frgaments and tabbed activities, SQLite, SQLiteOpenHelper, cursors, adapters and view binders, content providers, basic REST, models for robust networking, sync adapters, why use services for data synchronization, RESTFul services, persisting data in the cloud, WebData and Project Migrate, proxies, and securing your database applications.
(Wrox Press, 2015, 380 Pages, source code on line)
Android Security Internals - An in depth guide to Androids's security architecture
Most excellent book very detailed, the best documentation I have seen on this topic ever. Covers: security model, permissions, package management, user management [ for multi-user devices/tablets], cryptographic providers, network security and PKI, credential storage, online account management, enterprise security, device security, NFC security issues, SELINUX, system updates and root access. [ the coverage of all the encryption APIs and the secure boot process is worth it alone ]
(No Starch Press, 2015, 401 Pages)
Android Application Development
Book is written for those wanting to take the AND-401 certification exam. Book and exam cover the following topics with Android Studio via the Lollipop platform: Android Framework, Android Studio, Android SDK, Activities, Fragments, Views, ListViews, Intents (Implicit/ Explicit), Intent Filters, Layouts, Custom Views, Resources, Styles, Themes, Material Design, Dialog types, Menu types, WebViews, Preferences, File I/O, HTTP API (or lack thereof), Background Processing/Threads, SQLite, Content Providers, and Notifications. Each chapter ten in all have several working labs which are great illustrations about fifteen apps total. [ no source code provided, so you have to type the labs in manually ]
(ATC Press, 2015)
Android Security Essentials
Book is written for those wanting to take the AND-402 security certification exam. Written from the perspective of creating secure applications, and does not focus on for example on all of the cryptographic providers. Again like the 401 book, up to three labs per chapter, well worth the insight they provide. The four chapters in the book and exam cover the following topics via the Eclipse IDE: Levels of Permissions, custom permissions, permissions per component, securing data storage, using intent filters for security, coding tips for security, data storage types and how to secure them. [ preferences, cache, SQL, files, external and internal storage ] Lots of detail on attribute tags in the manifest. [ no source code provided, so you have to type the labs in manually ]
(ATC Press, 2014)


Android Studio Download - Yes ! no need to use Eclipse Anymore - very productive toolchain click here
Android SDK click here
CodeSourcery Compiler click here
Eclipse Java IDE click here