Tôi đã tải xuống bộ bảo vệ được đóng gói trong một tệp zip và giải nén nó vào đĩa cứng của tôi. Tôi không cài đặt bằng bất kỳ cách nào (vì tôi không biết cách thực hiện). Sau đó tôi đã thêm proguard.config=proguard.cfg
vào tệp project.properties của mình. Sau đó tôi đã làm một "ứng dụng Android xuất khẩu" hoàn toàn mong đợi nhật thực để phàn nàn rằng nó không biết nơi cài đặt proguard của tôi đã được, nhưng không có khiếu nại. Thật vậy, một tập tin apk mới xuất hiện trong kho khóa của tôi, và một tập hợp các tập tin (dump.txt vv) xuất hiện trong thư mục con proguard của ứng dụng của tôi. Mapping.txt trông giống như một danh sách tốt đẹp của ánh xạ từ tên biến dài của tôi đến một và hai biến chữ cái. Tất cả điều này chắc chắn là bằng chứng mạnh mẽ rằng proguard đã bằng cách nào đó làm việc - mối quan tâm duy nhất của tôi là gói ứng dụng hiếm khi nhỏ hơn trước đây. Có cách nào để kiểm tra xem gói ứng dụng có bao gồm obfuscations của proguard không?Làm thế nào để biết Proguard đã thực hiện công việc của mình chưa
Trả lời
Một phương pháp thay thế cho phương pháp @Kuffs là so sánh APK mới của bạn với phiên bản cũ. Mở cả hai (với 7zip hoặc công cụ ưa thích của bạn) và so sánh kích thước của các tệp classes.dex trong mỗi tệp.
Một vài lý do đơn giản bạn có thể không được nhìn thấy nhiều của một tiết kiệm kích thước:
- Các classes.dex không khó hiểu đã có thể được nén nhiều hơn obfuscated một. Điều này luôn đúng với một mức độ nào đó.
- Bạn không tạo bản phát hành. Proguard chỉ được chạy trên bản phát hành bản phát hành kể từ khi gỡ lỗi mã obfuscated là một cơn ác mộng.
- Cài đặt Proguard bạn đang sử dụng không hoạt động tốt (ít nhất là về kích thước mã) cho dự án của bạn. Tôi đã thực sự thấy cài đặt nội tuyến mã của proguard tăng kích thước của các tệp jar trước đây!
Các classes.dex không rõ ràng đã có thể được nén nhiều hơn một obfuscated -> điều này có nghĩa là unobfuscated classes.dex có kích thước nhỏ hơn obfuscated? – Rendy
@Rendy Tôi sẽ luôn luôn mong đợi kích thước của .dex obfuscated được nhỏ hơn so với unobfuscated một. Tuy nhiên, tôi cũng hy vọng rằng sự khác biệt về kích thước sau khi nén sẽ nhỏ hơn nhiều so với sự khác biệt về kích thước trước khi nén. Điều này là do obfuscation thực hiện một số công việc tương tự như nén - tức là thay thế các chuỗi dài (class/method/field name) bằng các chuỗi ngắn hơn nhiều. – vaughandroid
đã nhận được! Cảm ơn! – Rendy
- 1. Bạn đã thử Quy trình làm việc của Spring chưa?
- 2. Làm thế nào để bạn tổ chức công việc lập trình của mình
- 3. Làm thế nào để bạn thực hiện việc làm mờ những gì bạn đã tìm kiếm?
- 4. Làm thế nào tôi có thể thực hiện công việc perltidy với Phương pháp :: Chữ ký?
- 5. Lớp thư của Laravel 4, làm cách nào để biết email đã được gửi chưa?
- 6. Làm thế nào để thực hiện các công việc nền trong trang ASP.NET MVC 3?
- 7. Làm cách nào để biết một gói nhất định đã được cài đặt chưa?
- 8. Làm thế nào để tôi biết việc xây dựng đã thành công trong mục tiêu AfterBuild trong msbuild?
- 9. Tôi làm cách nào để kiểm tra công việc trang web của mình trong Safari mobile?
- 10. Làm cách nào để biết máy tính đã được khởi động lại chưa?
- 11. Phát hiện các công việc chưa chạy theo lịch
- 12. Làm thế nào để hoàn tác công việc của tinyMCE?
- 13. Làm thế nào để ngăn chặn công việc OnItemClickListener khi bấm dài thực hiện?
- 14. Làm thế nào để thực hiện công việc nền trong JComponent tùy chỉnh?
- 15. làm thế nào để giết các công việc hadoop
- 16. Làm thế nào Orchard CMS thực hiện việc đăng nhập?
- 17. Service.onDestroy() được gọi trực tiếp sau khi tạo, dù sao Dịch vụ thực hiện công việc của mình
- 18. Trong khi thực hiện đá quý, chưa biết lệnh
- 19. Làm thế nào để biết liệu một cửa sổ có tiêu đề đã cho đã được mở trong Tk chưa?
- 20. Làm cách nào để biết tệp javascript đã được đưa vào trang cấp cao nhất chưa?
- 21. Làm thế nào để tôi biết khi nào async cuối cùng được thực hiện?
- 22. Việc làm với Resque cung cấp cho công việc "Không biết cách xây dựng công việc": công việc '"trên Heroku
- 23. Làm cách nào để chuyển công việc hiện tại của tôi sang một nhánh chủ đề?
- 24. làm thế nào để thực hiện onRetainNonConfigurationInstance
- 25. Làm thế nào hủy bỏ việc thực hiện một SwingWorker?
- 26. Làm thế nào để tôi biết infowindow đã xuất hiện trong google maps
- 27. Làm cách nào để biết liệu sự kiện $ (window) .load()/window.onload đã được kích hoạt chưa?
- 28. Làm cách nào để cấu hình bắt đầu thực hiện giữa các công việc phụ thuộc?
- 29. Làm cách nào để thực hiện công việc DebugView trong .NET 4?
- 30. Làm thế nào để biết nếu urllib.urlretrieve thành công?
Điều này hoạt động xuất sắc - cảm ơn nhiều! – Pete
Làm thế nào để sử dụng dex2jar? – Roel
http://stackoverflow.com/questions/5257830/how-to-use-dextojar – Kuffs