Androidは言語ですか、それともフレームワーク/プラットフォームですか?


13

AndroidはJava言語に制限のあるJava SDKを使用しており、GoogleはそれがJavaではないと主張していることを知っています。しかし、Androidはプログラミング言語であると言うのは正しいでしょうか?または、AndroidはJavaのフレームワークであると言う方が正しいでしょうか?それとも両方とも本当ですか?


回答:


36

Androidは、独自のフレームワークを提供するOSです(さらに、以下をご覧ください)。しかし、それは間違いなく言語ではありません。

developer.android.comから

Androidは、オペレーティングシステム、ミドルウェア、主要なアプリケーションを含むモバイルデバイス用のソフトウェアスタックです。Android SDKは、Javaプログラミング言語を使用してAndroidプラットフォームでアプリケーションの開発を開始するために必要なツールとAPIを提供します。


5

AndroidはJava言語を使用しません。JVMバイトコードをAndroidが理解できるDalvikバイトコードに変換するオフラインコンパイルプロセスがありますが、Javaを直接理解したり、Javaで動作するAndroidには何もありません。代わりに、他の既存のツールを使用してJava(または他のJVM言語)をバイトコードにコンパイルし、それをDalvikに渡して残りの作業を進めます。


3

Javaは、Android開発用に選択されたサポート対象言語です。Googleは、Java言語用のSDKと人気のあるEclipse Java IDE用のプラグインを作成することを選択したため、人気のある言語でAndroidアプリを作成するための簡単に利用できるツールセットがありました。
ここで紛らわしい部分は、Javaの言語とJavaの仮想マシンが異なることです。標準のJavaプログラムがPCで実行されると、Sun Microsystems Java Virtual Machineで実行するためのバイトコードにコンパイルされたコードが実行されます。基本的に、Androidにはバイトコードも実行する独自の仮想マシンがあります。Androidアプリを実行すると、Android仮想マシンが理解できるバイトコードにコンパイルされた実行中のコード。したがって、Javaは最適な言語ですが、Androidバイトコードにコンパイルする手段があれば、任意の言語でAndroidアプリを技術的に作成できます。(他の言語で利用できるツールはないと思いますが)


1
dxJava、Jython、Scalaなど、どのJVMバイトコードでも実行できるように見えます。自動化には、主にAntルールの変更が含まれます。
ギーコサウルス

2

Androidは、誰でも使用できる無料のオープンソースプラットフォームです。Androidオペレーティングシステムは、各アプリケーションが異なるユーザーであるマルチユーザーLinuxシステムです。Androidは、セキュリティ、メモリ管理、プロセス管理、ネットワークスタック、ドライバーモデルなどのコアシステムサービスをLinuxバージョン2.6に依存しています。


1

Androidは、オペレーティングシステム、ミドルウェア、主要なアプリケーションを含むモバイルデバイス向けのオープンソースソフトウェアスタックです(ソリューションスタックとは、製品やサービスなど、完全に機能するソリューションを提供するために必要なソフトウェアサブシステムまたはコンポーネントのセットです)。ですから、あなたはそれをフレームワークとみなすことにおいて部分的に正しいです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.