2013-08-19 14 views
1

我正在尋找一種方法來提高類引導時間或至少在先的時間。android更好的啓動性能

我讀過JDK中的應用程序的啓動頁面,即使在JVM(本例中爲dalvik VM)啓動之前,也可以顯示應用程序的啓動頁面,從而提高性能。這在Android中如何實現?

+1

請問在啓動時你在做什麼?提高性能的可能性取決於延遲問題。關於閃屏:你可以* *使用它們的Android,但通常也有根據您的應用程序更好的解決方案。 – dst

回答

0

不是真正的「醒目頁面甚至可以這樣之前的JVM開始給人一種 感知性能提高顯示」。啓動頁面顯示在您的應用程序的「活動」之前。這是在Android活動管理器服務和窗口管理器服務中實現的。

在加快開機性能方面,唯一的根據是應用程序的控制是性能和預負荷只做必要的初始化在onCreate()onStart()

+0

是的。據我所知,Java應用程序方面卻閃屏類,而在Android上側沒有這件事情,但是有一種方法。 – Geros

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); 
} 
0

我讀過,在JDK中的應用程序的初始頁面可以在JVM啓動,從而得到與感知性能提高,甚至前顯示。

首先,Android不會在JVM中執行代碼。在構建時,生成的字節碼是Dalvik,所以Android使用DVM。抱歉是迂腐,但知道這一點很有用。

其次,我建議你閱讀Splash Screens Are Evil, Don't Use Them!不是每個人都將與由作者所表達的觀點一致,但我親手做的。

我的看法是,閃屏,提供什麼,但一個漂亮的圖片實際上是在性能提高感知滯後。沒有任何跡象顯示給用戶什麼是實際發生或當應用即將出現。

如果有什麼事情,如果你需要執行一些長時間運行的操作時,應用程序啓動時,用文字講述所發生的事情就足夠的用戶ProgressDialog。例如,類似於下載或安裝對話框「執行8步驟1 ...」。