img src : https://developer.android.com/training/data-storage |
- ข้อมูลที่เก็บแบบมี key กับ value ในไฟล์ .xml (เจอบ่อยสุด)
- Shared Preference
- Secure Preference
- EncryptedSharedPreferences
Database : ฐานข้อมูล ใน android app *ไฟล์หายเมื่อลบแอพ
- SQLiteOpenHelper
- Room
- SQLCipher
Shared storage : ข้อมูลที่แชร์กับแอปอื่นๆ
เช่น Media : images , audio , videos , documents *ไฟล์ไม่หายเมื่อลบแอพ
- MediaStore API
- Content Provider สำหรับเปิด Database ให้แอพอื่นสามารถ Query มาที่แอพเราได้
สามารถกำหนดได้เช่น เฉพาะแอพที่ใช้ keystore เดียวกัน
เช่น Media : images , audio , videos , documents *ไฟล์ไม่หายเมื่อลบแอพ
- MediaStore API
- Content Provider สำหรับเปิด Database ให้แอพอื่นสามารถ Query มาที่แอพเราได้
สามารถกำหนดได้เช่น เฉพาะแอพที่ใช้ keystore เดียวกัน
App-specific storage : แบ่งออกเป็น 2 ประเภท
Internal Storage (เก็บน้อยๆแต่ปลอดภัย) *ไฟล์หายเมื่อลบแอพ
- getFilesDir() ไฟล์จะถูกเก็บที่ : package_name/files/
- getCacheDir() ไฟล์จะถูกเก็บที่ : package_name/cache/
External Storage (เก็บข้อมูลเยอะๆ) *ไม่ลบไฟล์เมื่อลบแอพ
- getExternalFilesDir() ไฟล์จะถูกเก็บที่ : /storage/sdcard0/Android/data/package_name/files/........
- getExternalCacheDir() ไฟล์จะถูกเก็บที่ : ..........................................
Internal Storage (เก็บน้อยๆแต่ปลอดภัย) *ไฟล์หายเมื่อลบแอพ
- getFilesDir() ไฟล์จะถูกเก็บที่ : package_name/files/
- getCacheDir() ไฟล์จะถูกเก็บที่ : package_name/cache/
External Storage (เก็บข้อมูลเยอะๆ) *ไม่ลบไฟล์เมื่อลบแอพ
- getExternalFilesDir() ไฟล์จะถูกเก็บที่ : /storage/sdcard0/Android/data/package_name/files/........
- getExternalCacheDir() ไฟล์จะถูกเก็บที่ : ..........................................