教育培训 > 安卓系统是开源的,开源是啥意思?

安卓系统是开源的,开源是啥意思?

2020-08-21 15:49阅读(61)

安卓系统是开源的,开源是啥意思?:开源,全称为开放源代码,就是用户利用源代码,在遵循开源协议(GNU)进行使用、编译和再发布。虽然大家可以修改,但开源系统

1

开源,全称为开放源代码,就是用户利用源代码,在遵循开源协议(GNU)进行使用、编译和再发布。虽然大家可以修改,但开源系统同样也有版权,也受到法律保护。用户在使用开源产品时,不但需表明产品来自开源软件和注明源代码编写者姓名,而且还应把所修改产品返回给开源软件,否则所修改产品就可视为侵权。

简单的来说,比如谷歌开发了安卓系统最基础的框架了,华为等手机厂家可以利用其源代码开发修改升级匹配自身的系统,但是因为基础源代码来自于安卓(所以我们的手机开机时一般都会体现POWERED BY Android)。而且开发者对于源代码的任何改进都必须要告知开源软件的公司,这样也有利于开源的公司进一步提高源代码。在这方面华为为安卓的发展壮大做出了巨大的贡献。

开发系统很难吗?

早期的时候可能困难,但是以现在华为的技术水平来说,开发一个手机操作系统根本不难,但是为什么一直不推出自己的系统呢?这是因为系统容易,生态难。

每一种操作系统都有它的运行环境,所有你在下载APP的时候,不同的操作系统是要下载不同的APP的。一个新的操作系统进来,没有你那个系统的APP,那么根本没人会使用你的手机,因为它等于以前的老人机。

举个例子:比如华为开发了一个系统(据传是鸿蒙),但是微信、支付宝、百度等等这些企业都不开发适用于鸿蒙系统的APP软件,那么鸿蒙系统将会面临的无软件可下载的情况,这时候,这个系统等于废弃的一个系统。之前微软在意识到的手机操作系统的重要性之后,也推出了Windows Phone,不过最终也败下阵来了,因为没有匹配的app可以下载,所以安卓并不是强大,只是它抢占了先机而已。

PS:很多人会说那苹果属于闭源系统,这些软件开发公司是怎么开发APP的。简单的来说app应用是需要调取系统的权限完成一些特定的工作,系统闭源可以简单理解成禁止其他开发者获取系统的代码,但是应用需要获取的权限是可以赋予的,还有编写应用的代码也是开放的,ios虽然不让你看源码,但它也提供了sdk用来调用系统资源,也提供了api接口来和系统通信调度,所以微信支付宝这些公司可以开发适用于ios的app。

华为的解决办法

华为最好的解决办法是直接开发出可以兼容安卓APP的系统,那么关于系统的问题就全部迎然而解了,华为的回应中也说明有能力继续发展和使用安卓生态,所以大概率预计新系统是可以兼容的。

假设华为的系统无法兼容安卓的app,那么需要目前所有开发APP的各家企业支持,重新开发适用于华为系统的app应用,这个难度就有点大了,国内或许还好,国际就比较困难了,毕竟别人没有义务做这件事。

总结

一个操作系统就像一个生态圈,一旦这个生态圈稳定,其它的系统就很难进得来,电脑等其它操作系统也是如此,所以华为的困难不在与开发操作系统,而在于其生态圈的架构,最简单的方式就是直接兼容安卓app。

2

开源,顾名思义,就是开源源代码,但是使用者需要遵守开源规则。

安卓开源,就是说所有的厂商或者开发者都可以直接使用安卓的源代码去开发,但是需要遵守谷歌的使用条件。

比如说,

全球所有厂商必须预装Google全家桶(中国内地,朝鲜除外,因为谷歌已经退出该市场,服务不可用)。

而对于国内的安卓在开机时都会有一个Android的标签,这个是在Android 4.4开始强制要求的,不然以前很多厂商改成跟自己家的系统一样,完全不把谷歌放在眼里。

