3

NDKを使用してAndroidアプリケーションの開発を開始する方法を示すチュートリアルをたくさん見つけました。

しかし、私にはかなり「簡単/愚かな」質問があります。

次の2つのチュートリアルを検討してください。

  1. http://mobile.tutsplus.com/tutorials/android/ndk-tutorial/
  2. http://www.indiedb.com/tutorials/creating-compiling-and-deploying-native-projects-from-the-android-ndk
  3. http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/
  4. http://marakana.com/forums/android/examples/49.html

次に、2番目のチュートリアルで、hello-jni例を作成しています。

私の質問は:

使用後ndk-build

と製品化:

ここに画像の説明を入力してください

結果を使用して、実際のコードlibhello-jni.soの代わりにこれを他の人に配布することは可能ですか?C

たとえば、共有ライブラリを含めるためにを変更してAndroid.mkに置き換えますか?:com_myproject_MyActivity.csomething.so

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mylib
LOCAL_SRC_FILES := com_myproject_MyActivity.c
include $(BUILD_SHARED_LIBRARY)

任意の提案やチュートリアルを歓迎します。前もって感謝します。

4

2 に答える 2

3

ビルド済みのNDKライブラリをlibs/armeabi(またはそれが目的のアーキテクチャに)コピーしてから実行時にロードすることで、使用できます。Androidビルドシステムの観点からは、APKに含めるのは単なる別のファイルです。

ただし、問題は、JNI関数名に、慣例により、それらが属するパッケージとクラスの名前が含まれていることです。したがって、SOコンシューマー・プロジェクトの観点からは、JNI関数のいずれもそのクラスに適合しないため、その使用はかなり不自然に見えます。おそらく、それぞれのJavaクラスが宣言されているコンパニオンJARを出荷する必要があります。

于 2012-08-30T19:20:47.997 に答える
0

VitamioBundle経由、

コードを再利用する必要はありません。

結果のlibhello-jni.soを使用して、実際のCコードの代わりにこれを他の人に配布することは可能ですか?たとえば、共有ライブラリを含めるために、Android.mkを変更し、com_myproject_MyActivity.cをsomething.soに置き換えますか?

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mylib
LOCAL_SRC_FILES := com_myproject_MyActivity.c
include $(BUILD_SHARED_LIBRARY)

VitamioBundleは共有ライブラリと見なすことができます。

したがって、Androidライブラリとして使用できます。

楽しもう。

于 2013-11-18T09:29:30.813 に答える