2012-06-05 3 views
0

У меня есть следующее сомнение:обращающихся Android OS корневых файлов

я прочитал, что ОС Android основан на Linux, и я предполагаю, что это может иметь ту же структуру, что убунт (с точкой зрения конфигурации файлов:/корнем,/dev и т. д.). Итак, можно ли запустить приложение, написанное на C в android? как это можно сделать в ubuntu? если да, то как я могу это сделать?

также, как я могу получить доступ к корневым файлам через приложение Android (написанное в java)? и как получить доступ к поведению ОС (например, в случае прерываний)?

Заранее благодарим за ответы.

Гас

+0

Я поддерживаю этот вопрос, но зачем вам это нужно? – AedonEtLIRA

+0

, если вы хотите разработать антивирус или что-то подобное, а также иметь более высокий контроль над машиной, как и в ubuntu. – gus

ответ

1

Basic Ответ: Запуск приложения C на Android не поддерживается, за исключением через Native Development Kit (NDK).

Вы не можете получить доступ к корневым файлам, кроме как путем укоренения телефона.

Вы можете получить доступ к некоторому поведению ОС через API. В принципе, если он не является частью API, вы не можете получить к нему доступ.

ОС Android основано на Linux, но это ОС, а не сервер окон, например X, или настольная среда, такая как Gnome или KDE.

+0

спасибо за ответ, теперь я понимаю его лучше. но теперь у меня есть следующие сомнения: 1. когда вы используете приложение для добавления контактов (например, таких телефонных номеров), где эта информация сохраняется в телефоне? могу ли я получить доступ к этому местоположению? если да, то как ?; 2. Можно ли получить доступ к вставке информации в приложении? например: предположим, что приложение запущено, и пользователь вставляет некоторую информацию в поле приложения, можно ли получить доступ к этой информации через другое приложение? (из-за того, что они работают в «разных» виртуальных машинах). Еще раз спасибо, gus. – gus

0

Вы можете запустить C and C++ код на андроид с использованием NDK. Вы также можете использовать рамки QT. Но код запускается в виртуальной машине по имени Давлик. Android имеет root acount, но по умолчанию он недоступен для пользователя. Поэтому доступ к каталогу зависит от chmod.

Если вы хотели бы прочитать о доступе к низкому уровню в андроида: http://www.phrack.org/issues.html?issue=68&id=6

И об архитектуре эта система: https://developer.android.com/guide/basics/what-is-android.html

+0

спасибо за ответ, очень полезно. но копая немного больше структуры android os, теперь у меня есть следующие сомнения: 1. Когда вы используете приложение для добавления контактов (например, таких телефонных номеров), где это информация сохраняется в телефоне? могу ли я получить доступ к этому местоположению? если да, то как ?; 2. Можно ли получить доступ к вставке информации в приложении?например: предположим, что приложение запущено, и пользователь вставляет некоторую информацию в поле приложения, можно ли получить доступ к этой информации через другое приложение? (из-за того, что они работают в «разных» виртуальных машинах). Еще раз спасибо, gus. – gus

+0

1. Данные Contact и orther хранятся в 'SQLite db' 2. В приложении VM есть другой собственный процесс. 2. В Linux доступ к другим процессам возможен, когда вы используете 'ptrace'. В андроиде может быть похоже. – user902691

0

Вы можете запускать программы, используя Runtime.exec. Например, вы можете увидеть Terminal IDE, который запускает множество различных программ, включая ssh, vim и bash. Это также с открытым исходным кодом, поэтому вы можете учиться у code. Вероятно, вам придется включить исполняемый файл в качестве ресурса или актива, а затем скопировать в локальный каталог, предоставить разрешения на выполнение, затем запустить с помощью Runtime.exec. У вас все еще есть ограниченные права пользователя, так как ваше приложение работает под ограниченной учетной записью, если устройство не внедрено и вы запрашиваете доступ root.

0

Android-смартфон/планшет с процессором Arm, а не x85. архитектура отличается. , но вы можете запустить приложение C в android, если вы перекрестите его для arm linux. или вы можете использовать компилятор c внутри устройства Android. люди портировали c компилятор на android. вы можете попробовать C4DROID и на рынке Android. но вы можете запускать только скомпилированную программу в системной памяти из-за прав доступа к андроиду на SD-карте.

Смежные вопросы