访问android os根文件

时间:2012-06-05 17:08:23

标签: android c operating-system controls

我有以下疑问:

我已经读过android os基于linux,我想它可能和ubuntu具有相同的结构(在文件配置方面:/ root,/ dev等)。 那么,是否有可能在Android中运行用C编写的应用程序?就像在ubuntu中可以做到的那样?如果是的话,我该怎么做?

另外,如何通过Android应用程序(用java编写)访问根文件?以及如何访问操作系统的行为(例如中断)?

提前感谢您的回答。

GUS

4 个答案:

答案 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)

一个Android智能手机/平板电脑使用Arm cpu,而不是x85。建筑是不同的。 但如果你为arm linux交叉编译,你可以在android中运行一个C应用程序。或者您可以在Android设备中使用c编译器。人们将c编译器移植到android。你可以尝试C4DROID和Android市场。但是你只能在系统内存中运行已编译的程序,因为有关sd卡的android权限。