CおよびC ++を使用したAndroid開発[終了]


47

私はC、C ++開発者です。モバイル開発に興味があります。CとC ++を使用してAndroidアプリを開発する方法を知りたいのですが、C、C ++開発者向けのキットを提供しているが、Javaキットのすべての機能を備えているわけではないことを読みました。C / C ++開発キットに行くべきですか、それとも将来すべての機能を提供しないかもしれないので、Javaを学ぶほうがよいでしょうか?

回答:


33

短いバージョン: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 Level 9)以降で実行する必要があります。サービスやコンテンツプロバイダーなどの機能にネイティブにアクセスすることはできません。そのため、それらまたは他のフレームワークAPIを使用する場合は、JNIコードを記述して引き続きアクセスできます。

問題は、最新のNDKを使用すると、デプロイできず、多くの最新でないAndroidバージョンを使用できないことです。

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

努力はあなたからすべてのコンパイルおよび生成プロセスを隠すのVisual Studio 201Xためのプラグインです。この対-のAndroidのようなIDEのプラグインを経由してCまたはC ++で、完全に仕事にネイティブ開発者を支援にもあります。http://code.google.com / p / vs-android /

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

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


8

ゲーム開発に着手する確固たる計画がある場合は、C ++に移行することをお勧めします。ただし、そうでない場合は、Javaをお勧めします。公式のAndroid Webサイトでの優れた入門書を次に示します。

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

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

Javaをまったく知らず、Androidで長期にわたってアプリを開発したい場合は、Javaを学ぶことが不可欠です。公式ウェブサイトで素晴らしいチュートリアルが提供されています。Android開発専用の学習用に入手できる素敵な本があります:ここにあります:Android開発用Javaを学ぶ


質問を投稿した人はすでにC ++を知っているので、あなたのアドバイスのポイントは何ですか?
アビー

7

C / C ++開発キットに行くべきですか、それとも将来すべての機能を提供しないかもしれないので、Javaを学ぶほうがよいでしょうか?

答えは両方です。

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

アンドロイド開発を行うことはJavaを必要としますが、アンドロイドゲーム開発を行うにはC / C ++を使用するという意味はわかりません。なぜc / c ++をずっと使用しないのですか。
ランスポラード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.