插件地址: Jetbrains Plugin Page
Github 地址: Android-Resource-Usage-Count
插件说明
先把插件说明提到前面. 当你使用 IntelliJ IDEA 或者 Android Studio 打开 Android 项目的资源文件时, 会自动对文件中的资源标签统计其被引用次数, 展示在标签的前面, 统计结果会过滤 build 路径和 bin 路径的引用.
支持的标签:
arrayattrboolcolordeclare-styleabledimendrawableeat-commentfractionintegerinteger-arrayitempluralsstringstring-arraystyle
颜色说明:
- 0 - 灰色
- 1 - 蓝色
- 其他 - 红色
开发背景
在 Android 项目开发过程中, 我一直都是把各种 string color 等资源定义在资源文件中, 再在代码中引用它. 如果有新的 string 或者 color, 我会先对比一下是否存在, 如果存在直接使用, 不存在才创建新的资源文件.
但是资源文件可能会改动, 经常产品需要改动一个 string, 或者设计需要改动一个 color, 我都要先手动在那个资源文件上右键 - Find Usage , 引用次数为1就直接改动这个标签内容, 否则要新建一个标签. 但是觉得每次都要搜索很繁琐, 所以才产生了开发这个插件的想法, 直接显示每个资源文件的引用次数.
开发过程
其实插件开发的文档还是比较少的, 官网 提供的只是一个通用的开发过程, 按照文档你可以顺利创建项目, 然后就懵 B 了.
不过这里也是因为不同的插件需求不同, 所以还是建议想清楚自己想实现的功能和展示方式, 再多参考一下已有的系统功能怎么实现的, 已有的开源库怎么实现的, 最后当然是善用搜索.
说说我自己的开发过程, 我前期想实现的效果是
- 打开资源文件时自动对每个标签统计引用次数. (功能)
- 在标签上以 hint 的形式展示其引用次数. (展示形式)
#####先说功能这块:
-
开发的时候我也是先从一个大多数例子都会提到的
Action开始, 可是我怎么也找不到自己想要的Action(打开某个资源文件). 最后只好随便建一个Action作为触发按钮, 先实现 FindUsage 的功能. -
然后在实现 FindUsage 的功能时, 直接参考系统的
FindUsageAction类, 还可以通过 debug 模式直接断点代码, 简直不能更爽. 根据FindUsageAction类的实现过程, 把核心代码复制到自己的工具类, 简单修改后就实现了功能. 这里要说明的是, 尽量使用老版本的代码, 新版本的代码可能会在老版本上找不到方法而报错.
#####然后是展示形式:
- 一开始我是希望像 Methods Count 这样

不过我找不到它是怎么实现的…尴尬 - 后面翻到了
LineProvider这个类, 感觉这也是一种实现形式, 查看一下实现后也很简单, 最重要的是LineProvider是通过打开文件触发, 我还不用去找Action了.
最后就是安装和发布了, 这部分按照官网说明即可.
写在最后
因为自己在开发插件方面的经历实在有限, 这个插件也是根据自己的需求而实现的. 一方面是想看看大家是否也会有这样的需求, 另一方面也是希望大家可以多帮忙看看代码, 有没有更好的实现或者插件本身有值得改进的地方, 博客通知不及时, 如果遇到问题多多去 Github) 上提 Issues 交流吧~
