Cart
Free US shipping over $10
Proud to be B-Corp

Inside the Android OS G. Meike

Inside the Android OS By G. Meike

Inside the Android OS by G. Meike


$49.49
Condition - New
Only 2 left

Inside the Android OS Summary

Inside the Android OS: Building, Customizing, Managing and Operating Android System Services by G. Meike

The Complete Guide to Customizing Android for New IoT and Embedded Devices Inside the Android OS is a comprehensive guide and reference for technical professionals who want to customize and integrate Android into embedded devices, and construct or maintain successful Android-based products. Replete with code examples, it encourages you to create your own working code as you read---whether for personal insight or a professional project in the fast-growing marketplace for smart IoT devices. Expert Android developers G. Blake Meike and Larry Schiefer respond to the real-world needs of embedded and IoT developers moving to Android. After presenting an accessible introduction to the Android environment, they guide you through boot, subsystem startup, hardware interfaces, and application support---offering essential knowledge without ever becoming obscure or overly specialized. Reflecting Android's continuing evolution, Meike and Schiefer help you take advantage of relevant innovations, from the ART application runtime environment to Project Treble. Throughout, a book-length project covers all you need to start implementing your own custom Android devices, one step at a time. You will: Assess advantages and tradeoffs using Android in smart IoT devices Master practical processes for customizing Android Set up a build platform, download the AOSP source, and build an Android image Explore Android's components, architecture, source code, and development tools Understand essential kernel modules that are unique to Android Use Android's extensive security infrastructure to protect devices and users Walk through Android boot, from power-on through system initialization Explore subsystem startup, and use Zygote containers to control application processes Interface with hardware through Android's Hardware Abstraction Layer (HAL) Provide access to Java programs via Java Native Interface (JNI) Gain new flexibility by using binderized HAL (Project Treble) Implement native C/C++ or Java client apps without bundling vendor libraries

About G. Meike

Blake Meike is a passionate engineer, code poet, and veteran of more than 10 years of Android development at organizations including D2, Realm, Twitter, and Cyanogen. As a teacher, he has trained hundreds of new Android developers. He is author of several books on Android development, including O'Reilly's bestselling Programming Android and Addison-Wesley's Android Concurrency. He holds a degree in Mathematics and Computer Science from Dartmouth College and lives in the Pacific Northwest. Larry Schiefer is the CTO and co-founder of HIQES, LLC, a mobile platform and app engineering services company. He has made a career out of creating software solutions for mobile, embedded, and desktop systems. He started his career at Motorola working on large area telecommunications systems then moved to startups in the telecommunications, networking, and embedded spaces. Digging into Android's internals was a natural progression with his background in telecommunications, embedded systems, and Linux kernel work. He has traveled around the world training engineers at Intel, Qualcomm, Bose, and others about the internal workings of Android. In addition to being an entrepreneur and technical leader, he continues to stay involved with the development of new software and platform solutions.

Table of Contents

Preface xiii Chapter 1 Why Android? 1 Adopting Android 1 Full Stack 2 Broad Acceptance 2 Beautiful UI 2 Linux Based 2 Powerful Development Environment 3 Open Source 3 AOSP and Google 5 Other Choices 6 Micro-Controllers 6 Other RTOSs 7 Summary 8 Chapter 2 Booting Acme 9 Setting Up a Build Machine 10 Downloading the Code 11 Repo 11 Forking the Source 15 Android Version Selection 16 Local Mirror 17 Hosted Git Repositories 18 Tree Snapshot 19 Repository Commit Pinning 19 Example: Local Mirror of Forked Repositories 19 Building an Image 24 Device Tools 27 fastboot 28 adb 29 Flashing the Device 30 Summary 33 Chapter 3 Getting Started 35 Putting Android in Its Place 35 Hardware 36 The Linux Kernel 36 System Libraries 37 Applications 38 The Android Framework 39 The Android Service Model 40 Exploring the Source 43 Other Sources 44 What's in the Box? 44 Summary 48 Chapter 4 The Kernel 49 The Linux Kernel 49 Kernel Process Management 50 Kernel Memory Management 51 The Android Kernel 53 Android Kernel Features 54 Building a Kernel 62 The Build System 63 Downloading the Source 63 Summary 66 Chapter 5 Platform Security 67 Types of Security 67 Verified Boot 68 Operational Security 69 Android Software Layers 70 The Process Sandbox 70 SE Linux for Android 72 SE Policy Definition 73 Android Permissions 76 File Systems 79 User Protections 82 Customizing Permissions 83 Sample Custom Permission-Protected App 83 Sample Custom Permission Client App 88 Summary 92 Chapter 6 System Startup: Installing and Booting the System 93 The Boot Process 93 Bootloader 95 Fastboot 99 Kernel 100 The File System 102 init 104 Recovery 106 Building a Daemon 107 Creating the Acme Device 107 Repo Again 110 Starting the Daemon 111 Summary 114 Chapter 7 Android Startup: Dalvik and Zygote 115 Dalvik 116 ART 120 ART Basics 120 Hybrid ART 122 Zygote 123 Zygote Memory Management 123 Zygote Startup 127 Runtime Initialization 128 System Service Startup 129 Summary 131 Citations 131 Chapter 8 Getting to Android: The HAL 133 Why a HAL? 133 Is a HAL Necessary? 135 Designing the HAL 136 Building a HAL 137 Code Structure 138 Implementing the HAL 140 Summary 151 Chapter 9 Getting to Java: The JNI 153 Code Structure 154 Using the Device 155 Using the HAL 157 Using the Java Native Interface 159 Executing Native Code 160 JNI: The Java Side 161 JNI: The Native Side 162 A Java Proximity Application 165 JNI: Some Hints 176 Summary 182 Chapter 10 Project Treble: Binderized HAL 183 HIDL Architecture 183 hwservicemanager 185 HIDL Services 185 HIDL Client Applications 186 Hardware Interface Definition Language (HIDL) 186 HIDL Types 191 HIDL Services 194 HIDL Clients 197 Summary 198 Chapter 11 Creating a Custom Binderized HAL 199 Acme Custom HIDL 199 Summary 217 Chapter 12 Clients for a Custom Binderized HAL 219 Native C++ Aproximity Client 219 SE Linux for Android Changes for aproximitycl 224 Build aproximitycl into Acme 225 Java/Kotlin Aproximity Client 226 SE Linux for Android Changes for AproximityClient 229 Build AproximityClient into Acme 229 Summary 231 Index 233

Additional information

NGR9780134096346
9780134096346
0134096347
Inside the Android OS: Building, Customizing, Managing and Operating Android System Services by G. Meike
New
Paperback
Pearson Education (US)
20210822
272
N/A
Book picture is for illustrative purposes only, actual binding, cover or edition may vary.
This is a new book - be the first to read this copy. With untouched pages and a perfect binding, your brand new copy is ready to be opened for the first time

Customer Reviews - Inside the Android OS