如何从我的Android应用程序获取崩溃数据(至少是堆栈跟踪)?至少在使用有线电视检索我自己的设备时,最好是从我在野外运行的应用程序的任何实例,以便我可以改进它并使其更加坚固.
我计划通过创建一个日志来自动化应用程序的测试,该日志存储应用程序的一些执行结果,后者使用一段python代码解析它并绘制图形.
该应用程序是一个WiFi指纹识别器,即它收集有关周围环境中的wifi设备的信息,如mac id,rss(收到的信号强度和等级(标准化的rss).所以为了测试这个应用程序,我必须把它带到位置和记录结果(截至现在手动).所以logcat不能达到目的.
自动化要求1.将日志存储在设备中2.通过USB访问系统中的日志文件
日志文件的格式:
Snapshot: 1
Fingerprint: 1, Rank: 0.23424, Boolean: true
Fingerprint: 2, Rank: 0.42344, Boolean: false
Fingerprint: 3, Rank: 0.23425, Boolean: true
Snapshot: 2
Fingerprint: 1, Rank: 0.75654, Boolean: false
Fingerprint: 2, Rank: 0.23456, Boolean: true
Fingerprint: 3, Rank: 0.89423, Boolean: true
................
Run Code Online (Sandbox Code Playgroud)
现在我知道持久存储基本上有3种方法(无论如何,SharedPrefs都不适合这种情况).我尝试了内部存储,但即使在设置文件模式之后,因为MODE_WORLD_READABLE无法使用Eclipse中的设备文件资源管理器读取文件.
我仍然担心使用外部存储来存储日志.任何有关如何在设备的USB中写入文件的教程肯定会有所帮助.
我想构建要存储的数据,以便使用SQLite进行存储.但这在数据之间建立了许多不必要的关系(国内和国内)并使其变得复杂.如果没有办法,那么这里就是龙.
基本上我想写一个文件(我想更容易)在设备中,后者在我的系统中通过usb连接到它来读取它.如何做任何帮助将非常感激.
我一直在努力解决在某些条件下限制Crashlytics网络使用的问题.例如 - 漫游,计量网络等等.
根据SDK文档,我发现只有两个选项可以解决这个问题:
只需不初始化Crashlytics即可在运行时"退出"
发送崩溃报告之前内置用户同意对话框
这个API非常有限,因为:
不初始化Crashlytics不仅会阻止网络访问,还会阻止任何机会Crashlytics在本地保存崩溃报告,以便最终发送事件.更不用说除了粗暴地重写Thread.setUncaughtExceptionHandler之外没有好的方法可以在运行时选择退出
如果在后台发生崩溃,则同意对话框对用户没有任何意义.
我的问题基本上是:我错过了什么?有没有办法限制Crashlytics网络访问?
我的动机来自需要防止我的应用程序使用网络带宽可能会在某些条件下花费给用户的钱,尽管"蜂窝网络"或"使用漫游时使用数据"设备设置已启用.