失效链接处理 |
进阶Android开发 PDF 下载
本站整理下载:
提取码:6tgu
相关截图:
主要内容:
Android优化重点
2.1、Layout布局优化
1 . 在编写布局过程中经量减少层级的嵌套,可以用一个Layou完成的就不要用两个Layout布 局,在布局过程中停下来想一想该不该这样做,合不合理,多花几秒钟想想。当然谷歌也提供了
减少层次结构的标签 “merge” 。
2 . 在开发工程中遇到一个页面上有长很长的时候,不需要立马显示出来的布局可使用
“ViewSub”布局懒加载,进行延时加载。
android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" /> </com.google.android.material.appbar.CollapsingToolbarLayout> </com.google.android.material.appbar.AppBarLayout> <!--页面的主要内容--> <androidx.core.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> </LinearLayout> </androidx.core.widget.NestedScrollView> </androidx.coordinatorlayout.widget.CoordinatorLayout> 3334353637383940414243444546
3 . 在开发中肯定会遇到一些重复的布局,这个布局在多个地方使用,一定要提取出来为一个独
立的xml,应”inculde”进行复用
4 . 使用新推出的ConstraintLayout能有效的减少布局嵌套,并且在灵活性得到很大的提高。
2.2、代码优化
1 . 尽量减少使用全局变量,能使用局部变量的就用布局变量。
2 . 经量减少使用静态变量、对象。
3 . 避免使用静态的集合装着大量的数据供其他页面使用,就算不使用了也会常驻内存,静态对
象与APP生命周期几乎一致。
4 . 使用流行的开发模式开发APP:MVP、MVVM开发模式!多人开发中使用MVC进行开发,在
复杂逻辑下会Activity和Fragment会非常混乱和臃肿。
5 . 要学会如何抽取公用方法为Util类和抽取出公用的控件(Widget)供所有类使用,减少代码
冗余。要抽取公用的BaseFragment 、BaseActivity,BaseXXX供子类继承,在base类里面
做公共的初始化。
6 . 使用完IO流、Cursor用完一定要记得关闭,将对象占用的资源释放,减少资源的浪费 !
7 . 做耗时的操作要在子线程里进行,不然容易造成ANR无响应异常。
8 . 避免使用大量的注解造成资源的消耗,像TV、机顶盒应用因为硬件较差内存较小等因素造成
不必要的资源消耗造成卡顿。可以使用谷歌新推出的Databinding框架做findview等繁琐的操
作。
9 . 字符串拼接要用StringBuffer,不要使用String进行拼接。
String str=”abc”;
str=str+”df”;
这时候已经创建了两个变量了,而StringBuffer就不会。
10 . 合理的使用设计模式。单例、工厂等常用的设计模式。
2.3、列表优化(ListView、GridView等)
列表是手机应用中出现几率最大的一个控件,如果处理不当会影响列表滑动的流畅性。
1 . 在Adapter里的getView方法使用convertView复用item。
2 . 使用ViewHolder减少findViewbyId
3 . 使用ImagerLoader等图片框架加载异步加载图片和缓存处理。
4 . 使用RecycleView替换List View,在可定制化和性能上都有少许提升。
5 . 数据量大要采用分页分批加载。
6 . 适当的缓存可减少用户等待时间!
2.4、图片优化
图片是app中的大杀器。处理好图片可是大事。
1 . 使用ImageLoader等图片加载框架异步加载图片和缓存处理。
2 . 界面上的图片能使用9patch的就用9patch,因为9patch可拉伸和体积最小化减少内存消
耗。
3 . 使用用户相册的图片进行显示的时候需要进行压缩处理。分为质量压缩和等比例压缩。
4 . 使用完bitmap时记得要通知虚拟机进行回收。bitmap.recycle();
2.5、内存泄漏
|