AndroidUI卡顿优化方向

优化方向:

    一、RelativeLayout和带有weight的LinearLayout尽量不要放在根布局,防止出现子view进行过多measure

        原因:

                1、RelativeLayout及其子view会进行2次measure,1次layout;

                2、其子view中未使用weight的LinearLayout会进行1次measure,1次layout;                                                                               

                3、LinearLayout中子view有使用weight的,会导致该LinearLayout及其所有子view进行两次measure;                                        

                4、嵌套使用时,会导致measure方法调用数据成倍增加。

    二、使用标签或者使用RelativeLayout,使view层级尽量减少,防止在measure和layout中会导致过多和过深的递归,

        原因:

                递归会导致在空间和时间上都造成大量的性能问题,这是由于递归会进行数据的出入栈和保存读取,这个会浪费大量的时间和                     空间。

    三、将不常使用的view初始设置为Gone(是不可行的,原因如下)、或者使用尽量减少布局中的view个数

        原因:

                1、visibility初始值设置为Gone时,不会进行measure和layout,但是会创建View,一样会进行耗时操作;

                2、进行measure和layout的耗时小于(甚至远小于)其他view的耗时。

    四、优化view中的逻辑代码,减少循环和递归

你可能感兴趣的:(AndroidUI卡顿优化方向)