2010-11-08 54 views
0

我的android應用程序性能低下,啓動時間很長。我有5個按鈕,一個imageview,3個textView,2個editText和一個listView在onCreate()方法中初始化。大量的ui對象啓動緩慢的原因是什麼? manifest.xml中是否有任何錯誤?使android應用程序性能更好

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.ars.application" 
    android:versionCode="1" 
    android:versionName="1.0"> 
<application android:icon="@drawable/lightvasicon" android:label="@string/app_name" android:debuggable="true"> 
    <activity android:name=".LightVas" 
       android:label="@string/app_name" 
       android:screenOrientation="portrait" 
       android:configChanges="keyboardHidden|orientation" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 
<uses-permission 
android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> 
<uses-permission 
android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> 
<uses-permission 
android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission> 
<uses-permission 
android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission> 
<uses-permission 
android:name="android.permission.CONTROL_LOCATION_UPDATES"></uses-permission> 
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-sdk android:minSdkVersion="7" /> 
</manifest> 
+0

我們不知道爲什麼它需要這麼長時間沒有發佈代碼。爲imageviews充氣可能是罪魁禍首,但我們只能猜測。 – Falmarri 2010-11-08 06:36:15

+0

你在onCreate()中有一些網絡作業或數據庫查詢嗎?如果是這樣,你可能想用ASyncTask填充你的列表視圖。 – Rorist 2010-11-08 11:03:52

+0

通過採取分配軌道,我得到了內存食客作爲「android.app.ApplicationContext $ SharedPreferencesImpl writeFileLocked ApplicationContext.java 2807」我怎樣才能避免由此引起的內存泄漏?請回答 – asifkt 2010-11-08 11:32:27

回答

0

一般性能建議:

在大多數情況下,你不應該試圖猜測是什麼原因造成的性能問題,直覺往往是錯誤的。如果你知道代碼速度慢的原因,你就不會首先寫得慢一點!

  1. 使用the profiler來確定你的性能問題。
  2. 只優化緩慢的部分。保留你的痕跡的副本,並在做出改變後進行比較,這樣你就知道你是否正朝着正確的方向前進。
  3. 制定您自己的簡單計時方法來驗證您的結果,這將確保跟蹤錄製本身不會導致不同位置的性能問題。
+0

我使用跟蹤分析器檢查應用程序的低性能區域。我得到了「android.app.ApplicationContext $ SharedPreferencesImpl writeFileLocked ApplicationContext.java 2807 false」是一個記憶食客。我怎樣才能避免這? – asifkt 2010-11-08 13:14:20

+2

只有當您對Java有所瞭解時,這些提示纔是非常好的。如果缺乏基礎知識,除了學習Java之外,沒有其他任何東西會有所幫助 – 2010-11-08 13:17:13

+1

@asifkt - 現在不要過多擔心內存,關注每種方法花費的時間。從最長的運行方法開始,然後深入到正在消磨時間的函數調用中。 @Octavian,你當然是對的,但分析仍然有用,它可以教會初學者如何編寫快速程序。 – 2010-11-08 15:01:20