我正在寻找一种方法来改善课程启动时间或至少缩短预定时间。
我已经读过,在 JDK 中,甚至可以在 JVM(在本例中为 dalvik VM)启动之前显示应用程序的启动页面,从而提高性能。这如何在 Android 中实现?
我正在寻找一种方法来改善课程启动时间或至少缩短预定时间。
我已经读过,在 JDK 中,甚至可以在 JVM(在本例中为 dalvik VM)启动之前显示应用程序的启动页面,从而提高性能。这如何在 Android 中实现?
“启动页面甚至可以在 JVM 启动之前显示,从而提高感知性能”
不对。启动页面会在应用程序的 Activity 显示之前显示。这是在 Android Activity Manager Service 和 Window Manager Service 中实现的。
在加速启动性能方面,应用程序唯一可以控制的是只在onCreate()
和onStart()
按性能和预载设计。
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);
}
我已经读过,在 JDK 中,甚至可以在 JVM 启动之前显示应用程序的启动页面,从而提高感知的性能。
首先,Android 不会在 JVM 中执行代码。在构建时,生成的字节码是 Dalvik,因此 Android 使用 DVM。很抱歉很迂腐,但知道这一点很有用。
其次,我建议您阅读启动画面是邪恶的,不要使用它们!不是每个人都会同意作者表达的观点,但我个人同意。
我的观点是,只提供漂亮图片的初始屏幕实际上会增加感知到的性能滞后,因为没有迹象表明用户实际发生了任何事情或应用程序何时出现。
如果有的话,如果你需要在应用程序启动时执行一些长时间运行的操作,一个带有文本的 ProgressDialog 告诉用户正在发生的事情就足够了。例如,类似于下载或安装程序对话框“执行第 1 步,共 8 步...”。