Android 开发过程中需要注意的细节(一)

1.全部Activity可继承BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的简历,万一需要整体变动,一处修改到处有效。

2.数据库表字段常量和SQL逻辑分离,更清晰,建议使用Lite系列框架LiteOrm库,超级清晰且重心可以放在业务上,不用关心数据库细节。

3.全局变量放全局类中,私有模块放在自己的常量清晰且集中。

4.不要相信庞大的管理类的东西会带来什么好处,可能是一场灾难,而要时刻注意单一职责原则,一个类专心做好一件事情更为清晰。

5.如果数据没有加载的必要,数据请务必延迟初始化,谨记为用户节省内存,总不会有坏处。

6.异常抛出,在合适的位置处理或者集中处理,不要搞得到处都是catch,混乱且性能低,尽量不要在循环中捕获异常,以提升性能。

7.地址引用链长时(三个以上指向)小心内存泄漏,和警惕堆栈地址指向,典型的易发事件是:数据更新了,ListView视图却没有刷新,这时Adapter很可能指向的并不是你更新的数据容器地址。

8.信息同步:不管是数据库还是网络操作,新插入的数据注意返回ID(如果没有赋予唯一ID),否则相当于没有同步。

9.多线程操作数据库时,db关闭了会报错,也很有可能出现互锁的问题,推荐使用事务。

10.做之前先考虑那些可以公用,资源,layout,类,做一个结构、架构分析以加快开发,提升代码的可服用度。

11.有序队列操作add、delete操作时,注意保持排序,否则你会比较难堪哦。

12.数据库删除数据时,要注意级联操作避免出现永远删除不了的脏数据。

13.关于形参实参:调用函数时参数为基本类型传的是值,即传值;参数为对象传递的是引用,即传址。

14.listview在数据未满一屏时,setSelection函数不起作用;ListView批量操作时各子项和视图正确对应,可见即所选。

15.控制Activity的代码量,保持主要逻辑清晰,其它类保持遵守SRP(单一职责),ISP(接口隔离)原则。

16.arraylist执行remove时注意移除int和Integer的区别。

17.Log请打上Tag,调试打印一定要做标记,能定位打印位置,否则尴尬的是:不知道是哪里在打印。

18.代码块/常量/资源可以集中公用的一定公用,即使公用逻辑稍微复杂一点也会值得,修改起来很轻松,修改一种,到处有效。

19.setSelection不起作用尝试smoothScroollToPosition. ListView的LastVisiblePosition(最后一个可见项)会随着getView方法执行位置不同变动而变动。

20.与Activity通讯使用Handler更方便;如果你的框架回调链变长,考虑监听者模式简化回调。

21.监听者模式不方便使用时,推荐使用EventBus框架库(用于页面通信等等 不过现在好多吐槽的  最近新出的RxJava听说不错  大家可以研究下)。

22.Handler在子线程使用Looper.prepare,或者new的时候给构造函数传入MainLooper来确保在主线程run。

23.timePicker点击确定后需要clearFoucs才能获取手动输入的时间。

24.构造函数里面极度不推荐启动异步线程,会埋下隐患。比如:异步线程调用了本例的示例,就会悲剧的等着崩溃吧。

25.千万不要理所当然的以为一个对戏不会为空,充分做好容错处理;另外注意null也可以插入ArrayList等容器中。

26.ExpandableListView的子列表不能点击(禁用)要把Adapter的isChildSelectable方法返回true。

27.UI显示注意内容过长的情形要提前使用ScrollView否则在小手机上尴尬你懂得。

28.注意按钮的感应范围不小于9mm否则不易点击;输入框注意光标的位置更易用互输入。

29.服务器和客户端尽量统一唯一标识(有可能是ID),否则多少会有歧义和问题。

30.注释,尽量去写足够的注释,去描述一下思路,达到看了可以明白某一块代码的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值