想开发 Android 分支?没门!

简介:

screenshot

最近,诺基亚的 Android 手机的消息越来越多,不管是代号“诺曼底”还是“Nokia X”,它引发人们的讨论。有人认为微软应该放弃 Windows Phone,就好像亚马逊(Amazon)所做的那样,发展出一个基于 Android 的独立分支。

英国卫报的查尔斯·亚瑟(Charles Arthur)是这个看法的赞同者。他认为 Windows Phone 丧失市场先机,现在已经很难追赶。

根据 Flurry 的 2013 年年中的报告,全球 iPhone 有 5 亿存量,Android 有 8 亿存量。根据 Paul Thurrott 的测量,截至 2013 年,Windows Phone 手机在全球有 5000 万的存量。显然,WP 与其它手机平台的差距依旧很大,尽管外面有新闻称“WP 手机在 24 个国家的销量超过 iPhone”。

亚瑟赞同约翰·格鲁伯(John Gruber)的观点,纳德拉必须为微软找到新的使命与愿景:“微软的服务,与全球每一部联网设备相连。下一个具备普遍意义的东西,不是在任何设备上运行,而是与每部设备沟通。”

基于这个观点,微软发展 Android 分支是有利的——这样子微软就不必花大量的心思说服用户从 Android 切换到 WP 平台,也不必为应用数量而头痛。而且,微软也可以像中国的 Android 厂商一样,用自己的应用和服务,换下 Android 里的 Google 应用与服务。

不过,到底微软能否顺利开发出 Android 的分支呢?ArsTechnica 的皮特·布莱特(Peter Bright)则反对这个观点。他的理由是,实际上 Android 没有想象中那么开放,Google 正在不断提高开发 Android 分支的难度。

结果是,即便微软真的去开发一个 Android 分支,也无法真正获得 Android 平台的优势:大量的用户,大量的开发者。这是为什么呢?因为,Android 实际上分为开源和不开源的两个部分,现在 Google 将越来越多的新特性往不开源的部分转移,而通过升级 API 等方式来迫使开发者使用更多 Android 不开源的部分。

布莱特解释,Android 从系统层面分为两套代码:

一个是 AOSP(Android Open Source Platform),它包括了 Linux 核心以及 Dalvik 虚拟机,一套基础的 UI。它们采用了 GPL 和 Apache 等开源许可;

另一个则是 GMS(Google Mobile Service),它包括 Google Play Service 和 Play Store 套装应用。前者提供了一系列的 API,包括 Google 地图、应用内付费等等。而 GMS 是不开源的。

而现在,Google 将精力投入到 GMS 上,而不是 AOSP 上,以访问地理位置的 API 接口为例,GMS 的版本要比 AOSP 的更新更好用。实际上,AOSP 的地理位置 API 自 Android 1.5 之后,就没有太大的变化了。现在,与其说是 Android 应用,还不如说是 GMS 应用。

布莱特认为,如果微软真的要对 Android 做点什么,有以下四种方式:

采用 AOSP 以及 GMS 两套代码。这个方案相当于 Google 拥有代码控制权,对微软不是好的选项;

采用 AOSP,提供一些定制的部分。微软可以提供自己的应用与服务。这个分支可以兼容部分 Android 应用,但兼容性如何却不可知;

采用 AOSP,提供自己开发的 GMS 的替代品。这个方案提供最高的兼容性,但是微软需要付出大量的精力来开发 GMS 的替代品。而这实际上将平台的领导权让给 Google;

采用 AOSP,但应用层方面完全采用自己开发的部分。不过,对于 Android 来说,Linux 核心实际上并非是最重要的部分,而且微软已经开发了出 Windows Phone。

那么,当微软真的独立开发 Andorid 分支,但不采用 GMS 的话,就无法适配许多调用了 GMS API 接口的应用。当然,微软可以开发出取代 GMS 的东西,就好像亚马逊(Amazon)所开发的 Fire OS 一样。

但 Google 依然能够通过提高开发的步调,不断甩开竞争对手的距离,现在 Fire OS 的处境正是如此。这么做不光无法保证 Android 应用的兼容性,还可能因为 API 接口的关系,无法提供完整的应用体验。

最糟糕的是,不管如何,微软的控制权、领导权都会被削弱。

题图来自 wikimedia

文章转载自 开源中国社区 [http://www.oschina.net]

相关文章
|
5天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
28天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
14 0
|
2天前
|
数据库 Android开发 开发者
安卓应用开发:构建高效用户界面的策略
【4月更文挑战第24天】 在竞争激烈的移动应用市场中,一个流畅且响应迅速的用户界面(UI)是吸引和保留用户的关键。针对安卓平台,开发者面临着多样化的设备和系统版本,这增加了构建高效UI的复杂性。本文将深入分析安卓平台上构建高效用户界面的最佳实践,包括布局优化、资源管理和绘制性能的考量,旨在为开发者提供实用的技术指南,帮助他们创建更流畅的用户体验。
|
19天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。
|
22天前
|
监控 算法 Android开发
安卓应用开发:打造高效启动流程
【4月更文挑战第5天】 在移动应用的世界中,用户的第一印象至关重要。特别是对于安卓应用而言,启动时间是用户体验的关键指标之一。本文将深入探讨如何优化安卓应用的启动流程,从而减少启动时间,提升用户满意度。我们将从分析应用启动流程的各个阶段入手,提出一系列实用的技术策略,包括代码层面的优化、资源加载的管理以及异步初始化等,帮助开发者构建快速响应的安卓应用。
|
22天前
|
Java Android开发
Android开发之使用OpenGL实现翻书动画
本文讲述了如何使用OpenGL实现更平滑、逼真的电子书翻页动画,以解决传统贝塞尔曲线方法存在的卡顿和阴影问题。作者分享了一个改造后的外国代码示例,提供了从前往后和从后往前的翻页效果动图。文章附带了`GlTurnActivity`的Java代码片段,展示如何加载和显示书籍图片。完整工程代码可在作者的GitHub找到:https://github.com/aqi00/note/tree/master/ExmOpenGL。
23 1
Android开发之使用OpenGL实现翻书动画
|
22天前
|
Android开发 开发者
Android开发之OpenGL的画笔工具GL10
这篇文章简述了OpenGL通过GL10进行三维图形绘制,强调颜色取值范围为0.0到1.0,背景和画笔颜色设置方法;介绍了三维坐标系及与之相关的旋转、平移和缩放操作;最后探讨了坐标矩阵变换,包括设置绘图区域、调整镜头参数和改变观测方位。示例代码展示了如何使用这些方法创建简单的三维立方体。
18 1
Android开发之OpenGL的画笔工具GL10
|
28天前
|
Android开发
Android开发小技巧:怎样在 textview 前面加上一个小图标。
Android开发小技巧:怎样在 textview 前面加上一个小图标。
12 0
|
28天前
|
Android开发
Android 开发 pickerview 自定义选择器
Android 开发 pickerview 自定义选择器
12 0
|
30天前
|
缓存 Java Android开发
安卓应用开发中的内存优化策略
在移动应用开发领域,性能一直是衡量应用质量的重要指标之一。特别是对于安卓平台,由于设备的硬件配置多样化,内存管理成为开发者面临的重大挑战。本文将深入探讨针对安卓平台的内存优化技巧,包括内存泄漏的预防、合理使用数据结构和算法、以及高效的资源释放机制。通过这些方法,开发者可以显著提升应用的性能和用户体验。