我有以下疑问:
我读过 android os 是基于 linux 的,我想它可能具有与 ubuntu 相同的结构(在文件配置方面:/root、/dev 等)。那么,是否可以在 android 中运行用 C 编写的应用程序?就像在 ubuntu 中可以做的那样?如果是这样,我该怎么做?
另外,如何通过 android 应用程序(用 java 编写)访问根文件?以及如何访问操作系统的行为(例如中断)?
提前感谢您的回答。
格斯
我有以下疑问:
我读过 android os 是基于 linux 的,我想它可能具有与 ubuntu 相同的结构(在文件配置方面:/root、/dev 等)。那么,是否可以在 android 中运行用 C 编写的应用程序?就像在 ubuntu 中可以做的那样?如果是这样,我该怎么做?
另外,如何通过 android 应用程序(用 java 编写)访问根文件?以及如何访问操作系统的行为(例如中断)?
提前感谢您的回答。
格斯
基本答案:不支持在 Android 上运行 C 应用程序,除非通过本机开发工具包 (NDK)。
除非通过手机root,否则您无法访问root文件。
您可以通过 API 访问某些操作系统行为。基本上,如果它不是 API 的一部分,您就无法访问它。
Android 操作系统基于Linux,但它是一个操作系统,而不是像 X 那样的窗口服务器或像 Gnome 或 KDE 这样的桌面环境。
您可以C and C++
使用 NDK 在 android 上运行代码。您也可以使用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
您可以使用Runtime.exec
. 例如,您可以看到终端 IDE,它运行许多不同的程序,包括 ssh、vim 和 bash。它也是开源的,因此您可以从代码中学习。您可能必须将可执行文件作为资源或资产包含在内,然后复制到本地目录,授予执行权限,然后使用Runtime.exec
. 由于您的应用程序在受限帐户下运行,因此您仍然拥有有限的用户权限,除非设备已获得 root 权限并且您请求 root 访问权限。
android 智能手机/平板电脑与 Arm cpu 一起工作,而不是 x85。架构不同。但是如果你为arm linux交叉编译它,你可以在android中运行一个C应用程序。或者您可以在 android 设备中使用 ac 编译器。人们将c编译器移植到android。你可以试试 C4DROID 和安卓市场。但是由于 sd 卡的 android 权限,您只能在系统内存中运行编译的程序。