版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android系统编程移植、定制和调试TOC\h\h目录\h第1章:Android系统编程简介-Chapter1:IntroductiontoAndroidSystemProgramming\h什么是系统编程?-Whatissystemprogramming?\h这本书的范围是什么?-Whatisthescopeofthisbook?\hAndroid系统概述-OverviewoftheAndroidsystem\h核心-Kernel\h哈尔-HAL\h安卓系统服务-Androidsystemservices\h宾德工控机-BinderIPC\h应用框架-Applicationframework\h恢复-Recovery\hAOSP衍生的第三方开源项目-Thethird-partyopensourceprojectsderivedfromAOSP\hLineageOS(CyanogenMod)\h安卓-x86-Android-x86\hCWM/CMR/TWRP\h整合战略-Strategyofintegration\h虚拟硬件参考平台-Virtualhardwarereferenceplatforms\h基于x86的Android模拟器简介-Introductiontothex86-basedAndroidemulator\h兰寿简介-Introductiontoranchu\h基于VirtualBox的Android模拟器-VirtualBox-basedAndroidemulators\h概括-Summary\h第2章:设置开发环境-Chapter2:SettingUptheDevelopmentEnvironment\hAndroid版本总结-SummaryofAndroidversions\h安装AndroidSDK并设置Android虚拟设备-InstallingAndroidSDKandsettingupanAndroidVirtualDevice\h在旧版本的SDK中创建AVD-CreatingAVDinanolderversionofSDK\h在最新版本的SDK中创建AVD-CreatingAVDinthelatestversionofSDK\h测试金鱼模拟器-Testingthegoldfishemulator\h测试ranchu模拟器-Testingranchuemulator\hAOSP构建环境和Android模拟器构建-TheAOSPbuildenvironmentandtheAndroidemulatorbuild\hAOSP构建环境-TheAOSPbuildenvironment\h安装所需的包-Installingtherequiredpackages\h安装OpenJDK7和8-InstallingOpenJDK7and8\h下载AOSP源代码-DownloadingtheAOSPsource\h安装仓库-Installingrepo\h初始化repo客户端并下载AOSP源代码树-InitializingarepoclientanddownloadingtheAOSPsourcetree\h构建AOSPAndroid模拟器镜像-BuildingAOSPAndroidemulatorimages\h测试AOSP图像-TestingAOSPimages\h创建您自己的存储库镜像-Creatingyourownrepositorymirror\h回购和清单-Repoandmanifest\h使用AOSP本地镜像-UsingalocalmirrorforAOSP\h创建您自己的GitHub镜像-CreatingyourownmirrorofGitHub\h获取GitHub外部的Git存储库-FetchingGitrepositoriesoutsideGitHub\h创建您自己的清单以供客户端下载-Creatingyourownmanifestforclientdownload\h概括-Summary\h第3章:发现内核、HAL和虚拟硬件-Chapter3:DiscoveringKernel,HAL,andVirtualHardware\hAOSP里面有什么?-WhatisinsidetheAOSP?\hAndroid模拟器HAL-AndroidemulatorHAL\h调用顺序-Callingsequence\h金鱼灯HAL-GoldfishlightsHAL\h系统服务和硬件管理器-Thesystemserviceandhardwaremanager\hAndroid模拟器内核和硬件-Androidemulatorkernelandhardware\hAndroid模拟器硬件-Androidemulatorhardware\h金鱼站台巴士-Goldfishplatformbus\hQEMU管道设备-QEMUpipedevice\h金鱼音频设备-Goldfishaudiodevice\h金鱼串口-Goldfishserialport\h金鱼仁-Goldfishkernel\hQEMU管道-QEMUpipe\h概括-Summary\h第4章:自定义Android模拟器-Chapter4:CustomizingtheAndroidEmulator\h为什么要定制Android模拟器-WhycustomizetheAndroidemulator\h了解构建层-Understandingbuildlayers\h构建变体-Buildvariants\h创建新的x86emu设备-Creatinganewx86emudevice\h从AOSP签出-CheckingoutfromtheAOSP\h从本地镜像查看-Checkingoutfromalocalmirror\h创建x86emu设备-Creatingx86emudevice\hAndroid产品.mk-AndroidProducts.mk\hBoardConfig.mk\h设备.mk-device.mk\h构建和测试x86emu-Buildingandtestingx86emu\h构建x86emu-Buildingx86emu\h测试x86emu-Testingx86emu\h与Eclipse集成-IntegratingwithEclipse\h概括-Summary\h第5章:启用ARM转换器并介绍NativeBridge-Chapter5:EnablingtheARMTranslatorandIntroducingNativeBridge\hNativeBridge简介-IntroducingNativeBridge\h将NativeBridge设置为ART初始化的一部分-SettingupNativeBridgeaspartoftheARTinitialization\h预初始化NativeBridge-Pre-initializingNativeBridge\h初始化本机桥-InitializingNativeBridge\h加载本地库-Loadinganativelibrary\h将Houdini集成到x86emu设备-IntegratingHoudinitothex86emudevice\h更改x86emu构建的配置-Changingtheconfigurationofthex86emubuild\h扩展x86emu设备-Extendingthex86emudevice\hBoardConfig.mk的更改-ChangestoBoardConfig.mk\h对x86emu_x86.mk的更改-Changestox86emu_x86.mk\h对device.mk的更改-Changestodevice.mk\h使用Android-x86实现-UsingtheAndroid-x86implementation\h分析libnb.so-Analyzinglibnb.so\h使用binfmt_misc-Usingbinfmt_misc\h构建和测试-Buildingandtesting\h测试命令行应用程序-Testingthecommand-lineapplication\h测试AndroidJNI应用程序-TestingtheAndroidJNIapplication\h概括-Summary\h第6章:使用自定义ramdisk调试启动过程-Chapter6:DebuggingtheBootUpProcessUsingaCustomizedramdisk\hAndroid启动流程分析-AnalyzingtheAndroidstartupprocess\h引导加载程序和内核-Bootloaderandthekernel\h分析init进程和ramdisk-Analyzingtheinitprocessandramdisk\h行动-Actions\h服务-Services\h设备特定的操作和服务-Device-specificactionsandservices\h源代码和清单更改-Sourcecodeandmanifestchanges\hAndroid-x86启动流程-TheAndroid-x86startupprocess\h使用initrd.img进行第一阶段启动-Thefirst-stagebootusinginitrd.img\hinitrd.img内部-Insideinitrd.img\h里面安装.img-Insideinstall.img\h使用initrd.img构建x86emu-Buildingx86emuwithinitrd.img\h创建文件系统映像-Creatingafilesystemimage\h内核变化-Kernelchanges\h在Android模拟器上启动磁盘映像-BootingadiskimageontheAndroidemulator\h概括-Summary\h第7章:在Android模拟器上启用Wi-Fi-Chapter7:EnablingWi-FiontheAndroidEmulator\hAndroid上的Wi-Fi-Wi-FionAndroid\hWi-Fi架构-TheWi-Fiarchitecture\hAndroid中的QEMU网络和wpa_supplicant-QEMUnetworkingandwpa_supplicantinAndroid\h将Wi-Fi添加到模拟器-AddingWi-Fitotheemulator\h在BoardConfig.mk中启用wpa_supplicant-Enablingwpa_supplicantinBoardConfig.mk\h提供正确的wpa_supplicant配置-Providingaproperwpa_supplicantconfiguration\h在初始化脚本中创建服务-Creatingservicesininitscripts\h初始化网络接口eth1-Initializingnetworkinterfaceeth1\h启动wpa_supplicant-Startingupwpa_supplicant\h构建源代码-Buildingthesourcecode\h获取源代码-Gettingthesourcecode\h使用initrd.img启用启动-Enablingbootwithinitrd.img\h在模拟器上测试Wi-Fi-TestingWi-Fionanemulator\h使用initrd.img启动Android模拟器-BootinganAndroidemulatorusinginitrd.img\h使用ramdisk.img启动Android模拟器-BootinganAndroidemulatorusingramdisk.img\h调试Wi-Fi启动进程-DebuggingWi-Fistartupprocesses\h概括-Summary\h第8章:在VirtualBox上创建您自己的设备-Chapter8:CreatingYourOwnDeviceonVirtualBox\hx86vbox的HAL-HALofx86vbox\hx86vbox的清单-Themanifestforx86vbox\h创建新的x86vbox设备-Creatinganewx86vboxdevice\hx86vbox的产品定义Makefile-ProductdefinitionMakefileofx86vbox\hx86vbox的板卡配置-Boardconfigurationofx86vbox\h常见的x86设备-Commonx86devices\h获取源代码并构建x86vbox设备-Gettingthesourcecodeandbuildingthex86vboxdevice\h启动过程和设备初始化-Bootupprocessanddeviceinitialization\hAndroid启动前的设备初始化-DeviceinitializationbeforeAndroidstart-up\hAndroid启动期间HAL初始化-HALinitializationduringtheAndroidstart-up\h概括-Summary\h第9章:使用PXE/NFS启动x86vbox-Chapter9:BootingUpx86vboxUsingPXE/NFS\h设置PXE启动环境-SettingupaPXEbootenvironment\h准备PXE引导ROM-PreparingPXEBootROM\h下载并构建LANBootROM-DownloadingandbuildingtheLANBootROM\h修复ROM映像-FixinguptheROMimage\h配置虚拟机以使用LANBootROM-ConfiguringthevirtualmachinetousetheLANBootROM\h设置PXE启动环境-SettingupthePXEbootenvironment\h配置和测试PXE启动-ConfiguringandtestingthePXEboot\h设置虚拟机-Settingupthevirtualmachine\h使用VirtualBox内部PXE启动和NAT-UsingVirtualBoxinternalPXEbootingwithNAT\h配置pxelinux.cfg-Configuringpxelinux.cfg\hpxelinux.cfg/默认-pxelinux.cfg/default\h设置串行端口以进行调试-Settingupaserialportfordebugging\hNFS文件系统-NFSfilesystem\h准备内核-Preparingthekernel\h设置NFS服务器-SettinguptheNFSserver\h配置PXE启动菜单-ConfiguringthePXEbootmenu\h引导至NFS安装-BootingtoNFSinstallation\h从硬盘启动-Bootingfromaharddisk\h启动至恢复-Bootingtorecovery\h概括-Summary\h第10章:启用图形-Chapter10:EnablingGraphics\hAndroid图形架构简介-IntroductiontotheAndroidgraphicsarchitecture\h深入研究图形HAL-DelvingintographicsHAL\h加载Gralloc模块-LoadingtheGrallocmodule\h初始化GPU-InitializingGPU\h初始化帧缓冲区-Initializingframebuffer\h分配和释放图形缓冲区-Allocatingandreleasingthegraphicbuffer\h从帧缓冲区分配-Allocatingfromframebuffer\h从系统内存分配-Allocatingfromsystemmemory\h释放图形缓冲区-Releasinggraphicbuffers\h渲染帧缓冲区-Renderingframebuffer\hAndroid模拟器的图形HAL-GraphicsHALoftheAndroidemulator\h硬件GLES仿真概述-OverviewofhardwareGLESemulation\h在GLES仿真中初始化GPU0和FB0-InitializingGPU0andFB0inGLESemulation\hGPU0设备实现-GPU0deviceimplementation\hFB0设备实现-FB0deviceimplementation\h概括-Summary\h第11章:启用VirtualBox特定的硬件接口-Chapter11:EnablingVirtualBox-SpecificHardwareInterfaces\hOpenGLES和图形硬件初始化-OpenGLESandgraphicshardwareinitialization\h加载OpenGLES库-LoadingOpenGLESlibraries\h分析加载过程-Analyzingtheloadingprocess\h加载驱动程序-Loadingthedriver\h创建渲染引擎-Creatingtherenderingengine\huvesafb帧缓冲区驱动程序-Theuvesafbframebufferdriver\h什么是uvesafb?-Whatisuvesafb?\h测试uvesafb帧缓冲区驱动程序-Testingtheuvesafbframebufferdriver\h在x86vbox中初始化uvesafb-Initializinguvesafbinx86vbox\h集成VirtualBox来宾添加-IntegratingVirtualBoxGuestAdditions\h构建VirtualBox来宾添加-BuildingVirtualBoxGuestAdditions\h集成vboxsf-Integratingvboxsf\h集成vboxvideo-Integratingvboxvideo\h使用VirtualBoxGuestAdditions构建和测试映像-BuildingandtestingimageswithVirtualBoxGuestAdditions\h概括-Summary\h第12章:恢复介绍-Chapter12:IntroducingRecovery\h恢复介绍-Recoveryintroduction\hAndroid设备分区-Androiddevicepartitions\h分析恢复情况-Analyzingrecovery\hBCB\h缓存分区-Cachepartition\h恢复主要流程-Mainflowofrecovery\h从BCB和缓存文件中检索参数-RetrievingargumentsfromBCBandcachefiles\h恢复出厂数据-Factorydatareset\hOTA更新-OTAupdate\h为x86vbox构建恢复-Buildingrecoveryforx86vbox\h建筑配置-Buildingconfiguration\hx86vbox的更改-Changestox86vbox\h恢复的变化-Changestorecovery\h新安装程序的更改-Changestonewinstaller\h测试恢复情况-Testingrecovery\h概括-Summary\h第13章:创建OTA包-Chapter13:CreatingOTAPackages\hOTA包里面有什么-WhatisinsideanOTApackage\h更新程序-Updater\h更新程序脚本-Theupdaterscript\h启迪功能-Edifyfunctions\h内置功能-Built-infunctions\h安装功能-Installationfunctions\h块图像功能-Blockimagefunctions\h设备扩展-Deviceextensions\h为x86vbox准备OTA包-PreparinganOTApackageforx86vbox\h删除对/system的依赖-Removingdependencieson/system\h恢复时硬件初始化-Hardwareinitializationinrecovery\h恢复时的最低执行环境-Minimumexecutionenvironmentinrecovery\h构建和测试-Buildingandtesting\h概括-Summary\h第14章:定制和调试恢复-Chapter14:CustomizingandDebuggingRecovery\h调试和测试原生Android应用程序-DebuggingandtestingnativeAndroidapplications\h使用GDB进行调试-DebuggingwithGDB\h与Eclipse集成-IntegrationwithEclipse\h扩展恢复和更新程序-Extendingrecoveryandtheupdater\h延长恢复时间-Extendingrecovery\h扩展更新程序-Extendingtheupdater\h扩展Python模块-ExtendingthePythonmodule\h构建和测试扩展恢复和更新程序-Buildingandtestingtheextendedrecoveryandupdater\h支持第三方恢复包-Supportingthethird-partyrecoverypackages\hXpose恢复包-Xposedrecoverypackage\h打开GApp-OpeningGApps\h概括-Summary\h指数-Index\h第1章:Android系统编程简介\h9\hWhatissystemprogramming?
\h什么是系统编程?\h10\hWhatisthescopeofthisbook?
\h这本书的范围是什么?\h11\hOverviewoftheAndroidsystem
\hAndroid系统概述\h13\hKernel
\h核心\h13\hHAL
\h哈尔\h15\hAndroidsystemservices
\h安卓系统服务\h15\hBinderIPC
\h宾德工控机\h16\hApplicationframework
\h应用框架\h16\hRecovery
\h恢复\h17\hThethird-partyopensourceprojectsderivedfromAOSP
\hAOSP衍生的第三方开源项目\h19\hLineageOS(CyanogenMod)\h19\hAndroid-x86
\h安卓-x86\h21\hCWM/CMR/TWRP\h22\hStrategyofintegration
\h整合战略\h23\hVirtualhardwarereferenceplatforms
\h虚拟硬件参考平台\h24\hIntroductiontothex86-basedAndroidemulator
\h基于x86的Android模拟器简介\h24\hIntroductiontoranchu
\h兰寿简介\h25\hVirtualBox-basedAndroidemulators
\h基于VirtualBox的Android模拟器\h26\hSummary
\h概括\h27\hChapter2:SettingUptheDevelopmentEnvironment
\h第2章:设置开发环境\h28\hSummaryofAndroidversions
\hAndroid版本总结\h28\hInstallingAndroidSDKandsettingupanAndroidVirtualDevice
\h安装AndroidSDK并设置Android虚拟设备\h31\hCreatingAVDinanolderversionofSDK
\h在旧版本的SDK中创建AVD\h31\hCreatingAVDinthelatestversionofSDK
\h在最新版本的SDK中创建AVD\h33\hTestingthegoldfishemulator
\h测试金鱼模拟器\h34\hTestingranchuemulator
\h测试ranchu模拟器\h37\hTheAOSPbuildenvironmentandtheAndroidemulatorbuild
\hAOSP构建环境和Android模拟器构建\h39\hTheAOSPbuildenvironment
\hAOSP构建环境\h39\hInstallingtherequiredpackages
\h安装所需的包\h39\hInstallingOpenJDK7and8
\h安装OpenJDK7和8\h39\hDownloadingtheAOSPsource
\h下载AOSP源代码\h41\hInstallingrepo
\h安装仓库\h41\hInitializingarepoclientanddownloadingtheAOSPsourcetree
\h初始化repo客户端并下载AOSP源代码树\h41\hBuildingAOSPAndroidemulatorimages
\h构建AOSPAndroid模拟器镜像\h42\hTestingAOSPimages
\h测试AOSP图像\h45\hCreatingyourownrepositorymirror
\h创建您自己的存储库镜像\h47\hRepoandmanifest
\h回购和清单\h48\hUsingalocalmirrorforAOSP
\h使用AOSP本地镜像\h50\hCreatingyourownmirrorofGitHub
\h创建您自己的GitHub镜像\h52\hFetchingGitrepositoriesoutsideGitHub
\h获取GitHub外部的Git存储库\h54\hCreatingyourownmanifestforclientdownload
\h创建您自己的清单以供客户端下载\h57\hSummary
\h概括\h60\hChapter3:DiscoveringKernel,HAL,andVirtualHardware
\h第3章:发现内核、HAL和虚拟硬件\h61\hWhatisinsidetheAOSP?
\hAOSP里面有什么?\h62\hAndroidemulatorHAL
\hAndroid模拟器HAL\h63\hCallingsequence
\h调用顺序\h65\hGoldfishlightsHAL
\h金鱼灯HAL\h67\hThesystemserviceandhardwaremanager
\h系统服务和硬件管理器\h69\hAndroidemulatorkernelandhardware
\hAndroid模拟器内核和硬件\h75\hAndroidemulatorhardware
\hAndroid模拟器硬件\h77\hGoldfishplatformbus
\h金鱼站台巴士\h77\hQEMUpipedevice
\hQEMU管道设备\h78\hGoldfishaudiodevice
\h金鱼音频设备\h79\hGoldfishserialport
\h金鱼串口\h80\hGoldfishkernel
\h金鱼仁\h81\hQEMUpipe
\hQEMU管道\h82\hSummary
\h概括\h84\hChapter4:CustomizingtheAndroidEmulator
\h第4章:自定义Android模拟器\h85\hWhycustomizetheAndroidemulator
\h为什么要定制Android模拟器\h85\hUnderstandingbuildlayers
\h了解构建层\h86\hBuildvariants
\h构建变体\h88\hCreatinganewx86emudevice
\h创建新的x86emu设备\h89\hCheckingoutfromtheAOSP
\h从AOSP签出\h89\hCheckingoutfromalocalmirror
\h从本地镜像查看\h90\hCreatingx86emudevice
\h创建x86emu设备\h93\hAndroidProducts.mk
\hAndroid产品.mk\h94\hBoardConfig.mk\h97\hdevice.mk
\h设备.mk\h99\hBuildingandtestingx86emu
\h构建和测试x86emu\h101\hBuildingx86emu
\h构建x86emu\h101\hTestingx86emu
\h测试x86emu\h105[ii]
[二]\hIntegratingwithEclipse
\h与Eclipse集成\h106\hSummary
\h概括\h111\hChapter5:EnablingtheARMTranslatorandIntroducingNativeBridge\h113
\h第5章:启用ARM转换器并介绍NativeBridge113\hIntroducingNativeBridge
\hNativeBridge简介\h113\hSettingupNativeBridgeaspartoftheARTinitialization
\h将NativeBridge设置为ART初始化的一部分\h116\hPre-initializingNativeBridge
\h预初始化NativeBridge\h123\hInitializingNativeBridge
\h初始化本机桥\h127\hLoadinganativelibrary
\h加载本地库\h130\hIntegratingHoudinitothex86emudevice
\h将Houdini集成到x86emu设备\h134\hChangingtheconfigurationofthex86emubuild
\h更改x86emu构建的配置\h134\hExtendingthex86emudevice
\h扩展x86emu设备\h136\hChangestoBoardConfig.mk
\hBoardConfig.mk的更改\h137\hChangestox86emu_x86.mk
\h对x86emu_x86.mk的更改\h138\hChangestodevice.mk
\h对device.mk的更改\h138\hUsingtheAndroid-x86implementation
\h使用Android-x86实现\h139\hAnalyzinglibnb.so
\h分析libnb.so\h140\hUsingbinfmt_misc
\h使用binfmt_misc\h143\hBuildingandtesting
\h构建和测试\h146\hTestingthecommand-lineapplication
\h测试命令行应用程序\h147\hTestingtheAndroidJNIapplication
\h测试AndroidJNI应用程序\h147\hSummary
\h概括\h150\hChapter6:DebuggingtheBootUpProcessUsingaCustomized
\h第6章:使用自定义调试启动过程\hramdisk
\h内存盘\h151\hAnalyzingtheAndroidstartupprocess
\hAndroid启动流程分析\h152\hBootloaderandthekernel
\h引导加载程序和内核\h152\hAnalyzingtheinitprocessandramdisk
\h分析init进程和ramdisk\h153\hActions
\h行动\h155\hServices
\h服务\h156\hDevice-specificactionsandservices
\h设备特定的操作和服务\h156\hSourcecodeandmanifestchanges
\h源代码和清单更改\h158\hTheAndroid-x86startupprocess
\hAndroid-x86启动流程\h160\hThefirst-stagebootusinginitrd.img
\h使用initrd.img进行第一阶段启动\h160\hInsideinitrd.img
\hinitrd.img内部\h161\hInsideinstall.img
\h里面安装.img\h166\hBuildingx86emuwithinitrd.img
\h使用initrd.img构建x86emu\h168\hCreatingafilesystemimage
\h创建文件系统映像\h170\hKernelchanges
\h内核变化\h173\hBootingadiskimageontheAndroidemulator
\h在Android模拟器上启动磁盘映像\h174\hSummary
\h概括\h179\hChapter7:EnablingWi-FiontheAndroidEmulator
\h第7章:在Android模拟器上启用Wi-Fi\h180[iii]
[三]\hWi-FionAndroid
\hAndroid上的Wi-Fi\h180\hTheWi-Fiarchitecture
\hWi-Fi架构\h181\hQEMUnetworkingandwpa_supplicantinAndroid
\hAndroid中的QEMU网络和wpa_supplicant\h190\hAddingWi-Fitotheemulator
\h将Wi-Fi添加到模拟器\h191\hEnablingwpa_supplicantinBoardConfig.mk
\h在BoardConfig.mk中启用wpa_supplicant\h191\hProvidingaproperwpa_supplicantconfiguration
\h提供正确的wpa_supplicant配置\h192\hCreatingservicesininitscripts
\h在初始化脚本中创建服务\h194\hInitializingnetworkinterfaceeth1
\h初始化网络接口eth1\h194\hStartingupwpa_supplicant
\h启动wpa_supplicant\h195\hBuildingthesourcecode
\h构建源代码\h196\hGettingthesourcecode
\h获取源代码\h196\hEnablingbootwithinitrd.img
\h使用initrd.img启用启动\h198\hTestingWi-Fionanemulator
\h在模拟器上测试Wi-Fi\h201\hBootinganAndroidemulatorusinginitrd.img
\h使用initrd.img启动Android模拟器\h201\hBootinganAndroidemulatorusingramdisk.img
\h使用ramdisk.img启动Android模拟器\h203\hDebuggingWi-Fistartupprocesses
\h调试Wi-Fi启动进程\h203\hSummary
\h概括\h206\hChapter8:CreatingYourOwnDeviceonVirtualBox
\h第8章:在VirtualBox上创建您自己的设备\h207\hHALofx86vbox
\hx86vbox的HAL\h208\hThemanifestforx86vbox
\hx86vbox的清单\h210\hCreatinganewx86vboxdevice
\h创建新的x86vbox设备\h214\hProductdefinitionMakefileofx86vbox
\hx86vbox的产品定义Makefile\h214\hBoardconfigurationofx86vbox
\hx86vbox的板卡配置\h215\hCommonx86devices
\h常见的x86设备\h216\hGettingthesourcecodeandbuildingthex86vboxdevice
\h获取源代码并构建x86vbox设备\h220\hBootupprocessanddeviceinitialization
\h启动过程和设备初始化\h220\hDeviceinitializationbeforeAndroidstart-up
\hAndroid启动前的设备初始化\h221\hHALinitializationduringtheAndroidstart-up
\hAndroid启动期间HAL初始化\h228\hSummary
\h概括\h232\hChapter9:BootingUpx86vboxUsingPXE/NFS
\h第9章:使用PXE/NFS启动x86vbox\h233\hSettingupaPXEbootenvironment
\h设置PXE启动环境\h234\hPreparingPXEBootROM
\h准备PXE引导ROM\h235\hDownloadingandbuildingtheLANBootROM
\h下载并构建LANBootROM\h236\hFixinguptheROMimage
\h修复ROM映像\h236\hConfiguringthevirtualmachinetousetheLANBootROM
\h配置虚拟机以使用LANBootROM\h237\hSettingupthePXEbootenvironment
\h设置PXE启动环境\h239\hConfiguringandtestingthePXEboot
\h配置和测试PXE启动\h239\hSettingupthevirtualmachine
\h设置虚拟机\h240\hUsingVirtualBoxinternalPXEbootingwithNAT
\h使用VirtualBox内部PXE启动和NAT\h242[iv]
[四]\hConfiguringpxelinux.cfg
\h配置pxelinux.cfg\h243\hpxelinux.cfg/default
\hpxelinux.cfg/默认\h244\hSettingupaserialportfordebugging
\h设置串行端口以进行调试\h246\hNFSfilesystem
\hNFS文件系统\h248\hPreparingthekernel
\h准备内核\h249\hSettinguptheNFSserver
\h设置NFS服务器\h252\hConfiguringthePXEbootmenu
\h配置PXE启动菜单\h252\hBootingtoNFSinstallation
\h引导至NFS安装\h253\hBootingfromaharddisk
\h从硬盘启动\h255\hBootingtorecovery
\h启动至恢复\h255\hSummary
\h概括\h258\hChapter10:EnablingGraphics
\h第10章:启用图形\h259\hIntroductiontotheAndroidgraphicsarchitecture
\hAndroid图形架构简介\h260\hDelvingintographicsHAL
\h深入研究图形HAL\h262\hLoadingtheGrallocmodule
\h加载Gralloc模块\h262\hInitializingGPU
\h初始化GPU\h269\hInitializingframebuffer
\h初始化帧缓冲区\h271\hAllocatingandreleasingthegraphicbuffer
\h分配和释放图形缓冲区\h280\hAllocatingfromframebuffer
\h从帧缓冲区分配\h285\hAllocatingfromsystemmemory
\h从系统内存分配\h287\hReleasinggraphicbuffers
\h释放图形缓冲区\h289\hRenderingframebuffer
\h渲染帧缓冲区\h291\hGraphicsHALoftheAndroidemulator
\hAndroid模拟器的图形HAL\h294\hOverviewofhardwareGLESemulation
\h硬件GLES仿真概述\h295\hInitializingGPU0andFB0inGLESemulation
\h在GLES仿真中初始化GPU0和FB0\h299\hGPU0deviceimplementation
\hGPU0设备实现\h302\hFB0deviceimplementation
\hFB0设备实现\h307\hSummary
\h概括\h308\hChapter11:EnablingVirtualBox-SpecificHardwareInterfaces
\h第11章:启用VirtualBox特定的硬件接口\h309\hOpenGLESandgraphicshardwareinitialization
\hOpenGLES和图形硬件初始化\h309\hLoadingOpenGLESlibraries
\h加载OpenGLES库\h310\hAnalyzingtheloadingprocess
\h分析加载过程\h313\hLoadingthedriver
\h加载驱动程序\h318\hCreatingtherenderingengine
\h创建渲染引擎\h320\hTheuvesafbframebufferdriver
\huvesafb帧缓冲区驱动程序\h322\hWhatisuvesafb?
\h什么是uvesafb?\h322\hTestingtheuvesafbframebufferdriver
\h测试uvesafb帧缓冲区驱动程序\h322\hInitializinguvesafbinx86vbox
\h在x86vbox中初始化uvesafb\h328\hIntegratingVirtualBoxGuestAdditions
\h集成VirtualBox来宾添加\h331\hBuildingVirtualBoxGuestAdditions
\h构建VirtualBox来宾添加\h333[v]
[五]\hIntegratingvboxsf
\h集成vboxsf\h334\hIntegratingvboxvideo
\h集成vboxvideo\h337\hBuildingandtestingimageswithVirtualBoxGuestAdditions
\h使用VirtualBoxGuestAdditions构建和测试映像\h339\hSummary
\h概括\h339\hChapter12:IntroducingRecovery
\h第12章:恢复介绍\h340\hRecoveryintroduction
\h恢复介绍\h340\hAndroiddevicepartitions
\hAndroid设备分区\h341\hAnalyzingrecovery
\h分析恢复情况\h343\hBCB\h344\hCachepartition
\h缓存分区\h347\hMainflowofrecovery
\h恢复主要流程\h348\hRetrievingargumentsfromBCBandcachefiles
\h从BCB和缓存文件中检索参数\h352\hFactorydatareset
\h恢复出厂数据\h356\hOTAupdate
\hOTA更新\h358\hBuildingrecoveryforx86vbox
\h为x86vbox构建恢复\h364\hBuildingconfiguration
\h建筑配置\h364\hChangestox86vbox
\hx86vbox的更改\h365\hChangestorecovery
\h恢复的变化\h368\hChangestonewinstaller
\h新安装程序的更改\h369\hTestingrecovery
\h测试恢复情况\h371\hSummary
\h概括\h371\hChapter13:CreatingOTAPackages
\h第13章:创建OTA包\h372\hWhatisinsideanOTApackage
\hOTA包里面有什么\h372\hUpdater
\h更新程序\h375\hTheupdaterscript
\h更新程序脚本\h380\hEdifyfunctions
\h启迪功能\h380\hBuilt-infunctions
\h内置功能\h380\hInstallationfunctions
\h安装功能\h381\hBlockimagefunctions
\h块图像功能\h385\hDeviceextensions
\h设备扩展\h385\hPreparinganOTApackageforx86vbox
\h为x86vbox准备OTA包\h386\hRemovingdependencieson/system
\h删除对/system的依赖\h388\hHardwareinitializationinrecovery
\h恢复时硬件初始化\h389\hMinimumexecutionenvironmentinrecovery
\h恢复时的最低执行环境\h391\hBuildingandtesting
\h构建和测试\h394\hSummary
\h概括\h397\hChapter14:CustomizingandDebuggingRecovery
\h第14章:定制和调试恢复\h398\hDebuggingandtestingnativeAndroidapplications
\h调试和测试原生Android应用程序\h399[vi]
[六]\hDebuggingwithGDB
\h使用GDB进行调试\h400\hIntegrationwithEclipse
\h与Eclipse集成\h403\hExtendingrecoveryandtheupdater
\h扩展恢复和更新程序\h409\hExtendingrecovery
\h延长恢复时间\h409\hExtendingtheupdater
\h扩展更新程序\h416\hExtendingthePythonmodule
\h扩展Python模块\h424\hBuildingandtestingtheextendedrecoveryandupdater
\h构建和测试扩展恢复和更新程序\h425\hSupportingthethird-partyrecoverypackages
\h支持第三方恢复包\h433\hXposedrecoverypackage
\hXpose恢复包\h433\hOpeningGApps
\h打开GApp\h437\hSummary
\h概括\h441\hIndex
\h指数\h442[vii]
[七]Preface
前言Androidisthemostpopularmobileoperatingsystemintheworld.Since2013,Androidhasaround80%marketshareworldwide,whilethesecondlargestmobileoperatingsystem,iOS,haslessthan20%marketshare.
Android是世界上最流行的移动操作系统。自2013年以来,Android在全球占据约80%的市场份额,而第二大移动操作系统iOS的市场份额不足20%。
DuetothepopularityofAndroid,therearemanybooksaboutAndroidprogramminginthemarket.MostofthemaretargetedatAndroidapplicationdevelopers,whicharethelargestcommunityintheworldofAndroiddevelopment.
由于Android的普及,市场上有很多关于Android编程的书籍。其中大多数针对Android应用程序开发人员,这是Android开发领域最大的社区。ThereisalsoanothergroupofpeopleworkingonthelayerbeneaththeAndroidframework.ManypeoplecallthemAndroidsystemdevelopers.
还有另外一组人在做Android框架下面的层。很多人称他们为Android系统开发人员。
ComparingtoAndroidapplicationdevelopers,AndroidsystemdevelopersusetheC/C++languages,orevenassemblylanguage,todevelopsystemservicesordevicedrivers.
与Android应用程序开发人员相比,Android系统开发人员使用C/C++语言,甚至汇编语言来开发系统服务或设备驱动程序。
ThescopeandthedefinitionofAndroidsystemdevelopmentismuchmorevaguethancomparingtoAndroidapplicationdevelopment.
Android系统开发的范围和定义比Android应用程序开发要模糊得多。
ForAndroidapplicationdevelopment,thedevelopmentenvironmentandtoolsareveryclear:theAndroidSDKandAndroidStudiofromGoogleshouldbeusedandtheprogramminglanguageisJava.
对于Android应用程序开发,开发环境和工具非常明确:需要使用Google的AndroidSDK和AndroidStudio,编程语言是Java。ForAndroidsystemdevelopment,wemayusetheAndroidNDKtodevelopAndroidsystemservicesornativeapplications.ManypeoplerefertodevelopmentbasedontheAndroidOpenSourceProject(AOSP)asAndroid
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026年)医师分层次培训计划
- (2026年)维修电工高级技师理论知识试卷附答案
- 蒸呢机挡车工岗前班组管理考核试卷含答案
- 管模维修工持续改进知识考核试卷含答案
- 称重计量工操作技能测试考核试卷含答案
- 伞制作工岗前安全应急考核试卷含答案
- 机制地毯挡车工安全培训效果强化考核试卷含答案
- 海洋浮标工岗位知识体系考核试卷含答案
- 汽车车身整形修复工岗位实操综合知识考核试卷含答案
- 牙骨雕刻工技术综合竞赛考核试卷含答案
- 恶性高热急救指南2026
- 2026新教材语文 13 普罗米修斯 教学课件
- 2026年市政工程质量员专业技能考试必考题库与答案
- 2026年财务数字化财务机器人应用培训试卷及答案
- T-CCMA 0055-2017 工程机械液压管路布局规范
- VDA 6.3 过程审核 2023 版 中文版(完整原文 + 评分细则 + 现场审核清单)
- 2026年(综合知识测试)湖北省从村(社区)干部中定向考录乡镇(街道)公务员综合试题及答案
- 2026年在线监测设备运维考试题及答案
- 居间股权转让合同范本
- 第七章健康地生活测试卷 (2)2026-2027学年人教版八年级上册生物
- 矿山含泥废水沉淀方案
评论
0/150
提交评论