其次是核心代码功能不能随意更改,必须遵守API的协议,某些厂商乱改底层导致一堆兼容性变差,谷歌被黑锅(说得就是中国定制的Android)。

还有很多条例就不一一列举。

但是开源必须遵守开源精神,这对作者也是一个尊重。

作为个人开发者的我,使用他人代码依然会注明原作者信息。

3

开源就是开放,谁进来都行,身体想咋用就咋用,不过你的身体也得给我任意使用。

最典型的开放系统就是手机安卓系统,安卓系统是谷歌旗下的产品,当初为了和同行业对手竞争,做了石破天惊的一举,就是把自己系统的一切透明化,共享化。

在这样一种做法下,吸引来最多的生态开发支持者,让塞班手机系统消失在人们的视野中。

不够开放的微软WINDOWS手机系统,也是曾经想要染指手机操作系统的,但,天生不开放的缺陷,让想要资源共享的开发者不能为我所用,这样WINDOWS手机系统就被边缘化。

谷歌之后,中国的华为等高科技企业看到了透明化的开放优势,要想超越谷歌不受所制约,推出的鸿蒙系统等都是开源的,代码彼此借鉴拿来应用,无需专利限制与保护。

为什么如今的人工智能发展的这么快?



就是因为有了Github这个开源的程序平台,让世界各地的行业精英们趋之若鹜的在平台上发布项目,一天又一天持续的搭建,就让信息大厦在一点一滴的趋于完美。

你的技术也就是我的技术,这就是开源的双赢,开放的结果。

4

我们常常听说安卓Android系统是开源的,苹果iOS系统是闭源的,那你知道什么是开源什么是闭源吗?今天本极客来科普一番。

开源的含义和意图

“开源”,我们顾名思义,“开”就是开放的意思,“源”,就是源代码的意思。

安卓系统是由科技巨头谷歌的研发团队开发出的,是目前广泛运用在手机端的操作系统,换言之,是一种软件。既然是软件,就是代码组成的,那就有它自己的源代码,这些源代码是我们的程序员小哥哥一行一行敲出来的。

那安卓系统的开源也就很好理解了,相当于是谷歌向全世界公开了安卓系统的源代码,所有企业和个人都可以从网上获取安卓的源代码并且进行定制化开发,比如华为小米,各种在安卓系统上进行了自己系统定制,玩出自己的风格。

但是很多人会误会,因为开源就是免费,实际上即使是开源的软件,也不是都是免费的。开源的软件都需要遵从一套业内统一协定的规则体系,意味着即使你使用的是开源的软件,但是如果你需要进行商业盈利性的定制化,依然是需要付费的,毕竟做开源的软件的企业不是慈善家,他们的最终目的还是要盈利。

那你会问了,那他们开源干嘛,不怕被别人偷偷不付费使用吗?

开源最大的好处就是可以集结全世界程序员的智慧,这也是安卓系统的恐怖之处,这个系统的各类代码可以来自世界各地的技术大牛,这可以极大提升系统的稳定性。

毕竟是全球的程序员翘楚来帮忙改漏洞,谷歌何乐而不为呢?这也造就了安卓系统运用至今依然是稳定的操作系统。

而谷歌也不怕个人或者小企业去不为安卓系统买单,谷歌的格局还是比较庞大的,小企业或者个人想去自己定制化系统恐怕没有这个能力,而大企业也不会去做违背商业纪律的事情损害自己企业前景,并且安卓系统很多核心服务还是需要谷歌自己提供,这依然是 。

长知识了吧,这回你明白开源的意思和意图了吗?

关注“极客宇文氏”,一名热心有料的互联网观察者。

5

欢迎在点击右上角关注:「太平洋电脑网」,不定时放送福利哦!

开源,全称为开放源代码,是每个人都能看到,每个人都可以在规则之内使用,使用和开发之后需要把你的产品返回到代码之中。

主要是为了人人为我,我为人人的精神,共同推动这个社区或者是这个系统进步。

安卓开源,那就是谷歌需要会把安卓的代码公布公开出来,方便用户在这个代码的基础上进行学习,同时也能修改,甚至可以进行商业化。

