- ベストアンサー
アンドロイドOS提供のグーグル社がC的言語を
使わなくてもいいようにした理由はなんかあるのでしょうか? 素人にちがいので、ご存じの方はなるべく簡単におしえていただくとありがたく存じます。 何卒よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
そういう意図だったかどうかは判断できませんが、「ハードウェアへの依存度が低い」のはメリットの1つでしょう。 Android端末はDalvikという名前の「仮想マシン」の上でアプリケーションが動いています。 「仮想マシン」は、簡単にいえば「通訳さん」です。英語しか話せない召使い(=ハードウェア)と、日本語(=Java言語)しか話せない主人(Androidのアプリケーション)の仲立ちをしています。 この主人は、通訳さんさえ居れば、どんな召使いでもコキ使うことができます。スペイン語しか話せない召使いが来たら、スペイン語の通訳さんをセットで雇えばいいわけですね。 ただ、何をするにも通訳さん(=仮想マシン)を介さないといけないので、何をするにも時間がかかってしまう(=処理が遅い)のがデメリットと言えばデメリットでしょう。とはいえ、今時の召使いは十分に優秀なので、ほとんどデメリットになりませんが。 なお、Android2.2でこの通訳さんの能力が大幅にアップしたので、今までの何十倍も早く翻訳できるようになり、全体として時間が短縮(=高速化)されました。 ちなみに、普通にWindowsが動くPC用のAndroid OS(=スペイン語しか話せない召使い)というのも存在したりします。 http://www.android-x86.org/ これ以上になると、ハードウェアに踏み込む知識が必要になってきて、初心者前提だと説明が難しいので、ここまでにしておきます。
その他の回答 (2)
- bakayarou_
- ベストアンサー率23% (32/136)
#2の人に追加してだけどC/C++だと動的にメモリを確保したらその管理は自分でやる必要があります。 下手なプログラマがプログラムを書くとメモリの解放をしないでメモリを消費し続ける物を 書く可能性があります。それは危険なことです。下手したらシステムがクラッシュすることもあります。 逆に自動で不要になったメモリを解放してくれる機能のことをガベージコレクションといいます。 C/C++(/マシン語/アセンブル言語)以外ほとんどの言語ではこのガベージコレクションを実装しています。 そういう意味でPCに比べて限られたリソースのAndroidにおいてはC/C++でのアプリ作成は熟練者以外はやめておくべきです。
- annys2000
- ベストアンサー率48% (255/523)
AndroidにはNDK(Native Development Kit)と呼ばれるC/C++での開発環境も用意されています。 JavaによるSDKを使うのが一般的なのはNo.1さんの言うように抽象度が高く、移植が楽である。 高度な機能を実装するのに圧倒的にコーディング量が少ないという利点があります。 アクションゲームなど速度が重要なものはNDKで作られることも多いはずです。 サンデープログラマーがちょっとしたプログラムを開発するのはJavaによるSDKは便利です