SDK上报策略

如果您创建了自定义异常,则需要存在自动采集的崩溃/ANR发生时一起上报

测试中请关注SDK上报策略,当日单设备达到限制后无法再上报数据

SDK上报策略:

错误类型

上报策略

Java异常

崩溃捕获后会尝试立刻发送,如果失败就下次启动发送同时通过流量 + 数量的限制,详细请见下方表格

Native异常

ANR

自定义异常

发生后跟随Java/Native/ANR 错误上报

启动/网络/H5页面分析

实时上报

策略明细:

错误上报的流量+数量限制:

目前默认值

允许保留在崩溃日志目录 mCrashLogsFolderName 下最大的崩溃日志条数。在生成日志前,如果发现崩溃日志文件数达到限制的条数,就会删除最早生成的那条崩溃日志。每删除一条崩溃日志,统计项 CrashStatKey.LOG_ABANDONED_FILE 和 CrashStatKey.LOG_ABANDONED_BUILTIN_FILE 都会加 1

15

允许保留在崩溃日志目录 mCrashLogsFolderName 下最大的自定义日志数。在生成自定义日志前,如果发现自定义日志文件数达到限制,就会删除最早生成的那个自定义日志。每删除一条自定义日志,统计项 CrashStatKey.LOG_ABANDONED_FILE 和 CrashStatKey.LOG_ABANDONED_CUSTOM_FILE 都会加 1

10

java 崩溃日志中,获取 logcat 的最大行数

1500

native 崩溃日志中,获取 logcat 的最大行数

3000

anr 日志中,获取 logcat 的最大行数

1000

是否同步上传主进程初始化过程中产生的崩溃日志。开启该选项时,如果 SDK 检测到主进程发生崩溃,在生成完该崩溃日志后,SDK 会尝试立即将崩溃日志上传(以防止该场景下的稳定崩溃收集不到)。该开关仅在Java和 native 崩溃中生效,自定义日志无效。SDK 判断主进程的条件为:Package Name 与 /proc/self/cmdline 中的进程名相等。

true

是否生成完日志后立即上传。该开关针对除自定义日志以外的日志有效,自定义日志由日志生成时指定是否立即上传。

true

是否在发现 APP 当前的版本与上次运行时的版本不一致时,清除所有的崩溃统计数据。版本是否一致,是根据版本号 VersionInfo.mVersion、子版本号 VersionInfo.mSubVersion、打包流水号 VersionInfo.mBuildId 判断,任何一个不一样,都会认为是不同版本。

false

是否在生成完崩溃日志后,使用 gz 算法压缩崩溃日志。压缩成功后,原日志被删除;压缩失败,原日志将保留

true

是否在生成完崩溃日志后,使用默认算法加密崩溃日志。加密成功后,原日志被删除;加密失败,原日志将保留

false

生成日志时,每个日志允许写入的最大字节数。 当达到指定的字节数时,会将剩余的全部丢弃。日志的总长度、丢弃字节数等信息,在日志最后会有记录。对 JAVA, NATIVE, ANR 日志都有效;为 <= 0 的值时,表示不限制。

1024*1024

在上传崩溃日志时,上传的单个日志允许的最大字节数。超过此限制时,将放弃上传该日志并直接删除,同时将统计项 CrashStatKey.LOG_LARGE_FILE加 1 。其对所有类型的日志有效。为 <= 0 的值时,表示不限制。

800*1024

每24小时内,允许上传日志总共的最大字节数。超过时,将放弃日志的上传,日志将保留在磁盘;超过 24 小时后,再次调用上传接口时,再上传日志。为 < 0 的值时,表示不限制。每次尝试上传发现达到该限制时,统计项 CrashStatKey.LOG_UPLOAD_LIMIT 和 CrashStatKey.LOG_UPLOAD_BYTES_LIMIT 都会加 1。

1.5*1024*1024

每 24 小时内上传的最大崩溃日志条数。每次尝试上传发现达到该限制时,统计项 CrashStatKey.LOG_UPLOAD_LIMIT 和 CrashStatKey.LOG_UPLOAD_BUILTIN_LIMIT 都会加 1。其自版本 3.0.0 从 mMaxUploadCrashLogCountPerDay 重命名而来。

25

每 24 小时内上传的最大自定义日志条数。每次尝试上传发现达到该限制时,统计项 CrashStatKey.LOG_UPLOAD_LIMIT 和 CrashStatKey.LOG_UPLOAD_CUSTOM_LIMIT 都会加 1。

20

每 24 小时内每种自定义类型的日志允许生成的最大条数。不同类型的自定义日志条数会分别计数。

6

每个进程允许生成的最大 ANR 日志条数。

3

崩溃生成日志后,不自动重启

true

是否在SDK处理完Java异常且生成完 Java 崩溃日志后,将异常信息通知给 SDK 初始化之前,其他人(系统)注册的 UncaughtExceptionHandler。

true

是否在 SDK 处理完 native 崩溃信号且生成完 native 崩溃日志后,将崩溃信号通知给 SDK 初始化之前,其他人(系统)注册的信号处理函数。

false

自动更新当前 CPU 使用率等信息的时间间隔,单位为秒(s)。

50