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