2013-09-03 37 views
10

Tôi đang chạy một số thử nghiệm tự động (với calabash-android) trên ứng dụng Android và tôi cần phải kích hoạt một cách rõ ràng bộ nhớ cache của ứng dụng chứ không phải dữ liệu người dùng.Android: cách xóa bộ nhớ cache của ứng dụng và giữ dữ liệu người dùng qua adb?

Tôi nhận thấy rằng giải pháp adb shell pm clear không đủ, vì nó xóa dữ liệu người dùng (bao gồm chi tiết đăng nhập).

Có cách nào để đạt được điều này bên ngoài ứng dụng (tức là không có thay đổi mã) không?

Trả lời

7

Tôi đã khám phá thư mục /data/data/<app's package> và tìm thấy thư mục cache bên trong, chứa các tệp được lưu trong bộ nhớ cache cho ứng dụng mà tôi muốn xóa bộ nhớ cache. Sau đó, từ adb shell Tôi đã xóa nội dung và bộ nhớ cache của ứng dụng được đặt lại.

Có thể bạn chỉ có thể chạy adb shell su -c "rm -rf /data/data/<app's package>/cache/*" để xóa bộ nhớ cache chỉ cho ứng dụng (ứng dụng có thể có một số bộ nhớ đệm tùy chỉnh không bị ảnh hưởng bởi điều này). Nó làm việc cho tôi.

Sửa: Tất nhiên, adb thiết bị của bạn phải được thiết lập để có thể truy cập gốc (trong Xyanogen, bạn có thể kích hoạt nó).

Chỉnh sửa: @ chạy-codebase được chỉ ra trong nhận xét, nếu ứng dụng của bạn được biên dịch bằng khóa gỡ lỗi, bạn cũng có thể sử dụng lệnh run-as trong trình bao của adb. Vì vậy, nó sẽ trông như thế này: adb shell run-as <app's package> rm -rf /data/data/<app's package>/cache/* Phương pháp này không không yêu cầu root.

+1

Bạn có thể chạy adb shell dưới dạng và xóa các tệp không có gốc nếu bạn đã tạo ứng dụng bằng khóa gỡ lỗi. –

+1

Cảm ơn, tôi đã phát hiện ra từ đó, nhưng tôi quên cập nhật câu trả lời này. Tôi sẽ sớm bổ sung. –

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