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 |