您的位置 首页 软件

了解Android开发标准:性能及UI优化是什么样的?

本文带您全面了解Android开发规范,其中包括Android编码规范,Android性能优化和Android UI优化,读完绝对不会后悔的好文章。一、Android编码规范1.j

本文带您全面了解Android开发标准,其间包括Android编码标准,Android功能优化和Android UI优化,读完肯定不会懊悔的好文章。

一、Android编码标准

1.java代码中不呈现中文,最多注释中能够呈现中文

2.局部变量命名、静态成员变量命名

只能包括字母,单词首字母出第一个外,都为大写,其他字母都为小写

3.常量命名

只能包括字母和_,字母悉数大写,单词之间用_离隔

4.layout中的id命名

命名方法为:view缩写_模块称号_view的逻辑称号

view的缩写概况如下

LayoutView:lv

RelativeView:rv

TextView:tv

ImageView:iv

ImageButton:im

Button:btn

5.activity中的view变量命名

命名方法为:逻辑称号+view缩写

主张:假如layout文件很杂乱,主张将layout分红多个模块,每个模块界说一个moduleViewHolder,其成员变量包括所属view

6.strings.xml中的id命名

命名方法:activity称号_功能模块称号_逻辑称号/activity称号_逻辑称号/common_逻辑称号

strings.xml中,运用activity称号注释,将文件内容区别开来

7.drawable中的图片命名

命名方法:activity称号_逻辑称号/common_逻辑称号

7.styles.xml:将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中;

8.运用layer-list和selector

9.图片尽量分拆成多个可重用的图片

10.服务端能够完成的,就不要放在客户端

11.引证第三方库要稳重,防止运用大容量的第三方库,导致客户端包非常大

12.处理运用大局反常和过错,将过错以邮件的方法发送给服务端

13.图片的.9处理

14.运用静态变量方法完成界面间同享要稳重

15.Log(体系称号 模块称号 接口称号,详细描述)

16.单元测验(逻辑测验、界面测验)

17.不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致message.what抵触

18.activity中在一个View.OnClickListener中处理一切的逻辑

19.strings.xml中运用%1$s完成字符串的通配

20.假如多个Activity中包括一起的UI处理,那么能够提炼一个CommonActivity,把通用部分叫由它来处理,其他activity只需承继它即可

21.运用button+activitgroup完成tab作用时,运用Button.setSelected(true),确保按钮处于挑选状况,并使activitygroup的当时activity与该button对应

22.假如所开发的为通用组件,为防止抵触,将drawable/layout/menu/values目录下的文件名增加前缀

23.数据必定要效验,例如

字符型转数字型,假如转化失利必定要有缺省值;

服务端呼应数据是否有用判别;

二、Android功能优化

1.http用gzip紧缩,设置衔接超时时刻和呼应超时时刻

http恳求依照事务需求,分为是否能够缓存和不行缓存,那么在无网络的环境中,依然经过缓存的httpresponse阅览部分数据,完成离线阅览。

2.listview 功能优化

1).复用convertView

在getItemView中,判别convertView是否为空,假如不为空,可复用。假如couvertview中的view需求增加listerner,代码必定要在if(convertView==null){}之外。

2).异步加载图片

item中假如包括有webimage,那么最好异步加载

3).快速滑动时不显现图片

当快速滑动列表时(SCROLL_STATE_FLING),item中的图片或获取需求消耗资源的view,能够不显现出来;而处于其他两种状况 (SCROLL_STATE_IDLE 和SCROLL_STATE_TOUCH_SCROLL),则将那些view显现出来

3.运用线程池,分为中心线程池和一般线程池,下载图片等耗时使命放置在一般线程池,防止耗时使命堵塞线程池后,导致一切异步使命都必须等候

4.异步使命,分为中心使命和一般使命,只要中心使命中呈现的体系级过错才会报错,异步使命的ui操作需求判别原activity是否处于激活状况

5.尽量防止static成员变量引证资源消耗过多的实例,比方Context

6.运用WeakReference代替强引证,弱引证能够让您坚持对目标的引证,一起答应GC在必要时开释目标,收回内存。关于那些创立廉价但消耗很多内存的目标,即期望坚持该目标,又要在运用程序需求时运用,一起期望GC必要时收回时,能够考虑运用弱引证。

7.超级大胖子Bitmap

及时的毁掉(Activity的onDestroy时,将bitmap收回)

设置必定的采样率

奇妙的运用软引证

drawable对应resid的资源,bitmap对应其他资源8.确保Cursor 占用的内存被及时的开释掉,而不是等候GC来处理。而且 Android显着是倾向于编程者手动的将Cursor close掉

9.线程也是形成内存走漏的一个重要的源头。线程发生内存走漏的主要原因在于线程生命周期的不行控

10.假如ImageView的图片是来自网络,进行异步加载

11.运用开发中自界说View的时分,交互部分,千万不要写成线程不断改写界面显现,而是依据TouchListener事情主动触发界面的更新

三、Android UI优化

1.layout组件化,尽量运用merge及include复用

2.运用styles,复用款式界说

3.软键盘的弹出操控,不要让其掩盖输入框

4.数字、字母和汉字混排占位问题:将数字和字母全角化。因为现在大多数情况下咱们的输入都是半角,所以 字母和数字的占位无法确认,可是一旦全角化之后,数字、字母的占位就和一个汉字的占位相同了,这样就能够防止因为占位导致的排版问题。

5.英文文档排版:textview主动换行时要坚持单词的完整性,解决方案是核算字符串长度,然后手动设定每一行显现多少个字母并加上‘n‘

6.杂乱布局运用RelativeLayout

7.自适应屏幕,运用dp代替pix

8.运用android:layout_weight或许TableLayout制造等分布局

9.运用animation-list制造动画作用

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/146998.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部