项目进入优化迭代阶段,在开始优化性能时候发现Application 的onCreate函数被调用多次,期间差不多耽误一两秒的启动时间,
发现是多进程导致的,在此记录一下;
/**
* 获取进程号对应的进程名
* @param pid 进程号
* @return 进程名
*/
private static String getProcessName(int pid) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader("/proc/" + pid + "/cmdline"));
String processName = reader.readLine();
if (!TextUtils.isEmpty(processName)) {
processName = processName.trim();
}
return processName;
} catch (Throwable throwable) {
throwable.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException exception) {
exception.printStackTrace();
}
}
return null;
}
根据获取进程名称做相应初始化工作
if (!TextUtils.isEmpty(processName) && processName.equals(this.getPackageName())) {//判断进程名,保证只有主进程运行 //在这里进行主进程初始化逻辑操作 Log.i(">>>>>>","oncreate"); }