2009-07-07 4 views
9

私は小さなオープンソースのAES暗号化クラスをAndroidに移植したいと思っています。AndroidのAPIができるだけJava 6 APIにできるだけ近い場合は、私の仕事を大幅に減らすでしょう。Androidで実装されているJava 6 APIの量はどれくらいですか?

私はこれについてGoogleで検索しようとしたため、どれくらい実装されていますか(参照可能)、まだ役に立つものはありませんか?

答えて

4

IMHO一般的にJava 6が動作します。コンパイラがあなたのために働きます。

自己実装の暗号化:Bouncy Castleを試してください。一般的に、既知の暗号アルゴリズムの自己実装は良い考えではありません。

+0

これに感謝します。弾力のあるキャッスルの実装は、私がやろうとしていることに対して少し残酷すぎるようです。私はちょうど小さなファイル暗号化アプリを作ることで、私の足をアンドロイドに濡らすことを計画しています。私の背景はウェブアプリケーションであり、シングルフォーカスアプリケーションではないので、どれほど複雑なのかは分かりません。 – warsong

4

http://developer.android.com/reference/でJavaライブラリリファレンスを確認しましたか?

+0

Android APIはJava APIと同じではありません! – tuergeist

+1

AndroidはJavaベースでJavaのコンパイラも使用しているので、自分で質問に答えることができます。 Java 6コードを試してみてください。 – tuergeist

+1

tuergeist:Androidは独自のバイトコードとインタプリタを持っているので、コンパイラは完全に違っていると思いましたか? –

1

一般的に、グラフィックスやサウンド関連のライブラリを使用していない限り、大きな問題はありません。 Androidはスイングやawtをサポートしていません。

また、これはアンドロイドの制限ではありませんが、アンドロイドが通常動作するプラットフォーム(ARM)には浮動小数点ユニットがないため、浮動小数点で多くの問題が発生するでしょう

+0

私は彼らがまだ浮動小数点演算を行うことができると思いますが、これまでの経験よりもはるかに遅くなりますか? – MatrixFrog

2

アンドロイドプロジェクトのコンパイルの進捗状況は、Javaコンパイラ(主にSE 5.0 APIを使用)でソースコードを.classファイルとしてJavaバイトコードにコンパイルし、そのようなクラスファイルdalvik VMによってdalvikバイトコード.dexファイルに継続的にコンパイルされます。アプリが実行されると、実際にはdalvik VM上で実行されている.dexです。

0

(そのようなインターフェイスのために@Overrideアノテーションなど)は、Java 6の新しい言語側の機能は、一般的に動作します。 Dalvik VMコンパイラは、Java 6 * .classファイルと互換性があります。
一方、String.isEmpty()、java.util.Arrays.copyOfなどのJDK6の新しいAPI機能は、欠落しているか、新しいAPIレベルが必要です。 (これらの例ではAPI 9以降)
アプリケーションが古いAndroidデバイス(API 8以下)をターゲットにしている場合は、Java 5関数しか使用できません。