2016-07-23 224 views
0

我真的不明白在約束佈局上會發生什麼。Android Constrain佈局使用太多的內存(RAM)(內存泄漏)

我以前的UI使用只有15 MB RAM,同時新的UI使用400MB〜

任何人有一個想法?

舊UI

使用RAM〜15MB的實際Android設備 enter image description here

enter image description here

<?xml version="1.0" encoding="utf-8"?> 

<TextView 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text=" 11 January 2016" 
    android:id="@+id/dateTv" 
    android:gravity="center_horizontal" 
    app:layout_constraintLeft_toLeftOf="@+id/constraintLayout4" 
    android:layout_marginStart="16dp" 
    tools:layout_constraintLeft_creator="1" 
    app:layout_constraintTop_toTopOf="@+id/constraintLayout4" 
    android:layout_marginTop="16dp" /> 


<TextView 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text="12 : 59 PM" 
    android:id="@+id/timeTv" 
    android:gravity="center_horizontal" 
    app:layout_constraintLeft_toRightOf="@+id/dateTv" 
    app:layout_constraintTop_toTopOf="@+id/dateTv" 
    app:layout_constraintRight_toRightOf="@+id/constraintLayout4" 
    android:layout_marginEnd="16dp" 
    app:layout_constraintHorizontal_bias="1.0" /> 

<SeekBar 
    android:layout_width="0dp" 
    android:layout_height="20dp" 
    android:id="@+id/seekBarFoodQuantity" 
    android:max="10" 
    app:layout_constraintLeft_toRightOf="@+id/decrease" 
    android:layout_marginStart="8dp" 
    tools:layout_constraintLeft_creator="1" 
    app:layout_constraintTop_toBottomOf="@+id/timeTv" 
    android:layout_marginTop="48dp" 
    app:layout_constraintRight_toLeftOf="@+id/increase" 
    android:layout_marginEnd="8dp" 
    tools:layout_constraintRight_creator="1" /> 

<TextView 
    android:text="-" 
    android:gravity="center" 
    android:layout_width="49dp" 
    android:layout_height="49dp" 
    android:id="@+id/decrease" 
    android:textSize="40sp" 
    android:background="@color/red_300" 
    app:layout_constraintLeft_toLeftOf="@+id/constraintLayout4" 
    android:layout_marginStart="8dp" 
    app:layout_constraintTop_toTopOf="@+id/seekBarFoodQuantity" 
    app:layout_constraintBottom_toBottomOf="@+id/seekBarFoodQuantity" /> 

<TextView 
    android:text="+" 
    android:layout_width="49dp" 
    android:layout_height="49dp" 
    android:id="@+id/increase" 
    android:textSize="40sp" 
    android:background="@color/green_400" 
    android:gravity="center" 
    app:layout_constraintTop_toTopOf="@+id/seekBarFoodQuantity" 
    app:layout_constraintRight_toRightOf="@+id/constraintLayout4" 
    android:layout_marginEnd="8dp" 
    app:layout_constraintBottom_toBottomOf="@+id/seekBarFoodQuantity" /> 

<TextView 
    android:text="@string/quantity" 
    android:layout_width="137dp" 
    android:layout_height="49dp" 
    android:id="@+id/tvQuantity" 
    android:textSize="20sp" 
    android:gravity="center" 
    app:layout_constraintLeft_toLeftOf="@+id/constraintLayout4" 
    tools:layout_constraintLeft_creator="1" 
    app:layout_constraintTop_toBottomOf="@+id/seekBarFoodQuantity" 
    app:layout_constraintRight_toRightOf="@+id/constraintLayout4" 
    tools:layout_constraintRight_creator="1" 
    app:layout_constraintBottom_toBottomOf="@+id/constraintLayout4" 
    android:layout_marginBottom="16dp" 
    app:layout_constraintVertical_bias="0.0" /> 

<TextView 
    android:text="Save" 
    android:layout_width="137dp" 
    android:layout_height="49dp" 
    android:id="@+id/tvSave" 
    android:textSize="20sp" 
    android:gravity="center" 
    app:layout_constraintLeft_toLeftOf="@+id/constraintLayout4" 
    tools:layout_constraintLeft_creator="1" 
    app:layout_constraintTop_toBottomOf="@+id/seekBarFoodQuantity" 
    app:layout_constraintRight_toRightOf="@+id/constraintLayout4" 
    tools:layout_constraintRight_creator="1" 
    app:layout_constraintBottom_toBottomOf="@+id/constraintLayout4" 
    android:layout_marginBottom="16dp" /> 

