Android 其他技巧Android开发android技术专栏

Android开源项目规范总结

2017-04-06  本文已影响128人  Jensen95

前言

由于开源项目的不断增多,我们的开发效率也得到了极大的提升,但是开源项目往往不能够完全的match我们的需求,我们可能只是依赖其中的部分功能,但是为此我们需要将一堆臃肿的代码带入到我们的项目中,为了解决这个问题,需要我们能够很好地理解源码,然后将我们需要的核心功能,从代码中将其抽离出来,来适应我们的项目,而我们作为一个开源项目作者,作为一个负责的开源项目的作者,就要求我们要能够写出规范易懂,便于阅读的代码,因此需要我们有规范的代码命名规范,整洁的代码规格,同时拥有良好的文档,为了方便开发者的使用,我们还需要有良好的README来说明我们的项可以实现的功能,项目可能会出现一个平台兼容性上的问题,或者是使用上的一些问题,因此需要我们提供一个FAQ来帮助开发者解决一些粒度较大的问题,对于每一次的功能迭代,版本更新,我们都需要提供版本更新说明。

代码命名规范

代码规格

流程控制

空行以及换行

垂直

单行空行在以下情况使用

水平

字符编码

一律使用utf8编码

XML规则

资源命名规则

ID命名规则

控件类型 缩写前缀
View v
Button btn
ImageView img
ImageButton imgBtn
TextView tv
ListView lv
RecycleView rv
LinearLayout ll
RelativeLayout rl
FrameLayout fl

Gradle规范

build.gradle(Project:ProjectName)规范

buildscript代码块

classpath 'com.android.tools.build:gradle:2.x.x'

build.gradle(Module:app)规范

编译相关规范

 compileSdkVersion 2x
 buildToolsVersion "2x.0.0"
 compileOptions { 
        sourceCompatibility JavaVersion.VERSION_1_7 
        targetCompatibility JavaVersion.VERSION_1_7
 }

defaultConfig代码块规范

signingConfigs签名规范

debug版本使用默认设置,release版本的签名文件不得出现硬编码密码在build.gradle文件中,请将storePassword、keyAlias以及keyPassword密码放在properties文件中便于管理,示例:

signingConfigs {
    debug {
       storeFile file('debug.keystore')
    }
    release {
       // keystore
       storeFile file('release.keystore')

       // keys
       Properties properties = loadProperties('release.properties')

       storePassword properties.get('storepassword')
       keyAlias properties.get('keyalias')
       keyPassword properties.get('keypassword')
   }
}
 

buildTypes代码块规范

dependencies代码块规范

版本管理规范

ext {
    target_sdk_version = 24
}

权限规范

尽量避免Android 6.0敏感规范,例如:

JavaDoc规范

遵循原则

具体实施

README书写规范

FAQ规范

版本更新声明

上一篇下一篇

猜你喜欢

热点阅读