안드로이드 프로젝트에서 사용하지 않는 문자열을 쉽게 찾을 수 있는 방법이 있습니까?
나는 많은 문자열이 선언된 거대한 안드로이드 프로젝트를 가지고 있습니다.strings.xml
하지 않는 . 하지 을 하고 하고 을 하지 .strings.xml
.
그렇게 할 수 있는 쉬운 방법이 있습니까?
Android Studio에서:
메뉴 -> 분석 -> 이름별 검사 실행 -> 미사용 자원
파일 마스크 확인란을 선택하고 입력합니다.strings.xml
텍스트란에
여기에 상당히 쉬운 또 다른 해결책이 있습니다.Android Studio 메뉴에서 다음으로 이동합니다.
Refactor > 사용하지 않는 리소스 제거...
사용하지 않는 리소스가 무엇인지 확인하고 선택적으로 제거하려면 미리보기를 클릭합니다.
제 경우 "사용하지 않는 리소스 제거"를 사용하고 있음에도 불구하고 "이름으로 검사 실행"이 작동하지 않았습니다.
해결책:
- strings.xml 열기
- 보조클릭
- Refactor --> 사용하지 않는 리소스 제거
"사용하지 않는 리소스 제거"가 한 방향으로는 작동하지만 다른 방향으로는 작동하지 않는 이유를 알 수 없습니다.
ADT 16을 사용하면 최대한 간단하게 할 수 있습니다.ADT 16으로 업데이트하고 Android Lint를 사용합니다.이것은 정말 놀라운 도구입니다.문자열뿐만 아니라 사용되지 않는 모든 리소스와 그 이상의 리소스를 찾을 수 있습니다.공식 사이트에서:
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.
안드로이드 3.3으로 이렇게 했습니다.
저장소에 저장되지 않은 변경 내용을 체크인합니다.
- 앱 모듈 우클릭 -> 리팩터 -> 사용하지 않는 리소스 제거 -> 미리보기
- Refactoring Preview('삭제할 항목' 및 '사용하지 않는 리소스 선언')에서 보기를 모두 접습니다.
- '삭제할 항목'을 마우스 오른쪽 버튼으로 클릭 -> 제외
- '사용하지 않은 리소스 선언'을 마우스 오른쪽 버튼으로 클릭 -> 제외
- 이제 'Unused Resource Declarations'를 확장하고 아래에서 앱별 strings.xml을 찾습니다(여러 strings.xmls가 있음).
- strings.xml -> 포함을 마우스 오른쪽 단추로 클릭합니다.
- 리팩터!xml 파일에서 사용하지 않는 문자열이 모두 삭제되었습니다!
참고: 프로젝트를 구축해 보십시오.컴파일이 실패할 경우 strings.xml이 일부 레이아웃/메뉴 xmls에서 참조되고 있으며 자체는 사용되지 않습니다.따라서 이러한 레이아웃 xmls도 수동으로 삭제할 수 있습니다!
빌드 앤 런.테스트!
string.xml을 확인합니다.
(적어도 내 버전의 Eclipse에서는) 쉽습니다.
안드로이드용 Eclipse (버전 v22.6.2-1085508)
- 패키지 탐색기에서 프로젝트 이름을 마우스 오른쪽 단추로 클릭합니다.
- Android Tools(안드로이드 도구)를 선택합니다.
- "보풀 실행:"을 선택합니다.일반적인 오류"를 확인합니다.
strings.xml을 열면 사용되지 않은 문자열이 강조 표시됩니다.
다른 잠재적인 문제를 해결할 수 있습니다.
Android Studio Press에서
Ctlr+Alt+시프트+i
->
사용하지 않은 문자열과 아이콘을 보여줍니다.
감사합니다 해피코딩 :)
프로젝트의 루트에서 이 스크립트를 실행합니다.
find res/values/*.xml'의 리소스 파일의 경우, 실행grep.*/\1/g'의 문자열 이름의 경우; docount1='grep -rc "R.string.${stringname}" src | egrep -v ':0$' | wc -l'count2='grep -rc "@string/${stringname}" res/res | egrep -v ':0$' | wc -l'count3='grep -rc "@string/${stringname}" res/메뉴 | egrep -v ':0$' | wc -l'count4='grep -rc "@string/${stringname}" Android Manifest.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 $resource file : $stringnamefi다 했어요.다 했어요. 'find res/drawable* -type f -name'*에서 리소스 이름을 지정합니다.?'`; 하다resource='required $resource name | xargs 기본 이름 | sed "s/^\(.*\)\"...$/\1/g"count1='grep -rc "R\.drawable\".${resource}" src | egrep -v ':0$' | wc -l'count2='grep -rc "@drawable/${resource}" res/res | egrep -v ':0$' | wc -l'count3='grep -rc "@drawable/${resource}" res/drawable*/*.xml | egrep -v ':0$' | wc -l'count4='grep -rc "@drawable/${resource}" res/메뉴 | 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 $리소스 이름fi다 했어요. 'findres/finds/*.xml'의 리소스 이름에 대해 수행합니다.resource='required $resource name | xargs 기본 이름 | sed "s/^\(.*\)\"...$/\1/g"count1='grep -rc "R\.layout\".${resource}" src | egrep -v ':0$' | wc -l'[$count1 -2030]인 경우echo $리소스 이름fi다 했어요.
이를 통해 다음과 같은 결과를 얻을 수 있습니다.
res/values/activity_activity.xml : activity_moreres/values/activity_activity.xml : activity_as_time_tores/values/db_graphics.xml : sql_graphics_countres/values/db_graphics.xml : sql_graphics_update_last_graphics...
번역 누락된 경우에만 해당:
InteliJ를 사용하여 InteliJ의 패널 막대를 클릭합니다: "Analyze" > "Run Inspection by Name" > 입력:미완성번역
언급URL : https://stackoverflow.com/questions/4680285/is-there-any-simple-way-to-find-out-unused-strings-in-android-project
'programing' 카테고리의 다른 글
j효과 추가를 사용한 jQuery (0) | 2023.09.16 |
---|---|
MS Visual C++에서 VLA(Variable Length Array) 활성화? (0) | 2023.09.16 |
Swift Xcode 인덱스 동결 또는 느려짐 (0) | 2023.09.16 |
ASP에서 대용량 파일을 전달하는 방법NET 응답? (0) | 2023.09.16 |
데이터베이스 트리거가 필요합니까? (0) | 2023.09.11 |