2013-08-15 44 views
20

Tôi muốn tạo APK đã ký trong Android Studio và nó cung cấp cho tôi một tùy chọn để chạy ProGuard. Nó yêu cầu tôi cung cấp cho đường dẫn tập tin cấu hình, nhưng tôi không có tập tin cấu hình. Làm thế nào để tạo ra một? Tôi có nên sử dụng ProGuard không? Bạn có thể dễ dàng giải nén tệp APK không sử dụng ProGuard không?Tôi có nên sử dụng ProGuard không?

EDIT: Cảm ơn câu trả lời của bạn, nhưng tôi không thể tìm thấy tệp proguard.cfg ở bất kỳ đâu. Chỉ thuộc tính tập tin tôi có trong thư mục gốc của dự án được local.properties file và khi tôi mở nó trong Android Studio tôi nhận điều này:

# This file is automatically generated by Android Studio. 
# Do not modify this file -- YOUR CHANGES WILL BE ERASED! 
# 
# This file must *NOT* be checked into Version Control Systems, 
# as it contains information specific to your local configuration. 

# Location of the SDK. This is only used by Gradle. 
# For customization when using a Version Control System, please read the 
# header note. 
sdk.dir=C:/.../... 

Trả lời

17

Nó là khá dễ dàng để đảo ngược các ứng dụng Android kỹ sư, vì vậy nếu bạn muốn ngăn chặn điều này xảy ra, có, bạn nên sử dụng ProGuard cho chức năng chính của nó: obfuscation.

ProGuard cũng có hai chức năng quan trọng khác: thu hẹp mà loại bỏ mã không sử dụng và rõ ràng là rất hữu ích và cũng tối ưu hóa. Tối ưu hóa hoạt động với bytecode Java, và kể từ khi Android chạy trên bytecode Dalvik được chuyển đổi từ bytecode Java, một số tối ưu hóa sẽ không hoạt động tốt như vậy. Vì vậy, bạn nên cẩn thận ở đó.

instructions on how to use proguard trên trang web Android. Điều chính bạn cần kiểm tra là bạn có dòng

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 

trong tệp project.properties của bạn. Vì bạn đề cập đến việc bạn sử dụng Android Studio và bạn không có tệp này nhưng bạn được hỏi về tệp cấu hình, hãy thử chọn tệp có trong SDK Android (tools/proguard/proguard-android.txt).

+0

Cảm ơn bạn đã giải thích, nhưng tôi không có tệp project.properties không phải tệp proguard.cfg mà họ đã đề cập trên trang web Android. Tôi chỉ có tệp local.properties. – user2687045

+0

@ user2687045 Tôi đã cập nhật câu trả lời. Tuy nhiên, tôi không sử dụng Android Studio, vì vậy đây chỉ là một phỏng đoán. – Malcolm

2

Có ProGuard chạy là hoàn toàn không bắt buộc, nhưng rất khuyến khích.

Bạn có thể tìm thấy tất cả những gì bạn cần ở đây: http://developer.android.com/tools/help/proguard.html

Ngoài ra bạn có thể loại bỏ các dòng sau từ tập tin default.properties trong thư mục gốc của dự án của bạn:

proguard.config = proguard.cfg

+0

Nó nói "Khi bạn tạo dự án Android, tệp proguard.cfg được tự động tạo trong thư mục gốc của dự án.", Nhưng tôi không có tệp proguard.cfg ở đó cũng như bất kỳ nơi nào khác trong thư mục dự án. – user2687045

+0

@ user2687045 Ngoài ra, bạn có thể xóa dòng sau khỏi mặc định.tệp thuộc tính trong thư mục gốc của dự án: proguard.config = proguard.cfg – Arseniy

12

Bạn có thể tùy chọn sử dụng ProGuard và bạn có sử dụng ProGuard hay không, dễ dàng giải nén gói ứng dụng và lấy tài nguyên (đồ họa và các tài sản khác). Nếu bạn không sử dụng ProGuard, mã ứng dụng cũng có thể được xây dựng lại khá dễ dàng, với ProGuard nó trở nên rất khó khăn và rườm rà để thử và hiểu những gì xảy ra ở đâu (mặc dù không thể không đủ thời gian và công sức).

Hãy cẩn thận để kiểm tra ứng dụng của bạn kỹ lưỡng sau khi làm xáo trộn, vì đó là thay đổi đối với ứng dụng và đôi khi những điều không mong muốn có thể xảy ra, đặc biệt nếu oyu đang sử dụng sự phản chiếu rất nhiều.

6

Một trường hợp quan trọng để thực hiện việc bảo vệ ProGuard là, một số kẻ xấu giải nén apk và tiêm/thay thế mô-đun mua hàng cho họ. Chúng tôi không thể mong đợi tất cả người dùng tải xuống apk chỉ từ Cửa hàng Play và người dùng có thể bị đánh cắp tài khoản mua hàng của họ.

+0

Ồ, đừng bao giờ nghĩ về bảo mật người dùng liên quan đến proguard. Chắc chắn một lý do nữa để sử dụng nó. Cảm ơn. – HopefullyHelpful

Các vấn đề liên quan