安卓手机为什么可以不用公开源码(如果安卓不开源的话)

本篇文章给大家谈谈安卓手机为什么可以不用公开源码,以及如果安卓不开源的话对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

为什么Android不可以绕开虚拟机直接运行?

安卓是谷歌将它从开源linux上改造而来,依旧保持开源特性。为了应用开发者更多地开发安卓程序,自然也就保留了linux上的虚拟机机制。同时,安卓的目标是手机等移动终端,这些设备的处理器五花百门,而且开源安卓也会被各种深入定制,这同样导致了安卓依然沿用了虚拟机机制来保持高兼容性。当然,这些华为研发了方舟编译器,让系统直接运行机器码,以此来消除虚拟机带来的弊端。

1、安卓的诞生过程决定了它会沿用linux的虚拟机

安卓系统最早并不是谷歌研发出来的,而是一家名叫Android的初创公司研发的。这家公司成立22个月后,就把原始Android雏形系统以4千万美元的价格卖给了谷歌。 这个雏形原本就基于linux系统研发而来,自然里面也还是沿用了linux的虚拟机机制。

2、移动终端硬件厂商太多,也只能沿用虚拟机方式

谷歌拿到系统后,自己继续研发Android系统,在2007年还集合了84家当时一流的硬件厂商组成研发联盟。整个研发依然还是基于linux开源系统,但它解决了商业化的一个大难题。那就是,linux是开源系统,是有GPL开源协议的。很多硬件厂家为了适配该系统,必须将在上面研发的驱动程序公开,一旦公开驱动程序代码就相当于公开了自己的硬件设计。而谷歌研发的Android系统解决了这个问题,它将驱动程序放置到了userspace里面,并让它可以通过l内核访问硬件。同时,公开接口就可以让硬件厂商编写驱动程序。硬件厂商只需要提供驱动程序即可,不需要公开源代码了。

这么多硬件厂商一起研发,自然就会 面临一个问题就是每个厂商的硬件都不同。这对Android生态发展来说是个必须解决的兼容性问题。最好的办法依然是沿用linux的虚拟机机制 ,这样Android的软件作者就无需针对不同硬件重新开发软件。只需要一次开发就可以在安卓系统上的虚拟机中运行。

3、华为的方舟编译器

安卓的虚拟机机制在很大程度上解决了兼容性的问题,但是这种边解释边执行的方式,也降低了软件的运行效率。这些年,华为在这方面的研发上花了大功夫,成功研制出了“方舟”编译器。该编译器就是为了解决这个问题而诞生的。如果软件作者采用方舟编译器重新编译自己的程序。它的软件就可以以机器码的形式在安卓系统上高效运行,并且方舟编译器还会对程序进行优化。按照华为方面的数据显示, 使用华为方舟编译器编译后的程序,操作流畅度提升24%,系统响应速度提升44%,第三方应用操作流畅度提升60%!

总结

Android没有绕开虚拟机直接运行,是因为从它研发之初为了保持高兼容性,不得不沿用了虚拟机的机制。但在这些年,华为研发了“方舟”编译器,就是为了解决这个问题。通过方舟编译器编译后的程序可以直接以机器码的形式在安卓系统上运行,效率大大提高。

为了多点儿面试题[机智]

当初设计android的时候,设计人员只是软件工程师,无法针对某个CPU(目前有的CPU框架intel,arm,mips,rsicv等)去开发。最好的是,我针对所有CPU都支持。

跨平台,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。

因为机器针对不同机器语言,有不同执行逻辑。

就好比二进制000100,在arm里面是调用加法器,而riscv是调用乘法器一样。所以,需要给这些不同平台请个翻译。而虚拟机就是起到翻译作用。

这样虽然增加了消耗(例如执行同样代码,时间消耗上,c明显由于java),但是可以某种意义上,把软件,物理硬件分开了。软件重点设计自己app,而硬件不断增加CPU性能。

因为上层应用是 建立在 java 库的基础上,运行 java 库 需要 java 虚拟机,调试模式,可以登录到系统里,直接运行linux 命令,也可以下载运行 c程序。

啥叫Android不可以绕开虚拟机直接运行?Android本质上是Linux的变种,它本身就是应用APP的虚拟机容器,Android源码针对硬件平台编译之后,就是直接在CPU上运行的机器码了,它的运行并不依赖于其他的虚拟机。

APP是JAVA打包的,倒是需要在Android的JVM里运行,毕竟要考虑跨平台嘛。

