安卓应该需要知道的开发和设计规范

  • 前言
    • 约定优于配置软件开发的简约原则
      • 为什么要规范
    • UI设计规范
      • 界面尺寸
        • 图标尺寸
        • android开发者的角度去进行9切图
      • 字体
      • 颜色值
    • 代码开发规范
      • 约定
      • 命名
      • 安卓资源使用的规范
    • 结论

前言

程序猿是辛苦的苦逼的,但是我们痛苦并奋斗着,2016年2月1日是今年在这公司的最后一天上班了,2015年在这公司是失败的一年,感觉公司没有什么成长自己成长的空间也不是很大。最气愤的是这公司上班一年半了没有涨薪也没年终奖,但是代码还是得写班还是得上不是吗。这一年倒是给了我一些时间去学习技术和股市,程序员玩股票真的不适合,特别是不要玩现货。哈哈,只能年后再看机会咯,回家过个好年。

约定优于配置——软件开发的简约原则

遵循约定虽然损失了一定的灵活性,不能随意安排目录结构,不能随意进行函数命名,但是却能减少配置。更重要的是,遵循约定可以帮助开发人员遵守构建标准。

come on baby

为什么要规范

作为一个移动端开发人员app开发者,开发的app第一就是界面看起来让人感到舒服,第二呢保证功能足够强大,最后才是酷炫屌炸天,现在性能对移动端是一个很大考验,那么我们必须让我们自己代码和界面设计规范起来,这样才不至于走弯路。

如果风格统一,那么代码将是有规可循的。我们可以根据命名了解结构,根据结构理解构建的代码原理。团队的合作将是无缝的,多人 debug 也将没有障碍。
我之前做的一个项目,就是因为缺乏遵循规范,而花费了大量时间和精力去做适配不一致的接口参数,各种变量名称的转换占了整个项目代码的很大部分。亲自动手写好一个站点并自己进行代码维护,理解其中的弊端,经历无数次的捶胸顿足痛定思痛,才知道最终如何改进才算架构“合理”。

UI设计规范

虽然产品经理或者Ui设计师会把流程图,原型图和切片给你,并且图上也会有字体的大小颜色边距等信息做了标注,但是有的东西我们还是要懂点,我们公司的产品经理就没有那么专业,也不会画原型图然后更没有标注,那么你就要机灵点界面不好看老板会先找你。

界面尺寸

android的尺寸众多,建议使用分辨率为720x1280 的尺寸设计。这个尺寸 720x1280中显示完美,在 1080x1920 中看起来也比较清晰;切图后的图片文件大小也适中,应用的内存消耗也不会过高。

状态栏高度:50 px
导航栏高度:96 px
标签栏高度:96 px
Android最近出的手机都几乎去掉了实体键,把功能键移到了屏幕中,当然高度也是和标签栏一样的:96 px
内容区域高度为:1038 px (1280-50-96-96=1038)

图标尺寸

屏幕大小 启动图标 操作栏图标 上下文图标 系统通知图标(白色) 最细笔画
320×480 px 48×48 px 32×32 px 16×16 px 24×24 px 不小于2 px
480×800px /480×854px /540×960px 72×72 px 48×48 px 24×24 px 36×36 px 不小于3 px
720×1280 px 48×48 dp 32×32 dp 16×16 dp 24×24 dp 不小于2 dp
1080×1920 px 144×144 px 96×96 px 48×48 px 72×72 px 不小于6 px

Android设计规范中, 使用的单位是dp, dp在安卓机上不同的密度转换后的px 是不一样的

android开发者的角度去进行.9切图

然后可能坑爹的是产品经理还不会画.9图片,为了是界面图不变形没有办法自己来,那这你就需要自己动手了,“点九”的制作工具为“draw9patch”用起来比较繁琐。新手也未必会切好,所以还是得学习。

先看图:
安卓应该需要知道的开发和设计规范_第1张图片

安卓应该需要知道的开发和设计规范_第2张图片
draw9patch使用方法:

1号黑色条位置向下覆盖的区域表示图片横向拉伸时,只拉伸该区域
2号黑色条位置向右覆盖的区域表示图片纵向拉伸时,只拉伸该区域
3号黑色条位置向左覆盖的区域表示图片纵向显示内容的区域
4号黑色条位置向上覆盖的区域表示图片横向显示内容的区域
没有黑色条的位置覆盖的区域是图片拉伸时保持不变(比如,如果图片的四角为弧形的时候,当图片被任意拉伸时,四角的弧形都不会发生改变)
5、如果失误多选了部分,可按住shift键,点击鼠标左键去掉黑色条
6、右边3个黑色图形区域为显示当前拉伸效果
7、选择好区域后,点击左上file-》save 9-path,保存图片,后缀名为xxx.9.png。
8、解释:我们可以看见图片的周围多了4个黑色条,不要急这个图片还不能用,这就是原始的9.png图片,当我们进行下一步操作后,这个图片就变得正常了。

