Google 在 Android 文档里的《What is Android》章节中,明确提出:
The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
《深入 Java 虚拟机》一书的读者应该清楚,广义的 Java 概念其实包含了 Java Programming Language、Java API、Java Runtime Environment 等。相较之下,Android 的 Java 的概念就非常狭隘了,上面的表述只是说 Android 使用 Java 编程语言,遵从其语法而已。同理,Dalvik virtual machine 和通常的 JVM 也就有着诸多差异,由于对 Java Virtual Machine Specification 了解不多,这里不进行具体的比较。
[ Read More » ]
March 30th, 2010 in
Software | tags:
Android |
No Comments
上文抛出了一个疑问:UI 线程是在哪里绑定 Looper 呢?欲解此题,仍旧从 Android 源码着手,但是 Android 的代码量是以 GB 为单位来计算的,若是一个一个来看,只见树木不见森林,未必能理出个头绪。
不妨通过 Eclipse 这一工具,设置 breakpoint,进入 debug,看一看执行流程。新建一 Android Project,创建简单的 Activity 类,在 onCreate 方法中设置断点,应用进入 debug,在断点处暂停。
[ Read More » ]
March 10th, 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()
[ Read More » ]
March 2nd, 2010 in
Software | tags:
Android |
3
Comments
当 Palm 放出 Web OS 时,我自个琢磨:是不是 PC 软件的“泛Web化”浪潮也要席卷移动平台了?当传统的 PC OS 伴随着 Windows 一路升级,软件也从一个一个本地窗口浓缩到了浏览器里,从全球来看最能代表这种潮流的是 E-Mail 的 Web 收发,而从中国来看,WebQQ 的出现则代表了这一个潮流。
Tencent 推出 WebQQ 的好处正在彰显:客户端无需升级,免除未及时升级所带来的风险;无需再为某一特定 OS 开发,只要符合 HTML/JavaScript /CSS 标准,即可运行在所有 OS 上。而即将推出的 WebQQ Mini 则将QQ引入到移动平台中,只要系统中有浏览器,则即可使用 QQ。再也不会像以前那样,分别为 WM、Symbian、Linux、IPhone、 MTK 等开发本地应用。
[ Read More » ]
January 15th, 2010 in
Business | tags:
Android |
No Comments
MediaProvider 的实质是 Android 的 Core Applications 之一,和 Market 的 app 一样,并无神秘之处,其重要性就是提供了对 media 的操作,而刨根究底,这一操作正是通过同名类 MediaProvider 来实现的。
查阅该类源码,规模不小,再加以纠缠着内部类,第一眼很容易发懵,耐下性子整理出类图如下。正所谓“一个好汉三个帮”,单打独斗固然可以呈现出盖世英雄之势,但是若能团结众人,融合各方能力则能成就一番霸业。史书上的股市是这样,软件开发也如此,大到一个软件产品需要团队来开发,小到一个细微功能也是需要若干相关类来协同。此间厉害可以由类图一目了然。
[ Read More » ]
January 12th, 2010 in
Software | tags:
Android |
13
Comments