2016-07-23 217 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