ActivityThread.java就是一个应用程序,有main方法,是一个进程,就是靠虚拟机,没有这个就没有app。咋绕开,绕开就得不用这个,得从内部更换成别的,都更换了那就不是简单的事情了

因为java代码必须编译成机器语言才行,这时候就要接助虚拟机

在问为什么前,先问下是什么?Android是可以不依赖虚拟机运行的,只需要改一下重新编译就好了。

系统就是这么设计的

android (安卓)是完全开源的吗?

android (安卓)是完全开源的。

Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google(谷歌)公司和开放手机联盟领导及开发。

尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。

2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。

扩展资料:

一、发展历程

2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。

2005年8月17日,Google低调收购了成立仅22个月的高科技企业Android及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。

2007年11月5日,谷歌公司正式向外界展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成。

并与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(Open Handset Alliance)来共同研发改良Android系统,这一联盟将支持谷歌发布的手机操作系统以及应用软件,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。

2008年,在GoogleI/O大会上,谷歌提出了AndroidHAL架构图,在同年8月18号,Android获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了Android 1.0系统,这也是Android系统最早的版本。

二、系统内核

Android 是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。

Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux kernel彻底分开。

Bionic/Libc/Kernel/ 并非标准的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。

Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。

参考资料来源:百度百科-android

安卓系统是开源的,所谓的开源是什么意思呢?

开源意味着Android系统的源代码对用户开放,可以根据开源协议(GNU)使用、编译和重新发布。任何人都可以在GNU的控制下自由使用该软件。

安卓系统开源有什么好处?

显然,用户快速增加开源的市场份额是明智的选择。Android可能会在全球智能手机市场占据最大的市场份额,这与它的开源直接相关。开放Android手机操作系统的源代码不仅允许Android开发者在统一的开放平台上开发程序,同时也解决了当今市场上不同智能手机之间因文件格式不同而导致的信息交换不方便和无法移植程序内容的问题;Android的开源意味着手机用户不再需要被动接受手机制造商的默认设置和环境。用户可以根据自己的需求和想法定制手机的配置。

为什么安卓系统要开源?

首先,当安卓系统诞生时,塞班系统仍然是王者,IOS系统非常成熟。因此,如果我们想更好地推广它,似乎自由和开源是唯一的途径,那么当时谷歌吸引了大量手机制造商和移动运营商组成自己的联盟。后来,由于越来越多的厂商加入安卓系统领域,该系统也占据了如此大的规模。

安卓开源是靠什么挣钱的?

此时,我们不得不提到华为的限制部分。华为从未说过不能使用安卓系统,而是GMS系统。这个GMS系统实际上是使用谷歌Android赚钱的一部分。这个GMS是谷歌服务和谷歌应用的集合。它包括谷歌地图、电子邮件、谷歌应用商店等,其中之一就是谷歌服务。许多外国软件依赖谷歌服务,例如,许多外国软件通过谷歌服务向您的手机发送消息。可以想象,一些外国软件依赖于GMS。使用GMS需要谷歌的授权。Android是一个开源系统,包括一个名为AOSP的开源项目。制造商可以免费无条件地获得这个开源项目来构建自己的Android系统。但是如果你想使用GMS,你必须得到谷歌的许可。

请问安卓系统的手机是不是开放源代码?

开源只是在你想编译相关程序或者系统的时候是开放的,不像塞班根本不会让你去修改系统 现在安卓系统已经是全球销量第二了,第一是苹果的IOS,也是开源的

为什么谷歌的安卓系统要对外公开源代码?

谷歌的android 安卓系统所谓的公开源代码,其实也不是100%的公开,其内核的源代码就不可能公开。我们能看到,能利用的源代码只是泛指程序开发,系统优化等方面的一些内容。例如:魅族优化系统、小米(miui)系统、htc(sencer)系统、lg系统、索爱系统、三星系统等等...这些看似不尽相同的操作界面,就是因为安卓的源代码开发,而制造商各自根据市场和自有优势而进一步优化的结果。

但是归根结底,他们都是使用android的内核,这么说吧:72变的孙悟空不管怎么变,他还是孙悟空。

关于安卓手机为什么可以不用公开源码和如果安卓不开源的话的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

1、本网站名称:源码村资源网
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » 安卓手机为什么可以不用公开源码(如果安卓不开源的话)

1 评论

您需要 登录账户 后才能发表评论

发表评论

欢迎 访客 发表评论