• ベストアンサー

アンドロイドOS提供のグーグル社がC的言語を

使わなくてもいいようにした理由はなんかあるのでしょうか? 素人にちがいので、ご存じの方はなるべく簡単におしえていただくとありがたく存じます。 何卒よろしくお願いします。

  • ooiei
  • お礼率18% (174/927)

質問者が選んだベストアンサー

  • ベストアンサー
  • okgoripon
  • ベストアンサー率44% (1141/2550)
回答No.1

 そういう意図だったかどうかは判断できませんが、「ハードウェアへの依存度が低い」のはメリットの1つでしょう。  Android端末はDalvikという名前の「仮想マシン」の上でアプリケーションが動いています。  「仮想マシン」は、簡単にいえば「通訳さん」です。英語しか話せない召使い(=ハードウェア)と、日本語(=Java言語)しか話せない主人(Androidのアプリケーション)の仲立ちをしています。  この主人は、通訳さんさえ居れば、どんな召使いでもコキ使うことができます。スペイン語しか話せない召使いが来たら、スペイン語の通訳さんをセットで雇えばいいわけですね。  ただ、何をするにも通訳さん(=仮想マシン)を介さないといけないので、何をするにも時間がかかってしまう(=処理が遅い)のがデメリットと言えばデメリットでしょう。とはいえ、今時の召使いは十分に優秀なので、ほとんどデメリットになりませんが。  なお、Android2.2でこの通訳さんの能力が大幅にアップしたので、今までの何十倍も早く翻訳できるようになり、全体として時間が短縮(=高速化)されました。  ちなみに、普通にWindowsが動くPC用のAndroid OS(=スペイン語しか話せない召使い)というのも存在したりします。 http://www.android-x86.org/  これ以上になると、ハードウェアに踏み込む知識が必要になってきて、初心者前提だと説明が難しいので、ここまでにしておきます。

その他の回答 (2)

回答No.3

#2の人に追加してだけどC/C++だと動的にメモリを確保したらその管理は自分でやる必要があります。 下手なプログラマがプログラムを書くとメモリの解放をしないでメモリを消費し続ける物を 書く可能性があります。それは危険なことです。下手したらシステムがクラッシュすることもあります。 逆に自動で不要になったメモリを解放してくれる機能のことをガベージコレクションといいます。 C/C++(/マシン語/アセンブル言語)以外ほとんどの言語ではこのガベージコレクションを実装しています。 そういう意味でPCに比べて限られたリソースのAndroidにおいてはC/C++でのアプリ作成は熟練者以外はやめておくべきです。

  • annys2000
  • ベストアンサー率48% (255/523)
回答No.2

AndroidにはNDK(Native Development Kit)と呼ばれるC/C++での開発環境も用意されています。 JavaによるSDKを使うのが一般的なのはNo.1さんの言うように抽象度が高く、移植が楽である。 高度な機能を実装するのに圧倒的にコーディング量が少ないという利点があります。 アクションゲームなど速度が重要なものはNDKで作られることも多いはずです。 サンデープログラマーがちょっとしたプログラムを開発するのはJavaによるSDKは便利です

関連するQ&A

  • C言語について教えてください。

    フォームに三つラジオボタンとボタン一つだけのC言語プログラムを作りたいです。複雑なものはC#で作っています。C言語にこだわる理由は、すべてのWindows上でFrameworkをインストールしなくとも動くらしいとのことです。 「厳密にはFramework不要の言語は世の中に存在しない」と言う方がいますが、非常に困惑しています。大体でいいんで、WindowsXPとWindows7でテキストファイルの処理ができれば十分です。 こんな簡単なプログラムを作るためには、どんなコンパイラーがよろしいですか? ド素人ですので、教えてください。

  • 同じOSなのですが言語がかわります

    お世話になります。 親会社が外資系になりシステム、OSを統一することになりました。 1.今までは日本語OS WindowsXP SP2でしたが、英語OS windowsXP SP2になります。 これらの違いは具体的になんでしょうか?エクスプローラーやIEなど全て英語で表示されるのでしょうか? (今までのメニューバーの、ファイル、編集、表示等) 2.officeもoffice2003 Std ビジネスライセンスでしたが、 office2003 std MSEAと初めて聞くものに変わります。 この特徴等ご存知であれば教えてください。 また他アドバイスいただけるとうれしいです。

  • C言語とC++

    現在C言語を用いてシューティングゲームを作成しています。 ゲームを作成している方の中には、CではなくC++で作成している人もいるようなんですが、C++で作成するとどのような違いがあるのでしょうか? メリットやデメリット、将来性など詳しく教えてもらえると助かります!

  • C言語とC++

    C言語とC++の違いについて詳しく教えてください

  • c言語について教えて下さい

    知り合いのコードを解析していたときのことです。 彼のコードにはマクロはあまり多くなく、構造体や列挙型を使用していました。 コードの書き方は人それぞれではありますが、マクロで一つずつ定数などを扱うよりも、一つのグループとして構造体や列挙型を使い扱ったほうがよいのでしょうか、教えてください。 また、話は変わるのですが、構造体と列挙型の違いを教えてください。調べたのですがいまいちわかりません(・・;) よろしくお願いします。

  • C言語

    C言語+HTMLをまなびたい ど素人←この位置に私はいます。 初心者 中級者 上級者 この位置の人間が学ぶにふさわしい本を紹介してほしい・

  • C言語

    全く何も分からないド素人なのですが、そんな自分にも分かりやすいC言語の参考書を教えて頂きたいです。 できればですが、基本情報技術者試験の午後試験にも対応しているものがいいです。

  • C言語・Java・Visual Basic…教えてください。

    こんにちは。大学2年の女です。情報系の学校です。 授業の履修登録で困っています。 私は1年のときに必修科目でC言語基礎を習いました。 今年は、C言語中級・Java基礎・Visual Basic基礎のどれか(全部履修することも出来ます) を履修することになっているのですが、どれを履修するか決められません。 3つの違いがさっぱりわからないのです。 調べてみても、「…????」というかんじでわかりませんでした。 パソコン歴はまだ浅く、専門用語なども詳しくないのです。 素人のわたしにもわかるように、3つの主な違いを、どなたか教えていただけませんか? よろしくお願いいたします。  

  • C言語

    あるint型の変数iがあったとします。 i++と++iの違いはなんですか?

  • C言語で

    任意の連立非線形方程式を解くプログラムのソースを探しているのですが。なかなか見つかりません。 もし、ご存知の方がいらっしゃいましたら教えてもらえないでしょうか。 また、CよりもExcelなどで解く方が普通なのでしょうか?