<include layout="@layout/bottom_bar" android:id="@+id/bottombarAddFood" 
    android:layout_width="0dp" 
    android:layout_height="72dp" 
    app:layout_constraintRight_toRightOf="@+id/constraintLayout4" 
    app:layout_constraintBottom_toBottomOf="@+id/constraintLayout4" /> 

012上

新的UI實際Android設備上

使用的RAM超過400 MB! enter image description here

enter image description here

<?xml version="1.0" encoding="utf-8"?> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text=" 11 January 2016" 
    android:id="@+id/dateTv" 
    android:gravity="center_horizontal" 
    app:layout_constraintLeft_toLeftOf="@+id/constraintLayout4" 
    android:layout_marginStart="16dp" 
    app:layout_constraintTop_toBottomOf="@+id/editText2" 
    android:layout_marginTop="8dp" /> 


<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text="12 : 59 PM" 
    android:id="@+id/timeTv" 
    android:gravity="center_horizontal" 
    app:layout_constraintTop_toTopOf="@+id/dateTv" 
    app:layout_constraintRight_toRightOf="@+id/constraintLayout4" 
    android:layout_marginEnd="16dp" 
    app:layout_constraintBottom_toBottomOf="@+id/dateTv" /> 

<SeekBar 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:id="@+id/seekBarFoodQuantity" 
    android:max="10" 
    app:layout_constraintLeft_toRightOf="@+id/decrease" 
    android:layout_marginStart="8dp" 
    app:layout_constraintTop_toTopOf="@+id/decrease" 
    app:layout_constraintRight_toLeftOf="@+id/increase" 
    android:layout_marginEnd="8dp" 
    app:layout_constraintBottom_toBottomOf="@+id/decrease" /> 

<TextView 
    android:text="-" 
    android:gravity="center" 
    android:layout_width="49dp" 
    android:layout_height="49dp" 
    android:id="@+id/decrease" 
    android:textSize="40sp" 
    android:background="@color/red_300" 
    app:layout_constraintLeft_toLeftOf="@+id/constraintLayout4" 
    android:layout_marginStart="16dp" 
    app:layout_constraintTop_toBottomOf="@+id/textView2" 
    android:layout_marginTop="24dp" /> 

<TextView 
    android:text="+" 
    android:layout_width="49dp" 
    android:layout_height="49dp" 
    android:id="@+id/increase" 
    android:textSize="40sp" 
    android:background="@color/green_400" 
    android:gravity="center" 
    app:layout_constraintTop_toTopOf="@+id/seekBarFoodQuantity" 
    app:layout_constraintRight_toRightOf="@+id/constraintLayout4" 
    android:layout_marginEnd="16dp" 
    app:layout_constraintBottom_toBottomOf="@+id/seekBarFoodQuantity" /> 

<TextView 
    android:text="@string/quantity" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/tvQuantity" 
    android:textSize="20sp" 
    android:gravity="center" 
    app:layout_constraintLeft_toLeftOf="@+id/seekBarFoodQuantity" 
    app:layout_constraintTop_toBottomOf="@+id/seekBarFoodQuantity" 
    android:layout_marginTop="8dp" 
    app:layout_constraintRight_toRightOf="@+id/seekBarFoodQuantity" /> 

<TextView 
    android:text="Save" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/tvSave" 
    android:textSize="20sp" 
    android:gravity="center" 
    app:layout_constraintLeft_toLeftOf="@+id/constraintLayout4" 
    android:layout_marginStart="16dp" 
    app:layout_constraintRight_toRightOf="@+id/constraintLayout4" 
    android:layout_marginEnd="16dp" 
    app:layout_constraintBottom_toTopOf="@+id/bottombarAddFood" 
    android:layout_marginBottom="8dp" /> 

