一、App启动总结

2018-10-28  本文已影响2人  Serenity那年

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命令,分两个步骤,如下:

  1. 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();
        //======上面两个必须成对出现
上一篇 下一篇

猜你喜欢

热点阅读