テストしたアプリ内からインストルメンテーションインターフェイスを使用してアプリをインストルメントしたいと思います。すべてのアクティビティを拡張するカスタムアクティビティがあります。その中で、アプリに関する情報を取得するためにインストルメンテーションを開始したいと思います。
public class BxActivity extends Activity {
@Override
protected void onResume() {
super.onResume();
...
boolean instru = startInstrumentation(new ComponentName(BxActivity.this, InstrumentationRobot.class), null, null);
InstrumentationRobot.classのインストルメンテーションコードを使用してアプリを再起動する必要があるImho。同じAndroidプロジェクトとパッケージに含まれています。
public class InstrumentationRobot extends Instrumentation {
@Override
public void onCreate(Bundle arguments) {
super.onCreate(arguments);
Log.v("InstrRobot", "Hello from Robot");
start();
}
このようにマニフェストにインストルメンテーションを追加しました:
<instrumentation
android:name="InstrumentationRobot" (class in the same pkg)
android:targetPackage="my.package.name" />
</application>
これは私のインストルメンテーションの正しいマニフェストコードなので、私の小さなロボットは私に「こんにちは」を出力します。
ありがとう、ソレン