1

我正在寻找一种方法来改善课程启动时间或至少缩短预定时间。

我已经读过,在 JDK 中,甚至可以在 JVM(在本例中为 dalvik VM)启动之前显示应用程序的启动页面,从而提高性能。这如何在 Android 中实现?

4

3 回答 3

0

“启动页面甚至可以在 JVM 启动之前显示,从而提高感知性能”

不对。启动页面会在应用程序的 Activity 显示之前显示。这是在 Android Activity Manager Service 和 Window Manager Service 中实现的。

在加速启动性能方面,应用程序唯一可以控制的是只在onCreate()onStart()

于 2013-08-19T00:58:07.580 回答
0

按性能和预载设计。

welcome_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/image_welcome"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/welcome" />

</RelativeLayout>

WelcomeActivity.java

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.welcome_activity);

    AlphaAnimation alphaAnim = new AlphaAnimation(1.0f, 1.0f);
    alphaAnim.setDuration(DURATION_TIME);
    alphaAnim.setFillAfter(true);
    alphaAnim.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {
        }

        @Override
        public void onAnimationRepeat(Animation animation) {
        }

        @Override
        public void onAnimationEnd(Animation animation) {
            // startMainActivity();
            // finish();
        }
    });

    findViewById(R.id.image_welcome).startAnimation(alphaAnim);
}
于 2013-08-19T00:58:32.383 回答
0

我已经读过,在 JDK 中,甚至可以在 JVM 启动之前显示应用程序的启动页面,从而提高感知的性能。

首先,Android 不会在 JVM 中执行代码。在构建时,生成的字节码是 Dalvik,因此 Android 使用 DVM。很抱歉很迂腐,但知道这一点很有用。

其次,我建议您阅读启动画面是邪恶的,不要使用它们!不是每个人都会同意作者表达的观点,但我个人同意。

我的观点是,只提供漂亮图片的初始屏幕实际上会增加感知到的性能滞后,因为没有迹象表明用户实际发生了任何事情或应用程序何时出现。

如果有的话,如果你需要在应用程序启动时执行一些长时间运行的操作,一个带有文本的 ProgressDialog 告诉用户正在发生的事情就足够了。例如,类似于下载或安装程序对话框“执行第 1 步,共 8 步...”。

于 2013-08-19T01:13:27.893 回答