, ,

Inside the Android OS

Building, Customizing, Managing and Operating Android System Services

Paperback Engels 2021 9780134096346
Verwachte levertijd ongeveer 9 werkdagen

Samenvatting

Inside the Android OS is the first comprehensive guide and reference for developers who want to customise 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 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

Specificaties

ISBN13:9780134096346
Taal:Engels
Bindwijze:Paperback

Lezersrecensies

Wees de eerste die een lezersrecensie schrijft!

Inhoudsopgave

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

Managementboek Top 100

Rubrieken

Populaire producten

    Personen

      Trefwoorden

        Inside the Android OS