programing

안드로이드 프로젝트에서 사용하지 않는 문자열을 쉽게 찾을 수 있는 방법이 있습니까?

newstyles 2023. 9. 16. 08:43

안드로이드 프로젝트에서 사용하지 않는 문자열을 쉽게 찾을 수 있는 방법이 있습니까?

나는 많은 문자열이 선언된 거대한 안드로이드 프로젝트를 가지고 있습니다.strings.xml하지 않는 . 하지 을 하고 하고 을 하지 .strings.xml.

그렇게 할 수 있는 쉬운 방법이 있습니까?

Android Studio에서:

메뉴 -> 분석 -> 이름별 검사 실행 -> 미사용 자원

파일 마스크 확인란을 선택하고 입력합니다.strings.xml텍스트란에

여기에 상당히 쉬운 또 다른 해결책이 있습니다.Android Studio 메뉴에서 다음으로 이동합니다.

Refactor > 사용하지 않는 리소스 제거...

enter image description here

사용하지 않는 리소스가 무엇인지 확인하고 선택적으로 제거하려면 미리보기를 클릭합니다.

제 경우 "사용하지 않는 리소스 제거"를 사용하고 있음에도 불구하고 "이름으로 검사 실행"이 작동하지 않았습니다.

해결책:

  1. strings.xml 열기
  2. 보조클릭
  3. 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