《android教程底层》PPT课件
64页1、Android开发杂谈开发杂谈广州网易,闻波wenbob1整理ppta.了解系统了解系统了解程序了解程序优化与混淆优化与混淆Hacking内容提要内容提要2整理ppt了解系统了解系统a.系统组成与特点系统组成与特点系统启动过程系统启动过程3整理ppt典型的手机硬件方案典型的手机硬件方案4整理pptAndroid的体系结构的体系结构5整理ppt五层体系结构解读五层体系结构解读a.ApplicationAndroid内置程序:内置程序:Home、Contracts、PhoneGoogle闭源程序:闭源程序:GoogleClientVendor程序:程序:HTCDream,OMSFrameworkAndroidCoreCode(java)VendorextensionsNativelibraries功能函数库:功能函数库:C/C+库、音视频、库、音视频、SQLite、OpenGL/ES、Webkit、FreeType、SSLAndroidJNIAndroidDalvikVMUserspacedriversLinuxKernel精简版的精简版的IPC补丁:补丁:Binder更积极的电源管理:没
2、有人宣布要用的部件,就关掉更积极的电源管理:没有人宣布要用的部件,就关掉6整理ppt函数调用关系函数调用关系7整理pptAndroid的重要特色的重要特色a.HAL许多驱动程序以用户态的方式运行,依赖内核的许多驱动程序以用户态的方式运行,依赖内核的HAL机制。机制。CameraService、SurfaceFlinger、AudioFlinger等都位于用户态。等都位于用户态。Bionic精简版的精简版的C/C+运行库,类似于嵌入式系统中常用的运行库,类似于嵌入式系统中常用的uCLib。被重复发明的轮子。为什么不用被重复发明的轮子。为什么不用uCLib?商业用途的版权考虑,不想?商业用途的版权考虑,不想被被LGPL限制。限制。SurfaceFlinger表面渲染,目前是比较低效的表面渲染,目前是比较低效的C代码实现,有待芯片厂商来改善。代码实现,有待芯片厂商来改善。8整理pptAndroid的重要特色的重要特色a.BrowserWebkit移植版,并不是移植版,并不是Chrome,无,无Plugins接口接口内置内置Googlegears(无源代码(无源代码)2.x提供了更多的提供了更
3、多的HTML5特性,如本地存储等特性,如本地存储等不支持文件上传不支持文件上传inputtype=file.DalvikVM为什么又发明了轮子为什么又发明了轮子:绕开绕开SUN公司的授权的商业考虑公司的授权的商业考虑轻量级,轻量级,500KB大小,适合移动设备的虚拟机大小,适合移动设备的虚拟机使用使用fork方式执行应用程序方式执行应用程序(所谓所谓Zygote),启动速度更快,启动速度更快9整理ppt了解系统了解系统a.系统组成与特点系统组成与特点系统启动过程系统启动过程10整理ppt系统引导过程系统引导过程InitialProgramLoaderSecondProgramLoaderLinuxkernelinit相关的分区镜像文件相关的分区镜像文件a.hboot.imgSPLb.radio.img射频通讯相关的程序(GSM、CDMA)c.boot.imgLinuxkerneld.system.imgFramework,系统程序,运行库e.recovery.img用于恢复/升级系统f.userdata.img用户数据及程序安装的目录g.cache.img.硬件初始化,类似硬件初始化,
4、类似BIOS系统引导程序,类似系统引导程序,类似Grub操作系统内核操作系统内核第一个进程,脚本第一个进程,脚本init.conf11整理pptLinux内核启动过程内核启动过程内核文件为内核文件为boot.img,是,是gzip压缩包,分为两部分:压缩包,分为两部分:ramdisk.img+system.img启动过程和普通桌面启动过程和普通桌面Linux类似:类似:首先只读加载首先只读加载ramdisk.img。ramdisk中包括中包括init程序以程序以及配置文件及配置文件/etc/init.rc。加载后执行。加载后执行init程序。程序。init进程负责解析进程负责解析init.rc,完成整个操作系统的启动。,完成整个操作系统的启动。init在处理过程中加载驱动,建立目录树和设备节点,在处理过程中加载驱动,建立目录树和设备节点,$lsmodsec47600-Live0 xbf01b000modem_pm_driver27682-Live0 xbf018000netmux_linkdriver103760permanent,Live0 xbf013000netmux560881
5、9netmux_linkdriver,Live0 xbf000000加载加载system分区,装载初始系统文件。分区,装载初始系统文件。然后加载然后加载userdata分区,装载初始用户数据。分区,装载初始用户数据。最后启动各种系统服务最后启动各种系统服务12整理ppt1号进程号进程init的处理过程的处理过程:daemons假定共假定共64MB内存,此时剩余内存,此时剩余40MB13整理ppt1号进程号进程init的处理过程的处理过程:services14整理ppt1号进程号进程init的处理过程的处理过程:services15整理ppt1号进程号进程init的处理过程的处理过程:注册服务注册服务剩余系统内存:剩余系统内存:20MB16整理ppt启动后启动后创建的进程创建的进程:root用户用户kthreadd,ksoftirqd,events,khelper,suspend,kblockd,cqueue,kseriod,aio,rpciod,/基础服务基础服务mtdblockd,pdflush,kswapd,mountd,kmmcd,mmcqd,/磁盘与文件系统需要磁盘与文件系统需
《《android教程底层》PPT课件》由会员小****分享,可在线阅读,更多相关《《android教程底层》PPT课件》请在金锄头文库上搜索。
2023-11-20 52页
2023-09-09 54页
2023-09-09 98页
2023-09-09 101页
2023-09-09 95页
2023-09-09 127页
2023-09-09 59页
2023-09-09 50页
2023-09-09 139页
2023-09-09 131页