理論的には、Dalvikは、たとえば次のコンパイラで作成された仮想マシンのバイトコードを実行します。
- AspectJ
- ColdFusionColdFusion
- Clojure
- Groovy
- JavaFXスクリプト
- JRuby
- Jython
- Rhino
- Scala
Java以外の言語で利用可能なDalvik用のバイトコードコンパイラの動作バージョンはすでにありますか?
発売時にJava
は、配布可能なサードパーティのAndroidソフトウェアを構築するために公式にサポートされている唯一のプログラミング言語でした。
C
Android Native Development Kit(Android NDK)。これにより、開発者はとを使用してAndroidソフトウェアコンポーネントを構築できますC++
。
Googleは、ネイティブコードのサポートを提供するだけでなく、人気のある動的スクリプト言語をサポートするようにAndroidを拡張しています。今月初め、Googleは Android Scripting Environment(ASE)をリリースしました。これにより、サードパーティの開発者は、、、、およびを使用して単純なAndroidアプリケーションを構築できperl
ます。ASEのアイデアと使用法については、このサンプルリンクを参照してください。JRuby
Python
LUA
BeanShell
Scalaもサポートされています。Scalaの例については、これらの例link-1、 例link-2、例link-3を参照してください。
ちょうど今、私はここで私が次のようにいくつかの有用な情報を見つけた1つの記事を参照しました:
(C# .net - Mono, etc)
ます。LUA
のスクリプト言語を実行できます。
Perl
Python
BeanShell
Googleリリースの「シンプルな」Androidプログラミング言語の2番目の記事を読みました。この例については、これを参照してください。
ちょうど今(2010年8月2日)「 Android用のフリンクプログラミング言語と計算ツール」に関する記事を読みました。このリンクを参照してくださいLink-1、Link-2
2010年8月4日に、私はについてを見つけましRenderScript
た。基本的に、これは高性能グラフィックプログラミング用のCのような言語であると言われており、Androidアプリケーションで効率的な視覚効果やアニメーションを簡単に作成するのに役立ちます。まだ完成していないのでまだリリースされていません。
Scalaは非常にうまく機能します。
私はAndroidアプリケーションプロジェクトをScala(スクリーンショット付きの中国語で書かれたWebサイト、ソースコード@ GitHub)でプログラミングしており、環境をセットアップするのは非常に簡単です(IDEなしで、ビルドツールとしてSBTを使用)。
Android SDKのすべてのAPIにアクセスできるため、Javaで実行できることはすべて、Scalaでも実行できます。
このブログエントリをチェックして、ScalaとSBTを使用してAndroidアプリケーションを構築する方法を確認できます。
Kawaは、Schemeの素敵な、しかしほとんど知られていないバリアントであり、長年静かに存在し、JVMとDalvikの両方でネイティブに実行されます。したがって、その出力には追加のVMは含まれず、明示的にインポートされたライブラリのみが含まれます。エンドプログラマーにとって、これは、Kawaのパフォーマンスと実行可能ファイルのサイズが標準のJavaとほぼ同じであることを意味します(ProGuardは必要ありません)。
Kawaには、すっきりとした構文を作成する多くのマクロ(Android APIに固有のものを含む)も含まれており(括弧を嫌うものではないと仮定)、Schemeの上に「promises」(遅延評価と先物)などのおいしいものを追加します。 1つに)。この言語は非常に堅牢で十分に文書化されており、Javaの初期の頃から積極的に維持され、進化してきました。
Javaアドベントカレンダーは、Kawaのメリットをいくつかの有益な例とリンクで要約しています。
私はそれで遊んだことはありませんが、Scalaが機能することは知っています。
Androidで動作するもう1つのJVM言語は、両方ともJetbrainsのKotlinとAnkoです。
Mercuryは、Javaバックエンドを使用してAndroidでも動作します。私は誰かが始めるのを助けるはずの簡単なアプリを書きました(他の例はまだほとんどありません)、そしてこの目的のためにもmercury-android-helper(現時点ではいくつかのコミットは短いですが)そしてどちらもProGuardを使用していませんそれでも、.apk
サイズは衝撃的です。)
ここにある他の投稿はScala-on-Androidについて陽気ですが、Scalaフォーラムのポスターは、Dalvikの制限のいくつかを吹き飛ばすScalaの能力にもっと関心があり、それを使用する人々は、非本番コード用に予約していると言います。(ここでScalaの問題に関するいくつかの議論があります。)
MercuryがDalvikに独自の問題を抱えているかどうかはまだわかりませんが、当面はScalaからそれに切り替えました。
DalvikがJIT(Just In Time)コンパイルをサポートするまで、動的に型付けされた言語は使用できません。実験的なEclairブランチの1つでJITサポートがあると思いますが、Androidではまだ正式に利用可能/サポートされていません。
1)Angular + nativeScript
2)反応性