Tôi cần lưu trữ một số thông tin nhạy cảm trong một ứng dụng Android. Nếu tôi đặt nó trong một tập tin tài nguyên, nó xuất hiện rằng nó là tầm thường cho một ứng dụng khác để có thể duyệt và đọc tập tin đó chỉ đơn giản bằng cách sử dụng PackageManager.getResourcesForApplication().Nơi lưu trữ thông tin toàn cầu nhạy cảm như các khóa API trong ứng dụng Android?
Địa điểm chính xác để đặt thông tin như thế nào mà chúng tôi không muốn mọi người có thể dễ dàng tìm được thông tin?
Nó có nằm trong tệp java đã biên dịch không? Hay là lớp học cũng dễ đọc? Ngoài ra, nếu chúng ở trong các tệp java, có thể tham chiếu chúng từ các tệp XML cần chúng (ví dụ: đối với khóa api bản đồ google) không?
Mọi thứ bạn phân phối trong gói ứng dụng đều có thể đọc được. Chỉ cần đặt nó vào tài nguyên/tệp java miễn là nó là những thứ không có giá trị như khóa api. Nếu đó là số thẻ tín dụng của bạn thì không được. Khóa api của bản đồ chỉ hoạt động trong XML IIRC – zapl
Trên trang ProGuard mà chúng đề cập đến [DexGuard] (http://www.saikoa.com/dexguard) cho phép obfuscation tốt hơn cho các chuỗi tĩnh (các khóa API). Nếu ném vào một số tiền không phải là một vấn đề kiểm tra những gì họ cung cấp có thể là giá trị rắc rối. – harism