Xposed は実際にはもっと興味深い方法で動作します/system/bin/app_process
。jar を追加して (/data/data/de.robv.android.xposed.installer/bin/XposedBridge.jar
正確には) 変更します。これにより、任意のメソッド呼び出しに「フック」することができます。基本的に、任意のメソッドの前後に独自のコードを実行できます。GitHub ページのサンプル コードを次に示します。
package de.robv.android.xposed.mods.tutorial;
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
import android.graphics.Color;
import android.widget.TextView;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
public class Tutorial implements IXposedHookLoadPackage {
public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
if (!lpparam.packageName.equals("com.android.systemui"))
return;
findAndHookMethod("com.android.systemui.statusbar.policy.Clock", lpparam.classLoader, "updateClock", new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
TextView tv = (TextView) param.thisObject;
String text = tv.getText().toString();
tv.setText(text + " :)");
tv.setTextColor(Color.RED);
}
});
}
}
これは、システム UI のクロック更新メソッドにフックされ:)
、時刻が追加され、さらにテキストが赤くなります。これにより、Xposed でどのように機能するかについての理解が得られることを願っています。
明白な利点は、元のアプリを置き換えないことです。そのため、解凍、署名、プッシュの手順は必要ありません。元のアプリ、Xposed フレームワーク、およびモジュールを用意するだけです。
編集:また、PNGを解凍して置き換えるだけでは、作業コードにアクセスできません。そのため、ステータスバーのネットワーク速度は、Xposedを使用する必要があるものです-テキストを作成するコードを「掘り下げる」必要がありますステータスバーに表示されます。