prosource

Android 프로젝트에서 사용되지 않는 모든 리소스 제거

probook 2023. 6. 17. 09:27
반응형

Android 프로젝트에서 사용되지 않는 모든 리소스 제거

Android res 디렉토리에서 사용하지 않는 레이아웃, 문자열, 드로잉 가능한 항목, 색상 등을 모두 제거하고 싶습니다.파일 목록을 제공하고 더 이상 사용되지 않는 특정 파일(예: 사용되지 않는 문자열 항목) 내의 요소와 저장소에서 제거할 수 있는 도구가 있습니까?

Android Studio에서 사용하지 않는 리소스를 쉽게 검색할 수 있습니다.를 누르고 "사용되지 않는 리소스"(따옴표 없이)를 입력하면 됩니다.그것은 보풀을 제거할 것입니다.린트 명령(및 IDE의 기타 항목)을 매우 쉽게 실행할 수 있는 방법입니다.

OR

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

제거할 리소스를 선택합니다.리소스 항목을 마우스 오른쪽 버튼으로 눌러 유지할 리소스를 제외할 수 있습니다.

Do Refactor를 사용하여 모든 리소스를 한 번에 제거합니다.

업데이트: Mac용으로 사용

ADT 16부터 안드로이드 린트를 사용할 수 있습니다.그것은 정말 놀라운 도구입니다.

Android Lint는 Android 프로젝트 소스에서 잠재적인 버그를 검색하는 ADT 16(및 도구 16)의 새로운 도구입니다.

다음은 검색되는 오류 유형의 몇 가지 예입니다.

  • 누락된 번역(및 사용되지 않는 번역)
  • 레이아웃 성능 문제(이전의 layoutopt 도구가 찾는 데 사용한 모든 문제 등)
  • 사용되지 않는 리소스
  • 일관되지 않은 어레이 크기(여러 구성에서 어레이가 정의된 경우)
  • 내게 필요한 옵션 및 국제화 문제(하드코딩된 문자열, 누락된 내용설명 등)
  • 아이콘 문제(밀도 누락, 중복 아이콘, 잘못된 크기 등)
  • 사용성 문제(예: 텍스트 필드에 입력 유형을 지정하지 않는 경우)
  • 매니페스트 오류 등이 있습니다.

그러나 몇 가지 문제가 있습니다(이미 해결되었는지는 알 수 없음). 수백 개의 사용되지 않은 리소스를 삭제하려면 리소스 제거 중에 프로젝트를 수동으로 여러 번 컴파일하여 Lint가 필요한 것을 제거하지 않도록 하는 것이 좋습니다.

이클립스에서의 ADT 지원이 종료되었기 때문에, 우리는 안드로이드 스튜디오를 사용해야 합니다.

2에서 Android Studio 2.0 사용하기Refactor > Remove Unused Resources...

enter image description here

Android용 Gradle 빌드 시스템은 "리소스 축소"를 지원합니다. 즉, 빌드 시 패키지 앱에서 사용되지 않는 리소스를 자동으로 제거합니다.이렇게 하면 런타임에 실제로 필요하지 않은 리소스를 프로젝트에서 제거할 수 있을 뿐만 아니라 응용 프로그램에서 실제로 필요하지 않은 리소스도 사용자가 의존하는 라이브러리에서 제거할 수 있습니다.

이 옵션을 사용하려면 Gradle 파일에 shrinkResources true 행을 추가합니다.

   android {
        ...

        buildTypes {
            release {
                minifyEnabled true //Important step
                shrinkResources true
            }
   }
}

여기에서 공식 문서를 확인하십시오.

http://tools.android.com/tech-docs/new-build-system/resource-shrinking

보풀을 사용할 때 여러 가지 맛을 사용할 경우 주의하십시오.린트는 선택한 맛에 따라 잘못된 사용되지 않은 리소스를 제공할 수 있습니다.

우리는 린트 출력을 기반으로 당신의 안드로이드 프로젝트에서 사용되지 않는 모든 자원을 제거하는 도구를 오픈 소스로 제공합니다.https://github.com/KeepSafe/android-resource-remover 에서 확인할 수 있습니다.

Android Studio에서

분석 -> 이름별 검사 실행

(Mac Shift+명령+옵션+i의 경우 바로 가기, Windows/Linux의 경우 Ctrl+Shift+A).

'사용되지 않는 리소스'를 입력합니다.

이렇게 하면 사용되지 않는 리소스, 변수, 기호, 지역화, 라이브러리 등을 제거할 수 있습니다.

목록에서 원하는 검사를 선택한 후 검사 범위 ->확인

1--> 인

Android Studio Menu > Refactor > 사용하지 않는 리소스 제거

아래 이미지에 표시된 대로:

enter image description here

**

OR

**

2--> 제2의 길

-> Ctrl Alt Shift i를 누른 후 Windows에서 "사용하지 않는 리소스"(따옴표 없이)를 입력합니다.

-> Mac의 경우 ⌘ Option Shift i를 사용합니다.

또는

-> mac의 경우 cmd + Alt + Shift

