Tôi có một dự án Android lớn với nhiều chuỗi được khai báo strings.xml. Tôi muốn loại bỏ các chuỗi không sử dụng trong strings.xml.
Có cách nào dễ dàng để làm như vậy?
Tôi có một dự án Android lớn với nhiều chuỗi được khai báo strings.xml. Tôi muốn loại bỏ các chuỗi không sử dụng trong strings.xml.
Có cách nào dễ dàng để làm như vậy?
Câu trả lời:
Trên Android Studio :
Menu -> Phân tích -> Chạy Kiểm tra theo Tên -> Tài nguyên không sử dụng
Chọn hộp kiểm Mặt nạ tệp và đặt strings.xmlvào trường văn bản.
tools:ignore="UnusedResources"
Đây là một giải pháp khá dễ dàng. Trong menu Android Studio, đi tới
Refactor> Xóa Tài nguyên chưa sử dụng ... .
Nhấp vào Xem trước để xem tài nguyên không sử dụng là gì và chọn lọc loại bỏ chúng.
Trong trường hợp của tôi, "Chạy Kiểm tra theo Tên" không hoạt động, mặc dù thực tế tôi đang sử dụng "Xóa tài nguyên không sử dụng".
Giải pháp:
Tôi không biết tại sao "Xóa tài nguyên không sử dụng" hoạt động theo cách này mà không phải cách khác.
Với ADT 16 bạn có thể làm điều đó đơn giản nhất có thể. Cập nhật lên ADT 16 và sử dụng Android Lint . Nó thực sự là công cụ tuyệt vời. Nó có thể tìm thấy tất cả các tài nguyên không sử dụng (không chỉ chuỗi) và nhiều hơn nữa. Từ trang web chính thức của nó:
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.
Warning: The resource R.string.... appears to be unused [UnusedResources] [lint] <string name="...">some text</string>
Để kiểm tra chuỗi tệp.
Thật dễ dàng (ít nhất là trong phiên bản Eclipse của tôi)
Trong Eclipse cho Android (Tôi có phiên bản v22.6.2-1085508)
Bây giờ khi bạn mở String.xml, bạn sẽ thấy chuỗi không sử dụng được tô sáng.
Bạn có thể khắc phục các vấn đề tiềm năng khác.
Trong Android Studio Press
Ctlr + Alt + Shift + i
Chọn -> Tài nguyên không sử dụng
Nó hiển thị cho bạn các chuỗi và biểu tượng không sử dụng.
Cảm ơn Chúc mừng mã hóa :)
Đây là cách tôi đã làm với Android 3.3.
Kiểm tra bất kỳ thay đổi chưa lưu đối với kho lưu trữ của bạn.
Lưu ý: Hãy thử xây dựng dự án. Nếu quá trình biên dịch thất bại, rất có thể các chuỗi XML này đang được giới thiệu từ một số xml bố cục / menu, bản thân chúng không được sử dụng. Vì vậy, các xml bố trí cũng có thể được xóa bằng tay!
Xây dựng và chạy. Kiểm tra!
Chạy kịch bản này từ thư mục gốc của dự án của bạn.
cho resourcefile trong `find res / value / *. xml`; làm
cho tên chuỗi trong `grep '. * / \ 1 / g'`; làm
Count1 = `grep -rc" R. String. $ {stringname} "src | egrep -v ': 0 $' | wc -l`
Count2 = `grep -rc" @ String / $ {stringname} "res / layout | egrep -v ': 0 $' | wc -l`
Count3 = `grep -rc" @ String / $ {stringname} "res / menu | egrep -v ': 0 $' | wc -l`
Count4 = `grep -rc" @ String / $ {stringname} "AndroidManifest.xml | egrep -v '^ 0 $' | wc -l`
Count5 = `grep -rc" @ String / $ {stringname} "res / xml | egrep -v ': 0 $' | wc -l`
if [$ Count1 -eq 0 -a $ Count2 -eq 0 -a $ Count3 -eq 0 -a $ Count4 -eq 0 -a $ Count5 -eq 0]; sau đó
echo $ resourcefile: $ stringname
fi
làm xong
làm xong
cho tên lại trong `find res / drawable * -type f -name '*. ???'`; làm
resource = `echo $ resourcename | tên cơ sở xargs | sed "s / ^ \ (. * \) \ .... $ / \ 1 / g" `
Count1 = `grep -rc" R \ .drawable \. $ {resource} "src | egrep -v ': 0 $' | wc -l`
Count2 = `grep -rc" @drawable / $ {resource} "res / layout | egrep -v ': 0 $' | wc -l`
Count3 = `grep -rc" @drawable / $ {resource} "res / drawable * / *. xml | egrep -v ': 0 $' | wc -l`
Count4 = `grep -rc" @drawable / $ {resource} "res / menu | egrep -v ': 0 $' | wc -l`
Count5 = `grep -rc" @drawable / $ {resource} "AndroidManifest.xml | egrep -v '^ 0 $' | wc -l`
if [$ Count1 -eq 0 -a $ Count2 -eq 0 -a $ Count3 -eq 0 -a $ Count4 -eq 0 -a $ Count5 -eq 0]; sau đó
echo $ resourcename
fi
làm xong
cho tên resourc trong `find res / layout / *. xml`; làm
resource = `echo $ resourcename | tên cơ sở xargs | sed "s / ^ \ (. * \) \ .... $ / \ 1 / g" `
đếm1 = `grep -rc" R \ .layout \. $ {resource} "src | egrep -v ': 0 $' | wc -l`
nếu [$ đếm1 -eq 0]; sau đó
echo $ resourcename
fi
làm xong
Nó cho tôi loại đầu ra này:
res / value / Activity_strings.xml: Activity_more res / value / Activity_strings.xml: Activity_as_Vply_to res / value / db_strings.xml: sql_backlog_count res / value / db_strings.xml: sql_backlog_update_last_resend ...
Custom scope, chọnProduction classes->app->valuesđể tìm các chuỗi, màu không sử dụng ...