1.在Android4.4以后可以在console面板中,通过‘Display’关键字过滤出启动一个app所消耗时间的log日志;
2.在Android4.4之前检测启动时间可以使用adb命令;
adb shell am start -W com.zcbl.serenity/com.zcbl.serenity.view.SplashActivity(包名/全类名)
3.查看当前手机显示界面的APP的activity全类名:
adb shell dumpsys activity activities
4.查看手机已经运行的进程的adb命令,分两个步骤,如下:
- adb shell
2.ps
备注:android是真后台,ios是假后台;所以android开启app多了就卡了
5.APP启动流程:
点击图标后,am中的launch进程与zygote进程有个通信机制,zygote进程fork出一个进程,然后这个fork出的进程会通过System Service调用ActivityThread中的main函数,在main函数中会new ActivityThread ,然后调用activityThread对象的attach方法,在这个方法中会开启app ,先加载application(调用attachApplication方法,通过进程间的通信,远端进程调用ActivityThread中的handleBindApplication方法),在加载activity;
6.使用系统api来记录启动时间
String traceFilePath = Environment.getExternalStorageDirectory().getAbsolutePath();
File file = new File(traceFilePath, "appTrace");
//开启追踪
Debug.startMethodTracing(file.getAbsolutePath());
//停止追踪
Debug.stopMethodTracing();
//======上面两个必须成对出现
网友评论