开源是如何让Android成为移动市场大佬的?

在如今的手机操作系统市场中,Android占有约80%的市场份额,是当之无愧的大佬。这其中离不开开源的贡献:作为开源系统本身,Android就激起了世界各地开发者、开源爱好者和大众用户的兴趣。

大约是十年前,我有了自己的第一部移动电话,当时我对它的操作系统和处理器一无所知,能有一部“移动”电话我就很高兴了。


如今,人们在买手机的时候比我当初考虑的显然更多。他们不仅考虑手机的操作系统和处理器,还要考虑诸如屏幕大小等等其他因素。人们对这些细节的关注一方面源于技术的进步,另一方面也在于如今有诸多手机操作系统可供我们选择。在手机操作系统市场中,Android占有约80%的市场份额,是当之无愧的大佬。

早期的 Android

在2003年10月,Andy Rubin、Rich Miner、Nick Sears、Chris White成立Android.Inc。他们最初打算为数码相机开发操作系统,但随后专注于移动设备。在2005年8月,Google收购Android.Inc显示出进军移动设备操作系统的意图。随后在2007年,Open Handset Alliance(OHA) 成立,这是一个由互联网公司(如Google)、设备制造商(如Sony,HTC,Samsung)和移动运营商(如Sprint,T-mobile)联合创立的。OHA的目标是为移动设备制定开放标准,正是彼时Android OS作为一个开源软件对外发布。然而,第一部Android设备HTC Dream在一年后(2008年10月)才发布。

Android的开源优势

Android基于Linux内核并且源代码在Apache协议下开放,这在Android发布时就给予它独特的优势:

  1. 制造移动电话的OEM在Android发布伊始就对其显示极大的兴趣,OHA中几乎所有的OEM成员都发布了Android手机并且将继续如此。即使是新的OEM制造商也倾向于发布基于Android的手机,因为这样可以直接为终端用户提供现有的软件,而不需要花费太多的经历在OS研发上。
  2. 随着Android源码可以被人们方便的下载和进行修改,针对不同硬件平台的Android变体正逐渐涌现,一个例子是基于Android的Nokia X 系列。
  3. 作为开源系统本身,Android就激起了世界各地开发者、开源爱好者和大众用户的兴趣。

Android应用商店

Android支持第三方应用,这并不是什么新鲜的说法。老一些的手机操作系统(如Symbian)也允许用户安装应用,但是应用开发过程毫无一致性,并且用户很难找到和安装那些应用。有了应用商店,一切变得简单多了。如今几乎所有的手机平台都有其应用商店,针对某一特定平台的应用数量甚至可以用来衡量特定操作系统的受欢迎程度。

Android开发

凭借背后的Google,Android逐渐建立起了庞大的生态系统,我们来看看其中几个重要的角色:

  1. IDE:想要为Android开发应用时,首先想到的就是集成开发环境(IDE),或者开发所需要的工具。获取Android开发环境很简单:只需下载Eclipse IDE并安装Android开发者工具插件。
  2. 详尽的文档和支持:开发者面临的下一个问题是文档。尽然应用要运行在Android环境中,应用开发者需要知道他们在代码中可以使用哪些API。举个例子:如果一个应用开发者想要使用摄像头,她该怎么办?她可以查询文档,找到合适的函数并进行调用。系统代码也很容易获得,这使得开发变得方便快捷。
  3. Google Play:开发者希望用户能够获取他们的应用,甚至从中获取报酬。Google Play就是使应用得到托管并且从中获取报酬的渠道,其中有成千上万种应用可供用户选择。但这不是获取应用的唯一渠道,用户亦可之间安装.apk按转包。

防止碎片化

虽然人们可以自由修改Android的源代码,但是一个潜在的问题是:如果所有人都用代码做自己想做的事情,那么将无法制定一个标准。Google有一个解决办法:兼容性测试工具(CTS),这是一个基于JUnit的测试模块,对修改过的Android实现进行校验。所以即便Android是开源的,代码可以被随心所欲的修改,操作系统的标准依然存在,新的实现若被称作Android便依旧是符合标准的。这使得很容易对Android进行改装使其适应新的硬件平台,并且用户任然可以在特定的Android设备上运行从应用商店下载的应用。

开源社区和Google的不断创新使得Android达到新的高度,并且Android依然在前进。你认为还有哪些其他因素促进了Android的成长?


