不允许错过的Anndroid技术经验60条
需积分: 0 167 浏览量
更新于2020-09-02
收藏 122KB PDF 举报
这篇标题为"不允许错过的Anndroid技术经验60条"的文章,旨在分享一系列有助于提升Android开发者技能的经验和技巧。以下是对这些经验的详细解析:
1. 继承BaseActivity:将所有Activity继承自BaseActivity,可以方便地统一界面风格和处理公共事件。通过构建对话框的统一构建器,一旦需要整体改动,只需在一个地方修改即可。
2. 数据库设计:将表字段常量和SQL逻辑分离,使代码更清晰。推荐使用如LiteOrm这样的轻量级框架,以减少对数据库细节的关注,专注于业务逻辑。
3. 全局变量管理:将全局变量放置在全局类中,模块私有的变量放在各自的管理类中,保持常量的清晰和集中。
4. 遵循单一职责原则:避免创建庞大且复杂的管理类,每个类应专注于做好一件事,以提高代码的可读性和可维护性。
5. 延迟初始化:只有在必要的时候才初始化数据,以节省用户的内存资源。
6. 异常处理:在合适的位置捕获并处理异常,避免过多的catch块导致代码混乱和性能下降。尽量避免在循环中捕获异常,以提高性能。
7. 内存泄漏检测:当对象引用链较长时,要警惕内存泄漏。例如,Adapter可能仍然指向旧的数据容器,导致数据更新后ListView无法正确刷新。
8. 数据同步:在进行数据库或网络操作时,确保新插入的数据返回唯一的ID,以便确认同步成功。
9. 多线程与数据库操作:使用事务处理数据库操作,推荐使用自动化库如LiteOrm,以防止并发问题。
10. 代码复用:在开发前考虑哪些资源、布局和类可以复用,进行架构分析,加速开发并提高代码复用度。
11. 有序队列操作:添加和删除元素时要保持队列的排序,以免出现混乱。
12. 数据库级联删除:删除数据时注意相关的关联操作,防止留下无法删除的脏数据。
13. 参数传递:基本类型参数传递的是值,对象参数传递的是引用。
14. ListView操作:当数据不足一屏时,setSelection无效;批量操作时确保ListView子项与视图对应,实现所见即所得。
15. 控制Activity大小:保持Activity的主要逻辑清晰,遵循单一职能和接口隔离原则。
16. ArrayList操作:注意基本类型(int)与包装类型(Integer)在remove时的区别。
17. 打印Log:使用Tag区分Log,便于定位打印位置。
18. 共享资源:尽量共享可复用的代码、常量和资源,即使共享逻辑复杂,也利于后期维护。
19. ListView滚动:setSelection不起作用时,尝试使用smoothScrollToPosition。
20. Activity通信:使用Handler更便捷;回调链过长时,考虑使用监听者模式简化回调。
21. EventBus框架:当监听者模式不便时,可以使用EventBus实现事件总线,提高代码可读性。
22. Handler与线程:子线程使用Looper.prepare或在构造函数中传入MainLooper,确保Handler在主线程运行。
23. TimePicker使用:点击确定后,需要清除焦点以获取手动输入的时间。
24. 异步任务:避免在构造函数中启动异步任务,可能导致意外崩溃。
25. 错误处理:对可能为空的对象进行充分的错误处理,注意null也可以添加到ArrayList等容器中。
26. ExpandableListView:如果子列表不可点击,需要在Adapter的isChildSelectable方法中返回true。
27. UI适配:对于内容过长的情况,提前使用ScrollView以适应不同尺寸的屏幕。
28. 用户交互:按钮的感应区域不应小于9mm,输入框应注意光标位置,以优化用户体验。
29. 唯一标识:服务器和客户端应统一使用唯一的标识,避免歧义。
30. 注释:编写足够的注释,解释代码的思路,提高代码可理解性。
31. 数据库事务:对于完整型数据和大量数据,使用SQLite的事务,可以显著提高性能。
32. 数据存储优化:避免存储如"null"或"无主题"这样的数据,以节省数据库空间。
这些经验涵盖了Android开发的多个方面,包括基础组件使用、异常处理、数据库操作、UI设计、性能优化以及代码组织。遵循这些经验,开发者可以提升代码质量,降低维护成本,并提高应用程序的用户体验。