`

《Android系统源代码情景分析》试读

 
阅读更多

    Android系统把对硬件的支持划分为两层来实现属于取巧,它借用了成熟的Linux系统的内核,但又不希望因为GPL协议而将设备开发商逼走,所以采用了这种间接的方式绕过了GPL协议,表面上它完全遵循GPL,但它开了个后门,让用户空间的程序具有了内核空间的权限。

    Linux会不会为此投机取巧的行为火冒三丈呢?我觉得应该相反,这种方式兼顾了开放和利益,团结了大多数可以团结的力量,所以在如此短的时间内以星火燎原之势为大多数厂商、开发商所接受,让用户可以尽快享受智能手机带来的乐趣,这是纯粹的GPL方式不能做到的,而这是个人PC领域微软采用的方式,Google会成为移动领域的微软吗?

    虽然前有苹果iOS,后有微软Windows Phone,但我更看好Android的前景。它不仅仅是一个生机勃勃的系统,而是一个生态圈,有着全球各大手机和平板电脑厂商以及它们背后的产业链的倾向和支持。没办法,苹果太封闭也太让人眼红了,大家都围在苹果周围,挥动着Android这把锄头,指望能挖掉苹果的利润呢,苹果好汉难敌群狼啊。在苹果与三星、HTC等打来打去的时候,Android在迅速成熟。得道多助,失道寡助,Android的开源方式和对硬件厂商的保护将使得它必定能成为全球各大手机、平板电脑厂商和独立软件开发商的首选目标,这使得它的发展速度超越其它对手,相信无论硬件性能指标和优秀应用的数量都将很快超过其它封闭对手,在这种情况下,用户还会只选贵的,不选对的吗?

    这本书从书名和目录上看采用的是情景应用介绍的方式,试读章节也体现了这一点。作者颇费心思的选择了一个虚拟硬件设备的范例进行讲解,手把手的教你实现了一个从虚拟硬件设备驱动、硬件抽象层模块、硬件访问服务到Android应用程序调用服务的全过程,特别是虚拟硬件设备驱动给出了编译和验证的细节,这对于初学者来说很重要;在硬件抽象层模块的编写过程中介绍了相关的Android源码的内容,分析了它的加载过程,给出了权限问题的处理方法;在硬件访问服务编程中介绍了项目文件结构和重要说明(比如句柄值)。整个过程说明的非常详细,可以作为读者重现整个开发过程的操作指南。

    市面上其它介绍Android开发的书,通常只介绍应用程序部分的开发,只涉及到如何获取硬件事件进行处理,而试读部分的内容则深入到系统核心,把握住了Android架构的关键部分,内容复杂了很多,但同时读者的收获也会大很多。

    在试读提供的全过程开发讲解之后,按目录编排,分别介绍了Android提供的专用驱动和应用程序框架,这些是实际开发过程中必不可少的,有了前面的铺垫,就很清楚整体开发的架构以及这些现成的功能用于哪个层次的开发,甚至可以自己去分析它们是如何实现的。整本书的内容讲述从整体到部分,层次清晰,非常适合用来学习理解Android的精髓。

    这种方式和其它的源码分析的书--比如《莱昂氏UNIX源代码分析》、《Windows内核情景分析》等的写作方式是完全不同的。如果说《莱昂氏UNIX源代码分析》 是源码文件的静态分析,《Windows内核情景分析》是源码的功能分析的话,这本书更偏向于核心应用开发的相关源码介绍。好处是容易阅读和动手操作,不足是不能从操作系统设计的角度展现Android的设计之美和内在细节,很多源码都躲在场景分析能接触到的源码的背后,如果能提供一份Android源码的主要文件的概要介绍就最好了。个人觉得如果书名叫《Android核心编程》可能更名副其实。
分享到:
评论

相关推荐

    《深入理解Android:卷I》试读本

    第5章讲解了Android系统中常用的类,包括sp、wp、RefBase、Thread等类,同步类,以及Java中的Handler类和Looper类,掌握这些类的知识后方能在后续的代码分析中做到游刃有余;第6章以MediaServer为切入点,对Android...

    Android移动性能实战试读文章

    文章可能涵盖代码审查、遵循Kotlin或Java的最佳实践、使用静态代码分析工具进行优化等。 7. **性能监控**:开发者需要持续监控应用性能。试读文章可能提到了使用Android Studio的性能分析工具,如Systrace、Trace...

    玩转我的Android手机_目录_试读

    资源名称:玩转我的Android手机_目录_试读书本内容简介: 《玩转我的Android手机》内容简介:Android作为移动智能操作系统的杰出代表,具有无比强大的功能可扩展性。如何快速上手Android手机,让其为生活增添绚丽...

    Google android SDK开发范例大全试读章节

    1. **Android Studio介绍**:作为官方推荐的集成开发环境(IDE),Android Studio提供了强大的代码编辑、构建工具、性能分析以及版本控制集成。试读章节可能会讲解如何安装和配置Android Studio,以及创建第一个...

    驱动开发技术详解源代码

    通过查看和分析这些源代码,我们可以学习到如何初始化设备,处理中断,管理I/O请求,以及如何与操作系统进行通信。驱动开发需要掌握一些关键概念,例如设备对象、IRP(I/O请求包)、设备驱动接口、中断服务例程等。 ...

    玩到极致Android手机让你不一样(目录试读)

    资源名称:玩到极致 Android手机让你不一样(目录试读)书本内容简介: 《玩到极致Android手机让你不一样》主要内容简介:对于刚入手Android(安卓)手机的人来说,这款界面时尚、功能强大的智能手机操作系统,又...

    《Android 应用开发全程实录》新书章节试读

    在Android系统中,Activity是应用程序的基本单元,它负责处理用户的交互并展示UI。本章将深入讲解如何创建、管理和控制Activity的生命周期,这对于理解和优化应用性能至关重要。此外,还会详细介绍布局管理器,它是...

    HTML5+CSS3+JS入门教程 + 源代码 pdf

    这篇教程结合源代码,旨在帮助初学者快速入门这三门语言,并掌握实际开发技能。 HTML5(HyperText Markup Language 5)是最新版本的HTML标准,它在原有基础上增加了许多新的元素和属性,提高了对多媒体的支持,简化...

    深入理解Android内核设计思想(第2版)(上下册)-试读版.pdf

    深入理解Android内核设计思想(第2版)(上下册)-试读版.pdf

    asp图书管理系统设计与实现(源代码+LW+开题报告+答辩PPT).zip

    这个系统不仅提供了完整的源代码,还包括相关的文献资料(LW)、开题报告以及答辩PPT,为学习者提供了一套完整的毕业设计或课业设计案例。 ASP(Active Server Pages)是微软开发的一种服务器端脚本环境,常用于...

    Android渗透测试入门教程v2017.2试读陆小马功钟浩.pdf

    KaliLinux操作系统是业界著名...以上内容综合了安卓系统渗透测试的基本概念、操作系统的安装配置、Android应用的反编译审计方法、网络流量分析技巧以及安卓取证技术,为安卓渗透测试的初学者提供了一条清晰的学习路径。

    系统架构设计师论文《论分布式存储系统架构设计》精选试读

    分布式存储系统(Distributed Storage System)通常将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大...

    计算机毕业设计&基于JSP网上购物系统&网上书店&学生排课选课系统设计(包含源代码+论文)共三套资料

    3. 电子书或试读章节:提供部分书籍的电子版预览,或者免费试读章节,提升用户体验。 4. 会员制度:设立会员等级,根据消费金额或活跃度给予不同优惠。 **基于JSP的学生排课选课系统** 学生排课选课系统是高校...

    《操作系统高分笔记》试读版.pdf

    《操作系统高分笔记》试读版详细介绍了操作系统的基础知识,涵盖了概念、特征、功能、发展历程和分类,以及操作系统的运行环境。本笔记主要针对操作系统的重要考点进行解析,适合备考相关考试或者对操作系统感兴趣的...

    Android渗透测试入门教程

    1. **应用静态分析**:这是渗透测试的第一步,通常涉及反编译APK文件,查看源代码、资源文件以及签名信息,找出潜在的安全问题,如硬编码密钥、敏感数据明文存储等。 2. **动态分析**:在模拟或真实的设备上运行...

    留级跟班试读申请书参考精选.doc

    文档中的内容涉及的是学生在遇到学业困难,如挂科过多,需要进行留级或试读时,需要提交的申请书样本。留级和试读是高等教育中对学生学业表现不佳的一种处理方式,通常根据学校的学籍管理制度执行。以下是相关知识点...

    《操作系统高分笔记》试读版[归纳].pdf

    "操作系统高分笔记" 操作系统是计算机系统中的一个系统软件,其管理和控制计算机系统中的资源。从系统观点看,操作系统是计算机系统中的一个系统软件;从用户的观点看,操作系统是用户与计算机之间的接口;从软件...

    Kali Linux系统命令使用手册v2.0试读陆小马功钟浩.pdf

    Kali Linux系统命令使用手册v2.0试读陆小马功钟浩.pdf

Global site tag (gtag.js) - Google Analytics