2013-11-30 3 views
0

При работе на телефоне мое приложение меняет фрагменты в основное действие. При использовании метода FragmentTransaction.replace() для конкретного часто используемого фрагмента я вижу задержку примерно через 2 секунды после onResume() перед повторным просмотром экрана. Хореограф каждый раз жалуется на 100 + пропущенных кадров. Существует GridView и некоторые кнопки. Кажется, что адаптер и доступ к базе данных обрабатывают все свои обязанности до задержки. Мое лучшее предположение, что макет может быть неэффективным, но я не понимаю, как это сделать. Существуют ли какие-либо трюки для диагностики и оптимизации?Диагностика медленного фрагмента рендеринга

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#00000000" 
    android:baselineAligned="false" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/buttonBar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/content_background" 
     android:layout_marginTop="10dp" 
     android:baselineAligned="false" 
     android:orientation="horizontal" > 

     <ImageView 
      android:id="@+id/ivFilters" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:clickable="true" 
      android:contentDescription="@string/cd" 
      android:background="@drawable/blank" 
      /> 

     <ImageView 
      android:id="@+id/ivReference" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="10dp" 
      android:clickable="true" 
      android:contentDescription="@string/cd" 
      android:background="@drawable/blank" /> 

     <ImageView 
      android:id="@+id/ivCabinet" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="10dp" 
      android:clickable="true" 
      android:contentDescription="@string/cd" 
      android:background="@drawable/blank" /> 

     <EditText 
      android:id="@+id/etSearch" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:background="@drawable/et_search" 
      android:drawableLeft="@android:drawable/ic_menu_search" 
      android:hint="@string/search" 
      android:singleLine = "true" 
      /> 
    </LinearLayout> 

    <TextView 
     android:id="@+id/tvFilterName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@color/content_background" 
     android:text="@string/all_recipes" 
     android:layout_marginLeft="10dp" 
     android:layout_marginTop="10dp" 
     android:textColor="@color/white" 
     android:textSize="30sp" /> 

     <GridView 
      android:id="@+id/gridDrinks" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:numColumns="1" 
      android:listSelector="@android:color/transparent" 
      /> 

</LinearLayout> 

ответ

0

хореограф жалуется на 100+ пропущенных кадров каждый раз

Тогда проблема в коде Java, где вы завязывание главного потока приложения.

Есть ли какие-либо трюки для диагностики и оптимизации?

Начать с включения StrictMode, так как я предполагаю, что вы делаете ввод/вывод базы данных в основной прикладной нити.

Затем, если это не указывает на какие-либо проблемы, используйте Traceview, чтобы точно определить, где ваше время расходуется.

Коэффициенты, это не имеет никакого отношения к вашему ресурсу макета.

+0

спасибо. Я забыл о StrictMode для диагностики. –

Смежные вопросы