上文抛出了一个疑问:UI 线程是在哪里绑定 Looper 呢?欲解此题,仍旧从 Android 源码着手,但是 Android 的代码量是以 GB 为单位来计算的,若是一个一个来看,只见树木不见森林,未必能理出个头绪。
不妨通过 Eclipse 这一工具,设置 breakpoint,进入 debug,看一看执行流程。新建一 Android Project,创建简单的 Activity 类,在 onCreate 方法中设置断点,应用进入 debug,在断点处暂停。
[ Read More » ]
10 3 月, 2010 in
Software | tags:
Android |
1 Comment
Toast 和 Looper,一个属于 android.widget,一个属于 android.os,两个貌似联系不怎么紧密的类,却通过下面这个异常联系到了一起:
E/AndroidRuntime( 1819): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() |
E/AndroidRuntime( 1819): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
[ Read More » ]
2 3 月, 2010 in
Software | tags:
Android |
3 Comments
盘点过去的一年,我满意的事里包含这么一件,那就是认真阅读了两本书:《生活中的经济学》和《富爸爸 穷爸爸》。从前者中,我体会到了生活所蕴含的经济原理,这些原理帮助我理性看待经济现象,并分析其中的原因和趋势;从后者中,我见识了两种不同的投资理念和人生态度,以及它们各自的人生轨迹,帮助了我理清自己的位置和方向。在庆幸自己没有荒废学习之余,给自己规划下下一个个年度的读书计划。
2010年度读书有三个主题:投资理财、软件设计和摄影技术。过去一年,受到《生活中的经济学》和《富爸爸 穷爸爸》影响,自己开始了投资之旅,而第一步即是股票投资,恰逢中国股市09年大涨80%,初尝投资的甜头,不料10年折头直下2900点,损失不少,深感自己此前的操作实质上是赌博。
[ Read More » ]
某日,一同事向我询问 Java 5 中为何要引入 Static Import,一时答不上来,自责平日里“学而不思”,Java 5 的发布已经是六年前(2004年9月30日)的事情了,到现在也只是“知其然”,而不“知其所以然”,之后遂决定对这一问题做一番探究。
此番探究从 SUN 的官方解释入手,从 Static Import 一文中,可以明白引入的目的在于解决 Constant Interface Antipattern。那么什么是 Constant Interface Antiparttern ? 这要从访问 static member 开始说起,如下面代码所示,在 member 之前需要有其对应的类名。
[ Read More » ]
5 2 月, 2010 in
Software | tags:
Java |
No Comments
一段时间以来,我将目光投在了移动互联网上,也因此关注这个领域的走势,时常参考各路媒体对移动互联网的解读,自2007年1月9日 IPhone 横空出世,到2009年1月7日信产部发放3G牌照,再到2010年1月13日决定推进“三网合一”,各路说法和预测汗牛充栋,让人目不暇接。
1月25日出版的《第一财经周刊》(CBNWeekly)在“报告”(Report)栏目中,刊登了一篇题为《移动互联网时代,你out了吗?》的文章,分析有理有据,脉络清晰,弥补了此前我对移动互联网的偏颇理解。
[ Read More » ]