Muutke küpsiste eelistusi

Inside the Android OS: Building, Customizing, Managing and Operating Android System Services [Pehme köide]

  • Formaat: Paperback / softback, 272 pages, kõrgus x laius x paksus: 228x176x14 mm, kaal: 460 g
  • Sari: Android Deep Dive
  • Ilmumisaeg: 30-Sep-2021
  • Kirjastus: Addison Wesley
  • ISBN-10: 0134096347
  • ISBN-13: 9780134096346
  • Formaat: Paperback / softback, 272 pages, kõrgus x laius x paksus: 228x176x14 mm, kaal: 460 g
  • Sari: Android Deep Dive
  • Ilmumisaeg: 30-Sep-2021
  • Kirjastus: Addison Wesley
  • ISBN-10: 0134096347
  • ISBN-13: 9780134096346

Inside the Android OS is the first comprehensive guide and reference for developers who want to customize and integrate Android into their own embedded devices. Replete with code examples, it encourages you to create your own working code versions as you read -- whether for your own personal insight or for a workplace project in the fast-growing marketplace for non-phone Android devices.

 

G. Blake Meike responds to the real-world needs of embedded and IoT developers moving to Android, providing indispensable information without becoming obscure or too specialized. Meike teaches through a book-length project that covers everything developers need to know to create their own custom Android service. You’ll find approachable yet precise coverage of:

  • Why Android is becoming a pervasive embedded platform
  • Using Android’s four-tier architectural model in embedded devices
  • Setting up a build platform, downloading the AOSP source, and building an Android image
  • Walking through system startup on a running Android system
  • Running native services on embedded systems
  • Using Android’s Native Development Kit (NDK) and HAL to link interpreted Java with native C/C++ code
  • Taking a deep dive into the seminal Zygote application and its Dalvik interpreter
  • Quickly building Java system services
  • Working with Binder, Android’s heart and the root of its security and access control models
  • Establishing permissions and access control
  • Enabling apps to use the services you’ve created
  • Building SDKs that allow third-party developers to code for your device
  • And much more

If you’re a software professional who wants to construct or maintain a successful Android-based product, this is the book you’ve been searching for.

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