摘要:
9.2 Dalvik虚拟机相关的可执行程序在Android源码中,大家会发现好几处和Dalvik这个概念相关的可执行程序,正确区分这些可执行程序的区别将有助于理解Framework内部结构。这些可执行程序的名称和源码路径如表9-1所示。下面将分别介绍这些可执行程序的作用。9.2.1 dalvikvm当Java程序运行时,都是由一个虚拟机来解释Java的字节码,它将这些字节码翻译成本地CPU的指令码,然后执行。对Java程序而言,负责解释并执行的就是一个虚拟机,而对于Linux而言,这个进程只是一个普通的进程,它与一个只有一行代码的HelloWorld可执行程序无本质区别。所以... 阅读全文
摘要:
何时使用自定义HTTP 方法问题描述您想知道使用自定义HTTP方法的影响。解决方案避免使用非标准的自定义HTTP方法,因为引入新方法后,就不能依赖那些只了解标准HTTP 方法的现有软件了。您应该设计一个可以抽象此类操作的控制器(详见2.6 节)资源,并使用HTTP 的POST方法。问题讨论扩展HTTP 方法最重要的好处是,它可以让服务器为扩展方法定义清晰的语义并保持接口一致。但是,除非得到广泛支持,否则扩展方法将会降低互操作性。例如,WebDAV 将MOVE 的语义定义为“逻辑上与复制一致,接着是一致性维护处理,最后进行源文件的删除,所有这三个动作是以原子操作的形式来执行的。”任何客户端都可以 阅读全文
摘要:
如何维护应用程序状态当您在阅读关于REST 的文章时,经常得到这样的建议——在客户端保存应用程序状态。但什么是“应用程序状态”?应当如何在客户端保存这些状态?本节描述了保存应用程序状态的最佳实践。问题描述您想知道如何管理RESTfulWeb 服务的状态,这样就不需要依赖于服务器内存中的会话了。解决方案将应用程序状态编码到URI里,并通过链接在表述中包含这些URI(见第5 章)。让客户端使用这些URI 与资源进行交互。如果状态过大,或出于安全或隐私考虑不能在网络中传输,则可以在持久化存储(如数据库或文件系统)中存储应用程序状态,并将其状态的引用编码在URI 中。问题讨论考虑一个简化的汽车保险应用 阅读全文
摘要:
--何时需要权衡可见性本节讨论了一些可能需要对可见性做出权衡的常见场合。问题描述您想知道有哪些常见场合可能需要让请求和响应降低对协议的可见性。解决方案当有多个共享数据的资源,或一个操作总是要修改多个资源时,请考虑降低可见性,以得到更好的信息抽象、更松散的耦合程度、更好的网络效率、更好的资源粒度,或者纯粹为了方便客户端使用。问题讨论可见性经常与其他架构要求相冲突,如抽象、松耦合、效率和信息粒度等。例如,考虑一个“人”资源与一个相关的“地址”资源,任何客户端都可以提交一个GET请求得到这两个资源的表述,但为了方便客户端,服务器端可能会在“人”的资源表述中包含“地址”资源,就像下面这样:# 获取“人 阅读全文
摘要:
如何保持交互的可见性作为应用协议,HTTP的设计目标是在客户端和服务器之间保持对库、服务器、代理、缓存和其他工具的可见性。可见性是 HTTP的一个核心特征。按 Roy Fielding的定义(详见附录 A),可见性是“一个组件能够对其他两个组件之间的交互进行监视或仲裁的能力。”当协议是可见的时,缓存、代理、防火墙等组件就可以监视甚至参与其中。问题描述您想知道可见性的含义,以及如何保持 HTTP请求和响应的可见性。解决方案一旦您识别并设计资源,就可以使用 GET方法获取资源的表述,使用 PUT方法更新资源,使用 DELETE方法删除资源,以及使用 POST方法执行各种不安全和非幂等的操作。可以添 阅读全文
摘要:
--RESTful WebServices Cookbook中文版[美]Subbu Allamaraju(沙布·阿拉马拉尤)著丁雪丰译ISBN978-7-121-14390-8 2011年9月出版定价:59.00元16开320页内 容 简 介本书是《RESTful Web Services Cookbook》的中文翻译版。本书从实践出发,涉及设计RESTful Web服务的各个方面,通过问题描述、解决方案、问题讨论的形式在14个章节中详细讨论了统一接口、资源、表述、URI、链接、请求、缓存、安全等诸多内容。无论读者是否设计过RESTful Web服务,具体使用哪种语言,都能在阅读过程 阅读全文
摘要:
AmS中的一些重要调度相关变量要了解AmS调度、管理系统中的Activity的细节,必须了解AmS中定义的重要内部变量。要一下了解这些变量的使用时机并非易事,因此,本节仅简要说明一些变量的作用,至于具体使用的时机,要结合调度的具体过程了解。1.系统常量 static final int MAX_ACTIVITIES = 20;系统只能有一个Activity处于执行状态,对于非执行状态的Activity,AmS会在内部暂时缓存起来,而不是立即杀死,但如果后台的Activity数目超过该常量,则会强制杀死一些优先级较低的Activity,所谓的“优先级高低”的规则见第10.2节。 static 阅读全文
摘要:
--Android Framework内核之旅6.1 Framework框架Framework定义了客户端组件和服务端组件功能及接口。以下阐述中,“应用程序”一般是指“.apk”程序。框架中包含三个主要部分,分别为服务端、客户端和Linux驱动。6.1.1服务端服务端主要包含两个重要类,分别是WindowManagerService(WmS)和ActivityManagerService(AmS)。WmS的作用是为所有的应用程序分配窗口,并管理这些窗口。包括分配窗口的大小,调节各窗口的叠放次序,隐藏或者显示窗口。AmS的作用是管理所有应用程序中的Activity。除此之外,在服务端还包括两个消 阅读全文
摘要:
--Android内核剖析柯元旦编著ISBN978-7-121-14398-4 2011年9月出版定价:79.90元16开616页内容简介:本书内容分别从基础、内核、系统、编译以及硬件驱动几个方面对Android内核相关知识进行深入剖析,详细分析了Android内核的内部机制,包括窗口管理系统、Activity管理系统、输入法框架、编译系统等,为Android内核定制以及高级应用程序开发提供技术参考。本书适合于所有Android相关的工程师以及产品经理。前 言“内核剖析”乍一听起来挺吓唬人的,但这个词语存在两个问题,第一个是什么才能称为内核?另一个是“谁”才有能力或者有机会写一本“内核剖析”的 阅读全文
摘要:
莫陷入点击和评论陷阱前不久,我的一个朋友新书发售,因为是第一本书,所以很兴奋,也有不少疑惑向我咨询。销售一周后,我们闲谈到他这本书,其书籍的目标受众是非常有购买力和针对性的,但由于种种原因,他很难及时了解自己这本书在读者中的口碑好不好,毕竟是第一本书,难免有点忐忑不安。当他问起我此事之时,我便仔细地帮他做了一番参谋,也共同发现了一些“笑果”,即来自其他方面的“自造”影响力。点开他这本书在卓越和当当网上的销售页面,一个很有趣的现象摆在了面前,卓越网上不过上架三天,便已显示销售一空,而在所有书籍的即时销售排行榜上杀入前两百名,俨然是极好的成绩,让同样也出过书的我佩服再三;而奇怪的是,在当当上则是另 阅读全文