0%

本文转载于简单理解Binder机制的原理

一、为什么要使用Binder

性能方面

在移动设备上(性能受限制的设备,比如要省电),广泛地使用跨进程通信对通信机制的性能有严格的要求,Binder相对出传统的Socket方式,更加高效。Binder数据拷贝只需要一次,而管道、消息队列、Socket都需要2次,共享内存方式一次内存拷贝都不需要,但实现方式又比较复杂。

阅读全文 »

在api26中,ActivityManagerNative类已经被弃用,同时代理类ActivityManagerProxy也被删除了。

Instrumentation类的execStartActivity方法如下,注意注释1处。

阅读全文 »

一、UI设计的灵活性要求

开发一个由两个Activity组成的列表明细类应用就可以了,一个activity负责管理记录列表,另一个负责管理记录明细界面,点击列表中某条记录会启动其明细activity实例,按后退键会销毁明细activity并返回到记录列表activity界面,想看记录,同样操作。理论上这样可行,但是如果应用需要更复杂的用户界面呈现及跳转,怎么办?

阅读全文 »

一、Android开发初体验

开发一个应用,名叫GeoQuiz,它能给出一道道地理知识问题,用户点击TRUE或FALSE来回答屏幕上的问题,GeoQuiz会及时给出反馈,应用界面如下图所示。

阅读全文 »

广播机制简介

Android中有灵活的广播机制,Android中的每个应用程序都可以对自己感兴趣的广播进行注册,这样应用就只会收到自己感兴趣的广播,广播可以是来自于系统的,也可以来自于其他应用程序。Android系统中分为标准广播和有序广播:

阅读全文 »

本章学习Android多线程技术,多线程更新UI,用Handler方式解决两个线程之间的通信,同时理解学习Handler的实现原理(Handler、Lopper、MesageQueue三者的关系),以及AsyncTask异步任务处理类,最后学习线程池的,多个异步任务时,合理利用线程池可以减少系统资源的使用,增加程序的流畅性。

阅读全文 »

代理模式(Proxy Pattern)也称为委托模式,是结构性模式的一种,它在日常开发中非常常用,实际上在日常生活中也非常常见,对于程序员来讲代理上网,叫同事帮忙买快餐也是代理模式,请律师处理纠纷也是代理模式,总之,它无处不在。

阅读全文 »

依赖倒置原则,英文Dependence Inversion Principle,缩写–DIP。它具体指代了一种特定的解耦形式,使得高层次的模块不依赖于低层次模块的实现细节,依赖模块被颠倒了。总结它的概念有如下几点:

  • 1,高层次模块不依赖于低层次模块,两者都应该依赖其抽象
  • 2,抽象不应该依赖细节
  • 3,细节应该依赖抽象
阅读全文 »