打开另一个app
知道包名和MainActivity类名之后
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn = new ComponentName(packageName,className);
intent.setComponent(cn);
startActivity(intent);
备注:这只是简单使用代码,其实本质上App调用startActivity()并不能直接打开另外一个App。
是通过一系列的调用,由AMS(ActivityManagerService)来通知zygote进程来fork一个新的进程来开启目标App。
其中涉及到的有如:
ActivityManagerService,SystemServer进程,zygote进程等知识点。在这里不进行说明。