[干货]Android编程开发规范
来源:互联网 发布:淘宝代销商品怎么下单 编辑:程序博客网 时间:2024/04/26 08:18
原文地址: http://www.jianshu.com/p/9b8aeca9b281
约定
Activity.onCreate(),Fragment.onActivityCreated(),作为程序入口,不用写入太多代码,尽量保持只调用initXXX()方法,简单明了展示调用过程。如:initData(),initView()。
- 单个方法体不要过长
- 代码任何地方不要拼错单词
- 杜绝整个类代码格式化
- 调用方法保持“临近原则”,被调用的方法,放在调用方法下方
- 统一调整IDE的Tab缩进为4个空格
- 空行的使用,拒绝拖沓无分割,关联代码段放一块并与后面代码分割
- 用好TODO标记
- 记录想法,记录功能点,开发过程中可以利用TODO记录一下临时想法或为了不打扰思路留下待完善的说明
- 删除无用TODO,开发工具自动生成的TODO,或则已经完善的TODO,一定要删除。
- 处理“魔数”等看不懂的神秘数字
- 代码中不要出现数字,特别是一些标识不同类型的数字。
- 所有意义数字全部抽取到Constant公共类中,避免散布在各位类中。
命名
1. 布局文件中的id命名
规则:使用驼峰命名,前缀+逻辑名称,类变量名和布局文件id名称保持一致,不需要下划线分割
控件前缀规则:
TextView/EditText: tv/etButton/RadioButton/ImageButton: btnImageView: imgRelativeLayout/LinearLayout/FrameLayout: layout,ListView: listViewWebView: webViewCheckBox: chBox如:TextView @+id/tvTitle如:EditView @+id/etName如:Button @+id/btnSearch
2. 布局文件命名
规则: 使用前缀_逻辑名称命名,单词全部小写,单词间以 下划线 分割。
前缀规则:
Activity对应的布局使用activity_ 有时候类名过长 可简写为atyFragment对应的布局使用fragment_ 简写 fgt如:PublishActivity: activity_publish.xml PublishAty
3. 资源文件命名
规则: 使用 前缀_用途 命名,单词全部小写,单词间以 下划线 分割。
drawable: btn_back_selector.xml 控件前缀命名 common_circle_gray.xml 通用资源多处使用common_ chat_image_selector.xml 功能相关业务使用加用途前缀drawable_hdpi: btn_back_normal.9.png 控件前缀名称 btn_back_press.9.png 控件前缀名称 icon_login_lock.png icon_+用途values/color: pull_refresh_attrs.xml 引入的第三方资源,携带资源简拼的前缀
4. 类和接口命名
规则: 使用驼峰规则,首字母必须大写,使用名词或名词词组。要求简单易懂,富于描述,不允许出现无意义或错误单词。
如:class BookMarkAdd 正确如:class AddBookReadPlan 错误! 应为 class BookReadPlanAdd
5. 方法的命名
规则: 使用驼峰规则,首字母必须小写,使用动词。要求简单易懂,富于描述,不允许出现无意义或错误单词。
如:public void run();如:public String getBookName();
6. 变量命名
规则: 使用驼峰规则,首字母必须小写,使用名词或名词词组。要求简单易懂,富于描述,不允许出现无意义或错误单词。
成员变量命名,不要在私有变量前添加m字样常量命名,全部大写,单词间用下划线隔开
其他
空行:空行将逻辑相关代码段隔开,简洁清楚,提高可读性 成员变量之间,根据业务形成分组加空行 方法之间加空行控制语句 减少条件嵌套,不要超过3层 if判断使用“卫语句”,减少层级 if(obj != null) { doSomething();} 修改为: if(obj == null) { return;}doSomething(); if语句必须用{}包括起来,即便是只有一句方法 拆分臃肿方法,每个方法只作一件事 做同一个逻辑的方法,尽量靠近放到一块,方便查看 不要使用 try catch 处理业务逻辑 使用JSON工具类,不要手动解析和拼装数据Activity继承BaseFragmentActivity或SwipeBackActivity,可以使用ButterKnife注解代替findViewById。
IDE
Android Studio (越早使用越好)Android SDK 4.4W (API 20 统一开发版本)JDK 1.8(统一开发版本)
Libraries
Base
fastjson-android-1.2.4.jarokhttp-2.2.0.jarokio-1.2.0.jarpicasso-2.5.0.jarbutterknife:7.0.1ormlite-android:4.48volley
UI
PullToRefreshQuickAdapterPagerSlidingTabStripSystemBarTint 状态栏以及导航栏设置背景颜色SwipeBackLayout 左滑返回PullToZoomView 可以下拉缩放HeaderViewAutoLoopViewPager 轮播图PhotoViewViewPageIndicator
0 0
- [干货]Android编程开发规范
- [干货]Android编程开发规范
- [干货]Android编程开发规范
- [干货]Android编程开发规范
- [干货] 【译】Android 开发规范与应用
- Android编程开发规范
- Android编程开发规范
- Android编程开发规范
- Android编程开发规范
- Android编程开发规范
- Android开发编程规范
- Android 开发编程规范
- Android应用开发编程规范(私有)
- Android 开发应该注意的编程规范
- android开发各种相关干货
- Android 干货App开发总结
- Android 干货客户端开发总结
- Android开发源码,绝对干货
- Java之多线程内存可见性_2(volatile不能保证原子性)
- clean postgre single table
- iOS 数据持久化 -- Core Data (2)
- Django settings.py 中设置访问 MySQL 数据库【一种是直接在 settings.py 文件中直接写数据库信息,另一种是读文件获取数据库信息】
- bootstrap菜单、按钮及导航学习笔记5-2
- [干货]Android编程开发规范
- 如何让IIS支持php网页
- Git Reference---Basic Snapshotting
- NDK jni 加载静态库
- 【jQuery】使用one()方法绑定元素的一次性事件
- ActivatePowerMode插件,xcode版本
- Python学习二:Django Web入门
- Lustre文件锁问题
- Java多线程总结(5)— 原子性、可见性、有序性和并发库的原子性操作