Android System Programming

Build, customize, and debug your own Android system
Preview in Mapt

Android System Programming

Roger Ye

1 customer reviews
Build, customize, and debug your own Android system
Mapt Subscription
FREE
$29.99/m after trial
eBook
$25.20
RRP $35.99
Save 29%
Print + eBook
$44.99
RRP $44.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$25.20
$44.99
$29.99p/m after trial
RRP $35.99
RRP $44.99
Subscription
eBook
Print + eBook
Start 30 Day Trial

Frequently bought together


Android System Programming Book Cover
Android System Programming
$ 35.99
$ 25.20
Xamarin Studio for Android Programming: A C# Cookbook Book Cover
Xamarin Studio for Android Programming: A C# Cookbook
$ 35.99
$ 25.20
Buy 2 for $35.00
Save $36.98
Add to Cart
Subscribe and access every Packt eBook & Video.
 
  • 5,000+ eBooks & Videos
  • 50+ New titles a month
  • 1 Free eBook/Video to keep every month
Start Free Trial
 

Book Details

ISBN 139781787125360
Paperback470 pages

Book Description

Android system programming involves both hardware and software knowledge to work on system level programming. The developers need to use various techniques to debug the different components in the target devices. With all the challenges, you usually have a deep learning curve to master relevant knowledge in this area. This book will not only give you the key knowledge you need to understand Android system programming, but will also prepare you as you get hands-on with projects and gain debugging skills that you can use in your future projects.

You will start by exploring the basic setup of AOSP, and building and testing an emulator image. In the first project, you will learn how to customize and extend the Android emulator. Then you’ll move on to the real challenge—building your own Android system on VirtualBox. You’ll see how to debug the init process, resolve the bootloader issue, and enable various hardware interfaces. When you have a complete system, you will learn how to patch and upgrade it through recovery. Throughout the book, you will get to know useful tips on how to integrate and reuse existing open source projects such as LineageOS (CyanogenMod), Android-x86, Xposed, and GApps in your own system.

Table of Contents

Chapter 1: Introduction to Android System Programming
What is system programming?
What is the scope of this book?
Overview of the Android system
The third-party open source projects derived from AOSP
Strategy of integration
Virtual hardware reference platforms
Summary
Chapter 2: Setting Up the Development Environment
Summary of Android versions
Installing Android SDK and setting up an Android Virtual Device
The AOSP build environment and the Android emulator build
Creating your own repository mirror
Summary
Chapter 3: Discovering Kernel, HAL, and Virtual Hardware
What is inside the AOSP?
Android emulator HAL
Android emulator kernel and hardware
Summary
Chapter 4: Customizing the Android Emulator
Why customize the Android emulator
Understanding build layers
Build variants
Creating a new x86emu device
Building and testing x86emu
Summary
Chapter 5: Enabling the ARM Translator and Introducing Native Bridge
Introducing Native Bridge
Integrating Houdini to the x86emu device
Building and testing
Summary
Chapter 6: Debugging the Boot Up Process Using a Customized ramdisk
Analyzing the Android start up process
Source code and manifest changes
The Android-x86 start up process
Building x86emu with initrd.img
Creating a filesystem image
Kernel changes
Booting a disk image on the Android emulator
Summary
Chapter 7: Enabling Wi-Fi on the Android Emulator
Wi-Fi on Android
Adding Wi-Fi to the emulator
Building the source code
Testing Wi-Fi on an emulator
Summary
Chapter 8: Creating Your Own Device on VirtualBox
HAL of x86vbox
Creating a new x86vbox device
Boot up process and device initialization
Summary
Chapter 9: Booting Up x86vbox Using PXE/NFS
Setting up a PXE boot environment
Configuring and testing the PXE boot
NFS filesystem
Configuring the PXE boot menu
Summary
Chapter 10: Enabling Graphics
Introduction to the Android graphics architecture
Delving into graphics HAL
Graphics HAL of the Android emulator
Summary
Chapter 11: Enabling VirtualBox-Specific Hardware Interfaces
OpenGL ES and graphics hardware initialization
Integrating VirtualBox Guest Additions
Summary
Chapter 12: Introducing Recovery
Recovery introduction
Analyzing recovery
Building recovery for x86vbox
Summary
Chapter 13: Creating OTA Packages
What is inside an OTA package
Preparing an OTA package for x86vbox
Removing dependencies on /system
Building and testing
Summary
Chapter 14: Customizing and Debugging Recovery
Debugging and testing native Android applications
Extending recovery and the updater
Supporting the third-party recovery packages
Summary

