我现在的应用程序需要一个冷启动的~8 seconds,我想优化它。
因此,我在我的Application onCreate (应用程序,而不是活动)中添加了一个日志条目。
override fun onCreate() {
Log.d("myTag", "Calling Application onCreate()")
....
}在查看日志和测量时间时,我发现上面提到的8秒包括以下内容:
Tapping app icon => Application.onCreate =4秒
Application.onCreate => my Activity visible =4秒
我知道我可以从Application.onCreate()开始优化时间。这是我的代码,我可以加快这部分的速度。
,但是如何优化系统所需的时间,直到我的Application.onCreate被调用为止?,谢谢!
发布于 2021-07-25 04:30:42
听起来是系统的一个很好的用法。我通常使用(至少) gfx、input、view、wm、am、res、dalvik、bionic和sched类别。确保足够缓冲区大小的-b 10000不会造成损害。
您将得到一个html文件,该文件可以在浏览器中加载,也可以通过chrome/Chromium的内置chrome://跟踪页面打开。
在顶部,您将看到CPU的详细信息,如使用量%,以及哪个线程在何时运行。然后,您将看到设备上的所有进程,其中包含嵌套的有色块(“段”),其中包含有关当前正在发生的事情的信息。在每个线程的顶部,有一个小的彩色条:白色是“休眠”(这包括等待互斥),蓝色是“等待CPU",绿色是”运行在CPU上“。
如果有一个片段看起来很有趣,但您不理解它的确切含义,那么在https://cs.android.com/上搜索文本可能是有用的。
在任何情况下,我的猜测是,您要么有一些库链接,要么ContentProviders在Application.onCreate之前需要一些时间。这两者在一个系统中都是可见的。如果我的猜测是错的,你可能会发现其他的东西。祝你好运!)
(它也可以是类初始化.(听到你的发现会很有趣的!)
https://stackoverflow.com/questions/68500322
复制相似问题