Android源码修改:zygote启动时异步加载class
· \frameworks\base\core\java\com\android\internal\os\ZygoteInit.java
preload()替换为asyncPreload():
private static Thread mCThread = new Thread(new Runnable(){
@Override
public void run(){
preloadClasses();
}
});
private static Thread mRThread = new Thread(new Runnable(){
@Override
public void run(){
preloadResources();
}
});
static void asyncPreload(){
try{
mCThread.start();
mRThread.start();
mCThread.join();
mRThread.join();
}catch(InterruptedException e){
Log.e(TAG,"asyncPreload failed");
}
}