我有这个小帮手类:
public class InternalStorage {
private final static String fileName = "saves";
//Lista is átadható!
public static void writeObject(Context context, Object object, String key) {
try {
FileOutputStream fos = context.openFileOutput(fileName + "_" + key, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(object);
oos.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static Object readObject(Context context, String key) {
try {
FileInputStream fis = context.openFileInput(fileName + "_" + key);
ObjectInputStream ois = new ObjectInputStream(fis);
Object object = ois.readObject();
return object;
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
}
我用它来在我的应用中保存/加载可序列化对象。
我的问题是使用这种方法是安全的,重要的是"数据吗
我的意思是,用户是否可以通过意外或故意修改或删除数据来操纵此数据?删除应用的缓存或使用任何其他工具?
答案 0 :(得分:1)
我的意思是用户可以通过意外修改或删除数据来操纵这些数据吗?
用户可以随时卸载您的应用。这将删除数据。
用户可以通过“设置”随时清除应用中的数据。这也将删除数据。
根设备的用户可以检查应用的内部存储区域,并编辑或删除他们想要的任何内容。这只是Android用户的一小部分。
当然,在I / O期间可能会出现特殊情况(您的应用程序崩溃,用户强制停止您的应用程序或以其他方式终止您的过程,电池耗尽,设备被大象踩到等等。)。
在这些情况之外,用户不太可能损坏或删除数据,除非您允许通过应用的UI。
删除应用的缓存
这不是缓存,因为您没有使用getCacheDir()
等方法来处理此数据。