ap日志查看Android启动流程

ap日志查看Android启动流程

event日志查看:adb logcat -b “events” > events.txt

看了 Android系统启动init进程 – 干了啥事init进程——从kernel Log查看,越来越云里雾里,知道大致情况就行:Loader->Kernel->init->Zygote->SystemServer


event日志关键字boot_progress


在这里插入图片描述
一般搜索“boot_progress”直观的查看时间:

  • boot_progress_start
  • boot_progress_preload_start
  • boot_progress_preload_end
  • boot_progress_system_run
  • boot_progress_pms_start
  • boot_progress_pms_system_scan_start
  • boot_progress_pms_data_scan_start
  • boot_progress_pms_scan_end
  • boot_progress_pms_ready
  • boot_progress_ams_ready
  • boot_progress_enable_screen

在这里插入图片描述

查看EventLogTags.logtags

在这里插入图片描述

启动SystemServer开始


boot_progress_start、boot_progress_preload_start、boot_progress_preload_end

对照上面Events日志缺少boot_progress_start、boot_progress_preload_start、boot_progress_preload_end,其实此时是在Zygote进程启动SystemServer。
在这里插入图片描述
frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
在这里插入图片描述

boot_progress_system_run

frameworks/base/services/core/java/com/android/server/EventLogTags.logtags
在这里插入图片描述
在这里插入图片描述
frameworks/base/services/java/com/android/server/SystemServer.java
在这里插入图片描述 在这里插入图片描述

boot_progress_pms_start

frameworks/base/services/core/java/com/android/server/EventLogTags.logtags
在这里插入图片描述
在这里插入图片描述
SystemServer添加PackageManagerService.main:
boot_progress_pms_startboot_progress_pms_system_scan_startboot_progress_pms_data_scan_startboot_progress_pms_scan_endboot_progress_pms_ready

    public main(Injector injector, boolean onlyCore, boolean factoryTest) {
        // 。。。。。。。。。。。。
        EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_START,
                SystemClock.uptimeMillis());

        if (mSdkVersion <= 0) {
            Slog.w(TAG, "**** ro.build.version.sdk not set!");
        }
        // 。。。。。。。。。。。。
            long startTime = SystemClock.uptimeMillis();

            EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_SYSTEM_SCAN_START,
                    startTime);
            // 。。。。。。。。。。。。
            File frameworkDir = new File(Environment.getRootDirectory(), "framework");
            // 。。。。。。。。。。。。
            // Collect vendor/product/system_ext overlay packages. (Do this before scanning
            // any apps.)
            // 。。。。。。。。。。。。
            if (!mOnlyCore) {
                EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_DATA_SCAN_START,
                        SystemClock.uptimeMillis());
                scanDirTracedLI(sAppInstallDir, 0, scanFlags | SCAN_REQUIRE_KNOWN, 0,
                        packageParser, executorService);

            }
            // 。。。。。。。。。。。。
            EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_SCAN_END,
                    SystemClock.uptimeMillis());
            Slog.i(TAG, "Time to scan packages: "
                    + ((SystemClock.uptimeMillis()-startTime)/1000f)
                    + " seconds");
            // 。。。。。。。。。。。。
            // can downgrade to reader
            t.traceBegin("write settings");
            mSettings.writeLPr();
            t.traceEnd();
            EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_READY,
                    SystemClock.uptimeMillis());

boot_progress_ams_ready

frameworks/base/services/core/java/com/android/server/am/EventLogTags.logtags
在这里插入图片描述
在这里插入图片描述
frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java

        Slog.i(TAG, "System now ready");
        EventLogTags.writeBootProgressAmsReady(SystemClock.uptimeMillis());

frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerService.java

writeBootProgressEnableScreen(SystemClock.uptimeMillis());

这里注意 ActivityManagerService.systemReadyActivityManagerService.Lifecycle.startService 是不同的
在这里插入图片描述 在这里插入图片描述
OK,到此结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xhBruce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值