web-dev-qa-db-ja.com

Android C ++、Cでプログラミングできますか?

Android C++、Cでプログラミングできますか?答えが「はい」の場合、方法を教えてください。そして、設定する手順は何ですか?

JavaのObj-Cは知りませんが、C、C++、Flash AS3、GoogleがリリースしたSDKに精通しています。

NVDIA SDKが完全に開発されていないことを伝えないでください:)

54
Chintan Trivedi

注:IS以下の回答は非常に古いものであり、完全に修正されることはありません。

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

標準NDKはRTTIをサポートせず、標準c ++の多くの機能(std :: stringなど)も利用できません。これを解決するには、NDKを再コンパイルします。 Dmitry Moskalchukは、これをサポートするNDKの修正バージョンを http://www.crystax.net/Android/ndk-r3.php で提供しています。この変更されたバージョンは、Androidプロセッサーで実行されるすべてのARM電話で動作します。

アプリケーションの種類に応じて、JavaまたはC/C++の使用を決定する必要があります。平均以上の計算能力とゲームを必要とするものには、C/C++を使用します。残りはJavaです。

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

57
Charles

アプリのパフォーマンスが重要な部分をネイティブコードで開発するには、Android NDKを使用する必要があります。 Android NDK を参照してください。

とにかく、私はそれがアプリケーション全体を開発する正しい方法だとは思いません。

15
hara

はい。Androidはプログラミングの主要/優先言語ですが、 Native Development Kit(NDK) を使用して、C++で(ほとんどの場合)Javaアプリをプログラミングできます。 Android、およびC++コードはJavaコンポーネントとインターフェイスする必要があり、Javaコンポーネントのドキュメントも読んで理解する必要があります。したがって、既存のC++コードベースを移植する必要があり、Javaでの書き換えが実用的でない場合を除き、Javaを使用することをお勧めします。

JavaはC++に非常に似ています。C++からJavaへの移行は非常に簡単です。 JavaからC++に移行するのは少し難しくなりますが、ひどいことではありません。 Java for C++プログラマー は、違いを説明するのにかなり良い仕事をします。 AndroidコードをJavaで記述すると、より慣用的であり、開発プロセスも簡単になります(Java Android SDKのツールは、対応するNDKツーリング)

セットアップに関して、Googleは Android Studio IDEをJavaおよびC++ Androidの両方の開発(ビルドシステムとしてGradleを使用)に提供しますが、無料です内部でIDE SDK/NDKを使用して最終出力を生成している限り、必要なAndroidまたはビルドシステムを使用します。

MoSync もご覧ください。MoSyncは、標準のC/C++、使いやすく、よく文書化されたAPI、およびフル機能のEclipseベースのIDEを提供します。そのオープンソース化されたIDEまだかなりクールですが、もうメンテナンスされていません。

3
JPM

C++ Builder XE6も見ることができます。XE7は、C++コードとFiremonkeyライブラリでAndroidをサポートしています。

http://www.embarcadero.com/products/cbuilder

非常に簡単な起動方法、およびネイティブコード。ただし、バイナリのサイズは大きくなります。

2
Fady