- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 原汁原味设计模式-访问者Visitor
原创文章,转载请标明来源。 访问者模式是一个比较简单的模式 背景介绍 很多书或网上文章都会说访问者模式是最复杂的模式之一,在我看来有失偏颇。其实理解后它还是比较简单的。 GOF原文中举了如下的例子:对于一个编译器,需要对“变量赋值”(如 String a = “123”)和“变量访问”(如a.charAt(0))这两种操作做同样的一些处理,比如类型检查、代码格式化、自动完成等。...
2018-05-22 11:47:30
263
原创 从Java层理解Android Binder(二):Service Manager
上一节我们学习了AIDL中涉及到的Binder相关的类,如下图:接下来讲解Service Manager。Service Manager是一个笼统的概念,整体来说它是Binder Driver之上的"DNS"功能,用于Client方便的获得其他服务,比如Activity Manager Service。ServiceManager和AcitivtyManagerService从层次上讲是平级的,都...
2018-05-15 16:45:57
591
原创 从Java层理解Android Binder(一):AIDL
Android Binder是个很复杂的机制,底层是Binder Driver注册了一个模拟硬件为/dev/binder,通过内存复制的方式实现了进程间数据共享,并在这套机制上提供了ServiceManager等实现。本文不去解读C++的那些实现,而是从Java层分析理解Binder的主要类结构,目的是使读者理解Binder涉及到的类的作用。本文首先从AIDL涉及到的类讲起,然后参照AIDL来说明...
2018-05-15 13:05:32
527
原创 JAVA 单例双重检查(double check)为什么不好用
JAVA 单例双重检查(double check)为什么不好用 在阅读之前,请先了解下线程并发涉及到的三个概念:原子性、可见性、有序性,可以看下这篇文章:http://www.cnblogs.com/dolphin0520/p/3920373.html 我假设你已经看过几篇double check的文章,但还是一知半解。 我们先看这种双重检查,不加volatile public sta
2016-04-01 17:28:06
10607
2
原创 Android游戏开发中备忘录模式的应用
本文研究如何在Android游戏开发中使用备忘录模式进行游戏存档,包含介绍备忘录模式,备忘录模式的实现、优化、拓展等。并会探讨备忘录模式巧妙的设计。 以飞行射击游戏类型为例,飞行射击游戏中,必不可少的一个角色是飞机。我们设计它有这几个状态:生命值、子弹类型、炸弹数目。另外它有三个方法:开始游戏、暂停游戏、恢复游戏。那么这个飞机类我们的初步设计如下: package
2016-02-15 14:43:59
828
1
原创 原汁原味设计模式-原型prototype
原创文章,转载请标明来源。 原型模式不等于克隆 背景介绍原型模式是被大多数人忽略的一个模式,一提到原型模式,大多数人的概念就是clone方法,其实这是不对的。clone只是原型模式实现过程中的一小部分,更重要的是原型模式的设计思想,以及应用场景。当前的设计模式书籍中,更多的强调了clone,强调了浅拷贝和深拷贝的区别,以及clone带来的性能优势,其实这个方向是错误的。原型模式其实是很有趣、很实
2016-02-15 14:41:42
463
原创 一次非常诡异的WebView js失效问题
最近遇到一个很诡异的webview问题,两个Activity a和b,里面都使用了webview。 如果单独用a,并不会有问题。但是如果是a->b->a这样的顺序,会导致a里webview的js都失效了。 也就是webview之间发生了互相影响。 问题非常诡异,因为他们是不同的webview对象,排查一天,采用了二分法定位问题代码,最终发现导致bug的代码如下: @Override
2015-11-24 17:17:10
3346
2
原创 Android/Java回调机制带来的内存回收问题
这几年在做安卓开发,不知为何,最近越来越流行方法回调的开发方式。 典型的场景是这样的: 我其实不太喜欢这种方式,一是可读性差,尤其是回调嵌套的时候、二是无法通过方法的返回值来控制流程,比如AsyncTask里就不方便用回调的形式。
2015-10-23 11:16:10
1493
原创 Win7+Cygwin+Hadoop1.0.3安装
捣鼓了两三天,参考了好多资料,终于在win7/Cygwin/Hadoop1.0.3下跑通了自带例子。注意事项如下: 一 安装Cygwin,注意要选中Net分类下的Openssh 二 在Cygwin下安装SSH,步骤如下: $ ssh-host-config *** Query: Overwrite existing /etc/ssh_config file? (yes/no) y...
2012-06-27 17:58:43
128
OPhone/Android使用API发送彩信
最近需要实现不调用intent,而是自行使用API发送彩信。在网上查了一阵,比如这个 http://www.linuxidc.com/Linux/2011-08/41609.htm 但是会出现超时等问题,后来调试了好久成功了,记录以备后查。 想要发送一条彩信的整个过程是这样的: 1 接入点要切换为CMWAP,使用CMNET或WIFI等是无法发送的。 2 要从APN中获得CMWAP接入...
2011-09-16 16:45:07
188
Android通过Apache的https转发访问tomcat
原创文章,转载请注明来源 上一篇文章http://anjxue.iteye.com/blog/1140275 讲解了Android怎么与tomcat建立基于ssl的https连接。 但在我们的生产环境中,为了数据安全,手机终端不能直接连tomcat,中间需要一台中转机,这台中转机(或叫前置机)只做数据转发的作用,不参与逻辑处理。 我们采用Apache Http Server来做中转...
2011-08-04 18:20:32
148
Android Tomcal SSL Https 单向篇
按网上的说明尝试了好久,转载请注明来源。 双向篇还未实现,先记录单向验证方式。 一 Android直接连接tomcat 这个实现比较简单,先建立一个工作目录为tomcat。打开命令行切换到该目录。如果是win7需要用管理员身份打开命令行。 1 生成服务器端私钥(or 公钥?) keytool -genkey -alias tomcat -keyalg RSA -keystore ...
2011-08-04 17:41:10
182
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人