Android 资源标签引用插件

1,333 阅读3分钟
原文链接: niorgai.github.io

插件地址: Jetbrains Plugin Page

Github 地址: Android-Resource-Usage-Count

插件说明

先把插件说明提到前面. 当你使用 IntelliJ IDEA 或者 Android Studio 打开 Android 项目的资源文件时, 会自动对文件中的资源标签统计其被引用次数, 展示在标签的前面, 统计结果会过滤 build 路径和 bin 路径的引用.

支持的标签:

  • array
  • attr
  • bool
  • color
  • declare-styleable
  • dimen
  • drawable
  • eat-comment
  • fraction
  • integer
  • integer-array
  • item
  • plurals
  • string
  • string-array
  • style

颜色说明:

  • 0 - 灰色
  • 1 - 蓝色
  • 其他 - 红色

开发背景

在 Android 项目开发过程中, 我一直都是把各种 string color 等资源定义在资源文件中, 再在代码中引用它. 如果有新的 string 或者 color, 我会先对比一下是否存在, 如果存在直接使用, 不存在才创建新的资源文件.

但是资源文件可能会改动, 经常产品需要改动一个 string, 或者设计需要改动一个 color, 我都要先手动在那个资源文件上右键 - Find Usage , 引用次数为1就直接改动这个标签内容, 否则要新建一个标签. 但是觉得每次都要搜索很繁琐, 所以才产生了开发这个插件的想法, 直接显示每个资源文件的引用次数.

开发过程

其实插件开发的文档还是比较少的, 官网 提供的只是一个通用的开发过程, 按照文档你可以顺利创建项目, 然后就懵 B 了.

不过这里也是因为不同的插件需求不同, 所以还是建议想清楚自己想实现的功能和展示方式, 再多参考一下已有的系统功能怎么实现的, 已有的开源库怎么实现的, 最后当然是善用搜索.

说说我自己的开发过程, 我前期想实现的效果是

  1. 打开资源文件时自动对每个标签统计引用次数. (功能)
  2. 在标签上以 hint 的形式展示其引用次数. (展示形式)

#####先说功能这块:

  • 开发的时候我也是先从一个大多数例子都会提到的 Action 开始, 可是我怎么也找不到自己想要的 Action (打开某个资源文件). 最后只好随便建一个 Action 作为触发按钮, 先实现 FindUsage 的功能.

  • 然后在实现 FindUsage 的功能时, 直接参考系统的 FindUsageAction 类, 还可以通过 debug 模式直接断点代码, 简直不能更爽. 根据 FindUsageAction 类的实现过程, 把核心代码复制到自己的工具类, 简单修改后就实现了功能. 这里要说明的是, 尽量使用老版本的代码, 新版本的代码可能会在老版本上找不到方法而报错.

#####然后是展示形式:

  • 一开始我是希望像 Methods Count 这样
    不过我找不到它是怎么实现的…尴尬
  • 后面翻到了 LineProvider 这个类, 感觉这也是一种实现形式, 查看一下实现后也很简单, 最重要的是 LineProvider 是通过打开文件触发, 我还不用去找 Action 了.

最后就是安装和发布了, 这部分按照官网说明即可.

写在最后

因为自己在开发插件方面的经历实在有限, 这个插件也是根据自己的需求而实现的. 一方面是想看看大家是否也会有这样的需求, 另一方面也是希望大家可以多帮忙看看代码, 有没有更好的实现或者插件本身有值得改进的地方, 博客通知不及时, 如果遇到问题多多去 Github) 上提 Issues 交流吧~