然而,软件平台是如此深刻的影响到易用性、扩展能力、第三方软件以及后续支持,因此分析二者的区别便可以就 Android 用户与 iPhone 用户在电话寿命周期中所能拥有的操作体验上得到许多启迪。这类似于 Windows 与 Mac OS X 之间的对比,而不是比较特定的 Windows PC 与麦金塔的功能。
不同于诺基亚 N900 运行 Maemo Linux 这样的桌面 Linux PC 软件(构建于 X11 / X Windows System 以及窗口管理器如 KDE 和 GNOME),Android 提供了一个修改过的 Java 虚拟机,在许多方面类似于黑莓操作系统以及可以运行 Java ME 的 Symbian 机。谷歌修改了 Android 的 Java 字节码解释器(Dalvik)以逃避向 Sun 购买官方 JVM 的支付费用。这使得谷歌能够免费提供 Android,Sun 也无法干涉。这也有效的使 Android 成为一个 Java 平台,而不是 Linux 平台。
现有的 Jave ME 软件很容易就能移植到 Android,这是一个优势,原因不仅是使得熟悉 Java 编程的开发者更容易移植第三方 Android 软件,也迫使开发者做些许改动将程序进行移植而不是原封不动的使用旧有 Java ME 程序。Java ME 程序大多简单低质,兼容性也不好。Java ME 与 Flash Lite 分庭抗礼,二者虽然被手机制造商广泛采用,但 Flash Lite 也如同 Java ME,没有许多高质量的软件。
Sun 的移动 Java 平台号称「一次写就,随处运行」,但实际表现却差强人意。黑莓与 Symbian 用户希望的是针对系统优化过的程序,而不是能够在任何型号上运行的通用程序。
Java ME「随处运行」的前提是难以达成的,原因是不同的电话(即使是来自同一个厂家)部署 Java 虚拟机的方式各有不同,结果是每一款软件都要针对新机型进行测试和优化。这便是为何 Sun 的 Java ME 平台尽管号称「寰宇最强之移动软件平台」,但终究没有获得成功的原因。
谷歌有意的弃置与 Java ME 的兼容性,转而将 Delvik 推举为新的开发平台,使之充分发挥开发者的经验,这样一来也阻止了 Android 程序在黑莓与 Symbian 手机上运行。Android 对 Java 技术单一化、标准化的部署会做到广泛授权的 Java ME 从未完成的事:建立一个真正的软件市场。
其他公司开始模仿 MS-DOS,新的 DOS PC 市场始见雏形,也使得硬件商能够捆绑任何版本的 DOS,用户们便能在机子上运行任意的 DOS 软件。然而,微软接下来介入其中,最终通过 Windows 95 消灭了所有 MS-DOS 的竞争者,将 PC 软件平台牢牢的控制在手下。
与此不同的是,谷歌表示允许制造商随意使用 Android。手机厂商,甚至是运行商都可以在 Dalvik 字节码解释器的基础上定制自己的版本。这很像80 年代后期 DOS 界群雄混战的状态,与 Windows 世界过往 15 年的历程显然不同。
这是很重要的差异,缘由是专家们常将 Android 与 Windows 互相比较。尽管谷歌在运作新平台与借此盈利方面与微软有着许多的不同。
平台体系:iPhone
苹果的做法则完全不同,不在 Java ME 上作文章,而是将 iPhone 运行在缩减后的 Mac OS X Cocoa 开发环境下。依靠 Mac 开发者而不是 Java ME 程序员。
虽然仍可以把 Java 代码移植到 iPhone 上,但由于苹果只支持 Objective-C/C 所以需要更多的转换工作。苹果无意使 Mac 应用简单的转换到 iPhone 上,由于 iPhone 与 Mac 开发环境的相似,也能将开发者的目光更多的转移到 Mac 之上。iPhone 的销量目前已是 Mac 的两倍,品牌认知度也比 Mac 更高。
开发环境双方未分高下,开发工具也类似,只是 Android 对开源与 Java 开发者来说更为熟悉,而苹果的则同自家的桌面开发工具非常相似。苹果在此略有优势,因为早于 Android 发布一年半之前就开始部署,而且 Mac OS X 十年来也一直在改进,而谷歌适才进入平台开发市场。
然而 Android 团队与谷歌协力工作的时间同苹果开发 iPhone 类似,大概都是从 2005 年开始。在收购之前,Android 项目自 2003 年开始,并大量使用始于 2000 年 Danger 之上的操作系统技术,同 Mac OS X 的开发时间类似。因此在许多方面,Android 同 iPhone 是同时代的,而 Symbian 、黑莓 OS 和 Windows Mobile 的核心系统都起源于 90 年代中期,目的仅是作为单纯的 PDA 或传呼机操作系统。