当前位置: 首页 > 科技观察

充分理解Android开发规范

时间:2023-03-20 19:33:16 科技观察

1.Android编码规范1.java代码中不出现中文,注释中最多可以出现中文2.局部变量命名和静态成员变量命名只能包含字母,且第一个单词的字母为***3.常量名只能包含字母和_,所有字母大写,单词之间用_隔开4.layout中的id命名方式为:查看缩写_模块名逻辑名的缩写详情_view的如下LayoutView:lvRelativeView:rvTextView:tvImageView:ivImageButton:imButton:btn5.activity视图变量的命名模式为:逻辑名+视图缩写建议:如果布局文件很复杂,建议使用layout分为多个模块,每个模块定义一个moduleViewHolder,其成员变量包括所属view6.strings.xml中的id命名模式:activityname_functionmodulename_logicname/activityname_logicname/common_logicnamestrings在.xml中,使用activityname注解来区分文件内容7.为drawable中的图片命名命名方式:activityname_logicalname/common_logicalname7.styles.xml:refine在布局中不断重复出现的样式8.使用layer-list和selector9。尝试将图片拆分为多张可重复使用的图片10。如果服务端能实现,就不要放在客户端11。引用第三方库要谨慎,避免使用大容量的第三方库,导致客户端包非常大。12、处理应用程序全局异常和错误,将错误以邮件的形式发送给服务器。13.图像处理。9.14.使用静态变量共享接口时要谨慎不能被其子类使用,否则会造成message.what冲突18.在activity中,处理一个View.OnClickListener中的所有逻辑19.使用%1$s在strings.xml中实现字符串的通配符20.如果MultipleActivity包含共同的UI处理,那么可以提取一个CommonActivity,调用通用部分由它处理,其他activity只需要继承它button对应22.如果开发的组件是通用组件,为了避免冲突,在文件名前加上前缀在drawable/layout/menu/values目录下。必须有默认值;判断服务器响应数据是否有效;二、Android性能优化1、HTTP采用gzip压缩,并设置了连接超时和响应超时。根据业务需求,将http请求分为是否可以缓存,那么在无网络环境下,仍然可以通过缓存的httpresponse浏览部分数据,实现离线读取2.Listview性能优化1).复用convertView在getItemView中,判断convertView是否为空。如果没有,它可以重复使用。如果couvertview中的view需要添加listerner,代码必须在if(convertView==null){}之外。2).如果webimage包含在异步加载的图像项中,则它是异步加载的。3).快速滑动时不显示图像。当快速滚动列表(SCROLL_STATE_FLING)时,可以获得消耗资源的item或view中的图片。它不显示;而在其他两种状态(SCROLL_STATE_IDLE和SCROLL_STATE_TOUCH_SCROLL)下,这些视图会显示出来。3.使用线程池,分为核心线程池和普通线程池。避免耗时任务阻塞线程池,导致所有异步任务等待4、异步任务分为核心任务和普通任务。只有发生在核心任务中的系统级错误才会报错。异步任务的ui操作需要判断activity是否活跃5.尽量避免静态成员变量引用消耗资源过多的实例,比如Context6。使用Wea??kReference而不是强引用。弱引用让你保留对象的引用,让GC在必要的时候释放对象,回收内存。对于那些创建成本低但消耗内存大的对象,即你希望保留该对象,在应用程序需要时使用它,并希望GC在必要时回收它,你可以考虑使用弱引用。7.超肥Bitmap及时销毁(当ActivityonDestroy时,bitmap被回收)设置一定的采样率,巧妙的使用软引用drawable对应resid资源,bitmap对应其他资源8.保证Cursor占用的内存及时释放,而不是等待GC处理。而Android明显倾向于程序员手动关闭Cursor9。线程也是内存泄漏的重要来源。线程内存泄漏的主要原因是线程的生命周期不可控。10.如果ImageView图片来自网络,异步加载。11、应用开发中自定义View时,交互部分一定不能写成线程不断刷新界面显示,而是根据TouchListener事件主动触发界面的更新3.AndroidUI优化1.Layout组件化,尝试使用merge和include复用2.使用样式,复用样式定义3.软键盘的弹出控制,不要让它盖住输入框4.数字、字母、汉字混杂占用空间:make数字和字母全角。由于现在我们的输入大多数情况下都是半角的,所以字母和数字的占位符无法确定,但是一旦全角,数字和字母的占位符就会和汉字一样,所以你可以避免由于占位符引起的排版问题。5、英文文档排版:textview自动换行时要保持文字的完整性。解决方法是计算字符串的长度,然后手动设置每行显示多少个字母,加上'n'6。复杂布局使用RelativeLayout7。Adaptive对于屏幕,使用dp而不是pix8。使用android:layout_weight或TableLayout使布局相等9。使用animation-list制作动画效果原文地址:http://my.eoe.cn/yyz168/archive/5551.html