使用lint工具优化Android代码

Android代码优化——使用Android lint工具 作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常,lint就能解决我们的这些问题。Android lint是在ADT 16提供的新工具,它是一个代码扫描工具,能够帮助我们识别代码结构存在的问题,主要包括: 1)布局性能(以前是l 阅读详情

一、概述

Android lint工具是一个静态的代码分析工具,用来检查代码中潜在的问题并且提高代码的正确性,安全性,可用性,国际化和性能。
确保代码中没有结构性的错误,发现潜在的问题。Android-Lint提供了命令行方式执行,还可与IDE(eclipse、Idea、AndroidStudio)集成,并提供了html形式的输出报告。Android-Lint可以方便的与项目中的其他自动系统(配置/ Build / 测试等)集成。

二、应用

2.1 自动执行

以AndroidStudio为例,当build应用时,lint就会再自动运行。并且如果报错的话就会停止build。我们可以在项目的gradle配置文件中配置lint选项

android {
    lintOptions {
       // set to true to turn off analysis progress reporting by lint
       quiet true
       // if true, stop the gradle build if errors are found
       abortOnError false
       // if true, only report errors
       ignoreWarnings true
       }
       ...
    }

上面的代码代表静默执行,并且忽略lint报错。

2.2手动执行

当然,我们还可以手动执行lint ,操作Analyze > Inspect Code。

2.3代码行执行

lint提供了命令行执行,不知道怎么执行的话可以 lint –help下。
Android-Lint所检查的潜在问题,可以通过命令行$lint –show来获得。可以参考这里:

http://tools.android.com/tips/lint

检查大概的格式是这样的:

lint [flags] <project directory>

最简单的一种用法:

lint Android项目目录

例子:

lint app/                                                                                                                                             

Scanning 1.0.1: .....
Scanning 1.0.1 (Phase 2): ..
Scanning umengupdate-release: ......................................
Scanning unspecified: ...............................................
Scanning unspecified (Phase 2): ....................
build/intermediates/exploded-aar/umengupdate-release/res/layout/umeng_update_dialog.xml:47: Warning: Consider adding android:layout_marginEnd="8dp" to better support right-to-left layouts [RtlHardcoded]
                android:layout_marginRight="8dp"
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/intermediates/exploded-aar/com.afollestad/material-dialogs/0.7.3.1/AndroidManifest.xml: Warning: The project references RTL attributes, but does not explicitly enable or disable RTL support with android:supportsRtl in the manifest [RtlEnabled]
26 errors, 444 warnings

如下的命令可以检测在xml文件中没有命名前缀的错误:

lint --check MissingPrefix myproject

具体的命令请参考官网

http://developer.android.com/tools/help/lint.html

三、lint配置

3.1在设置中配置

在AndroidStudio中,我们可以在 File > Settings > Project Settings中配置lint在我们项目中得配置。
这里写图片描述

3.2 lint.xml

引用官方文档中的一张图:
这里写图片描述
很直观的表达了lint.xml文件的作用,通过lint.xml和lint Tool共同作用就可以检查代码中的问题。
一个例子:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- Disable the given check in this project -->
    <issue id="IconMissingDensityFolder" severity="ignore" />

    <!-- Ignore the ObsoleteLayoutParam issue in the specified files -->
    <issue id="ObsoleteLayoutParam">
        <ignore path="res/layout/activation.xml" />
        <ignore path="res/layout-xlarge/activation.xml" />
    </issue>

    <!-- Ignore the UselessLeaf issue in the specified file -->
    <issue id="UselessLeaf">
        <ignore path="res/layout/main.xml" />
    </issue>

    <!-- Change the severity of hardcoded strings to "error" -->
    <issue id="HardcodedText" severity="error" />
</lint>

3.3在Java代码和XML代码中配置lint

当然在Java代码中依然可以配置lint,例子:

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

上面的代码代表在onCreate方法中关闭lint检查”NewApi”,但是lint依然会检查没有 @SuppressLint(“NewApi”) 标记的其他方法。
类似的还有:

@SuppressLint("ParserError")
public class FeedProvider extends ContentProvider {

关闭”ParserError”检查。
如果想关闭搜索的检查项,可以这样设置:

@SuppressLint("all")

在XML中,我们可以使用tools:ignore 来关闭相应lint检查项,要使用”tools:”,首先要加上相应地namespaces

namespace xmlns:tools="http://schemas.android.com/tools"

例子如下:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="UnusedResources" >

    <TextView
        android:text="@string/auto_update_prompt" />
</LinearLayout>

避免检查没有用到的资源文件。同样地还有:

tools:ignore="NewApi,StringFormatInvalid"

相应地关闭所有的检查项:

tools:ignore="all"

四、总结

lint工具对于个人开发者个人感觉用处相对不大,但是如果是团队项目,那么它的作用就很大了,因为每个人的代码习惯都是不一样的,并且会定义很多的资源文件,这样日积月累下来,apk的大小就会不必要的增大很多。个人感觉lint工具最重要的一个功能就是差unUseResources,可以删掉好多不用的资源文件,给apk瘦身。
检查结果在 Android Lint –> Unused resources.
这里写图片描述
这是我们项目中没用的资源文件,好多没用的图片啊!!
删掉之后清爽好多!

如何利用VS2017创建一个简单的窗口 #如何利用VS2017创建一个简单的窗口 1、新建->Windows桌面向导 2、应用程序类型->桌面应用程序,点击确定 3、点击调试->开始调试 可建立如下图的窗口 4、可以在生成的项目文件的中找到windows17_2的应用程序,打开界面如下: 注:新建空白项目也可以,注意在解决方案资源器中添加.cpp文件,如源.cpp文件,下载代码见博文 ... 阅读详情

相关推荐

特征金字塔网络(Feature Pyramid Network, FPN)

特征金字塔网络(FPN)是计算机视觉领域的一个里程碑式工作,通过高效的多尺度特征融合,显著提升了目标检测和分割任务的性能。其核心在于自底向上路径、自顶向下路径和横向连接的协同工作,兼顾了高分辨率和强语义信息。FPN的通用性和高效性使其成为许多现代检测框架的标配模块。

Rhett_Butler0922的博客 1727

lint-results

字段含义: issue 问题 severity 严重程度 message 消息 category 类别 priority 优先级 summary 总结 explanation 解释 location 位置 id=&amp;quot;RtlEnabled&amp;quot; AndroidManifest.xml 文件的application添加android:supportsRtl=&amp;quot;true&amp;quot;的属性,重新构建 .

LVKE199371的博客 797

Simulink Test Sequence实战:5步搞定复杂逻辑测试(附Excel模板)

本文详细介绍了如何利用Simulink Test Sequence模块高效完成复杂逻辑测试。通过对比传统Excel方法的不足,阐述了Test Sequence以流程图和自然语言描述测试场景的优势,并提供了从环境搭建、逻辑构建到与Test Manager集成、利用Excel模板进行数据驱动的完整5步实战指南,帮助工程师将复杂的状态机或逻辑流测试从繁琐的‘体力活’转变为高效的‘技术活’。

snow3的博客 251

Tools 命名空间的使用与 Support Library Annotations 介绍

原文出处:杨辉的个人博客  Tools 命名空间 tools 命名空间是在 Android Studio 中引入的 编辑预览特性,可以生成一些只在 IDE 预览界面生效的特性。 属性预览 1 2 3   tools:text="test title"   /> 这个属性应该

先疯盗骨 1492

Excel VBA--按某一列拆分数据到多个文件

首先,将需要拆分的sheet命名为“明细”,接下来运行此代码,按提示操作即可。 在这里插入代码片 Sub chaifen() '定义变量类型 Dim sht, sh1, sh2 As Worksheet Dim k, i, j As Integer Dim irow As Integer Dim col As Integer Dim str As String '程序开始是要求输入按哪一列拆分数...

weixin_43650026的博客 5873

ULN2003驱动28BYJ-48步进电机详解(附:51 32代码讲解)

本文介绍了28BYJ-48步进电机的驱动原理以及注意事项,并展示了极简 32 51驱动代码

qq_41818650的博客 1万+

MVP浅析

1.MVPModel-view-presenter (MVP) 是使用者接口设计模式的一种。 随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责。为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Model只关系数据的处理,基于MVC概念的MVP 模式应运而生。说明: M层 对P层传递过来的信息(userInfo进行登录

黄海1991的博客 2550

47_AI智能体核心业务之全局主控Agent:智能对话系统的统一指挥中心

本文介绍了全局主控Agent的架构设计与实现,该组件作为智能对话系统的统一指挥中心,提供标准化的多模式处理接口。系统支持普通对话、工具命令执行和流式响应三种处理模式,通过智能工作流路由协调多个处理引擎。统一的消息封装和异步架构设计确保了系统的高性能和可扩展性,已成功处理300万次用户请求,平均响应时间1.2秒。

在科技的浪潮中,我们寻找着创新的火种,在代码的海洋里,我们编织着智慧的网。腾飞开源,就是这样一个由技术精英汇聚而成的博客平台,我们致力于分享在Java、Python、IoT和人工智能等领域的最新研究成果和实战经验。 在腾飞开源的博客上,你会看到紧跟技术前 344

android中布局xml中tools属性

今天复制别人的布局的时候发现在android studio中预览布局完全没有问题,结果一运行除了图片文字都没有,以为是主题的关系,后来发现是命名空间的关系下面是代码,只要将tools改成android的命名空间就行了TextView android:id="@+id/tv_tweet_name" android:layout_width

missingcall 1338

热力学仿真软件:ANSYS CFX_(15).旋转机械仿真

创建旋转域在中选择需要设置为旋转域的区域。选择选项。设置旋转速度在设置中,指定旋转速度(单位为弧度/秒)。也可以选择选项,并输入具体值。设置旋转轴在设置中,指定旋转轴的方向和位置。通常旋转轴的方向可以使用单位向量来表示,例如[0, 0, 1]表示沿Z轴旋转。旋转轴的位置可以通过指定一个点的坐标来确定,例如[0, 0, 0]表示旋转轴通过原点。旋转机械的仿真在ANSYS CFX中是一个复杂但重要的过程。

kkchenjj的博客 1159

基于 YOLOv8 的自动驾驶车辆障碍物检测与避障路径规划

本文探讨基于YOLOv8的自动驾驶车辆障碍物检测与避障路径规划系统。在感知层面,采用YOLOv8模型实现多类别障碍物识别,结合单目视觉距离估计和ByteTrack多目标跟踪算法,完成障碍物的稳定检测与运动状态估计。在路径规划层面,设计分层规划架构,融合全局路径规划与局部避障算法,重点实现Frenet坐标系下的采样优化算法和基于模型预测控制的实时避障轨迹生成。通过完整的代码实现与仿真实验,验证系统在复杂交通场景下的有效性与实时性,为自动驾驶开发者提供从理论到实践的完整技术参考。 关键词:YOLOv8;自动驾驶

huanghm88的专栏 251

android:supportsrtl= true 作用,android – 该项目引用RTL属性,但不显式启用或禁用RTL支持...

如果您不支持RTL(=从左到左的区域设置),则需要在xml布局中将所有引用的起始位置替换为左侧和右侧.属性“开始”,“结束”,“paddingStart”,“paddingEnd”,“android:layout_alignParentStart”等属于“RTL属性”:它们的含义取决于当前的区域设置.没有这样做的风险是,如果有人将系统语言设置为阿拉伯语或希伯来语,则您的布局将被镜像,即使文本仍显示...

weixin_39868034的博客 890

【Matlab】matlab代码实现迭代学习控制

该文介绍了在Matlab中实现迭代学习控制(ILC)的方法。ILC通过利用历史轨迹数据来优化重复任务的控制性能。文章提供了一个步进电机控制示例,包括:1)定义正弦轨迹;2)设置100次迭代和0.1学习率;3)建立二阶系统模型;4)执行ILC算法计算控制输入;5)绘制期望轨迹与实际输出的对比图。该示例展示了ILC的基本实现过程,并指出实际应用可能需要更复杂的设计。代码演示了误差计算、控制输入更新和结果可视化等关键步骤。