<include layout="@layout/bottom_bar" android:id="@+id/bottombarAddFood" 
    android:layout_width="wrap_content" 
    android:layout_height="72dp" 
    app:layout_constraintLeft_toLeftOf="@+id/constraintLayout4" 
    app:layout_constraintRight_toRightOf="@+id/constraintLayout4" 
    app:layout_constraintBottom_toBottomOf="@+id/constraintLayout4" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:text="Name" 
    android:ems="10" 
    android:id="@+id/editText2" 
    app:layout_constraintLeft_toLeftOf="@+id/constraintLayout4" 
    android:layout_marginStart="16dp" 
    app:layout_constraintTop_toTopOf="@+id/constraintLayout4" 
    android:layout_marginTop="16dp" 
    app:layout_constraintRight_toRightOf="@+id/constraintLayout4" 
    android:layout_marginEnd="16dp" /> 

<RadioButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/radioLittle" 
    app:layout_constraintLeft_toLeftOf="@+id/constraintLayout4" 
    android:layout_marginStart="16dp" 
    app:layout_constraintTop_toBottomOf="@+id/dateTv" 
    android:layout_marginTop="32dp" 
    app:layout_constraintRight_toLeftOf="@+id/radioMedium" 
    android:layout_marginEnd="8dp" 
    app:layout_constraintHorizontal_bias="0.33" /> 

<RadioButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/radioMedium" 
    app:layout_constraintLeft_toLeftOf="@+id/constraintLayout4" 
    android:layout_marginStart="16dp" 
    app:layout_constraintTop_toTopOf="@+id/radioMost" 
    app:layout_constraintRight_toRightOf="@+id/constraintLayout4" 
    android:layout_marginEnd="16dp" 
    app:layout_constraintBottom_toBottomOf="@+id/radioMost" 
    app:layout_constraintHorizontal_bias="0.75" 
    app:layout_constraintVertical_bias="1.0" /> 

<RadioButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/radioMost" 
    app:layout_constraintLeft_toRightOf="@+id/radioLittle" 
    android:layout_marginStart="8dp" 
    app:layout_constraintTop_toTopOf="@+id/radioLittle" 
    app:layout_constraintRight_toLeftOf="@+id/radioMedium" 
    android:layout_marginEnd="8dp" 
    app:layout_constraintBottom_toBottomOf="@+id/radioLittle" /> 

<TextView 
    android:text="Little" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/textView2" 
    app:layout_constraintLeft_toLeftOf="@+id/radioLittle" 
    app:layout_constraintTop_toBottomOf="@+id/radioLittle" 
    android:layout_marginTop="8dp" 
    app:layout_constraintRight_toRightOf="@+id/radioLittle" /> 

<TextView 
    android:text="Medium" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/textView3" 
    app:layout_constraintLeft_toLeftOf="@+id/radioMost" 
    app:layout_constraintTop_toBottomOf="@+id/radioMost" 
    android:layout_marginTop="8dp" 
    app:layout_constraintRight_toRightOf="@+id/radioMost" /> 

<TextView 
    android:text="Most" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/textView4" 
    app:layout_constraintLeft_toLeftOf="@+id/radioMedium" 
    app:layout_constraintTop_toBottomOf="@+id/radioMedium" 
    android:layout_marginTop="8dp" 
    app:layout_constraintRight_toRightOf="@+id/radioMedium" /> 

回答

1

這似乎是bug是在 編譯「com.android.support.constraint:約束的佈局:1.0。 0-alpha4'

新的UI使用的α4但老UI使用素α3

然後我用

compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha3' 

與新UI。 現在錯誤已被固定在alpha7太

0

有阿爾法4錯誤,得到了在阿爾法6解決這或許可以解釋你所看到的(這顯然是完全不正常的,約束佈局其實應該非常使用小公羊)。你能否檢查一下是否解決了你的問題,如果沒有提交錯誤?謝謝!

+0

另一個答案已經表明,它是通過降級到alpha3 –

+1

修復的。當然,不推薦alpha3使用:-) - 我們發佈alpha4,alpha5和alpha6 ...的原因是...(許多錯誤修復,性能改進和API更改)。具體來說,alpha 4具有很大的內部整體幫助性能,所以知道alpha 3沒有問題是很好的,但是知道alpha 6是否解決了這個問題會更有用 - 它可能會,但是如果這不是我們需要照顧的) –

+0

我已經嘗試了alpha7的固定。 – UmAnusorn