2010-11-08 6 views
0

ma performance de l'application Android est faible, il faut un long temps de démarrage. J'ai 5 boutons, un imageview, 3 textView, 2 editText et un listView initialisé dans la méthode onCreate(). Est-ce qu'un grand nombre d'objets ui est la raison du démarrage lent ?? Y a-t-il une faute dans le fichier manifest.xml ??améliorer les performances de l'application 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

Nous n'avons aucune idée de la raison pour laquelle cela prend tant de temps sans publication de code. Gonflant les images peut être le coupable, mais nous ne pouvons que deviner. – Falmarri

+0

Avez-vous des requêtes réseau ou de base de données dans onCreate()? Si c'est le cas, vous pouvez remplir votre listview avec une ASyncTask. – Rorist

+0

en prenant la piste d'allocation, j'ai eu le mangeur de mémoire comme "android.app.ApplicationContext $ SharedPreferencesImpl writeFileLocked ApplicationContext.java 2807 false" Comment puis-je éviter les fuites de mémoire causées par cela ??? – asifkt

Répondre

0

conseils de performance générique:

Dans la plupart des cas, vous ne devriez pas essayer de deviner ce qui est à l'origine des problèmes de performance que l'intuition est souvent erronée. Si vous connaissiez la cause du code lent, vous ne l'auriez pas écrit lentement en premier lieu!

  1. Utilisez the profiler pour déterminer vos problèmes de performances. Optimisez seulement les parties lentes.
  2. Gardez une copie de vos traces et comparez-les après avoir effectué un changement, afin de savoir si vous vous dirigez dans la bonne direction ou non. Créez votre propre méthode de minutage simple pour vérifier vos résultats afin de vous assurer que l'enregistrement de traces ne provoque pas de problèmes de performances dans un endroit différent.
+0

J'ai inspecté la zone de faible performance de l'application à l'aide de l'analyseur de piste. J'ai "android.app.ApplicationContext $ SharedPreferencesImpl writeFileLocked ApplicationContext.java 2807 false" est un mangeur de mémoire. Comment puis-je éviter ça?? – asifkt

+2

Ces conseils ne sont très bons que si l'on a une idée de Java en général. Si la connaissance de base est manquante, rien ne va aider autre que l'apprentissage de Java. –

+1

@asifkt - Ne vous inquiétez pas trop de la mémoire pour l'instant, concentrez-vous sur le temps passé dans chaque méthode. Commencez par les méthodes les plus longues, puis descendez dans les appels de fonction qui mangent le temps. @Octavian, vous avez bien sûr raison, mais le profilage est toujours utile, il peut enseigner aux débutants comment écrire des programmes rapides. –

Questions connexes