unber的博客 201

Android Studio 的代码检查功能,使用 Lint 工具优化代码(笔记)

最近在看一篇 Android 开发规范(完结版),收获颇多。10.21 里推荐了 Lint 工具,好吧,我以前还真不知道这个 (°ー°〃)。正好在写一个 demo,就此记录一下使用 Android Studio 自带的 Lint 工具帮助优化代码的过程吧~文中 缩进部分段落 是摘抄自引用的博客~引用结束处标明了出处~本人英语水平有限,若有翻译错误,欢迎讨论和指正~-----------------...

DawnYu 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android Lint优化代码

今天,简单的讲讲  android Lint优化代码。 作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常,lint就能解决我们的这些问题。Android lint是在ADT 16提供的新工具,它是一个代码扫描工具,能够帮助

谢岩的博客 562

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android内存代码,Android内存优化(五) Lint代码扫描工具

1.使用工具栏 -> Analyze -> Inspect Code…点击Inspect Code后会弹出检查范围的对话框: 默认是检查整个项目,我们可以点击Custom scope自定义检查范围。点击右边的下拉框,会出现以下选择: 分别有:Project Files:所有项目文件Project Production Files:项目的代码文件Project Test File...

weixin_39593277的博客 145

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android代码优化工具——Android lint

作为移动应用开发者,我们总希望发布的APK文件越小越好,不希望没有用到的图片资源也被打包进去,不希望应用中使用了高于minSdk的API,也不希望Manifest文件存在异常,lint就能解决我们的这些问题。Android lint是在ADT 16提供的新工具,它是一个代码扫描工具,能够帮助我们识别代码结构存在的问题,主要包括: 布局性能(以前是layoutopt工具,可以解决无用布局、嵌套

choubaoguai的专栏 581

【lint】Android代码优化——使用Android lint工具

http://blog.youkuaiyun.com/xyz_lmn/article/details/14222939 作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常,lint就能解决我们的这些问题。Android lint是在ADT 16提供

horsttnann的专栏 620

【Android性能优化】Android-Lint:查错与代码优化利器

转自:http://blog.youkuaiyun.com/thl789/article/details/8037473   Android-Lint是SDK Tools 16 (ADT 16)之后才引入的工具,通过代码检查,可发现潜在的问题,并能对Android程序进行优化处理。Android-Lint提供了命令行方式执行,还可与IDE(如Eclipse)集成,并提供了html形式的输出报告。A

zyxNobita专栏 564

【lint】Android-Lint:查错与代码优化利器

http://blog.youkuaiyun.com/thl789/article/details/8037473 Android-Lint是SDK Tools 16 (ADT 16)之后才引入的工具,通过代码检查,可发现潜在的问题,并能对Android程序进行优化处理。Android-Lint提供了命令行方式执行,还可与IDE(如Eclipse)集成,并提供了html形式的输出报告。Andro

horsttnann的专栏 549

linux 代码优化工具,Android代码优化——使用Android lint工具

作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常,lint就能解决我们的这些问题。Android lint是在ADT 16提供的新工具,它是一个代码扫描工具,能够帮助我们识别代码结构存在的问题,主要包括:1)布局性能(以前是 layoutopt工具...

weixin_39680380的博客 196

Android代码优化—使用Android lint工具

作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常,lint就能解决我们的这些问题。Android lint是在ADT 16提供的新工具,它是一个代码扫描工具,能够帮助我们识别代码结构存在的问题,主要包括: 1)布局性能(以前是 layouto

你知道的昵称 492

Android代码优化——使用Android lint工具(才发现这是个不错的工具)

来源:Linux社区  作者:xyz_lmn 在这个网址看到的:http://www.linuxidc.com/Linux/2014-02/97023.htm 作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常,lint就能解决我

百无聊赖丶 1314

Android 性能优化:使用 Lint 优化代码、去除多余资源

点击打开链接

Youth_never_go_away的博客 415
上一篇: Android 适配toolbar后windowSoftInputMode="adjustResize" 不生效
下一篇: Android内存泄露抓取工具leakcanary
w4lle
博客等级 码龄16年 49粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值