如何以编程方式启动仪表项目采用Android意图是什么?(How to start Instrume

2019-07-18 05:41发布

开始测试用例的一种方法是,

adb shell am instrument 
  -w com.google.vishal.test/android.test.InstrumentationTestRunner 

我要开始使用此代码的Android(意图)

例如,

adb shell am start -n com.google.android.contacts/.ContactsActivity

我们可以运行使用的是Android意图通过以下方法: -

Intent intent = new Intent(com.google.android.contacts, ContactsActivity.class);
startActivity(intent);

但是,如何运行

adb shell am instrument 
  -w com.google.vishal.test/android.test.InstrumentationTestRunner 

由Android意图是什么?

感谢您的帮助提前:-)

Answer 1:

命令启动亚行外壳 仪表 : -

adb shell am instrument -w com.android.vishal.project.test/android.test.InstrumentationTestRunner   

Android的代码,开始从Android的活动 仪器 : -

 startInstrumentation(new ComponentName("com.android.vishal.project.test", "android.test.InstrumentationTestRunner"), null, null);

注意 :

另一种方法,

Android的代码开始仪器(的Android 2.3到Android 4.1.2)

String str_cmd = "adb shell am instrument -w com.android.vishal.project.test/android.test.InstrumentationTestRunner";
Runtime.getRuntime().exec(str_cmd);

适用于Android 4.2它需要许可“android.permission.INJECT_EVENTS”&仅由系统应用程序允许的。 用户应用程序无法使用的,因为一些安全原因,此权限。

所以你不能使用调用Runtime.getRuntime()EXEC(str_cmd)。 适用于Android 4.2起...

所以现在的工作方法是:

 startInstrumentation(new ComponentName("com.android.vishal.project.test", "android.test.InstrumentationTestRunner"), null, null);

从您的活动执行此命令。

谢谢。



Answer 2:

这实际上是不可能的事,幸福的原因是运行您通过亚行需要将其仪器仪表,亚行已经因为安全的某些特权,因此不能在手机上(与任何开放源代码运行至于,它是当然可能的,但你必须重写一些Android和那就只在您安装在手机上工作!)。

请问你为什么要这么做? 如果你真的需要在应用程序自动化您更好的选择可能是我们任何新的Android UI测试框架或只在模拟器上测试和使用,在视图层次结构的顶部运行,因为尝试一些你当前什么是死路一条。



文章来源: How to start Instrumentation project programmatically using Android Intent?