Android本身提供了一个HierarchyViewer工具可以获取当前屏幕中显示的内容,那如何才能获取到当前屏幕所对应的activity的名称呢?现在正在开发一款基于Android的自动化测试工具,需要用到activity名称作为关键特征值,在这卡壳了,希望各位提供帮助,谢谢!

解决方案 »

  1.   


    public class RunningActivity extends Activity {
            private static final String tag = "RunningActivity";
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            
            ActivityManager am= (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
            
           List<RunningTaskInfo> runningTasks = am.getRunningTasks(1);
           
           RunningTaskInfo rti = runningTasks.get(0);
           ComponentName component = rti.topActivity;
           
           Log.i(tag, component.getClassName());
        }
    }<uses-permission android:name="android.permission.GET_TASKS"></uses-permission>
      

  2.   

    不好意思,我没有说清楚,我的意思在没有应用源码的情况下,获取当前正在运行的应用的activity的名称。