Android 项目优化(一):项目代码规范优化
项目代码规范为主要包含:类,常量,变量,ID等命名规范;注释规范;分包规范;代码风格规范。
项目代码规范是软件开发过程中非常重要的优化环节。
目前的开发社区提供了很多的开发规范文档,阿里巴巴推出了《阿里巴巴Java开发手册》,并针对 IntelliJ IDEA 提供了 Idea-plugin 插件。
下面我们讲述一下插件的安装和使用。
一、项目代码规范插件安装
1. 通过Jetbrains官方仓库安装
打开 Settings >> Plugins >> Browse repositories...

在搜索框输入alibaba即可看到Alibaba Java Code Guidelines插件,点击Install进行安装,然后重启IDE生效
注意:因为插件zip包托管在Jetbrains官方CDN上,所以是从国外的服务器进行下载,可能会出现超时的情况.

2. 通过下载安装包进行安装
打开插件页面

Settings >> Plugins >> Install plugin from disk...,选择刚刚下载的zip包安装,然后重启IDE

注意
最低支持IDEA版本为14.1(buildNumber 141.0,可以在About Intellij IDEA中查看版本信息),使用IDEA14的同学最好升级到14.1.7及以上版本。
插件基于JDK1.7打包,所以IDEA启动时使用的JDK版本如果是1.6的话就会报Unsupported major.minor version 51.0异常,建议大家都升级一下。
3. 中文乱码解决方法
修改字体——Appearance&Behavior -> Appearance -> UI Options -> Name 里面设置成中文字体——如微软雅黑。

Switch Language to English and restart