(英文出处:opensource.com,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447386.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十种程序语言帮你读懂大数据的“秘密”

摘要:经过数年发展,当下大数据领域已充斥着各种各样的分析工具,那么如何才能选择自己适合的。本文从R、Scala、Java、Go、Python等10种语言着手,带大家一览大数据领域的常用工具。 【编者按】面对成千上万条数据记录,…

标准开源产品是打破供应商垄断的关键

Mrten Mickos是美国桉树系统公司的CEO,提出当公司拘泥于自己的设计和定制化时,与他们被供应商锁定所受到的损害程度是相当的。Mickos解释了为什么他认为采用标准开源产品是避免这两种被锁定类型的最好方式。当谈到软件和云服务时,业务锁定是有…

专访阿里云总裁王文彬:做出“用得爽”的工程产品

摘要:已拥有近百万不同行业领域用户的阿里云,在产品开发、服务输出与生态系统建设等方面还将继续加速,多点开花。 回顾在2014年已经过去的半年中,阿里云在产品开发、服务输出与生态系统建设层面的诸多动作。不难看出,…

写代码前的准备,你做好了吗?

我们程序员很容易给别人一种深刻的误解:写代码的。包括我们自己有时候也会陷入这样的圈套之中。很多程序员在接到任务之后,就会马上想着如何用代码来实现,这是一种很不好的做法。其实,在我们写代码之前,还有很多工作要…

C++11(及现代C++风格)和快速迭代式开发

过去的一年我在微软亚洲研究院做输入法,我们的产品叫“英库拼音输入法” (下载Beta版),如果你用过“英库词典”(现已更名为必应词典),应该知道“英库”这个名字(实际上我们的核心开发…

软件系统分析师与架构师技能大PK(您具备了哪些呢?)

软件系统分析师与架构师在职责与技能方面没有明显的界线,你中有我我中有你,同时也有各自自己的世界,很值得拿来比比。 系统分析师职责:告诉我们系统应该做什么。 l 管理到技术的桥梁 各领域业务到信息化技术的通知翻译者。 l 对软件项目进行整…

原型设计工具的对比评测记录(一)

概述:本文是美国的专业设计公司cooper公司的交互设计师Emily Schwartzman所写的一篇对众多原型设计工具的对比评测。这里是前半部分,从总体角度介绍评测及其结果。原型设计工具的对比评测记录(一)原型设计工具的对比评测记录&…

软件开发人员进修必备的20本书

初级软件开发人员进修必备的20本书(上) #原创 程序开发 申请达人,去除赞助商链接开发和编程向来就不是一件轻松的事,有时候你可能需要别人稍微点化一下,或者从书中得到一些有用的帮助。总而言之,无论是工作流程还是进修你的专业&a…

为什么我喜欢单独编程

大约是一年前,我写了一篇关于我为什么不喜欢结对编程的帖子。此文也是对该帖子的补充。 至今为止我已经在加利福尼亚州科学院工作5个月了。我创建了一个由美国国家科学基金会资助的关于蚂蚁分类学的网站:antcat.org。 这是我作为一个程序员25年以来最棒…

谈操作系统的碎片化和融合

摘要:目前,Android和iOS统治着移动操作系统,桌面端被Windows所主宰,随着智能家居、可穿戴设备等新兴平台的兴起,造成了各家操作系统四分五裂的情况,但在不久的将来他们终究会走向融合。 目前,An…

盘点大数据的十大发展方向,Scale-out将成主流

摘要:随着人们对大数据认知的加强,除去特点之外,人们开始更加关注于它的使用价值和未来的服务方向。本文列举了大数据的十大发展方向,其中Scale-out将成为主流。 【编者按】如今,大数据俨然成为IT领域最受关注的热词之…

程序员的成功是否有规律可循?

摘要:自然界中存在许多规律,那么在程序人生上是否有规律可循呢?这种规律是如大多数人期望的那样吗?V众投发起人李智勇对此进行了探讨,他分析了必然与偶然、本质与细节,并就程序人生规律的三要素进行了解读。…

FFMPEG解码多线程

FFMPEG多线程解码 FFMPEG多线程编码器一般以在Slice内分功能模块进行多线程编码,如h263,h263P,msmpeg(v1, v2, v3),wmv1。包含以下几个线程:(1)Pre_estimation_motion_thread运动估计前的准备;(2)Estimation_motion_t…

SpringNBoot日志配置

市面上的日志框架 日志门面 (日志的抽象层)日志门面 (日志的抽象层)JCL(Jakarta Commons LoggingSLF4j(Simple Logging Facade for Java) jboss-loggiJUL(java.util.logging&#x…

ffmpeg的内部Video Buffer管理和传送机制

本文主要介绍ffmpeg解码器内部管理Video Buffer的原理和过程,ffmpeg的Videobuffer为内部管理,其流程大致为:注册处理函数->帧级释放->帧级申请->清空。 1 注册get_buffer()和release_buffer() FFAPI_InitCodec() avcodec_alloc_c…

springBoot的模版引擎

模版引擎 常见的模版引擎有JSP、Velocity、Freemarker和Thymeleaf Thymeleaf模版 使用时需要把html页面放在classpath&#xff1a;/templates/文件夹下&#xff0c;thymeleaf就能自动渲染创建模版文件&#xff0c;并需要导入thymeleaf的名称空间 <html lang"en"…

FFmepg 多线程解码历程

FFmepg 多线程解码历程 - 1:validate_thread_parameters /** * Set the threading algorithms used.//设置线程的使用算法 * Threading requires more than one thread.//需要一个以上的线程 * Frame threading requires entire frames to be passed to the codec,//帧线程…

restful风格的增删改查

注意 如果静态资源放到了静态资源文件夹下却无法访问&#xff0c;请检查一下是不是在自定义的配置类上加了EnableWebMvc注解templete文件夹不是静态资源的文件夹&#xff0c;默认是无法访问的&#xff0c;所以要添加视图映射 package cn.xxxxxx.hellospringbootweb.config;imp…

历史上最有影响力的10款开源项目

开源是大趋势&#xff0c;开源软件也在越来越多的出现在日常电脑桌面上&#xff0c;如Firefox浏览器、Ubuntu操作系统等。人们选择开源软件的原因&#xff0c;主要有低成本、安全无病毒侵害、更加透明和开放等。按照大多数的开源协议如GPL&#xff0c;开源软件允许自由分发。在…

SpringBoot默认的错误处理机制

错误处理机制&#xff1a; 访问一个不存在的页面时&#xff0c;或者程序抛出异常时 默认效果 浏览器返回一个错误的页面&#xff0c;注意查看浏览器发送请求的请求头可以使用专业的软件比如postman分析返回的json数据 springboot错误处理的自动配置信息 主要给日容器中注册…