Android Studio 2.0 이상의 메뉴에서 Refactor-->Remove Used Resources...를 선택합니다.

(또는)

바로 가기도 사용 가능

Ctlr+Alt+를 누릅니다.Shift+i 하나의 대화 상자가 나타나고 unused를 입력합니다. 사용하지 않는 리소스를 선택하고 제거하는 옵션이 많이 있습니다.

Android Wear 개발자에게 주의: "사용되지 않는 리소스 제거"는 기능 이름(res/values/wear.xml)을 선언하는 xml 파일을 삭제하고 전화기를 워치에 연결할 수 없습니다.저는 제 앱에서 이 버그를 알아내려고 몇 시간을 보냈습니다.

string.xml을 확인합니다.

그것은 쉽습니다(적어도 제 버전의 이클립스에서는).

Android용 이클립스(V22.6.2-1085508 버전 있음)

  • 패키지 탐색기에서 프로젝트 이름을 마우스 왼쪽 버튼으로 클릭합니다.
  • Android 도구를 선택합니다.
  • "보풀 실행:일반 오류를 확인하십시오."

strings.xml을 열면 사용하지 않는 문자열이 강조 표시됩니다.

다른 잠재적인 문제를 해결할 수 있습니다.

유용한 Andround Unsused Resources는 프로젝트에서 사용되지 않는 리소스를 검색하는 Java 응용 프로그램입니다.사용하지 않는 리소스는 불필요하게 공간을 차지하고, 빌드 시간을 늘리며, IDE의 자동 완성 목록을 혼란스럽게 합니다.

사용하려면 작업 디렉터리가 Android 프로젝트의 루트인지 확인하고 다음을 실행합니다.

java -jar AndroidUnusedResources.항아리

https://code.google.com/p/android-unused-resources/

축소 리소스를 정의할 때 true를 지정하면 유지할 리소스와 keep.xml이라는 이름의 res/raw 폴더에 xml 파일을 추가하지 않은 리소스도 정의할 수 있습니다.

추가로 서명된 빌드를 생성하기 전에 drawable-xhdpi-v4에 messenger_button_send_round_messenger.png이 있음을 보여주는 pk 분석기 도구를 체크인합니다. 이 테스트를 위해 제거하려고 합니다.

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
       tools:shrinkMode="strict"
       tools:discard="@drawable/com_facebook_button_icon_blue.png,
       @drawable/com_facebook_button_icon_white.png,
       @drawable/com_facebook_button_like_icon_selected.png,
       @drawable/messenger_button_send_round_shadow.png,
       @drawable/messenger_*"  />

messenger_*를 수행하면 그리기 가능한 폴더의 이름 메신저에서 시작하는 모든 파일이 제거되거나 다른 방법으로 제거할 특정 파일이 정의됩니다.

라이브러리 자체에서 파일을 제거할 수 있는 방법으로 레이아웃에서 그리기 가능한 그림이 사용된 경우 @drawable/layout name을 사용하여 레이아웃을 제거할 수도 있습니다.

여기 좋은 도구를 제안하는 훌륭한 답변이 있습니다.

그러나 png-drawables(또는 다른 이미지 파일)를 제거하려면 프로젝트에서 모든 drawables-xxxx 폴더를 임시 폴더로 이동한 다음 모두 다시 빌드하고 누락된 빌드 메시지 목록을 살펴봐야 합니다.

이 기능은 Android Iconics 라이브러리의 도움을 받아 어떤 리소스를 효과적으로 사용하고 있는지 개요를 확인하고 아이콘 글꼴 또는 svg 리소스로 대체하려는 경우 특히 유용합니다.

shiftWindows를 두 번 클릭한 후 "unused"를 입력하면 옵션을 찾을 수 있습니다.Remove unused Resources,
또한.

 android {
        buildTypes {
            release {
                minifyEnabled true
                shrinkResources true
            }
   }
}

이러한 설정을 설정하면 AS가 사용되지 않는 리소스를 자동으로 제거합니다.

Android Assets Viewer는 .apk에 포함된 그래픽을 시각적으로 검사할 수 있도록 설계되었습니다(원하는 경우 res 폴더의 zip 파일만 업로드할 수도 있습니다).

http://www.cellebellum.net/AndroidAssetsViewer/

따라서 사용되지 않는 리소스를 제거하는 경우 린트 검사와 함께 사용하면 모든 리소스가 제대로 작동할 수 있습니다.또한 잘못된 버킷, 잘못된 그래픽 등 그림 그리기와 관련된 몇 가지 잠재적인 문제를 식별하는 데 도움이 됩니다.

Android Studio에서 Lint를 실행하고 사용되지 않는 리소스를 모두 찾은 후 Inspection 탭에서 리소스 중 하나를 클릭할 수 있습니다.문제에 대한 몇 가지 세부 정보와 문제를 해결하는 몇 가지 옵션을 제공합니다.그 중 하나는 사용하지 않는 모든 리소스 제거입니다.이 옵션을 선택하면 사용되지 않는 모든 리소스가 삭제됩니다.

언급URL : https://stackoverflow.com/questions/6373482/remove-all-unused-resources-from-an-android-project

반응형