二、插件使用
目前插件实现了开发手册中的的53条规则,大部分基于PMD实现,其中有4条规则基于IDEA实现,并且实现了实时检测功能。部分规则实现了Quick Fix功能,对于可以提供Quick Fix但没有提供的,我们会尽快实现,也欢迎有兴趣的同学加入进来一起努力。 目前插件检测有两种模式:实时检测、手动触发。
实时检测
实时检测功能会在开发过程中对当前文件进行检测,并以高亮的形式提示出来,同时也可以支持Quick Fix,该功能默认开启,可以通过配置关闭。
结果高亮提示
检测结果高亮提示,并且鼠标放上去会弹出提示信息。
Intention QuickFix功能
Alt+Enter键可呼出Intention菜单,不同的规则会提示不同信息的Quick Fix按钮
关闭实时检测
在某些情况下,我们不希望对代码提示违规信息,比如我们在阅读Github开源项目代码的时候,如果界面出现一堆红色、黄色的提示,此时心里肯定是飘过一万只草泥马。这个时候我们可以通过Inspection的设置关闭实时检测功能。
通过右键快速关闭(打开)所有规则的实时检测功能
通过Settings >> Editor >> Inspections 进行手动设置
也可以关闭某条规则的实时检测功能或者修改提示级别。
代码扫描
可以通过右键菜单、Toolbar按钮、快捷键三种方式手动触发代码检测。同时结果面板中可以对部分实现了QuickFix功能的规则进行快速修复。
触发扫描
在当前编辑的文件中点击右键,可以在弹出的菜单中触发对该文件的检测。
在左侧的Project目录树种点击右键,可以触发对整个工程或者选择的某个目录、文件进行检测。
如果您打开了IDE的Toolbar,也可以通过Toolbar中的按钮来触发检测,目前Toolbar的按钮触发的检测范围与您IDE当时的焦点有关,如当前编辑的文件或者是Project目录树选中的项,是不是感觉与右键菜单的检测范围类似呢。
使用快捷键(Ctrl+Shift+Alt+J)触发弹出窗口,选择检测范围;您也可自定义快捷键。
扫描结果
检测结果直接使用IDEA Run Inspection By Name功能的结果界面,插件的检测结果分级为Blocker、Critical、Major。默认按等级分组,方便统计每个级别错误的数量。
默认情况我们在结果面板需要双击具体违规项才能打开对应的源文件,开启Autoscroll To Source选项,单击面板中的文件名、或者是具体的违规项的时候IDEA会自动打开对应的源文件。
QuickFix
对于实现Quick Fix的规则,在结果面板中可以直接一键修复 注意:IDEA14、15可以通过左下角的灯泡进行一键修复操作。
其他
面板中其他按钮的功能大家自行探索吧,就不一一赘述了
代码提交时检测
在提交代码框勾选Alibaba Code Guidelines选项
如果有违反手册的地方会提示是否继续提交,选择取消后会自动对修改的代码进行扫描
Android 项目优化(一):项目代码规范优化的更多相关文章
- 代码规范审查 – Sonar分析项目
Sonar搭建成功之后,就可以通过简单的CMD指令进行项目分析,此篇主要介绍使用Sonar来分析.net项目. 扫描步骤: a. 打开CMD,切换到指定的项目根目录,和.sln同级目录即可(此处 ...
- Java&Android代码规范
项目中直接导入Square的代码风格文件.(不导入Google的原因是Square同时提供了Java和Android两套统一风格,Google只提供了一套) Square Code Styles Go ...
- 研发团队管理:IT研发中项目和产品原来区别那么大,项目级的项目是项目,产品级的项目是产品!!!
前言 从事IT行业多年,一路从小杂兵成长为大团队Leader,对于研发整个体系比较清楚,其实大多人都经历过但是都忽略了的研发成本管控的一个关键的点就是研发过程中项目级和产品级的区别. 市场基本 ...
- Java 代码规范,你应该知道的一些工具和用法
从事编程这个行业,你一定被别人说过或者说过别人这句话:代码要规范!求职面试时也能从 JD 上看到这个要求:要有良好的编程习惯.其实都是在讲代码规范(Code Style)这件事情. 每个人都有自己的编 ...
- Java 代码规范,你应该知道的一些工具和用法(转)
转自:http://yifeng.studio/2017/06/30/coding-with-code-style/ Java 代码规范,你应该知道的一些工具和用法 2017-06-30 从事编程这个 ...
- python之代码规范
第一章 为什么要有规范化目录 真正的后端开发的项目,系统等,少则几万行代码,多则十几万,几十万行代码 软件开发,规范你的项目目录结构,代码规范,遵循PEP8规范等等,让你更加清晰,合理开发. 1.代码 ...
- 解析Android开发优化之:从代码角度进行优化的技巧
下面我们就从几个方面来了解Android开发过程中的代码优化,需要的朋友参考下 通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的.一般来说 ...
- C#项目代码规范
C#项目代码规范 前言 小菜就是小菜,几个人搞出来的项目,让公司大牛稍微看了下,最后送出了惨不忍睹四个字.命名各种各样,五花八门,大写英文.小写英文.大写拼音.小写拼音.英文和拼音组合.字母和特殊 ...
- 项目Alpha冲刺——代码规范、本次冲刺任务与计划
作业格式 课程名称:软件工程1916|W(福州大学) 作业要求:项目Alpha冲刺(团队) 团队名称: 那周余嘉熊掌将得队 作业目标:代码规范.本次冲刺任务与计划 团队信息: 队员学号 队员姓名 博客 ...
随机推荐
- .Net core-邮件发送(同步,异步)底层代码(欢迎留言讨论)
using MailKit.Net.Smtp;using MimeKit;using System;using System.Collections.Generic;using System.IO;u ...
- 自定义BufferedReader
缓冲区的建立目的就是增加传输性能,使我们传输数据更加快速 缓冲区的内部其实很简单 就是在内部封装了一个数组 用数组来存储数据 对外提供一些方法对数组进行访问 其中这些方法的操作就是对数组的指针(角标) ...
- luogu P4065 [JXOI2017]颜色 |随机化+前缀和
题目描述 可怜有一个长度为 n 的正整数序列 Ai,其中相同的正整数代表着相同的颜色. 现在可怜觉得这个序列太长了,于是她决定选择一些颜色把这些颜色的所有位置都删去. 删除颜色 i 可以定义为把所有满 ...
- 微服务管理平台nacos虚拟ip负载均衡集群模式搭建
一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...
- 去除npm run dev日志warn记录
目录 一 babel的一些eslint方法废除了 问题 解决方案 相关文档 二 webpack的loaderUtils.parseQuery()被废弃了 问题 解决方案 相关文档 三 postcss相 ...
- 学习go第一天-编写第一个go程序
开发环境构建 GOPATH 在1.8版本前必须设置这个环境变量 1.8以及更高版本如果没有设置,则使用默认值在Mac上GOPATH可以通过修改 -/.bash_profile来设置 程序基本结构 pa ...
- mybatis注解
@select查詢 @insert添加 @delete刪除 @update修改 @Results自关联 @Results映射 @One UserByRole表: RoleByUser表: @Many ...
- AtCoder-3920
We have a 3×3 grid. A number ci,j is written in the square (i,j), where (i,j) denotes the square at ...
- 【JS】小工具
带天数的倒计时 function countDown(dateline){ var timer=null, //倒计时 current_time=Math.floor(new Date().getTi ...
- 贝壳2020——Java校招笔试题
算法题4道: 题目描述: 给出n个正整数,要求找出相邻两个数字中差的绝对值最小的一对数字,如果有差的绝对值相同的,则输出最前面的一对数.(2<n<=100,正整数都在10^16范围内) 输 ...