再不会没有办法,移步慕课网学习.9图片制作。

字体

Android 上的字体为: Droid sans fallback ,是谷歌自己的字体,与微软雅黑很像。
Android的字体大小调查结论是:
安卓应该需要知道的开发和设计规范_第3张图片

颜色值

Android颜色值取值为十六进制的值 ,显然我们取色都不能设计的太鲜亮,比如一绿色的值, 给开发的值为 #5bc43e

代码开发规范

怎样编写漂亮整洁的代码:写代码的时候我会特别注意变量命名是否规范,甚至代码缩进是否对齐。在现实项目开发中,整洁漂亮 意味着用最少的代码,实现完整的业务功能,同时代码是易于理解的。

1. 约定

  1. Activity的onCreate()和Fragment的onActivityCreated()方法作为界面视图入
    口,不用写入太多代码,尽量保持只调用initXXX()方法,简单明了展示调用过程。如:initData(),initView()。
  2. 在activity的onDestory()或onPause()方法记得取消网络请求,释放一些调用的对象,取消广播等操作,还有就是bitmap使用完后记得recycle
  3. 单个方法体不要过长(实在过长可以多抽取成方法,并且加上注释),便于维护和代码阅读
  4. 调用方法保持“就近原则”,被调用的方法,放在调用方法下方,不要乱放
  5. 统一调整缩进的步长
  6. 空行的使用,拒绝拖沓无分割,关联代码段放一块并与后面代码分割
  7. 写的过程中用好TODO标记
    记录想法,记录功能点,开发过程中可以利用TODO记录一下临时想法或为了不打扰思路留下待完善的说明,删除无用TODO,开发工具自动生成的TODO,或则已经完善的TODO,一定要删除。
  8. 代码中不要出现数字,特别是一些标识不同类型的数字。
    所有意义数字全部抽取到Constant公共类中,避免散布在各位类中。
  9. 静态优于抽象,如果你并不需要访问一个对象中的某些字段,只是想调用它的某个方法来去完成一项通用的功能,那么可以将这个方法设置成静态方法,这会让调用的速度提升15%-20%,同时也不用为了调用这个方法而去专门创建对象了
  10. 对常量使用static final修饰符这种优化方式只对基本数据类型以及String类型的常量有效,对于其它数据类型的常量是无效的。不过,对于任何常量都是用static final的关键字来进行声明仍然是一种非常好的习惯
  11. 控制语句减少条件嵌套,不要超过3层,如果是2种情况最好使用三目运算符(a==b?a:b),如果是for循环最好改为增强型for循环(也被称为for-each循环)
  12. 方法:拆分臃肿方法,每个方法只作一件事做同一个逻辑的方法,尽量靠近放到一块,方便查看,不要使用 try catch 处理业务逻辑
  13. 工具类:多使用工具类,一个类只做对应事情的处理
  14. 记得判空,避免空指针的出现
  15. 记得变量加单行注释方法和类介绍加多行注释

2. 命名

  1. 布局文件中的id命名规则:
    使用驼峰命名,前缀+逻辑名称,类变量名不需要下划线分割,布局文件id用下划线或不用都行

    控件前缀规则:
    TextView/EditText: tv/et
    Button/RadioButton/ImageButton: btn/rbtn/ibtn
    ImageView: img
    RelativeLayout/LinearLayout/FrameLayout: rl_,ll_,fl_
    ListView: lv
    WebView: webView
    CheckBox: cb_
    如:TextView @+id/textTitle或@+id/tv_title
    如:EditView @+id/editName或@+id/et_name
    如:Button @+id/btnSearch或@+id/btn_search

  2. 布局文件命名
    规则:使用 前缀_逻辑名称 命名,单词全部小写,单词间以 下划线 分割。

前缀规则:
Activity对应的布局使用activity_
Fragment对应的布局使用fragment_
Dialog对应的布局使用dialog_
Adapter的布局使用item_
Animation的布局使用anim_
Selector的布局使用selector_
如:mainActivity: activity_main.xml

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字样模仿谷歌命名,容易出现倒包问题,建议以你公司首字母小写为前缀
常量命名,全部大写,单词间用下划线隔开

安卓资源使用的规范

这里都是我个人观点,你也可以不认同:

比如app介绍和html5文件放assets目录下,然后string.xml,color.xml,dimens.xml,ids.xml尽量去使用,这样别人反编译加大了代码的阅读难度,也减少了黄色警告,布局里面尽量去使用style可以减少代码,适当的使用include和merge标签。

结论

不论你最后使用的是什么规范去写的代码,但是必须保证是有规范的,而且还加了注释,不然真的要说shirt code了。至于一个方法一个类不超过多少行代码这个看公司要求,写代码多注意封装继承多态就好了。代码里面最好加上一些相关的注解(@SuppressWarnings(“unused”),@SuppressLint(“NewApi”))等,避免出现黄色警告,一般情况下app不建议使用反射,当然一些优秀的注解框架你也是可以取用的。

你可能感兴趣的:(android)