孟岩:Android 由Linux+Java 构成。手机操作系统用Linux 我能理解, 用Java 也是情理之中。可是Android 不是把现有的成熟的Java 拿来直接用,而是从头开始重新实现了一个Java,从虚拟机到相当多的Java 类库。这不是重新发明轮子吗?有这个必要吗?

Andy :对我来说,“Java”这个词意味着四种东西:一种编程语言,一种虚拟机,一个类库,和一个应用程序框架。我们的确重新开发了虚拟机,这是因为要克服现有手机JVM的一些固有缺陷,比如启动时间过长,功能受限。你知道,Java ME为了保证“一次开发,到处运行”,就不得不迁就那些配置非常低端的手机设备,结果导致其功能十分有限。而你看看iPhone之所以这么酷,就是因为它完全不考虑要去兼容什么过时的设备,iPhone的配置完全不亚于一台五年前的PC。我们在设计之初就决定,甩掉不必要的历史包袱,对Android的硬件配置作出一定的要求,从而使得我们可以在比较高的水平上重新设计和优化JVM。此外,我们的确完全重新开发了一个应用程序框架,称之为Android应用框架。这是因为我们对于如何组织手机应用程序有全新的、特别的想法,现有的Java ME完全不能满足我们的需要,所以重新开发一个,这并没有什么大不了的。

孟岩:什么全新的、特别孟岩:什么全新的、特别的想法,能透露一下吗?

Andy :我们希望支持手机应用程序的mash-up。“Mash-up”这个词是从Web 2.0 里偷过来的,你应该知道什么是Web 2.0 mash-up 吧?

孟岩:这我当然知道。比如我从一个网页上抓下一块XHTML 数据,再从另一个Web Services 那里获得一些XML 数据,我就可以把这两块数据mash-up 起来,形成新的XML 数据,并且这一数据可以在此被别人mash-up。不过Web 2.0 中的mash-up 是基于XML数据的,难道Android 中的mash-up 也需要借助XML 来完成吗?

Andy :好问题。在传统的手机开发中,应用程序要么调用操作系统服务,要么通过程序库获得较高级的服务。如果操作系统和程序库都没有提供某项功能,应用程序开发者只好自己实现。在Web上,一个Web应用不仅可以使用本机上由操作系统提供的服务,还可以以你刚才所说的方式使用其他Web 应用所提供的服务。这样一来,Web 应用程序不仅可以依赖操作系统服务,而且可以彼此相互提供服务。这就是我们想在Android中达成的目标,也是为什么我们要重新开发一个应用框架的根本原因。

更多请参考: http://www.moandroid.com/?p=1065

更多相关文章

  1. 【Android(安卓)开发】:数据存储之 SQLite 数据库操作(三)
  2. Android之Adapter用法总结
  3. Sqlite在Android中的简单使用
  4. Android(安卓)ANR 分析(转载)
  5. Android经典面试题大全[陆续完善中......]
  6. 可靠的功能测试--Espresso和Dagger2
  7. Android(安卓)应用程序窗体显示状态操作(requestWindowFeature()
  8. Android(安卓)联网取数据
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. android定位个人当前位置
  2. 安卓隐藏标题栏状态栏 ,实现全屏效果
  3. Android程序意外终止问题
  4. Android核心分析之二十一Android应用框架
  5. Android/iOS 和js的交互的兼容性写法
  6. Android Dialog背景全透明无边框 Theme S
  7. Android SDK各版本源码
  8. bugly镜像地址,可以下载android sdk的插件
  9. android 菜单实例
  10. android机器人学习网