2016-04-13 31 views
14

Tôi muốn xóa các tài nguyên không được sử dụng khỏi dự án của mình để giảm kích thước ứng dụng. Có cách nào để làm điều đó bằng cách sử dụng Android Studio IDE một cách hiệu quả?Xóa tài nguyên không sử dụng bằng Android Studio?

+1

[xem điều này] (http://cyrilmottier.com/2014/08/26/putting-your-apks-on-diet/) –

+0

Nhấp chuột phải vào tài nguyên và nhấp vào Tìm tùy chọn sử dụng. nó sẽ hiển thị nếu nó được sử dụng hay không. nếu không thì hãy loại bỏ nó một cách an toàn. – androidnoobdev

+0

thấy điều này: http: //stackoverflow.com/questions/6373482/remove-all-unused-resources-from-an-android-project –

Trả lời

25

Các Gradle xây dựng hệ thống dành cho Android hỗ trợ Resource Shrinking : việc loại bỏ tự động các nguồn lực mà không sử dụng, ít thời gian xây dựng, trong ứng dụng đóng gói. Ngoài việc loại bỏ các tài nguyên trong dự án của bạn mà không thực sự cần thiết trong thời gian chạy, điều này cũng loại bỏ các tài nguyên khỏi các thư viện mà bạn phụ thuộc vào nếu chúng không thực sự cần thiết cho ứng dụng của bạn. Ví dụ: ứng dụng của bạn đang sử dụng Dịch vụ của Google Play, ví dụ: truy cập chức năng Google Drive và bạn hiện không sử dụng Đăng nhập bằng Google, điều này sẽ xóa nhiều nội dung có thể kéo khác nhau cho các nút Đăng nhập.

Lưu ý:Tài nguyên Thu hẹp chỉ hoạt động cùng với việc thu hẹp mã (chẳng hạn như ProGuard). Đó là cách nó có thể loại bỏ các tài nguyên không sử dụng khỏi các thư viện; thông thường, tất cả các tài nguyên trong một thư viện được sử dụng, và nó chỉ khi chúng ta loại bỏ mã không sử dụng mà nó trở nên rõ ràng các tài nguyên nào được tham chiếu từ mã còn lại.

Để kích hoạt tính thu hẹp nguồn lực, cập nhật loại xây dựng của bạn như sau:

android { 
    ... 

    buildTypes { 
     release { 
      minifyEnabled true 
      shrinkResources true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

Và google gần đây tung ra Android Studio 2.0 chính thức, Bây giờ họ đang đưa ra một lựa chọn trong IDE chính nó.

Nhấp chuột phải vào ứng dụng -> Refactor -> Xóa Tài nguyên chưa sử dụng

Nó sẽ nhắc

enter image description here

Kiểm tra các hành động hộp xác nhận trước để bạn có thể nhận được loại bỏ các khai báo @id chưa sử dụng.

  • Về mặt tối ưu hóa APK, xem xét thực tế là Selecting a Format.
  • Sử dụng WebP Hình ảnh cung cấp khả năng nén tốt hơn so với JPEG hoặc PNG. Hình ảnh WebP bị mất được hỗ trợ trong Android 4.0 (API cấp 14) trở lên và hình ảnh WebP không bị mất và trong suốt được hỗ trợ trong Android 4.3 (API cấp 18) trở lên.
+0

nó hoạt động với drawables | mipmaps? – Amir

+0

@Amir Có, có. –

+0

Vì vậy, kích thước ứng dụng của tôi đã tăng từ 39,98mb lên 39,99mb. Nhưng tôi không thể tưởng tượng rằng chúng tôi không có bất kỳ tài nguyên không sử dụng (đặc biệt là trong tất cả các thư viện chúng tôi đang sử dụng). – 4ndro1d

0

Trong studio android. Bạn có thể sử dụng Android Lint. Nó sẽ hiển thị "Strings, Resource, nhập khẩu .." không sử dụng

Analyze -> Inspect Code -> Whole Project -> OK 
0
  1. Studio Android có hiển thị ngăn xếp cuộc gọi của ứng dụng chưa sử dụng hoặc ứng dụng đã sử dụng không? Đối với tôi, ngăn xếp cuộc gọi là quan trọng. Nó có hiển thị không?
  2. Tính năng này có hoạt động trên dll ... đó là thư viện động không? Ví dụ: Tôi đã nói 4 ứng dụng và 10 thư viện phổ biến. Tất cả 4 ứng dụng chỉ sử dụng 6 thư viện và không sử dụng 4 thư viện, đó là một tài nguyên chưa được sử dụng và cần được loại bỏ để làm cho hệ thống sáng. Android Studio 2.0 có hoạt động với dll không?
Các vấn đề liên quan