web-dev-qa-db-ja.com

Android CおよびC ++を使用した開発

私はC、C++開発者です。モバイル開発に興味があります。 AndroidアプリをCおよびC++を使用して開発する方法を知りたいのですが、C、C++開発者向けのキットを提供しています read がありますが、 Javaキットの時点でのすべての機能。C/ C++開発キットを使用するか、Javaは将来すべての機能を提供しない可能性があるため?

47
user4124

ショートバージョン:AndroidでC++を使用することは、各Android SDK/NDKバージョンを使用することで可能で簡単ですが、Javaを使用するよりも困難です。


ロングバージョン:

Googleはバージョンごとに、Android Native Development Kitに機能を追加し、Javaコードに依存しないようにしています。

詳しくは http://developer.Android.com/sdk/ndk/overview.html をご覧ください:

ネイティブアクティビティを記述します。これにより、ネイティブコードでライフサイクルコールバックを実装できます。 Android SDKはNativeActivityクラスを提供します。これは、アクティビティのライフサイクルコールバック(onCreate()、onPause()、onResume()など)をネイティブコードに通知する便利なクラスです。ネイティブコードにコールバックを実装して、これらのイベントが発生したときに処理します。ネイティブアクティビティを使用するアプリケーションは、Android 2.3(APIレベル9)以降で実行する必要があります。サービスなどの機能にアクセスできませんおよびコンテンツプロバイダーをネイティブで使用するため、それらまたはその他のフレームワークAPIを使用する場合でも、JNIコードを記述して使用できます。

問題は、最新のNDKを使用すると、展開できなくなり、最新でない多くのAndroid。

とにかく、以前のNDKバージョンであっても、最小限のJavaコード(OSとの対話用))とC++またはネイティブの完全なアプリケーションコードを使用できます。

IDEこのようなVs-AndroidのようなプラグインであるVisual Studio 201xのプラグインであり、すべてのコンパイルおよび生成プロセスを非表示にすることで、ネイティブ開発者がCまたはC++で作業できるように支援する取り組みもあります。 http://code.google.com/p/vs-Android/

また、アプリケーションを他のOSに移植する予定がある場合は、アプリケーションのコアにC++を使用することをお勧めします(おそらくスクリプト言語を上に置いてください)。 C++に固有の理由と利用可能な開発ツールの実装により、開発時間は他の選択肢よりも高価です。たとえば、コンパイル時間が長すぎると、効率的な生産性が失われる可能性があります。

そうは言っても、それはモバイルアプリで作業する最も簡単な方法ではありません。

33
Klaim

あなたがゲーム開発に入るしっかりした計画を持っているなら、私はあなたにC++に行くことを勧めます。しかしそうでない場合は、Javaを使用することをお勧めします。公式のAndroid Webサイト:

Android向けゲーム開発:クイックプライマー

注:チュートリアルのステップ2(ステップ2:言語の選択)をお読みください。

Javaがまったくわからなくて、Androidでアプリを長期的に開発したい場合は、Javaを学ぶことが不可欠です。与えられた素晴らしいチュートリアルがあります。公式ウェブサイトにありますAndroid開発:ここにあります: Learn Java for Android開発

8
Maxood

C/C++開発キットを使用する必要がありますか、またはJavaは将来的にすべての機能を提供しない可能性があるため、学ぶことをお勧めしますか?

答えは両方です。

  • パフォーマンスが主な関心事であるアプリケーションを作成している場合、それらはほとんどJava以外のものでなければなりません。 (C/C++が最も人気)ゲームは大きなチケット商品ですが、他にもあります。
  • Android開発を行っている場合は、時間もかけてJavaを合理的なレベルまで学習する必要があります。
7
user606723