2016-05-25 6 views
-3

Я работал над проектом, в котором мне пришлось добавить движок или платформу на втором уровне андроида, где расположены библиотеки и виртуальная машина dalveik. мой вопрос: как мне добавить что-то на втором уровне и предоставить ему ресурсы ядра Linux.Как linux ядро ​​взаимодействует с runtime и библиотеками Android?

Как ядро ​​Linux взаимодействует с библиотеками и временем выполнения андроидов для выполнения приложений? Каковы источники или ресурсы, которые я могу исследовать, чтобы вы могли свободно говорить.

ответ

0

Собственно, слова, которые вы использовали здесь, имеют смысл, который отличается от вашего требования.

Что я думаю, вам нужно реализовать множество библиотек.

Для этого вам сначала нужно понять работу операционной системы Linux, а затем, как ее использовать для своей цели.

Здесь я попытаюсь привести краткое описание вашего требования.

Linux Kernel имеет два уровня - пространство пользователя и пространство ядра, пространство пользователя отвечает за взаимодействие с пользователями, а ядро ​​отвечает за взаимодействие с оборудованием. И то, как оба взаимодействуют друг с другом, - это процедура, называемая System Call.

Концепция ядра также здесь. Верхние три слоя, как показано, являются частью пользовательского пространства. Нижний слой - это слой ядра.

layers of android

здесь также режим связи между пространством пользователя и пространством ядра является системным вызовом. Но, как правило, только слои библиотеки играют роль, чтобы обеспечить связь между вышеуказанными слоями и ядром.

Затем приходит ваше требование.

, как я должен добавить что-то на втором уровне и предоставлять ресурсы ядра Linux на него

Вы также должны сделать то же самое, вы можете добавить новую библиотеку, в которой с помощью системных вызовов интерфейса вы можете говорить с ядром.

Также для доступа к методам разделяемой библиотеки из Java-кода вам необходимо ввести JNI wrappers вокруг методов, открытых из вашей общей библиотеки.

Затем после кросс-компиляции вы можете получить файл .so here you can refer a sample how to develop a shared library for android

Вот и все, согласно вашему требованию, вы можете также развивать свою библиотеку.

Затем вам необходимо нажать этот файл на /system/lib с помощью команды adb push. Их может быть случай, толчок может не работать, а затем попытаться смонтировать/системы

adb shell mount -o remount,rw /system //and then again try to push 
adb push mylibrary.so /system/lib/mylibrary.so 
adb shell chmod 644 /system/lib/mylibrary.so // set the permission 

Если когда-нибудь, вы можете все еще не в состоянии выдвинуть этот файл, попробуйте укоренить это устройство.

После перезагрузки устройства эта библиотека будет работать.

+0

Хорошо, позвольте мне быть более ясным, мне нужно вставить механизм докеров на втором уровне на вашей диаграмме, но для этого мне нужно знать протоколы и интерфейс, которые встроенные библиотеки делают с ядром Linux (android) , поэтому для запуска контейнеров я должен предоставить ресурсы через интерфейс механизма докеров и Linux-ядра. надеюсь, я объясню свою точку зрения. ? –

+0

, так что вы подразумеваете, что докерный движок обеспечит api верхним уровням и будет говорить с уровнем ядра? любое другое использование докерного двигателя? –

+0

Хорошо, я стараюсь. но не может найти способ сделать это. https://www.docker.com/what-docker –

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

  • Нет связанных вопросов^_^