本文带您全面了解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制造动画作用