但是,你在这个基础上开发和修改的代码也需要公布出来,不能只索取不付出的,需要求同存异,互利共赢。

当然,这样做的方式,是想要通过全世界的程序员的力量,把开发的工作的难度降低了,提高了程序员的工作效率,避免重复造轮子。

同时,如果你用到了别人的代码,你需要备注代码的作者,表示对于作者的尊重。

所以说,安卓系统是全世界的程序员的成果,因为大家在这个基础上开发了是需要把代码公开的,供大家使用和学习的。这也是安卓能这么快发展和进步的原因,因为这汇聚了全世界程序员的智慧。

所以,世界上没有任何一个人能够阻止其他人去使用安卓系统的代码。谷歌不授权,也只不过是不能使用Google的APP,也不能使用GSM服务协议而已。当然,这个在国外影响挺大的,但是依然可以使用安卓系统的。

6

说到开源不得不先说说安卓。什么是安卓呢?安卓是操纵系统。放眼市场,由当年的诺基亚的塞班系统,苹果IOS系统,到后起之秀安卓系统。智能手机市场发生了翻天复地的变化。当年诺基亚智能手机龙头老大的光辉已不再。可以说主要原因就是安卓系统的出现,而且安卓是开源的。那开源是什么意思呢?

我认为开源即开放原始代码,分享出来,供大家自由使用,学习,修改,分享

开源就是把源代码开放。这个源代码对我们的程序,软件来说就像盖房子的施工图纸一样。非常重要。或者是我们做菜的菜谱一样。举个例子:就像我们自己研究了一道新的菜,清蒸茄子,味道非常好,所谓独乐乐不如众乐乐,迫不及待想和大家分享。然后我们就把这清蒸茄子的秘制做法放到网上。按照我的做法,大家都能品尝到美味的清蒸茄子了。但有的小伙伴们并不满足现有的清蒸茄子,他们觉得不太适合自己的口味。然后基于这道菜的做法,做了一些调整。大明给这道菜加了盐。李四给这道菜增加了肉,生姜等,最后又有了2道新菜,油淋茄子,红烧茄子。我觉得就是像这种把菜谱分享出来,供大家自由使用,学习,修改,分享就是我们说的开源。

开源下的国内手机品牌厂商的产品

正因为手机系统android开源,国内各大品牌手机都对其进行修改。让我们感受到了各种款式的好手机。也是对我们这些机友们的福利吧!比如华为,小米,oppo对android进行了修改,完善。有了自己的EMUI MIUI ColorOS

android虽开源,但是我们还是需要遵守其协议

我认为我们在生活中,我们能看到各式各样的声明,就像我们把菜谱分享出来一样,为了保险起见我们要声明一下,大家怎么用都 可以。但我们不承担使用后的风险。所以有各种开源协议。比如GPL BSD等等。不同的协议也有不同的特点。像安卓就是GPL协议。当我们基于安卓开发出EMUI MIUI的时候,新开发的系统也需要遵循GPL协议进行开源。那我们假设,如果安卓采用的是BSD协议。我们要是基于安卓开发了一个A OS 。这个A OS可以开源,也可以不开源。根据这个BSD协议,可能我们只需要在这个A OS里面保留原作者的信息即可。这就是我们所说的开源协议

总结:

我认为开源即开放源代码,分享出来,供大家自由使用,学习,修改,分享。正因为开源才让我们的产品那样丰富多样。才是安卓系统那么受欢迎。我们在修改源代码进行私人定制的时候,也不要申明下原作者的信息。对他们的劳动成功也是最大的肯定以及尊重。

7
感谢您的阅读!

其实安卓系统并非都是开源的,我们先搞清楚开源到底是什么,在说说安卓系统哪些是开源的。

开源是什么

开源,全称开放源代码。通常说的是IT领域,就是你写的软件和代码和完全公布出来供大家学习使用,但是并不是无条件的,开源的软件或代码也有版权的,也是受法律保护的。

当今市面上开源软件占据主流,很多人以为开源就是免费的,其实不然。

