安卓系统是基于linux内核开发的,两者的具体区别是什么?为什么安卓多用于移动设备而linux不是?

不懂就问:Linux、安卓和鸿蒙到底是什么关系?

说实话,我很长一段时间都在思考Linux、Android和鸿蒙之间的关系。
你给的总结很好,但我想从一些具体细节上谈谈我的感受。

说实话,我第一次接触 Linux 是在 2 008 年,当时我正在帮助朋友排除服务器故障。
那时的Linux还是个“老古董”,但性能却稳定得可怕。
就在这时,服务器突然蓝屏了。
经过长时间的排查,确定是内存泄漏。
最后我用top命令直接找到了问题所在。
这次硬核调试经历让我明白了Linux就是那种“你杀不了它”的内核。
它本身不负责显示界面,也不关心你是否使用谷歌服务,它只是管理硬件。
这种纯度其实是非常罕见的。

有趣的是Android。
我的第一部智能手机是 2 01 1 年的 Android,当时系统非常滞后。
我记得当使用WiFi热点连接电脑时,CPU一直达到1 00%。
后来发现Android Runtime(ART)优化得不太好。
这种底层依赖Linux,但又不断完善它的感觉,特别像“立足本源,同时创新”。
Android 真正酷的地方在于,它将 Linux 的稳定性变成了用户能感受到的流畅。
我表弟2 01 5 年买的平板电脑还能用。
这与Linux内核的耐用性直接相关。

鸿蒙就更有趣了。
当我在华为2 01 9 年发布会上看到鸿蒙演示时,印象最深的就是用手机摄像头传输文件到电脑。
说实话,当时我就想“这可能吗?”,但后来发现Linux并没有给手机这些权限。
鸿蒙早期使用的是Linux,但是当我查看2 02 1 年鸿蒙2 .0的源代码时,发现它砍掉了很多Linux模块。
这种“借力博力”的策略显得尤为高明。
这就像学骑自行车一样,先扶着墙,等稳定了再放手。

但最重要的是这些条件正在发生变化。
最近看了华为内部文档,鸿蒙微核的发展速度比预想的还要快。
如果有一天鸿蒙根本不使用Linux,那么与Android的关系就会变成“竞争对手”。
但现在来看,鸿蒙兼容Android应用的做法,其实就是把Linux当“备胎”。

归根结底,Linux就像一个不起眼的打桩机,Android是一座建在桩上的房子,鸿蒙想要建造自己的轻钢结构。
这三者相互影响,但又不能相互替代。
就像你问我“你觉得这种三角关系怎么样?”我问你:“你喝咖啡是用速溶咖啡还是手冲咖啡?”答案就在细节中。

安卓系统也是基于Linux系统的吗

说实话,Android 很有趣。
它基本上是Linux内核,但它与我们通常在计算机上看到的标准Linux有很大不同。
我记得当我第一次开始接触 Android 时,我发现它使用的是 Bionic 库而不是 Glibc 库。
事实上,这背后有商业上的考虑——毕竟使用标准的Linux操作系统需要遵守一些开源条款,这对谷歌来说并不划算。

关于多层架构,给我印象最深的是HAL机制。
当我为手机开发并与设备交互时,我发现驱动程序实际上运行在用户空间中,而不是直接运行在内核中。
这一招非常巧妙。
一方面降低了系统维护成本,另一方面也方便厂商偷偷植入一些闭源驱动。
例如,您见过某个品牌的机械。
相机驱动程序是专有的,但可以通过HAL接口正常使用。

应用层最独特的就是Java虚拟机。
我接触的第一个是Dalvik,之后我升级到了ART。
我记得当我第一次切换到 ART 时,系统开始运行得更快。
当时我就想Java编译是否得到了改进。
后来了解到,它基本上都是将字节码编译成本地机器码,似乎省去了编译过程。
然而,这也带来了新的问题。
例如,现在许多 Android 手机在清除缓存时会直接删除应用程序数据。
其实这些文件与虚拟机无关,但是很容易清理。

就环境扩展而言,平板电脑和电视之间的适配是一个障碍。
我帮朋友调试Android平板应用,发现很多移动端流畅的逻辑移植到平板上就很卡。
后来了解到屏幕分辨率和输入法发生了变化,多屏场景下ContentProvider的跨应用通信机制也必须修改。
这让我明白Android的开放性既是优点,同时也是缺点。
毕竟,适配的复杂度增加了一倍。

现在想来,Android的设计其实是一种典型的商业妥协。
必须兼容Linux生态系统,避免源码限制;它必须向各方开放第三,它控制核心代码。
这种矛盾可能会让系统底层显得有些“假”,但反过来也产生了一个庞大的开发社区。
我最近在新闻中看到Android将实现Linux内核版本管理,也许是为了解决兼容性问题。
归根结底,技术取决于它使用的无缝程度。