原生Android应用中的随机磁盘I / O故障

时间:2018-04-23 13:17:53

标签: java android permissions android-ndk filesystems

我们的一些Android原生测试,特别是那些执行磁盘I / O的测试最近开始间歇性地失败。我已将其追溯到Java的File.mkdirs()未能创建/data/user/0/com.company.app/files文件夹,但看不出为什么会发生这种情况。以下是一些观察结果:

  • 问题看似随机且独立于构建
  • 影响多个设备,例如Asus Zenfone 2,Galaxy S5和S7;所有设备都已植根
  • 设备上有足够的存储空间
  • 某些日志消息似乎与失败相关(但从不100%),例如:
  

D StrictMode:StrictMode策略违规; 〜持续时间= 329毫秒:   android.os.StrictMode $ StrictModeDiskReadViolation:policy = 65567   违规= 2 D严格模式:at   android.os.StrictMode $ AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1263)   D严格模式:at   android.app.SharedPreferencesImpl.awaitLoadedLocked(SharedPreferencesImpl.java:203)   D严格模式:at   android.app.SharedPreferencesImpl.getBoolean(SharedPreferencesImpl.java:262)   D严格模式:at   android.preference.PreferenceManager.setDefaultValues(PreferenceManager.java:482)   D严格模式:at   android.preference.PreferenceManager.setDefaultValues(PreferenceManager.java:445)   D StrictMode:at com.android.mms.MmsApp.onCreate(Unknown Source)D   StrictMode:at   android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)   D严格模式:at   android.app.ActivityThread.handleBindApplication(ActivityThread.java:4767)   D严格模式:at   android.app.ActivityThread.-wrap1(ActivityThread.java)D StrictMode:   在   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1421)D   StrictMode:在android.os.Handler.dispatchMessage(Handler.java:102)D   StrictMode:在android.os.Looper.loop(Looper.java:148)D StrictMode:   在android.app.ActivityThread.main(ActivityThread.java:5480)D   StrictMode:at java.lang.reflect.Method.invoke(Native Method)D   StrictMode:at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)   D严格模式:at   com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

  

E UninstallPackageIntentO:软件包仍然安装了com.company.app

  • 我们正在重新安装应用程序,然后再运行测试

谢谢!

0 个答案:

没有答案