web-dev-qa-db-ja.com

Android:Java、CまたはC ++?

Android Javaを使用して、いくつかの簡単なアプリを書きました。
しかし、後でこれを見つけました:

CまたはC++でプログラミングするときに、アクティビティの構築、ユーザー入力の処理、ハードウェアセンサーの使用、アプリケーションリソースへのアクセスなどを可能にするヘッダーとライブラリを提供します。 ( ソース

これとどのように関連していますか:

Androidアプリケーションは、Javaプログラミング言語で記述されています。( ソース

3つの言語すべてが可能ですか?
ばかげた質問でごめんなさい。

32
Evgeni Reznik

あなたがリンクしている記事には良い情報があります。 http://developer.Android.com/sdk/ndk/overview.html にもリンクしています。

NDKはほとんどのアプリケーションにメリットをもたらしません。開発者は、その利点と欠点をバランスさせる必要があります。特に、ネイティブコードを使用しても、自動的にパフォーマンスが向上するわけではありませんが、常にアプリケーションが複雑になります。一般に、ネイティブコードは、C/C++でプログラミングしたいという理由だけでなく、アプリケーションに不可欠な場合にのみ使用してください。

NDKの典型的な優れた候補は、信号処理や物理シミュレーションなど、メモリをあまり割り当てない自己完結型のCPU集中型の操作です。メソッドをCで実行するように再コーディングするだけでは、通常、パフォーマンスが大幅に向上することはありません。ネイティブコードで開発する必要があるかどうかを調べるときは、要件を検討し、AndroidフレームワークAPIが必要な機能を提供しているかどうかを確認してください。ただし、NDKは効果的な方法です。既存のC/C++コードの大きなコーパスを再利用します。

33
Michael Levy

Androidはその下のLinuxなので、どの言語でも実行できます。私はAndroid電話でPerlスクリプトを実行しました。実用的なアプリケーション開発の観点から、Javaを実行している- ダルビク が一般的なルートです。

5
Rob Kielty

Javaでは、常に「ネイティブコード」コンポーネントを呼び出すことができます。ただし、微妙なバグやプラットフォームの依存関係がコードに導入される可能性があるため、可能であればそれらを回避する必要があります。

アプリケーション全体をAndroidでコーディングできるとは思いませんが、最低でもJavaラッパーが必要です。

4
Charlie Martin

これは良い質問です。AFAIK、c、またはc ++は、Android API、センサー関連の機能やハードウェアなど)を使用するよりも、コアdalvik機能を実際にプログラムしたいときに真価を発揮します。

APIを使用してアプリをビルドする場合、ほとんどはJava/XMLです。

3
kosa

これらの「メモリを多く割り当てない、自己完結型のCPU集中型操作」の1つをCで書き換えるとパフォーマンス/バッテリー寿命が向上する可能性がありますこの調査 によると、17の係数で。 この記事 は、CCTOOLS Fortranの実行がさらに高速であることを示しています。したがって、代替言語は検討する価値があります。

2
Chris