You are previewing Instant Android Systems Development How-to.
O'Reilly logo
Instant Android Systems Development How-to

Book Description

Get your hands dirty with Android Systems Development through carefully thought out source code examples

  • Learn something new in an Instant! A short, fast, focused guide delivering immediate results

  • A gentle introduction to Android Platform Internals and how to make changes to the system

  • Gain the skills necessary for building high quality systems code for the Android Platform

  • Code examples are provided in a manner that facilitates the “Learning-by-doing” paradigm

In Detail

Android is by far the most popular open source mobile operating system. Learning to write high quality code at the platform level and learning how the systems works internally is a vital skill. This book teaches you these skills with clear and concise explanations and code examples.

Instant Android Systems Development How-to provides a gentle introduction to the platform internals without sacrificing depth. Source code examples are designed to be meaningful, but at the same time, do not disguise their real purpose, which is to illustrate systems development techniques and common design patterns in android systems programming. Readers will be guided through several examples that give a hands-on experience.

Readers begin by downloading the android source code, which is a topic of much discussion on android forums. They are then guided through the android boot process, and later on learn various common android systems development paradigms. More importantly, the book provides advice on when to use certain techniques which is often a mystery for the novice developer. Readers who complete the book will have high confidence in developing good systems code for Android.

The book discusses how to setup a development machine and how to obtain the android source code and kernel code. It describes the source code organization and how the system boots up with precise references to various points in the source code. It highlights the common systems design patterns followed and how to create a custom system service. It then covers the all important flashing of phones. This is a topic of much confusion and the book provides direct steps to achieve safe flashing of developer phones. It describes the user application library mechanism and the platform library mechanism. Native code is needed for certain operations and an example service utilizing native code is explained. Modification of core system applications is explained and useful tips are provided on how to speed up the build-test cycle. The book concludes with a case study of two real world android platform extensions which give the user a reference while developing their own extensions.

Instant Android Systems Development How-to is a well rounded book on platform internals that provides simple explanations without sacrificing depth and rigor.

Table of Contents

  1. Instant Android Systems Development How-to
    1. Instant Android Systems Development How-to
    2. Credits
    3. About the Author
    4. About the Reviewers
    5. www.PacktPub.com
      1. Support files, eBooks, discount offers and more
        1. Why Subscribe?
        2. Free Access for Packt account holders
    6. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for
      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Downloading the example code
        2. Errata
        3. Piracy
        4. Questions
    7. 1. Instant Android Systems Development How-to
      1. Building Android (Must know)
        1. Getting ready
        2. How to do it...
        3. How it works…
      2. Analyzing the source structure (Must know)
        1. Getting ready
        2. How to do it…
        3. How it works…
      3. System booting sequence (Must know)
        1. Getting ready
        2. How to do it...
        3. How it works…
        4. There's more
          1. Secure coding guidelines
      4. Creating a basic interface file (Must know)
        1. Getting ready
        2. How to do it…
        3. How it works…
      5. Creating a system service skeleton (Must know)
        1. Getting ready
        2. How to do it…
        3. How it works…
      6. Adding a custom service to the SystemServer process (Must know)
        1. Getting ready
        2. How to do it…
        3. How it works…
      7. Testing the PacktCrypto service (Must know)
        1. Getting ready
        2. How to do it…
        3. How it works…
      8. Analyzing Android system partitions (Must know)
        1. Getting ready
        2. How to do it…
        3. How it works…
        4. There's more...
      9. Compiling for a specific device (Must know)
        1. Getting ready
        2. How to do it…
        3. How it works…
        4. There's more...
      10. Flashing with Fastboot (Must know)
        1. Getting ready
        2. How to do it…
        3. How it works…
      11. Building a system image with your custom server for Nexus S (Should know)
        1. Getting ready
        2. How to do it…
        3. How it works…
      12. Creating the class library (Must know)
        1. Getting ready
        2. How to do it…
        3. How it works…
      13. Building an Android application against the custom SDK (Should know)
        1. Getting ready
        2. How to do it…
        3. How it works…
      14. Testing the class library (Should know)
        1. Getting ready
        2. How to do it…
        3. How it works…
      15. Writing the platform library source code (Must know)
        1. Getting ready
        2. How to do it…
        3. How it works…
      16. Creating the platform client (Should know)
        1. Getting ready
        2. How to do it…
        3. How it works…
        4. There's more...
          1. Platform library project organization
          2. System application project organization
      17. Writing the native method and registration with the JNI Onload event (Should know)
        1. How to do it...
        2. How it works...
      18. Writing the Java driver (Should know)
        1. Getting ready
        2. How to do it...
        3. How it works...
      19. Analyzing the ActivityManagerService class (Should know)
        1. Getting ready
        2. How to do it...
        3. How it works...
        4. There's more...
      20. Adding a custom method to the Activity Manager service (Should know)
        1. Getting ready
        2. How to do it...
        3. How it works...
      21. Adding custom permissions to the framework (Must know)
        1. Getting ready
        2. How to do it...
        3. How it works...
      22. Using the custom method (Should know)
        1. Getting ready
        2. How to do it...
        3. How it works...
      23. Analyzing the PackageManagerService class (Should know)
        1. Getting ready
        2. How to do it...
        3. How it works...
        4. There's more...
      24. Analyzing the Internet infrastructure (Should know)
        1. Getting ready
        2. How to do it...
        3. How it works...
      25. Learning the functions of various system applications (Must know)
        1. Getting ready
        2. How to do it...
        3. How it works...
      26. Modifying the search widget application (Should know)
        1. Getting ready
        2. How to do it...
        3. How it works...
      27. Using the CCACHE (Should know)
        1. Getting ready
        2. How to do it...
        3. How it works...
      28. Selectively compiling modules (Should know)
        1. Getting ready
        2. How to do it...
        3. How it works...
      29. Building command tricks (Should know)
        1. Getting ready
        2. How to do it...
        3. How it works...