奔跑的肥猪

导航

2011年7月11日 #

IPC 调用示例

摘要: 这几天看了高焕堂关于高焕堂——Android框架底层结构知多少?http://www.android1.net/Topic.aspx?BoardID=11&TopicID=703看看人家写的东西和大陆这边的文章还是有一些差距。拿了高先生的代码自己编译了一下,有所收获。特将代码贴出。Android中一个app就是一个process,那么跨process如何通讯呢?答案是IPC,但是自己在模拟器上测试了了一下,感觉速度还是挺慢的。以下几点应该注意以下:1. 注册remote process,在androidmenifest.xml中测试远程服务: <service android:n 阅读全文

posted @ 2011-07-11 17:24 布兜兜 阅读(765) 评论(0) 推荐(0) 编辑

2011年7月8日 #

Stategy模式

摘要: 日常生活中我们会碰到很多选择,在代码中就表现为成堆的if/else,如果我们直接在if/else中改动逻辑,很有可能将好的逻辑就改坏了,在我们的项目中深受其害。其实我们可以将通过stategy模式解决这个问题。比如说我们去买碟,有三种碟片可以选择:美国最新大片,经典电影,儿童电影。不同的电影收费不一样,大片每张5元小于等于5张时按原价收费,大于5张打8折;经典电影每张4元,不打折;儿童电影一次5元,不限数量。当然你可以加一些if/else来完成这个功能需求,但是个人觉得stategy模式可以很优雅的解决这个问题。public abstract class DiskType { public a 阅读全文

posted @ 2011-07-08 15:22 布兜兜 阅读(636) 评论(0) 推荐(0) 编辑

Android 中Observer模式的使用

摘要: android实际上使用了大量的obverser 模式,最简单的就是onclicklistener,但是与一般的observer模式不同的是,view中定义了很多接口,如下所示: /** * Interface definition for a callback to be invoked when a touch event is * dispatched to this view. The callback will be invoked before the touch * event is given to the view. */ public interface OnTouchLi 阅读全文

posted @ 2011-07-08 15:01 布兜兜 阅读(2273) 评论(0) 推荐(0) 编辑

解析Observer 模式

摘要: Observer模式主要通过observer的注册,当subject有什么变化时通过注册的observer,但是经典的设计中将add detach放在subject中,个人觉得不是很好,因为注册和解绑和并不是和subject相关的行为,最好通过一个delegate将其放在一个class中来处理,因为找不到一个很好的例子,找到某人以前的例子改写了一下。再次表示感谢。public class HPStock extends Stock { public HPStock(String price, InvestorHandler handler) { super(price, handler); / 阅读全文

posted @ 2011-07-08 14:47 布兜兜 阅读(366) 评论(0) 推荐(0) 编辑

Template模式在Android中的使用

摘要: template模式主要是将不变化的方法放在父类中,再声明一个抽象方法,子类通过实现该抽象方法,达到封装变化的作用.其实android也大量的使用template模式,比如view:、下面用代码示例:public class TemplateActivity extends Activity implements OnClickListener ,OnFocusChangeListener{ public static final String TITLE = "title"; @Override public void setTitle(int titleId) { su 阅读全文

posted @ 2011-07-08 14:11 布兜兜 阅读(515) 评论(0) 推荐(0) 编辑

StartActivity的内部代码实现原理

摘要: [在此处输入文章标题]最近研究Android,把StartActiviy的流程研究了一下,特结合代码与大家分享:1.首先调用Activity的startActivity,-1表示target Activity finish的时候不通知originalActivitypublicvoid startActivity(Intent intent) { startActivityForResult(intent, -1); }2 . 调用Activityd的startActivityForResult方法,Instrumentationclass里面有一个ActivityMonitor的内部类,用来 阅读全文

posted @ 2011-07-08 13:10 布兜兜 阅读(2239) 评论(0) 推荐(0) 编辑