Inside the Android OS
Addison Wesley (Verlag)
978-0-13-409634-6 (ISBN)
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
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.
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
Erscheinungsdatum | 29.11.2018 |
---|---|
Reihe/Serie | Android Deep Dive |
Verlagsort | Boston |
Sprache | englisch |
Maße | 176 x 228 mm |
Gewicht | 460 g |
Themenwelt | Informatik ► Software Entwicklung ► Mobile- / App-Entwicklung |
Informatik ► Weitere Themen ► Smartphones / Tablets | |
ISBN-10 | 0-13-409634-7 / 0134096347 |
ISBN-13 | 978-0-13-409634-6 / 9780134096346 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich