Android应用程序需要大量时间才能启动

时间:2016-08-30 13:45:46

标签: android performance

我有一款Android应用。在启动画面的onCreate()方法中,我添加了

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            Log.i(SplashActivity.APP_NAME, "Executing post-delayed code");
        }
    , 100);

所以,我希望这个代码会在onCreate退出后100ms后执行。

但是我可以看到我的应用程序在onCreate()之后花了3秒钟执行延迟后的代码(也是在3秒后出现的UI):

08-30 19:00:45.614 4559-4559/com.example.my I/My Example: OnCreate is exited
08-30 19:00:45.621 4559-4683/com.example.my D/OpenGLRenderer:   Use EGL_SWAP_BEHAVIOR_PRESERVED: true
08-30 19:00:45.654 4559-4683/com.example.my I/Adreno: QUALCOMM build                   : 166ada0, Ifd751822f5
                                                            Build Date                       : 01/26/16
                                                            OpenGL ES Shader Compiler Version: XE031.06.00.05
                                                            Local Branch                     : AU12_SBA
                                                            Remote Branch                    : 
                                                            Remote Branch                    : 
                                                            Reconstruct Branch               : 

**08-30 19:00:45.662** 4559-4683/com.example.my I/OpenGLRenderer: Initialized     EGL, version 1.4

**08-30 19:00:48.646** 4559-4559/com.example.my I/My Example: Executing post-delayed code

有人可以告诉我为什么应用程序可以在onCreate()执行延迟后代码和UI后3秒钟开始出现?

请告诉我如何优化这段时间的提示?

还有一个问题,在显示onStart()/ UI之后执行handler.postDelayed()吗?

1 个答案:

答案 0 :(得分:2)

考虑添加更大的超时,因为即使默认的android studio模板设置超时时间为300毫秒。 你可以在android全屏应用程序模板中看到评论

/**
 * Some older devices needs a small delay between UI widget updates
 * and a change of the status and navigation bar.
 */
private static final int UI_ANIMATION_DELAY = 300;

也很大程度上取决于你的布局,因为Android在主线程中绘制它,如果你的UI有很多嵌套级别或硬绘图代码,它也会降低性能。