13

最近、qt を使用して Android アプリを作成しています。
しかし、大きな質問があります。特殊なアクティビティの呼び出しなど、ネイティブ Android API を使用/呼び出しできますか?

たとえば、Android SDK では、java で連絡先を呼び出します
。startActivityForResult(意図、PICK_CONTACT);

Java Android SDK API 用の C++ ラッパー ライブラリはありますか?

または、(Java で記述された) 特別なコンポーネントが必要な場合、qt android プログラムで使用できますか?
または、「純粋なqt」と「標準のJava」または「C++ android NDK」のページ/アクティビティが混在するプログラムを作成しますか?

(私は MOSYNC フレームワークの経験があるので、この質問をします。これは良いフレームワークでしたが、独自のライブラリに制限されていたため、外部ライブラリや Android 標準 API を使用できませんでした...)

前もって感謝します。

編集: JNI ( http://qt-project.org/doc/qt-5/qtandroidextras-index.html ) の 改善によると 、質問があります: 「任意の」Android Java サードパーティ ライブラリを使用できますか? qtプロジェクト?これらのライブラリを Java SDK プロジェクトで使用しているのでしょうか?

4

3 に答える 3

-1

Android NDK を使用して C/C++ でプログラミングできます。C++ コードベースを静的ライブラリにラップし、それを Java ラッパーと JNI を介してロードする必要があります。

標準 NDK は RTTI をサポートしておらず、std::string などの標準 C++ の多くの機能も利用できません。これを解決するには、NDK を再コンパイルします。Dmitry Moskalchuk は、これをサポートする修正版の NDK をhttp://www.crystax.net/android/ndk-r3.phpで提供しています。この修正版は、ARM プロセッサで動作するすべての Android フォンで動作します。

注: JNI 呼び出しにより、パフォーマンスが大幅に低下する可能性があります。C/C++ でプログラミングする方法を知っていれば、Java はそれほど難しくありません。Java の利点は、Android を実行している任意のデバイスでアプリケーションを実行できることです。一方、NDK アプリケーションはコンパイルされたアーキテクチャに依存します。

于 2013-08-14T13:21:59.137 に答える