有什么简单的方法来找出Android项目中的未使用的string?
我有一个很大的Android项目,在strings.xml
声明了很多string。 我想在strings.xml
删除未使用的strings.xml
。
有没有简单的方法来做到这一点?
在Android Studio上 :
菜单 – > 分析 – > 按名称运行检查 – > 未使用的资源
检查文件掩码checkbox,并将strings.xml
放在文本字段中。
使用ADT 16,您可以尽可能简单地完成。 更新到ADT 16并使用Android Lint 。 这真是了不起的工具。 它可以find所有未使用的资源(不仅是string)等等。 从其官方网站:
Here are some examples of the types of errors that it looks for: - Missing translations (and unused translations) - Layout performance problems (all the issues the old layoutopt tool used to find, and more) - Unused resources - Inconsistent array sizes (when arrays are defined in multiple configurations) - Accessibility and internationalization problems (hardcoded strings, missing contentDescription, etc) - Icon problems (like missing densities, duplicate icons, wrong sizes, etc) - Usability problems (like not specifying an input type on a text field) - Manifest errors and many more.
在我的情况下,“按名称运行检查”不起作用,尽pipe我正在使用“删除未使用的资源”。
解:
- 打开strings.xml
- 辅助点击
- 重构 – >删除未使用的资源
我不知道为什么“删除未使用的资源”是一种方式,而不是其他方式。
看看我的问题: 找出是否使用资源
由于没有人有真正的答案,我编写了一个脚本来search包含string的未使用的资源。
希望能帮助你。
这是另一个相当简单的解决scheme。 在Android Studio菜单中转到
重构>删除未使用的资源…。
单击“ 预览”查看未使用的资源,然后select性地删除它们。
请参阅http://code.google.com/p/android-unused-resources/链接。; 它有一个工具AndroidUnusedResources.jar。 运行这个并得到你的未使用的string或任何资源被删除。
- 深渊
检查string.xml。
这很容易(至less在我的Eclipse版本中)
在Eclipse的Android(我有版本v22.6.2-1085508)
- 右键单击“包资源pipe理器”中的项目名称
- select“Android工具”。
- select“运行Lint:检查常见错误”。
现在当你打开strings.xml时,你会看到未使用的string被突出显示。
您可以修复其他潜在的问题。
在Android Studio新闻
CTLR + Alt + Shift + I键
select – >未使用的资源
它显示您未使用的未使用的string和图标。
谢谢快乐编码:)
仅对于缺less的翻译:
使用InteliJ,单击InteliJ的面板栏:“分析”>“按名称运行检查”>键入:不完整的翻译
从项目的根目录运行此脚本。
对于`find res / values / *。xml`中的resourcefile; 做 在`grep'中为stringname。* / \ 1 / g'`; 做 count1 =`grep -rc“R.string。$ {stringname}”src | egrep -v':0 $'| wc -l` count2 =`grep -rc“@string / $ {stringname}”res / layout | egrep -v':0 $'| wc -l` count3 =`grep -rc“@string / $ {stringname}”res / menu | egrep -v':0 $'| wc -l` count4 =`grep -rc“@string / $ {stringname}”AndroidManifest.xml | egrep -v'^ 0 $'| wc -l` count5 =`grep -rc“@string / $ {stringname}”res / xml | egrep -v':0 $'| wc -l` 如果[$ count1 -eq 0 -a $ count2 -eq 0 -a $ count3 -eq 0 -a $ count4 -eq 0 -a $ count5 -eq 0]; 然后 echo $ resourcefile:$ stringname 科幻 DONE DONE 对于`find res / drawable * -type f -name'*中的资源名称。 做 resource =`echo $ resourcename | xargs basename | sed“s / ^ \(。* \)\ .... $ / \ 1 / g”` count1 =`grep -rc“R \ .drawable \。$ {resource}”src | egrep -v':0 $'| wc -l` count2 =`grep -rc“@drawable / $ {resource}”res / layout | egrep -v':0 $'| wc -l` count3 =`grep -rc“@drawable / $ {resource}”res / drawable * / *。xml | egrep -v':0 $'| wc -l` count4 =`grep -rc“@drawable / $ {resource}”res / menu | egrep -v':0 $'| wc -l` count5 =`grep -rc“@drawable / $ {resource}”AndroidManifest.xml | egrep -v'^ 0 $'| wc -l` 如果[$ count1 -eq 0 -a $ count2 -eq 0 -a $ count3 -eq 0 -a $ count4 -eq 0 -a $ count5 -eq 0]; 然后 echo $ resourcename 科幻 DONE 为`find res / layout / *。xml`中的资源名称; 做 resource =`echo $ resourcename | xargs basename | sed“s / ^ \(。* \)\ .... $ / \ 1 / g”` count1 =`grep -rc“R \ .layout \。$ {resource}”src | egrep -v':0 $'| wc -l` 如果[$ count1 -eq 0]; 然后 echo $ resourcename 科幻 DONE
它给了我这种输出:
res / values / activity_strings.xml:activity_more res / values / activity_strings.xml:activity_as_reply_to res / values / db_strings.xml:sql_backlog_count res / values / db_strings.xml:sql_backlog_update_last_resend ...
- 如何在Android中获得独特的设备硬件ID?
- 如何显示启用位置对话框,如谷歌地图?
- 点击时如何更改Android中button的颜色?
- ArrayAdapter getView()方法中的“convertView”参数是什么?
- 我可以使用C ++,C进行Android编程吗?
- 升级到Google Play服务:9.0.0错误无法解决:com.google.android.gms:play-services-measurement:9.0.0
- 如何在Android中的MapView上绘制边框文字?
- 如何在Android应用程序中使用Firebase(BaaS)存储电子邮件和密码时包含用户名?
- 我怎样才能得到安装Android设备的外部存储列表