2016-11-19 6 views
2

でインラインアセンブリを使用するのと同様のAndroid用Javaでバイトコードを実行できるかどうか不思議です。 C++では、アセンブリを実行してその結果をプログラムで使用できます。AndroidがC++のインラインアセンブリのようなDalvikバイトコードを実行する

私は実行時にapkの実際のコンパイルの前にバイトコードを挿入したくありません。

// example of MSVC-syntax inline-asm syntax; not actually doing anything useful. 
__asm { 
     mov bl, 2 
     sub bl, 0 
     div bl 
     add ax, 0 
} 
+1

[ジャスミン](http://jasmin.sourceforge.net/about.html)。 –

+0

@Elliot Jasminは廃止されましたが、とにかくAndroidについては質問しています。 – Antimony

答えて

4

Javaにインラインアセンブリを埋め込む方法はありません。 Javaの場合、言語が指定され、その仕様にはインラインアセンブリは含まれません。ただし、Javaコードは最終的にdexファイルにコンパイルされます。

Androidプラットフォームでは、dexファイルのみが表示され、どのように生成されたか気にしません。 smaliなどのツールを使ってdexバイトコードを手で書くことができます。さらに、そのようなカスタムクラスは、Javaや他の言語からコンパイルされたクラスと自由にやりとりすることができます。ただし、Java言語はバイトコードよりも厳しく、Java以外のバイトコードはJavaラーニングで保証されている不変量を保証するものではありません。

関連する問題