2017-08-01 10 views
0

だから私はどのようにアンドロイド作品 と私がこれまでに集めたものから理解しようとされています - それは、Androidアプリを書くための唯一の方法はdalvikバイトコードまでコンパイルするコンパイラ?

-Appsがで実行されるJavaを使用しているようだ

を"dalvik仮想マシン"と呼ばれる仮想マシン

- 仮想マシン上で実行できるdalvikバイトコードにコンパイルされる方法は、最初にJavaコンパイラでコンパイルしてjavaバイトコードを取得し、コンパイラは、アンドロイドによって提供され、javaバイトコードをdalvikバイトコードに「翻訳」します。

質問があればそれはすべて
それでは、dalvikバイトコードまでコンパイルできるC/C++(または他のコンパイル済み言語)コンパイラを作成できないでしょうか?

私はすでにさまざまなcpuアーキテクチャをサポートするC++のクロスプラットフォームコンパイラを持っていますが、dalvikの "アーキテクチャ"もサポートしていないのはなぜですか?

+0

Google I/O 2017以降、KotlinでAndroidアプリを書くことができます。 – Entalpi

答えて

1

Androidアプリを書くための唯一の方法は、Java

You are welcome to use C/C++ as wellを使用しているようです。

アプリのみのAndroid 4.4およびそれ以前の "のDalvik仮想マシン"

と呼ばれる仮想マシンで実行されます。より新しいデバイスは、ARTという新しいランタイム環境を使用します。

dalvikバイトコードまでコンパイルできるC/C++(または他のコンパイル済み言語)コンパイラを作成することはできませんか?

Dalvikバイトコードにコンパイルする他の言語を作成できますか?確かに。既存の言語をDalvikバイトコードにコンパイルできますか?その言語の言語機能がDalvikバイトコードで(合理的に)実装できる場合に限る。

1

Dalvikバイトコードは、x86やarm命令よりはるかに構造化されています。それは、Javaのセマンティクスに従う、クラスやメソッドなどの高レベルの概念を持つ、非常にJavaを中心としています。

C++をJavaプログラムにトランスコンパイルする方法をおおまかに説明します。 C++をdalvikバイトコードにコンパイルしようとすると、同じ問題が発生します。

関連する問題