开源软件主要特点是开放,任何人都可以获取到软件源代码,可以用于学习,甚至可以修改后重新发布软件,当然发布的内容实在版权限制范围之内。

那版权限制具体是什么限制呢?这就得说说伴随开源的开源协议了!

主流的开源协议有以下几种:

GPL:GNU通用公共许可证(GNU General Public License)

  • 要求软件必须无条件开放所有源代码,并规定任何人都能以源代码的形式将软件复制和发布。


  • 如果你发布的软件中包含受GPL保护的源代码,那么你的软件也就继承了GPL协议,并成为GPL开源软件,也就是说你的软件也必须开源。


  • GPL 并不排斥对自由软件进行商业性质的包装和发行,也不限制在自由软件的基础上打包发行其他非自由软件。

LGPL:GNU较宽松公共许可证 (GNU Lesser General Public License)

  • LGPL 是GPL的衍生品,GPL要求使用者发布的软件也必须开源,这不利于商业软件的发展。


  • LGPL 协议的开源代码可以被商业软件作为类库引用并发布和销售。商业软件通过类库引用(link)的方式使用 LGPL 类库,而商业软件无需开源。


  • 如果修改了LGPL协议的源代码,涉及修改的代码和衍生的代码必须遵循LGPL协议。所以LGPL协议的源代码适合引用,而不适合在此基础上二次开发。

BSD开源协议

相比于GPL协议,BSD协议则自由很多。用户可以自由的修改源代码,并且可以讲修改后的代码作为开源或者专有软件再发布。

但这种自由必须满足三个条件:

  • 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。


  • 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。


  • 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

BSD协议鼓励代码共享和开源,但要充分尊重源代码作者和著作权。此协议对商业软件非常友好,所以很多公司在选开源产品时首选BSD协议。

Apache 协议 (Apache Licence)

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和开源,需要充分尊重原作者的著作权,同样允许代码修改,并作为开源或专有软件再发布。

不过需要满足的条件有点差异:

  • 需要给代码的用户一份Apache Licence
  • 如果你修改了源代码,需要再被修改的文件中说明。
  • 在修改或衍生的代码中,需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
  • 如果再发布的产品中包含一个Notice(通知)文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

Apache Licence也是对商业软件非常友好的协议。用户可以在需要的时候修改代码来满足需求,并作为开源或专有软件再次发布或者销售。

MIT协议

MIT是和BSD一样宽范的许可协议,源作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.

开源协议还有很多,这里就不一一介绍了,比如去年GitHub上很火的996事件,诞生了

996.ICU

协议。只要符合OSIA 认定,都可以做为开源软件许可证使用。

如果还不太懂开源协议的,可以看下下图,协议选择的逻辑图,大家一看应该就明白了。


解释下文章开头提出的其实安卓并不是完全开源的疑问

大家都知道安卓是基于linux系统开发的,但是大家可能不知道的是linux有上百种版本。

Android 是使用的linux系统内核,但此内核并不是基于GPL的Linux系统。

因为基于GPL的Linux 系统里支持的功能,Android 大都没有支持,比如Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。

谷歌为了达到商业化目的,移除了GPL约束的源代码。例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux kernel彻底分开。

其次是找替代品来代替受约束的源代码功能,比如用Bionic 取代Glibc、用Skia 取代Cairo、用opencore取代FFmpeg等等。

当然除了内核外,也有一些功能使用的源代码是受GPL保护的。所以这就是我说的安卓并不是完全开源的原因。

安卓之所以在谷歌的控制之中,其实是因为安卓的framwork层和GMS(谷歌移动服务)。

总结

开源就是开放源代码,但是为了保护原作者权益或代码保护,诞生了开源协议。现在用户讨论开源软件的性质,其实就是在说开源协议。正因为开源,软件技术才得以飞速发展,我国也有很多优秀的科技公司参与并开源软件,比如阿里巴巴的Dubbo服务,还有我灰常中意并经常使用的fastJson库。但也有些公司单纯为了KPI而去开发并开源项目,过后便不再更新维护,这就是一种形式主义的开源,这其实是一种阻碍开源发展的行为!

