协调员布局&应用栏布局性能

时间:2016-09-25 18:46:45

标签: android performance layout android-coordinatorlayout

我正在使用相对较新的CoordinatorLayout,以及AppBarLayoutToolbar。布局非常简单,布局的行为是向上滚动时隐藏Toolbar,向下滚动时显示Toolbar

布局的XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    android:id="@+id/main_content_coordinate_layout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/main_content_app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="@dimen/action_bar_height"
        android:fitsSystemWindows="true">

        <android.support.v7.widget.Toolbar
            android:id="@+id/main_content_toolbar_layout"
            app:title="@string/app_name"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_scrollFlags="scroll|enterAlways"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

    </android.support.design.widget.AppBarLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:layout_anchor="@id/main_content_app_bar_layout"
        app:layout_anchorGravity="bottom"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/main_content_media_navigation_recycler_view"
            android:padding="@dimen/activity_vertical_margin_0.50"
            android:layout_width="match_parent"
            android:layout_height="@dimen/action_bar_height"/>

        <FrameLayout
            android:id="@+id/main_content_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

    </LinearLayout>

</android.support.design.widget.CoordinatorLayout>

问题

Toolbar可见时,我看到CPU性能下降了大约10-15%,但是滚动时Toolbar已经滚出屏幕,或者直观地看到了这个效果,这个下降到0-1%。我删除了子CoordinatorLayout项(RecyclerView&amp; FrameLayout),但这仍然有效。我也尝试改变AppBarLayoutToolbar的行为,这也没有效果。

下图显示了工具栏可见时的CPU性能,然后是不可见的。

Image showing CPU performance

我知道CoordinatorLayout和行为需要额外的处理和cpu周期,但这似乎过分了。其他人是否一起使用CoordinatorLayoutAppbarLayoutToolbar来体验这种性能?

额外信息

这些CPU数据来自OnePlus 3,因此手机价格较高,我显而易见的担心是中低端设备的性能(目前我没有任何测试,模拟器测试不会削减为此目的)。

0 个答案:

没有答案