build/intermediates/manifest/androidTest/${flavorDir}/AndroidManifest.xml
にある:
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.app"
android:handleProfiling="false"
android:functionalTest="false"
android:label="Tests for ..."/>
ここで target を指定してる。
adb shell am instrument -w com.hello.test/android.test.InstrumentationTestRunner
runInstrument
mAm.startInstrumentation
ActivityManagerNative#startInstrumentation
`mRemote.transact(START_INSTRUMENTATION_TRANSACTION, data, reply, 0)'
よくわからなくなった
Class hierarchy
Instrumentation
InstrumentationTestRunner
これが AndroidTestRunner
を呼び出してる。
AndroidTestRunner
extends junit.runner.BaseTestRunner
.
これが、ActivityInstrumentationTestCase2
とかを
走らせる。各テストケースによる処理は未読。
同じ process空間で走る。ここは実験したらそうだったというので、ソースは読めてません