0

Android タブレット用のアプリを作成したいのですが、使用できる唯一の言語は Java であり、必要なデータ型 (主に複素数) をサポートしていません。

さらに悪いことに、演算子のオーバーロードをサポートしていないように見えるので、疑似データ型を作成することさえできません。

何千もの複雑な方程式を含む何十年にもわたる科学的および数学的なアルゴリズムを Android に移行したいと考えていますが、コンパイラが本当に問題になっています。

方程式を解いて関数呼び出しに適したリバース ポリッシュに変換するよりも、コンパイラを変更する方が速いと思います。

Android 自体のソースが利用可能であることは知っていますが、コンパイラはありますか?

4

3 に答える 3

4

Dalvik エンジンについて言えば、それはオープン ソースではないと思います。しかし、実際の問題に関しては、いつでも Android のNDKを使用して、C や C++ などのネイティブ コード言語を使用できます。

于 2012-10-29T08:06:40.073 に答える
3

Android は、JVM エンジン Dalvik を含め、完全にオープン ソースです。

ただし、コンパイラや JVM を変更しようとしても、何の解決にもなりません。何百万もの Android デバイスで現在実行されているものを変更することはできません。

現在、これらの数百万のデバイスで実行できるソフトウェアを作成したい場合は、ソフトウェアを適応させるしかありません。複素数を処理する必要がある場合、成功する唯一の方法は、独自の Complex クラス ライブラリを作成し、それを利用するために他の数値ライブラリを変更することです。

于 2012-10-29T08:19:51.357 に答える
2

Java はインタープリターおよびコンパイル済み言語であり、インタープリターはデバイス上で実行されるため、これを行うことはできません。そのため、必要なものを追加するためにコンパイラを変更したとしても、実行中のデバイスはどれも何が起こっているのかわかりません。

代わりに、次のことができます。

  1. C および C++ をサポートするAndroid NDKを使用する
  2. アルゴリズムを変更して Java 内で動作するようにする

また、Android はJava VM ではなくDalvik VMを使用することに注意してください。これはオープン ソースですが、カスタム ROM も作成しない限り、ターゲット デバイスに変更をプッシュすることはできません。

于 2012-10-29T08:09:26.950 に答える