基础 Android 开发规范整理

本文是 android 开发常规的规范,并非标准,仅供参考。

Android 项目结构搭建规范

项目新建

项目名称

英文,有意义的拼音等

SDK 版本的选择

minSdkVersion (lowest possible) <= targetSdkVersion == compileSdkVersion (latest SDK)

Google技术专家的建议:各种SdkVersion如何选择?(中文版 | 英文版)

包名命名和分类

项目结构目录:

com.xxx.<项目名>.db  数据库相关

com.xxx.<项目名>.service 服务

com.xxx.<项目名>.reciver 广播接收者

com.xxx.<项目名>.constants 常量

    -- URLConstants
    -- SharePrefsConstants
    ...

com.xxx.<项目名>.utils 工具类

    -- FileUtils
    -- EncryptUtils
    -- NetUtils
    -- ImageUtils
    ...

com.xxx.<项目名>.net 网络操作

com.xxx.<项目名>.view 自定义组件

com.xxx.<项目名>.ui 界面

com.xxx.<项目名>.base 各种父类

    -- BaseApplication 
    -- BaseActivity
    -- BaseFragment
    ...

资产文件

asserts 存放其他类型的资源文件、网页、注册页面


资源文件目录:

res/

anim 动画资源

drawable 各种图片选择器、shape 等

drawable-ldpi 低分辨率

...

color 颜色选择器

layout 布局文件

...

第三方库的引入

  • 将 jar 包放入 libs (不需要定制和修改类库源码、无资源文件)

  • 关联 library 类型的工程 (需要定制和修改类库源码、有资源文件)

资源文件相关

布局文件名规范:

    activity_xxx.xml 

    Fragment_xxx.xml

    include_xxx.xml (被其他地方引用的布局)

    item_xxx.xml (ListView 的 item 布局)

    layout_xxx.xml (区块布局)

资源文件命名:

    xxx_selector.xml  (选择器)

    xxx_shape.xml (shape)

    ----------------------------

    xxx_pressed.9.png (图片-按下)

    xxx_focus.9.png (图片-获得焦点)

    xxx_normal.9.png (图片-正常)

    ----------------------------

    xxx_rotation.xml  (旋转动画)

    xxx_translate.xml  (位移动画)

    xxx_scale.xml  (缩放动画)

    xxx_alaph.xml  (渐变动画)

Android 编码规范

代码里相关命名规则

  • 成员变量:m + 类型 + 含义

    mTvName

  • 常量命名:只能包含字母和,字母全部大写,单词之间用隔开

    FEATURE_NO_TITLR

  • Layout 中 id 命名:命名模式为:view缩写_模块名称_view的逻辑名称

    tv_login_username

    常见控件命名示例:
    
    FrameLayout:fl
    RelativeLayout:rl  
    TextView:tv  
    ImageView:iv  
    ImageButton:im  
    Button:btn
    
  • strings.xml 中的 id 命名:activity 名称功能模块名称逻辑名称

    settings_logout_title

  • drawable 命名:activity名称_逻辑名称

    main_background

注释的规范书写

带参数描述的文档注释:

/**
 * 设置姓名
 * @param name 姓名
 */


不带参数的文档注释:

/** 我是注释 */


普通块注释:

/* 我是注释 */ 


普通的单行注释:

// 我是注释

性能优化

布局优化

  1. 布局选择:优先使用 LinearLayout,LinearLayout 效率较高

  2. 布局层级:尽量减小布局层级

  3. 资源提取:尽量使用通用布局,使用 include 标签引入

业务逻辑优化

  1. ListView 相关优化

    • 条目复用 (ConvertView)
    • 减少查询 (ViewHolder)
    • 图片加载优化
  2. 数据库优化

    • 操作数据库时,及时关闭游标等资源
    • 升级数据库时,增加版本号
  3. 网络请求优化

    • 及时取消请求 (关闭界面时,取消请求)
    • 避免重复请求(发送前,取消上一次)

说明

本文为极客学院 Android 开发规范篇的学习笔记

你可能感兴趣的:(android,开发规范)