什么是MainActivity,就是一个Android的APP 如果它有Activity的话,那么最开始启动的那个Activity就是MainActivity。
每一个组件,包括Activity都必须要在AndroidManifest.xml文件中申明。
如果是MainActivity的话,那么就会有下面这两个特征:
我们随便找了两个APP的AndroidManifest.xml文件看一看
在MainActivity下面都会声明一个有intent启动这个Activity的通知,这个intent传递的消息是由我们的系统发出的。这两个缺一不可,第一个action 说明这是第一个启动的Activity的,
没有了 category android:name=”android.intent.category.LAUNCHER”这个选项就找不到启动的界面。
所以我们要在一堆Activity里面找谁是MainActivity,只需要遍历一下XML文件,然后找到这两个特征我们就可以知道谁是MainActivity。
Python中已经提供很多强大的轮子(模块,库)来帮我们解析XML文件,现在我们就用这些轮子找到我们的MainActivity。
import xml.dom.minidom
for act in actList:
if act.toxml().find("android.intent.action.MAIN")>0 \
and act.toxml().find("android.intent.category.LAUNCHER")>0:
print act.getAttribute("android:name")
break
找到就会返回一个大于0的数,否则就是-1
搞定