実際には、ここで使用した単語は、あなたの要件とは異なる意味を持ちます。
私はあなたがライブラリのセットを実装する必要があると思います。
まずLinux OSの動作を理解してから、アンドロイドがその目的のためにどのように利用するのかを理解する必要があります。
ここでは、要件に関する簡単な説明をしようとします。
Linuxカーネルには、ユーザースペースとカーネルスペースの2つのレイヤーがあり、ユーザースペースはユーザーとのやりとりを担当し、カーネルはハードウェアとのやりとりを担当します。そして、両方がお互いにやりとりする方法は、システムコールと呼ばれる手順です。
ここでもコアコンセプトは同じです。示されているように、上位3つのレイヤはユーザ空間の一部です。下層はカーネル層です。ここ
また、ユーザ空間とカーネル空間の間の通信のモードは、システムコールです。しかし、通常、ライブラリのレイヤだけが、上記のレイヤとカーネルとの間の通信を行う役割を果たします。
あなたの要件があります。
は、どのように私はあなたが使用しているシステムは、あなたができるインターフェースを呼び出すに新しいライブラリを追加することができ、あなたはまた同じことをしなければならないこと
にLinuxカーネルリソースを第二の層で何かを追加し、提供しなければなりませんカーネルに話す。
また、Javaコードから共有ライブラリのメソッドにアクセスするには、共有ライブラリから公開されているメソッドの周りにJNI wrappers
を持ち込む必要があります。
その後、あなたはまた、あなたのライブラリーを開発することができ、あなたの要件ごとに、すべてをだの.soファイル
here you can refer a sample how to develop a shared library for android
を得ることができ、クロスコンパイル後。
adb push
コマンドを使用して、そのファイルを/system/lib
にプッシュする必要があります。
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
いつか場合、あなたはまだできていない、そのファイルを押し、そのデバイスを根絶しようとすることができるシステム/その後、マウントしようと、ケースのプッシュが機能しない場合があり、そのことができます。
ライブラリが動作するデバイスを再起動した後。
私はあなたの与えられたダイアグラムで2番目の層にドッキングエンジンを挿入する必要がありますが、そうするためには、ネイティブライブラリがLinuxカーネル(アンドロイド)で行うプロトコルとインターフェイスを知っていなければなりません。 。だから、私はドッカーエンジンとLinuxカーネルのインターフェイスを介してリソースを提供する必要があるコンテナを実行する。私は私の見解を説明してくれることを望みます。 ? –
あなたはdockerエンジンが上層にapiを提供し、カーネル層と話すことを意味しますか?ドッキングエンジンの他の使用? –
私はそれをやろうとしています。それを行う方法を見つけることができません。 https://www.docker.com/what-docker –