What You Will Learn

  • Set up the Android development environment and organize source code repositories
  • Get acquainted with the Android system architecture
  • Build the Android emulator from the AOSP source tree
  • Find out how to enable WiFi in the Android emulator
  • Debug the boot up process using a customized Ramdisk
  • Port your Android system to a new platform using VirtualBox
  • Find out what recovery is and see how to enable it in the AOSP build
  • Prepare and test OTA packages

Authors

Table of Contents

Chapter 1: Introduction to Android System Programming
What is system programming?
What is the scope of this book?
Overview of the Android system
The third-party open source projects derived from AOSP
Strategy of integration
Virtual hardware reference platforms
Summary
Chapter 2: Setting Up the Development Environment
Summary of Android versions
Installing Android SDK and setting up an Android Virtual Device
The AOSP build environment and the Android emulator build
Creating your own repository mirror
Summary
Chapter 3: Discovering Kernel, HAL, and Virtual Hardware
What is inside the AOSP?
Android emulator HAL
Android emulator kernel and hardware
Summary
Chapter 4: Customizing the Android Emulator
Why customize the Android emulator
Understanding build layers
Build variants
Creating a new x86emu device
Building and testing x86emu
Summary
Chapter 5: Enabling the ARM Translator and Introducing Native Bridge
Introducing Native Bridge
Integrating Houdini to the x86emu device
Building and testing
Summary
Chapter 6: Debugging the Boot Up Process Using a Customized ramdisk
Analyzing the Android start up process
Source code and manifest changes
The Android-x86 start up process
Building x86emu with initrd.img
Creating a filesystem image
Kernel changes
Booting a disk image on the Android emulator
Summary
Chapter 7: Enabling Wi-Fi on the Android Emulator
Wi-Fi on Android
Adding Wi-Fi to the emulator
Building the source code
Testing Wi-Fi on an emulator
Summary
Chapter 8: Creating Your Own Device on VirtualBox
HAL of x86vbox
Creating a new x86vbox device
Boot up process and device initialization
Summary
Chapter 9: Booting Up x86vbox Using PXE/NFS
Setting up a PXE boot environment
Configuring and testing the PXE boot
NFS filesystem
Configuring the PXE boot menu
Summary
Chapter 10: Enabling Graphics
Introduction to the Android graphics architecture
Delving into graphics HAL
Graphics HAL of the Android emulator
Summary
Chapter 11: Enabling VirtualBox-Specific Hardware Interfaces
OpenGL ES and graphics hardware initialization
Integrating VirtualBox Guest Additions
Summary
Chapter 12: Introducing Recovery
Recovery introduction
Analyzing recovery
Building recovery for x86vbox
Summary
Chapter 13: Creating OTA Packages
What is inside an OTA package
Preparing an OTA package for x86vbox
Removing dependencies on /system
Building and testing
Summary
Chapter 14: Customizing and Debugging Recovery
Debugging and testing native Android applications
Extending recovery and the updater
Supporting the third-party recovery packages
Summary

Book Details

ISBN 139781787125360
Paperback470 pages
Read More
From 1 reviews

Read More Reviews

Recommended for You

Xamarin Studio for Android Programming: A C# Cookbook Book Cover
Xamarin Studio for Android Programming: A C# Cookbook
$ 35.99
$ 25.20
Instant Android Systems Development How-to Book Cover
Instant Android Systems Development How-to
$ 14.99
$ 10.50
Android: Game Programming Book Cover
Android: Game Programming
$ 69.99
$ 49.00
Android: Programming for Developers Book Cover
Android: Programming for Developers
$ 71.99
$ 50.40
Go Systems Programming Book Cover
Go Systems Programming
$ 39.99
$ 28.00
Expert Android Programming Book Cover
Expert Android Programming
$ 35.99
$ 25.20