监控Activity的启动等状态--- 源码级

1.代码

参见:http://*.com/questions/9452549/monitoring-the-recent-apps

private void setActivityController() {
IActivityManager am = ActivityManagerNative.getDefault();
try {
am.setActivityController(new ActivityController());
} catch (RemoteException e) {
e.printStackTrace();
}
} public class ActivityController extends IActivityController.Stub { private static final String TAG = ActivityController.class.getSimpleName(); @Override
public boolean activityResuming(String pkg) throws RemoteException {
Log.e(TAG, "activityResuming -- "+pkg);
return true;
} @Override
public boolean activityStarting(Intent intent, String pkg)
throws RemoteException {
Log.e(TAG, "activityStarting -- "+pkg+" intent="+intent);
return true;
} @Override
public boolean appCrashed(String processName, int pid, String shortMsg, String longMsg,
long timeMillis, String stackTrace) throws RemoteException {
Log.e(TAG, "appCrashed -- "+processName);
return true;
} @Override
public int appEarlyNotResponding(String processName, int pid, String annotation)
throws RemoteException {
Log.e(TAG, "appEarlyNotResponding -- "+processName);
return 0;
} @Override
public int appNotResponding(String processName, int pid, String processStats)
throws RemoteException {
Log.e(TAG, "processName -- "+processName);
return 0;
}
}

2.需要申明权限:

    <uses-permission android:name="android.permission.SET_ACTIVITY_WATCHER"/>
上一篇:lesson8:AtomicInteger源码解析及性能分析


下一篇:node.js之path