admin管理员组

文章数量:1620371

分析原因:经排查分析,这跟Linux的文件系统储存机制有关。用户层对文件进行写操作时,系统是先将文件存储在内存中,待CPU空闲后再将数据写入flash中,这是一种缓存机制,目的是提高文件的读写效率。
但对于特殊设备,例如:没有安装电池的设备,在突然断电的情况下就有丢失数据的风险。

第一种改法,直接在framework层直接修改:

–a frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiNative.java
++b frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiNative.java

public boolean saveConfig() {
boolean ret;
ret = doBooleanCommand(“SAVE_CONFIG”);
++ fileSync();
return ret;
}

++ private void fileSync(){
++ Runtime runtime = Runtime.getRuntime();
++ try {
++ runtime.exec(“sync”);
++ } catch (IOException e) {
++ e.printStackTrace();

++ }
++ }

第二种改法,直接在应用端保存数据的时候直接调用fileSync()这个方法,强制把文件存储到flash中

温馨提示:如果不想升级固件,推荐使用第二种修改方法。

本文标签: 设备重启数据androidwifi