我有以下疑问:
我已经读过android os基于linux,我想它可能和ubuntu具有相同的结构(在文件配置方面:/ root,/ dev等)。 那么,是否有可能在Android中运行用C编写的应用程序?就像在ubuntu中可以做到的那样?如果是的话,我该怎么做?
另外,如何通过Android应用程序(用java编写)访问根文件?以及如何访问操作系统的行为(例如中断)?
提前感谢您的回答。
GUS
答案 0 :(得分:1)
基本答案:除了通过Native Development Kit(NDK)之外,不支持在Android上运行C应用程序。
除非通过手机拨打电话,否则无法访问根文件。
您可以通过API访问某些操作系统行为。基本上,如果它不是API的一部分,则无法访问它。
Android操作系统在Linux上基于 ,但它是一个操作系统,而不是像X这样的窗口服务器或像Gnome或KDE这样的桌面环境。
答案 1 :(得分:0)
您可以使用NDK在Android上运行C and C++
代码。您也可以使用QT
框架。但是代码在名为Davlik的虚拟机中运行。 Android具有root帐号,但默认情况下不适用于用户。因此,访问目录取决于chmod
。
如果您想阅读有关Android中低级别的访问权限: http://www.phrack.org/issues.html?issue=68&id=6
关于这个系统的架构: https://developer.android.com/guide/basics/what-is-android.html
答案 2 :(得分:0)
您可以使用Runtime.exec
运行程序。例如,您可以看到运行许多不同程序的Terminal IDE,包括ssh,vim和bash。它也是开源的,因此您可以从code学习。您可能必须将可执行文件包含为资源或资产,然后复制到本地目录,授予执行权限,然后使用Runtime.exec
运行。您仍然拥有有限的用户权限,因为您的应用程序在受限制的帐户下运行,除非设备已植根并且您请求root访问权限。
答案 3 :(得分:0)