30/09/2018, 20:16
Khi em tạo database mydata.db trên android studio thì tìm cái file mydata.db ấy ở đâu ạ?
Mọi người cho em hỏi khi em tạo database mydata.db trên android studio thì tìm cái file mydata.db ấy ở đâu ạ?
Bài liên quan
/data/data/{tên_app}/databases/{tên_db}
Là sao ạ? Em vẫn không hiểu…
nó nằm trên bộ nhớ thiết bị ấy, theo đường dẫn mà bạn Hoàng đưa ra đấy
Hi, xin lỗi bạn vì mình trả lời hơi vắn tắt quá. Về câu hỏi của bạn:
Không phải android studio tạo ra file sqlite3 mà phải là chương trình / code của bạn. Mặc định các chương trình android chạy ở chế độ sandbox (chạy trong một máy ảo, nên data cũng phải được tách ra, tránh các app # truy cập. Android làm được việc này nhờ tạo một user ảo tương ứng với instance của máy ảo và gán quyền data cho user ảo này), do đó mặc định nó sẽ save vào internal storage ở địa chỉ /data/data/{tên_app}/databases/{tên_db}
Ví dụ, app của bạn tên là com.abc.app1 và db của bạn là mydata.db thì nó sẽ save vào internal storage tại /data/data/com.abc.app1/databases/mydata.db. Mặc định, file này chỉ có app của bạn mới truy cập được (đảm bảo security), tuy nhiên vì bạn là developer, thì bạn phải ngó nghiêng được nó, mở nó ra xem. Muốn làm được vậy, bạn phải có quyền cao nhất, quyền root (phải root máy).
Khi root được máy, bạn có thể sử dụng command line hoặc GUI để xem.
Nếu là command line, bạn gõ:
Tất nhiên, bạn hoàn toàn có thể save nó vào external, tuy nhiên external storage sẽ không an toàn vì có thể unmount và truy cập ở đâu cũng được (thực ra thì internal cũng đek an toàn vì hoàn toàn có thể root được. Do đó, db phía client chỉ nên làm db cache cho một remote db, ví dụ như cho app hoạt động offline, khi nào có net thì đẩy lên remote)