1.使用

工具栏 -> Analyze -> Inspect Code…

点击 Inspect Code 后会弹出检查范围的对话框:

默认是检查整个项目,我们可以点击 Custom scope 自定义检查范围。

点击右边的下拉框,会出现以下选择:

分别有:

  • Project Files:所有项目文件
  • Project Production Files:项目的代码文件
  • Project Test Files:项目的测试文件
  • OpenFiles:当前打开的文件
  • Module ‘app’:主要的 app 模块
  • Current File:当前文件

除了内置的选项我们还可以自己选择特定的类进行检查,点击下图中的红色框部分:

会弹出自定义范围选择框,默认是空的,我们可以点击左上角的“+”号新增一个检查范围:

- Local:只能当前项目使用 
- Shared:其他 Android Studio 项目也可以使用

我们选择 Shared,然后起个帅气的名字 “ShixinCuteLint”,默认按项目显示,这时检查的文件数为 0 :

上图中右边的四个按钮表示要操作的类型:

  • Include:包括当前文件夹内的文件,但不包括他的子文件夹
  • Include Recursively:包括当前文件夹以及它的子文件夹内所有的文件夹,递归添加
  • Exclude:移除当前文件夹,不包括子文件夹
  • Exclude Recursively:移除当前文件夹及所有子文件夹

我们点击左边的 app 文件夹后,点击右边的 Include Recursively 按钮,把 app 下的所有文件添加到检查列表:

可以看到,这时 app 下的文件都变绿了,总共有 689 个文件夹要扫描。

点击 OK 进行检测,稍等一会儿,会弹出 Inspection 对话框,显示检查结果,没想到我的代码居然有 1769 个警告!这数字触目惊心啊:

我们主要关注红框内的警告,先来看看我的代码 Performance 有什么问题:

2.优化的内容主要包括以下几方面:

  • Correctness:不够完美的编码,比如硬编码、使用过时 API 等
  • Performance:对性能有影响的编码,比如:静态引用,循环引用等
  • Internationalization:国际化,直接使用汉字,没有使用资源引用等
  • Security:不安全的编码,比如在 WebView 中允许使用 JavaScriptInterface 等

Lint 检测代码的过程如下图所示:

  • App 源文件:包括 Java 代码,XML 代码,图标,以及 ProGuard 配置文件等
  • lint.xml:Lint 检测的执行标准配置文件,我们可以修改它来允许或者禁止报告一些问题

Android内存优化(五) Lint代码扫描工具的更多相关文章

  1. Lint——Android SDK提供的静态代码扫描工具

    Lint和FindBugs一样,都是静态代码扫描工具,区别在于它是Android SDK提供的,会检查Android项目源文件的正确性.安全性.性能.可用性等潜在的bug并优化改进. 下图简单地描述了 ...

  2. Android内存优化之——static使用篇(使用MAT工具进行分析)

    这篇文章主要配套与Android内存优化之——static使用篇向大家介绍MAT工具的使用,我们分析的内存泄漏程序是上一篇文章中static的使用内存泄漏的比较不容易发现泄漏的第二情况和第三种情况—— ...

  3. Android内存优化(三)详解内存分析工具MAT

    前言 在这个系列的前四篇文章中,我分别介绍了DVM.ART.内存泄漏和内存检测工具的相关知识点,这一篇我们通过一个小例子,来学习如何使用内存分析工具MAT. 1.概述 在进行内存分析时,我们可以使用M ...

  4. 想做一个整合开源安全代码扫描工具的代码安全分析平台 - Android方向调研

    想做一个整合开源安全代码扫描工具的代码安全分析平台 - Android方向调研 http://blog.csdn.net/testing_is_believing/article/details/22 ...

  5. 【腾讯Bugly干货分享】Android内存优化总结&实践

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/2MsEAR9pQfMr1Sfs7cPdWQ 导语 智 ...

  6. ANDROID内存优化——大汇总(转)

    原文作者博客:转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! ANDROID内存优化(大汇总——上) 写在最前: 本文的思路主要借鉴了20 ...

  7. ANDROID内存优化(大汇总——中)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...

  8. Android内存优化大全(中)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...

  9. 大礼包!ANDROID内存优化(大汇总)

    写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在A ...

随机推荐

  1. 深度解析使用CSS单位px、em、rem、vh、vw、vmin、vmax实现页面布局

     1.px:绝对单位,页面按精确像素展示 2.em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值. e ...

  2. Ocelot简易教程(二)之快速开始2

    为什么这篇的标题叫"Ocelot简易教程(二)之快速开始2"呢,因为很多朋友跟我说上一篇" Ocelot简易教程(二)之快速开始1"内容太少了,只是简单介绍Oc ...

  3. Java核心技术及面试指南 流程控制方面的面试题答案

    2.2.5.1 switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 1 switch里可以用char,byte,short,int这些基本类型,以及它们的封装类.  ...

  4. 关于 Spring Security OAuth2 中 CORS 跨域问题

    CORS 是一个 W3C 标准,全称是”跨域资源共享”(Cross-origin resource sharing).它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了 AJA ...

  5. JAVA UUID 生成唯一标识

    Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want 需求 项目在设计表的时候,要处理并发多的一些数据 ...

  6. Flink集群部署

    部署方式 一般来讲有三种方式: Local Standalone Flink On Yarn/Mesos/K8s… 单机模式 参考上一篇Flink从入门到放弃(入门篇2)-本地环境搭建&构建第 ...

  7. JVM读书笔记之垃圾收集与内存分配

    1 概述 说起垃圾收集( Garbage Collection , GC ) ,大部分人都把这项技术当做 Java 语言的伴生产物.事实上, GC 的历史远远比 Java 久远,1960 年诞生于 M ...

  8. Spring Boot 系列(九)数据层-集成Spring-data-jpa

    实际开发中,不可避免地会对数据进行反复的增删改查操作,然而这部分工作是十分繁琐枯燥的.那么,随即而生的ORM框架就能很好的解决这个问题. 我们常用的ORM框架有:Hibernate.Mybatis.J ...

  9. linux:终端常用命令 + vi命令修改文件及保存 方法

    首先介绍一下Ubuntu下各个目录的一般作用: /  这就是根目录,一台电脑有且只有一个根目录,所有的文件都是从这里开始的.举个例子:当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录 ...

  10. 基于FineUIMVC的代码生成器(传统三层)v1.0-2

    第一篇博客只是粗略说明了一下,其实这个工具真正用话可能大家还要细看下,我今天(连夜)写个例子,截几个图,做一下自定义模板的实例教程,因为代码生成本身是个工具,动画效果都是次要的,主要是工具本身,其中自 ...