55,40 €*
Versandkostenfrei per Post / DHL
Lieferzeit 1-2 Wochen
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 specialised. Meike teaches through a book-length project that covers everything developers need to know to create their own custom Android service. You will find approachable yet precise coverage of:
- Why Android is becoming a pervasive embedded platform
- Using the Android 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 the Android 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, the heart and the root of the Android security and access control models
- Establishing permissions and access control
- Enabling apps to use the services you have created
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 specialised. Meike teaches through a book-length project that covers everything developers need to know to create their own custom Android service. You will find approachable yet precise coverage of:
- Why Android is becoming a pervasive embedded platform
- Using the Android 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 the Android 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, the heart and the root of the Android security and access control models
- Establishing permissions and access control
- Enabling apps to use the services you have created
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
Erscheinungsjahr: | 2021 |
---|---|
Fachbereich: | Betriebssysteme & Benutzeroberflächen |
Genre: | Informatik |
Rubrik: | Naturwissenschaften & Technik |
Medium: | Taschenbuch |
Inhalt: | Kartoniert / Broschiert |
ISBN-13: | 9780134096346 |
ISBN-10: | 0134096347 |
Sprache: | Englisch |
Einband: | Kartoniert / Broschiert |
Autor: |
Meike, G.
Schiefer, Lawrence |
Hersteller: | Pearson Education (US) |
Maße: | 178 x 228 x 17 mm |
Von/Mit: | G. Meike (u. a.) |
Erscheinungsdatum: | 30.09.2021 |
Gewicht: | 0,446 kg |
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
Erscheinungsjahr: | 2021 |
---|---|
Fachbereich: | Betriebssysteme & Benutzeroberflächen |
Genre: | Informatik |
Rubrik: | Naturwissenschaften & Technik |
Medium: | Taschenbuch |
Inhalt: | Kartoniert / Broschiert |
ISBN-13: | 9780134096346 |
ISBN-10: | 0134096347 |
Sprache: | Englisch |
Einband: | Kartoniert / Broschiert |
Autor: |
Meike, G.
Schiefer, Lawrence |
Hersteller: | Pearson Education (US) |
Maße: | 178 x 228 x 17 mm |
Von/Mit: | G. Meike (u. a.) |
Erscheinungsdatum: | 30.09.2021 |
Gewicht: | 0,446 kg |