0

Androidのネイティブメソッドをオーバーライドできますか?クラス/インターフェースの拡張とそのメソッドの実装は別として。
.soファイルを使用してネイティブメソッドをオーバーライドできますか?
たとえば。ネイティブコードにmethodA()がある場合、.soファイルでそれをオーバーライドしますか。AndroidアプリケーションからmethodA()を呼び出すたびに、.soファイルでmethodA()が呼び出されるようにしますか?

4

2 に答える 2

0

いいえ。DalvikVMは、JNI DefineClass()呼び出しに対して十分な互換性がありません。したがって、ロードするオーバーライドは、最初にdex形式で使用できる必要があります。

また、アプリの知識がなければ、ネイティブライブラリをアプリに「注入」する方法はありません。

ただし、JavaまたはCのいずれかから、リフレクションを介して実行できる高度なことがたくさんあります。このコードがアクティビティを処理する場合、SharedPreferencesクラスのフィールドを見つけて、ExtendedSharedPreferencesクラスの新しいフィールドに置き換えることができます。

于 2012-10-06T08:35:43.990 に答える
0

ネイティブメソッドだと思うものの例を教えてください。しかし、答えはノーです。ROMを更新せずにAndroidをカスタマイズできるとしたら、カスタムROMの目的は何でしょうか...

編集: あなたが言及している特定のケースについて。SharedPreferencesを拡張し、必要なすべてのメソッドをオーバーライドします。

于 2012-10-05T10:41:28.883 に答える