开源是一种正向循环,我们在享受开源带来的便利时,也应该为开源给出自己的贡献!


我是非著名攻城狮,希望我的回答对你有所帮助,如果方便,谢谢你的点赞支持!

8

开源,全称为开放源代码,就是用户利用源代码,在遵循开源协议(GNU)进行使用、编译和再发布。虽然大家可以修改,但开源系统同样也有版权,也受到法律保护。用户在使用开源产品时,不但需表明产品来自开源软件和注明源代码编写者姓名,而且还应把所修改产品返回给开源软件,否则所修改产品就可视为侵权。每一种操作系统都有它的运行环境,所有你在下载APP的时候,不同的操作系统是要下载不同的APP的。

  一个新的操作系统进来,没有你那个系统的APP,那么根本没人会使用你的手机,因为它等于以前的老人机。

  全球所有厂商必须预装Google全家桶(中国内地,朝鲜除外,因为谷歌已经退出该市场,服务不可用)。

  而对于国内的安卓在开机时都会有一个Android的标签,这个是在Android 4.4开始强制要求的,不然以前很多厂商改成跟自己家的系统一样,完全不把谷歌放在眼里。

  开源系统相对于不开源的操作系统,如Windows和Mac,开源操作系统最大的特点就是开放源代码和自由定制,但也会因为使用者的技术水平等关系出现很多不可预知的情况及维护问题,并且由于多数硬件和软件厂商并不支持开源软件.所以在驱动和软件源方面有很大困难,这就要求个人用户在选择系统时需要注意根据自己的实际情况来选择,这也是目前个人使用开源操作系统较为困难的最主要原因。

9

首先我们要理解开源的字面含义


开就是开放,开发
源就是源码,底层的代码或者是说是迭代的代码


从这两个方面来讲,我们就好理解开源的含义了


开放,开发


安卓系统现在是世界上最大的智能手机操作系统,也是最开放的手机操作系统。安卓系统是开源的,他的系统的代码会向全世界的人开放,代码开放意味着其他人可以更改你的系统代码,在里面可以做成他们想要的功能,也就是深度的定制。像以前的很流行的刷机,当然,现在也比较流行,只是人越来越少了,至少在我的身边是这个样子。


还有,开源的安卓手机,会被各种开发者开发,典型就是获取root权限,之后就可以玩手机了。这主要是面向开发者开放。普通人是没有什么兴趣去了解的。


还有一个就是开发了。一个开源的手机操作系统,必然会有很多的手机开发者。也叫手机开发工程师,而Java就是一个典型的面对手机端的编程语言。安卓的开源,在全世界为它自己的系统开发网罗了大量的开发人员。包括大公司的工程师,当然,也有刷机的大神。他们的出于自己的努力或者是兴趣,大大的加速了安卓的版本更新,这里主要是谷歌的人员。


源码,底层的代码或者是说是迭代的代码


手机系统和应用的运行,其实都是代码在运行。代码是他们的基础,没有底层的系统架构代码,就不会有系统。你连系统桌面都不会看到,更不用说运行一个应用了。系统的更新依靠的是发现代码里的漏洞或者的优化代码的运行结构,加快运行速度,直接就体现在手机的流畅性上了。其实还是底层的代码的迭代。


应用的更新也是迭代的代码,只是商家不会把自己的源码公布出来的。开发一个应用,最最基础的就是自己的源码。要是你拿了我的源码,自己搞一个同样的应用,那我怎么办?大家可以去了解一下,开发一个应用,只是一个应用的代码开发部份是怎么样的就可以了。


如果你喜欢我的文章的话,请点赞或者评论区留言

我们一起讨论和交换观点

你的鼓励是我最大的动力

10

开源是IT领域的公益事业,只不过流通的不是物资,而是代码。

就像控制物资不被滥用一样,开源的代码受License的约束和保护。代码不像“物资”会被使用完结,它在流传和被人们使用的过程中能够不断被完善发生进化,所以开源还促成了知识的最大分享、传承和创新进步。