首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >硬件存取

硬件存取
EN

Stack Overflow用户
提问于 2018-11-03 18:03:48
回答 3查看 1.5K关注 0票数 0

我一直喜欢便宜的智能手机(售价50美元),因为只要花很少的钱,我就可以拥有一个功能强大的系统,里面有很多传感器之类的东西。所以我想知道在不使用非常有限的android的情况下是否有可能使用硬件,然后在底层编程,当然是用根编程。特别是,我想看看LTE模块是如何工作的,并尝试这种完全控制的方式,Android不允许它做太多事情。

更新:我使用的是名为libhybris的东西,这是一个允许在Linux中使用android驱动程序块的包装器。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-12-26 20:34:13

我正在使用名为libhybris的东西,这是一个允许在Linux中使用android驱动程序blobs的包装器。

票数 -1
EN

Stack Overflow用户

发布于 2018-11-03 18:59:28

手机的第一层软件是引导程序。它告诉处理器要加载到内存中以执行内核的哪个分区。这是一个水平,通常是被制造商封锁,因为贪婪的企业原因,超出了本网站的范围。

电话的第二层是linux内核。根是获取根用户对此层的访问权限的过程。Root是具有对设备进行任何操作的权限的主管理员用户帐户。访问这一层是大多数人所指的生根。内核的很大一部分是用C编写的,其他部分是用c++编写的。在这个层次上所发生的一切都是魔法的所在。对于大多数手机来说,这是调制解调器的代码所在。与此对话通常可以通过串口命令来完成。传感器也在这个级别上进行编程,并通过驱动程序进行通信。通常不需要根访问来读取传感器数据,这通常只是权限的情况。

下一层是android操作系统,java实例在上面运行,然后执行android操作系统。这是大多数用户将看到的部分,并且主要是用java编写的。实际上,您可以在这个级别上运行任何类型的用户界面。

一个非常简短的android应用程序的视图。

android为java开发人员编写与内核通信和访问手机硬件不同部分的“应用程序”提供了一种方式。这些应用程序也可以使用c++编写。直到最近,谷歌才将c++整合到android中,但最常见、也是最有效的方法是使用QT框架。

票数 3
EN

Stack Overflow用户

发布于 2018-11-03 18:37:40

有点问题。

硬件制造商实际上是这样做的。

考虑到Android是Linux 就像其他发行版一样。制造商开发硬件,然后编译一个安装在上面的Android版本。每个Android编译都是针对硬件定制的,并配备了驱动程序,使操作系统能够访问不同的硬件功能。

例如,一些表将调整Android操作系统,使其不支持移动通信,因为它们决定降低成本,在没有移动模块的情况下交付平板电脑。

从这里你有两个选择:

  1. 对特定硬件进行黑客攻击,并了解操作系统如何与硬件通信。
  2. 寻找发布部分/全部Android操作系统代码的硬件制造商。这是一种简单得多的方法,因为您可以学习并扩展该特定设备的Android操作系统。第二种方式的例子是索尼,它拥有AOSP,允许低层访问索尼的一些设备。

而且,总是有安卓NDK,它让你更低级别的访问安卓,但你仍然受到工具包API的限制,所以我不确定它会对你有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53134098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档