2016-08-30 16 views
-2

AndroidシステムのJniレイヤー、NDk LAYER、C/C++ソースコードコンポーネントのLAYERと混同しています。AndroidのJniレイヤー

新しいカスタムコンポーネントを導入し、アンドロイドベースのプラットフォーム上で機能を書く:

私はNDKコンポーネントとしてC/C++で書かれたすべてのコンポーネントを参照してくださいことはできますか?

c/C++共有オブジェクトの読み込みに役立つファイルjniとは何ですか?

私は以下のリンクを参考にしています:これは、Androidプラットフォームで使用されている命名規則を明確に説明するものではありません。 https://developer.android.com/training/articles/perf-jni.html

誰かがJNI、NDK、c/C++コンポーネントの違いを明確にすることはできますか?

答えて

2

ここは悪い流れです。
C/C++で記述されたNativeGoodAlgorithmというクラスがあります。
NativeGoodAlgorithmのラッパーを書くNativeGoodAlgorithmInterface(JNI)。
ネイティブコードとラッパーをリンクしてライブラリ(.so)を生成するAndroid.mkを作成します。
Androidでは、生成されたライブラリをロードし、GoodAlgorithmという名前のJavaクラスを作成します。
その後、GoodAlgorithmに電話してください。

0

Java Native Interface(JNI)は、JavaコードからC++コードを呼び出す方法で、その逆の方法です。

ネイティブ開発キット(NDK)はJNIを使​​用して、AndroidアプリケーションからC++を呼び出すことができます。

NDKを使用してAndroidアプリから既存のC/C++を呼び出すには、ほとんどの場合、いくつかの作業が必要です。たとえば、C/C++がサポートしている電話機のARM CPU上で実行されていることを確認する必要があります。 2つのレイヤーの間を行き来するデータ構造を定義する必要があります。私は、OSレベルの呼び出しの制限が、アプリケーション内でネイティブコードが実行されているかどうかはわかりませんが、おそらくいくつかあります。

+0

私のプログラムをc/C++言語で記述すると、コンポーネントをNDKコンポーネントとして呼び出せますか? – Just

+0

私はそれが簡単だろうとは思わない。ただし、C++の小さな部分を取り出し、NDKを使用してAndroidアプリから呼び出すことができるかどうかを確認してください。 – cthrall

+0

私は、c/C++で記述されていれば、NDKとして/ name/adress、私のコンポーネントを参照できますか? NDKコンポーネントを作成したことを誰にでも教えてください。 – Just