답변:
Android Studio에서 사용하지 않는 리소스를 쉽게 검색 할 수 있습니다. 그냥 눌러 CtrlAltShifti입력 " 사용되지 않는 자원을 (따옴표없이)". 보푸라기가 실행됩니다. 린트 명령 (및 IDE의 다른 항목)을 실행하는 매우 쉬운 방법입니다.
또는
에서 안드로이드 스튜디오 메뉴 > 리팩터링 > 사용하지 않는 자원을 제거 ...
제거 할 리소스를 선택하십시오. 리소스 항목을 마우스 오른쪽 버튼으로 클릭하여 유지하려는 리소스를 제외 할 수 있습니다.
리팩토링 수행 을 사용 하여 모든 자원을 한 번에 제거하십시오.
업데이트 : 사용 ⌘OptionShiftiMac 용
ADT 16부터 Android Lint를 사용할 수 있습니다 . 정말 놀라운 도구입니다.
Android Lint는 ADT 16 (및 Tools 16) 용 새로운 도구로, 잠재적 인 버그가 있는지 Android 프로젝트 소스를 스캔합니다.
찾는 오류 유형의 예는 다음과 같습니다.
- 누락 된 번역 (및 사용되지 않은 번역)
- 레이아웃 성능 문제 (이전의 layoutopt 도구에서 찾은 모든 문제 등)
- 사용하지 않은 자원
- 일관되지 않은 배열 크기 (어레이가 여러 구성으로 정의 된 경우)
- 접근성 및 국제화 문제 (하드 코딩 된 문자열, 누락 된 내용 설명 등)
- 아이콘 문제 (밀도 누락, 중복 아이콘, 잘못된 크기 등)
- 사용성 문제 (텍스트 필드에 입력 유형을 지정하지 않는 등)
- 매니페스트 오류 등
그러나 문제가 있습니다 (이미 수정되었는지 알 수 없음). 수백 개의 미사용 리소스를 삭제하려는 경우 리소스 제거 중에 프로젝트를 수동으로 여러 번 컴파일하여 Lint 가하지 않았는지 확인하는 것이 좋습니다 필요한 것을 제거하십시오.
Analyze > Inspect Code...
포함하여 여러 가지를 찾을 수 있습니다 .
lint --check UnusedResources <project-path>
Extra Translations
함께 / 자동으로 모든 것을 삭제하는 방법이 있습니까?
Eclipse에서 ADT 지원이 종료되었으므로 Android Studio를 사용해야합니다.
Android Studio 2.0 이상에서 Refactor > Remove Unused Resources...
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
minifyEnabled true
우리는 린트 출력을 기반으로 안드로이드 프로젝트에서 사용되지 않은 모든 리소스를 제거하는 도구를 오픈 소스로 제공합니다. https://github.com/KeepSafe/android-resource-remover 에서 찾을 수 있습니다.
보푸라기를 실행할 때 여러 가지 맛을 사용하는 경우주의하십시오. 린트는 선택한 맛에 따라 사용되지 않은 잘못된 자원을 제공 할 수 있습니다.
string.xml을 확인하려면
쉽습니다 (적어도 내 버전의 Eclipse에서는)
Android 용 Eclipse에서 (버전 v22.6.2-1085508이 있습니다)
이제 strings.xml을 열면 사용되지 않는 문자열이 강조 표시됩니다.
다른 잠재적 인 문제를 해결할 수 있습니다.
유용한 Andround Unused Resources는 프로젝트에서 사용하지 않는 리소스를 스캔하는 Java 응용 프로그램입니다. 사용하지 않는 리소스는 불필요하게 공간을 차지하고 빌드 시간을 늘리며 IDE의 자동 완성 목록을 복잡하게 만듭니다.
이를 사용하려면 작업 디렉토리가 Android 프로젝트의 루트인지 확인하고 다음을 실행하십시오.
java -jar AndroidUnusedResources.jar
리소스 축소를 정의 할 때 해당 리소스를 유지하고 유지하고 싶은 리소스를 정의 할 수 있습니다. 그리고 keep.xml이라는 res / raw 폴더에 xml 파일을 추가하지 않았습니다.
단일 서명 된 빌드를 생성하고 apk 분석기 도구에서 drawable-xhdpi-v4에 messenger_button_send_round_shadow.png가 있음을 보여줍니다.이 테스트에서는 제거하고 싶습니다.
<?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 / layout 이름으로 레이아웃을 제거 할 수도 있습니다.
여기에 훌륭한 도구를 제안하는 훌륭한 답변이 있습니다.
그러나 png 드로어 블 (또는 다른 이미지 파일 ) 을 제거하려는 경우 프로젝트에서 모든 drawable-xxxx 폴더를 임시 폴더로 이동 한 다음 모두 다시 빌드하고 빌드를 살펴보십시오. 누락 된 메시지를 알려주는 메시지 목록.
이 기능은 효과적으로 사용중인 리소스에 대한 개요를 얻고 아이콘 글꼴 또는 svg 리소스 ( Android Iconics 라이브러리 의 도움으로)로 대체하려는 경우에 특히 유용 할 수 있습니다 .
Android Assets Viewer는 .apk 내에 압축 된 그래픽을 드로어 블로 시각적으로 검사 할 수 있도록 설계되었습니다 (원하는 경우 res 폴더의 zip 파일 만 업로드 할 수도 있음).
http://www.cellebellum.net/AndroidAssetsViewer/
따라서 사용하지 않는 리소스를 제거하기 위해 Lint 검사와 함께 작동하여 필요한 모든 것이 있는지 확인하십시오. 또한 드로어 블과 관련된 몇 가지 잠재적 인 문제 (잘못된 버킷, 잘못된 그래픽 등)를 식별하는 데 도움이됩니다.