aliyun/aliyun-log-android-sdk

关于日志路径

Closed this issue · 3 comments

demo里的设置日志路径,为啥使用程序的外部路径,为啥不实用程序的内部路径,这也是有啥考虑吗?

config.setPersistentFilePath(Environment.getExternalStorageDirectory().getPath() + "/log.dat");`

demo里的设置日志路径,为啥使用程序的外部路径,为啥不实用程序的内部路径,这也是有啥考虑吗?

config.setPersistentFilePath(Environment.getExternalStorageDirectory().getPath() + "/log.dat");`

能读写就行,没有特别要求

demo里的设置日志路径,为啥使用程序的外部路径,为啥不实用程序的内部路径,这也是有啥考虑吗?

config.setPersistentFilePath(Environment.getExternalStorageDirectory().getPath() + "/log.dat");`

这边改了一下路径,之前的有误导

好的,多谢。我昨天也研究 了下关于内部和外部存储的区别。根据 google 官方的表述。关于如何选择内部存储和外部存储:

  • 如果数据敏感,建议存储在程序内部存储
  • 如果存储的文件较大,由于程序内部存储是有限的,比较珍贵,建议外部存储。

所以我选择了外部存储。android 6.0 之后还有存储权限的问题。为了尽量保证 SLS SDK 的可用性,我的方案如下,供其他使用 SLS SDK 的小伙伴参考:

  • 如果系统在 6.0 以下,使用外部存储。同时需要考虑文件夹存在与否,创建文件夹失败与否,只要失败则使用内部存储。
  • 如果系统在 6.0 及以上,如果用户赋予 app 的存储权限,则尝试使用外部存储,同时需要考虑文件存在与否,创建文件夹失败与否,只要失败则使用内部存储。如果用户一开始没有赋予权限,则使用本地存储,后期打开权限,则使用外部存储(发生日志路径变化,可能本地日志丢失,SDK 可用总比日志丢失好,我们是使用及时上传)。
  • 总之,优先使用外部存储,其次使用内部存储。如果内外都不可用,则初始化失败。