### Android开发规范与性能优化详解 #### 一、Android编码规范 **1. Java代码中文使用规范** - Java代码中除注释外不应出现中文字符。这是因为中文字符可能导致编译器识别错误或编码问题。 **2. 变量命名规则** - 局部变量与静态成员变量命名遵循驼峰命名法(Camel Case)。 - 示例: `localVariableName`、`staticMemberVariable` - 首个单词首字母小写,其余单词首字母大写。 **3. 常量命名** - 常量名全部大写,单词间用下划线`_`分隔。 - 示例: `CONSTANT_NAME` **4. Layout ID命名** - 使用特定的缩写表示不同类型的视图,后跟模块名称与视图逻辑名称。 - 示例: `tv_main_title` (TextView) **5. Activity中的View命名** - 采用逻辑名称加上视图缩写的格式。 - 示例: `titleTv` - 复杂布局建议按模块划分,使用`ViewHolder`模式。 **6. Strings.xml ID命名** - ID命名包含活动名称、功能模块名称与逻辑名称。 - 示例: `activity_login_button_submit` - 使用活动名称作为注释,组织文件内容。 **7. Drawable资源命名** - 资源命名包括活动名称与逻辑名称。 - 示例: `activity_home_icon` **8. Styles.xml优化** - 抽取重复样式到通用组件中。 **9. Layer-list与Selector使用** - 使用`layer-list`实现复杂布局。 - 使用`selector`为视图提供状态变化。 **10. 图片重用** - 尽可能拆分图片为可重用元素。 **11. 服务端处理** - 减少客户端负担,将复杂逻辑移至服务端。 **12. 第三方库选择** - 谨慎引入第三方库,避免过大体积导致安装包过大。 **13. 全局异常处理** - 实现全局异常捕获机制,并通过邮件等方式上报。 **14. .9图片处理** - 使用`.9`图片格式以适应不同屏幕尺寸。 **15. 静态变量共享** - 使用静态变量实现界面间数据共享需谨慎。 **16. 日志记录** - 日志格式为`Log(系统名称_模块名称_接口名称, 描述)`。 **17. 单元测试** - 包括逻辑与界面测试。 **18. Handler使用** - 不要在父类中定义Handler供子类使用,避免消息冲突。 **19. View.OnClickListener** - 在单个OnClickListener中处理所有事件。 **20. 字符串通配** - 使用`%1$s`等占位符实现字符串动态填充。 **21. CommonActivity模式** - 提炼通用功能到BaseActivity中。 **22. Tab实现** - 使用Button与ActivityGroup组合实现Tab效果。 **23. 组件命名冲突** - 为避免命名冲突,在文件名前添加前缀。 **24. 数据验证** - 对输入数据进行严格验证,设置默认值以应对异常情况。 **25. 版本管理** - 针对不同市场定制版本,通过versionName区分。 **26. 避免重复点击** - 通过禁用按钮或设置延迟响应等方式防止重复点击。 #### 二、Android性能优化 **1. HTTP请求优化** - 使用GZIP压缩减少传输数据量。 - 设置合理的超时时间,优化用户体验。 - 分类处理缓存与非缓存请求,支持离线阅读。 **2. ListView优化** - **复用convertView**: 利用convertView提高性能。 - **异步加载图片**: 避免阻塞主线程。 - **状态感知显示**: 快速滑动时隐藏图片,减少资源消耗。 - **图片缓存策略**: 对不再可视范围内的图片进行回收或缓存。 以上规范与优化措施旨在提高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_逻辑名称
8.styles.xml:将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中;
9.使用layer-list和selector
10.图片尽量分拆成多个可重用的图片
11.服务端可以实现的,就不要放在客户端
12.引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大
13.处理应用全局异常和错误,将错误以邮件的形式发送给服务端
- 粉丝: 2
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助