android 开发之性能优化方向

一、内存优化

1、内存泄露

资源没有及时释放,线程启动后要销毁,service启动后使用完毕要取消注册,BroadcastResver注
册后不使用要取消注册,尽量使用弱引用

2、oom(内存溢出)

要求的内存超过限制.避免方法:使用软引用或弱引用(根据对象是否经常使用来判断选择,
经常使用用软引用,不被经常使用用弱引用)

3、内存抖动

频繁的进行创建销毁GC,造成内存抖动

4、enum(枚举)

不推荐不使用枚举Enum,因为枚举占用内存大。

二、图片优化

1、Drawable代替图片

Drawable代替图片,能用drawable的尽量用,纯色,圆角、渐变、椭圆、边框等。

2、.9.png图片

.9.png图片的使用:图片拉伸的时候不会失真,.9图片必须放在drawable里mipmap中无法识别.9图片。

3、inSampleSize图片大小

使用Bitmap的BitmapFactory.options中的inSampleSize变量减少加载到内存中的图片大小。

4、一套合适的图片

尽量使用一套合适的图片如xxhdpi,xhdpi.部分多套,切一套图1920x1080进行适配。

5、使用异步加载,缓存等

使用异步加载,缓存等,使用第三方Glide.因为这个图片框架是目前最好的一套网络加载框架,with里面是上下文,可以是activity,fragment等等。
6、如果Bitmap图片没有再次用到,那么进行recycled 进行回收,bitmap置为空,释放图片资源。

三、性能优化

尽量少使用或不是使用第三方框架,因为第三方可能会造成代码冗余,apk过大,依赖冲突等情况。

四、布局优化

1、merge

使用merge根布局减少层级。不是一个viewGroup,也不是一个view.对merge设置的所有属性都是无效的

2、layout

使用layout进行布局复用,如title。

3、viewStub

使用viewStub进行懒加载,是一个不可见的view,通过延迟加载布局的方式提升布局渲染,在初始化时不需要显示,在特定的条件下才进行显示,进行渲染,如:网络请求失败,列表为空,新功能和新内容的引导,view在特定情况下才显示。

你可能感兴趣的:(android 开发之性能优化方向)