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
3月15日的《第一财经周刊》(2010年第9期,总第100期)在“Report | 报告”栏目中,刊登了一篇题为《请为网络内容埋单》(可在这里在线阅读)的文章,这篇文章基于 Nielsen (尼尔森)的一份报告:变化的模式 — 关于付费网络内容的全球观点,并进行了分析提炼而成。
文章从新闻集团讲推行付费阅读一事开始,首先论及了地球人对免费的热衷程度。在免费和收费这个二选一之前,全球平均有85%的人选择了免费,– 不要钱的东西自然是人见人爱。其中拉美人最为贪心,91%的人选择免费,紧跟之后的是北美和欧洲,而亚太则居最末。– 这“一分价钱一分货”、“便宜没好货”的观念看来已经是在亚太很有市场占有率。
[ Read More » ]
March 21st, 2010 in
Business |
No Comments
对 Java Class Loading 的认知,从OOP (Object Oriented Programming) 界的一句谚语开始,那就是:Everything is Object。以现实举例,张三是对象(object),李四也是对象(object),对这些个体加以抽象,形成了类(class)的概念。这类和对象的区别在于,前者是抽象的概念,不论是时间,还是空间均不存在这么一个东西;后者是具体的物件,可摸得着、看得见。
在 Java 中使用关键字 class 来定义一个类,经过编译之后,便会生成一个后缀为 .class 的文件。在 Java 程序运行时,JVM 需要载入这些 .class 文件到内存中,已构造成对应的 类(class)。而这载入的过程正是由 java.lang.ClassLoader 的实例来完成,根据 JVM 的策略,不同的类(class)被组织进不同的 jar 文件,进而按照重要级别划分成不同的等级,由不同的 class loader 来负责载入。
[ Read More » ]
March 19th, 2010 in
Software | tags:
Java |
No Comments
小时候被教导:读万卷书,行万里路,心里就不免暗自忖度:书里有美人、别墅和钞票,这路上可有什么?虽有疑问,却又不能发问,伴着这疑问,从黄河来到长江,再到珠江。这万卷书是读不完了,不过万里路却自信远远超出。
想来万里路上,没艳遇,也没劫道,徒添了些吹嘘的谈资,在那些平淡的旅途琐事上添油加醋,平添些奇人怪事,吸引好奇者的耳朵。罢了,顺便嘲笑下那些只知道广东简称粤的听者,一朋友L君屡次被我嘲弄,–这可怨不得我,只怪他逢广东之外的地方统统称作北方,而又从没到过被为北方的地方。
[ Read More » ]
March 18th, 2010 in
Thinking |
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