Собственно, слова, которые вы использовали здесь, имеют смысл, который отличается от вашего требования.
Что я думаю, вам нужно реализовать множество библиотек.
Для этого вам сначала нужно понять работу операционной системы Linux, а затем, как ее использовать для своей цели.
Здесь я попытаюсь привести краткое описание вашего требования.
Linux Kernel имеет два уровня - пространство пользователя и пространство ядра, пространство пользователя отвечает за взаимодействие с пользователями, а ядро отвечает за взаимодействие с оборудованием. И то, как оба взаимодействуют друг с другом, - это процедура, называемая System Call.
Концепция ядра также здесь. Верхние три слоя, как показано, являются частью пользовательского пространства. Нижний слой - это слой ядра.
![layers of android](https://i.stack.imgur.com/f2vvm.png)
здесь также режим связи между пространством пользователя и пространством ядра является системным вызовом. Но, как правило, только слои библиотеки играют роль, чтобы обеспечить связь между вышеуказанными слоями и ядром.
Затем приходит ваше требование.
, как я должен добавить что-то на втором уровне и предоставлять ресурсы ядра 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
Если когда-нибудь, вы можете все еще не в состоянии выдвинуть этот файл, попробуйте укоренить это устройство.
После перезагрузки устройства эта библиотека будет работать.
Хорошо, позвольте мне быть более ясным, мне нужно вставить механизм докеров на втором уровне на вашей диаграмме, но для этого мне нужно знать протоколы и интерфейс, которые встроенные библиотеки делают с ядром Linux (android) , поэтому для запуска контейнеров я должен предоставить ресурсы через интерфейс механизма докеров и Linux-ядра. надеюсь, я объясню свою точку зрения. ? –
, так что вы подразумеваете, что докерный движок обеспечит api верхним уровням и будет говорить с уровнем ядра? любое другое использование докерного двигателя? –
Хорошо, я стараюсь. но не может найти способ сделать это. https://www.docker.com/what-docker –