什么是内核? 如果您花时间阅读Android论坛,博客,操作方法帖子或在线讨论,您很快就会听到人们在谈论内核。 内核不是Android独有的东西 - iOS和MacOS有一个,Windows有一个,BlackBerry的QNX有一个,实际上所有高级操作系统都有一个。 我们感兴趣的是Linux,因为它是Android使用的。 让我们试着分解它是什么以及它做了什么。
Android设备使用Linux内核,打赌每部手机都使用自己的版本。 Linux内核维护者保持一切整洁和可用,贡献者(如谷歌)添加或改变事物以更好地满足他们的需求,并且制造硬件的人也做出贡献,因为他们需要为他们用于的部分开发硬件驱动程序他们正在使用的内核版本。 这就是为什么独立的Android开发人员和黑客需要一段时间才能将新版本移植到旧设备并使一切正常运行。 编写为与手机的一个内核版本一起使用的驱动程序可能无法在同一手机上使用不同版本的软件。 这很重要,因为内核的主要功能之一是控制硬件。 这是一大堆源代码,在构建它时有比你想象的更多的选项,但最终它只是硬件和软件之间的中介。
当软件需要硬件做任何事情时,它会向内核发送请求。 当我们说 什么时 ,我们意味着 什么 。 从屏幕的亮度,到音量级别,到通过无线电发起呼叫,甚至显示器上绘制的内容最终都由内核控制。 例如,当您点按手机上的搜索按钮时,您会告诉软件打开搜索应用程序。 会发生什么事情,你触摸数字化仪上的某个点,告诉软件你在这些坐标处触摸了屏幕。 软件知道当触摸该特定点时,应该打开搜索对话框。 内核是告诉数字化仪查看(或监听,事件被“倾听”)触摸的内容,帮助找出触摸的位置,并告诉系统您触摸它。 反过来,当系统从内核(通过驱动程序)接收特定点的触摸事件时,它知道在屏幕上绘制什么。 硬件和软件都与内核进行双向通信,这就是您的手机知道何时做某事的方式。 来自一侧的输入作为输出发送给另一侧,无论是您在玩“愤怒的小鸟”还是连接到汽车的蓝牙。
听起来很复杂,而且确实很复杂。 但它也是非常标准的计算机逻辑 - 为每个事件生成某种行为,并且根据该行为,正在运行的软件会发生一些事情。 如果没有内核接受和发送信息,开发人员就必须为设备中的每一件硬件编写每个事件的代码。 使用内核,他们所要做的就是通过Android系统API与之通信,硬件开发人员只需要让设备硬件与内核通信即可。 好处是你不需要确切地知道内核是如何或为什么做它做的事情,只需要了解它是从软件到硬件之间的中介,让你很好地掌握玻璃下发生的事情。
对于那些熬夜为你的手机开发内核的人来说,有点全新的看法,不是吗?