首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

搭建自己的 crash 监控系统

根据研究所示: 应用崩溃是手机app用户抱怨最多的额问题 更严重的:如果一个应用连续崩溃3次,大概一半的用户会卸载这个应用 崩溃追踪系统,让开发者能够从用户的设备上收集到每一个导致崩溃的细节,专门用来解决这种应用崩溃问题...并且会非常容易创建,下面有请Application Crash Reporting on Android (ACRA) 一个允许Android应用自动发送崩溃报告到自己服务器的库。 1....例如: snake = 12345 不用担心在这里写明文密码会不会有问题,一旦CouchDB重启后,你的密码会被自动哈希加密,并且是不可读的 保存文件,通过下面的语句来重启CouchDB: curl...注意:你先要用你开始创建的admin登录进去,不然会出错。 myapp是你打算监控的项目名字。...创建后,拷贝生成的信息到记事本,后面有用 ? 然后去数据库acra-myapp,给这个帐号加上read权限 ? ---- 4.

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    探针配置失误,线上容器应用异常死锁后,kubernetes集群未及时响应自愈重启容器?

    探针配置失误,线上容器应用异常死锁后,kubernetes集群未及时响应自愈重启容器? 探针配置失误,线上容器应用异常死锁后,kubernetes集群未及时响应自愈重启容器?...如果应用程序中有一个导致它每隔一段时间就会崩溃的bug,Kubernetes会自动重启应用程序,所以即使应用程序本身没有做任何特殊的事,在Kubernetes中运行也能自动获得自我修复的能力。...kubelet 使用存活探针来知道什么时候要重启容器。 例如,存活探针可以捕捉到死锁(应用程序在运行,但是无法继续执行后面的步骤)。 这样的情况下重启容器有助于让应用程序在有问题的情况下更可用。...kubelet 使用就绪探针判断容器什么时候准备好了并可以开始接受请求流量。 当一个 Pod 内的所有容器都准备好了,才能把这个 Pod 看作就绪了。...在 Pod 还没有准备好的时候,会从 Service 的负载均衡器中被剔除的。 kubelet 使用启动探针监测应用程序容器什么时候启动了。

    1.2K20

    Android面试遇坎,我精选了这些题目与答案,你离大厂还有多远测试一下就知道!

    最后调用到requestLayout方法开始了布局、测量、绘制的流程。 4、线程更新UI导致崩溃的原因?...在Android8.0,Google要求如果程序在后台,那么就不能创建后台服务,已经开启的后台服务会在一定时间后被停止。 所以,建议使用前台Service,它拥有更高的优先级,不易被销毁。...setRequiresCharging(true)// 是否充电 .setRequiresDeviceIdle(false)// 设备是否空闲 .setPersisted(true) //设备重启后是否继续执行...11、说说WorkManager WorkManager 是一个 API,可供您轻松调度那些即使在退出应用或重启设备后仍应运行的可延期异步任务。...:launchMode="standard"> 进入ActivityA后,点击按钮,跳转到B,这时候A的生命周期走到了onPause,也就是回到了已开始状态。

    2.8K00

    Android 中意料之外的应用崩溃以及它们的解决方案

    而在应用发布后,监视应用程序中这些不断增加的崩溃是一种极其不愉快的体验。 不管应用程序的业务逻辑如何,都可能会因为运行的系统或平台问题而导致出现某些奇怪的崩溃现象。...在 Android 中,从后台状态恢复应用程序时可能会产生崩溃 —— 此类崩溃是意外发生的,而且仅通过查看崩溃日志,我们很难理解崩溃的具体原因以及解决问题,而本文讨论了此类问题及其解决方法。...问题 在监视产品的崩溃日志时,我注意到一些问题与日俱增。该应用在正常测试条件下似乎运行良好,并且崩溃不可复现,直到应用程序从后台任务中进入前台。...结论 在 Android 平台上,由于进程被终止而导致的应用崩溃是很常见的。而如果我们使用较新的 Android 版本,我们可以注意到,出于节省电源的目的,大量的后台应用程序被强制结束运行了。...解决方案 1 可以快速解决你现有的应用崩溃问题。 但是,如果你正在从头开始开发应用程序,我建议使用解决方案 2,因为它可以确保系统会从先前关闭的位置恢复该应用程序,因此带来更好的用户体验。

    1.2K10

    使用Android的Service实现后台定时检测并重启应用

    Android的Service使用一例,后台任务定时检测并定时重启应用。 Service简述: Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。...在一些场合下需要实现后台定时任务,检测并重启应用,这用service很合适。...String TAG = "RestartAppService"; private static final long RESTART_DELAY = 60*60 * 1000; // 多少时间后重启检测...android:isolatedProcess 设置 true 意味着,服务会在一个特殊的进程下运行,这个进程与系统其他进程分开且没有自己的权限。...onServiceDisconnected(ComponentName name) Android 系统会在与服务的连接意外中断时(例如当服务崩溃或被终止时)调用该方法。

    1.2K20

    Android Hook与简单的xposed模块开发实例

    这种方法的好处在于它能够更好地兼容系统更新,避免root权限导致的系统不稳定或应用崩溃。...Xposed的Hook操作并非在应用运行时动态进行,而是在Zygote进程启动的早期阶段就完成了,这使得Hook操作能够影响所有从Zygote fork出的应用进程。...如果Xposed框架没有及时更新以适应新的app_process,那么它就可能无法正常工作,甚至导致系统崩溃或bootloop(无限重启)。...安装后重启。我前面已经配了基于Zygisk的Shamiko模块,如果切换为Riru会与Zygisk冲突,所以这里直接选择LSPosed-Zygisk模块。...重启后,通知栏会弹出“LsPosed已加载”,点击即可进入管理界面(如果没显示,可以通过拨号键输入 *#*#5776733#*#* 进入LSPosed)。

    7200

    android程序崩溃后重启

    有时候由于测试不充分或者程序潜在的问题而导致程序异常崩溃,这个是令人无法接受的,在android中怎样捕获程序的异常崩溃,然后进行一些必要的处理或重新启动 应用这个问题困恼了我很久,今天终于解决了该问题...首先捕获程序崩溃的异常就必须了解一下java中UncaughtExceptionHandler这个接口,android沿用了此接口,在android API中: ?...AlarmManager.RTC, System.currentTimeMillis() + 1000,                         restartIntent); // 1秒钟后重启应用...       android.os.Process.killProcess(android.os.Process.myPid());         }   }   然后人为制造一个异常:     ...如何杀死异常进程,重启应用,就得使用PendingIntent,这个类是android中对Intent类的包装,具体了解我会在写一篇博客,自己也可以去查看android API。

    2.2K70

    移动开发界囚徒现身说法,审查困境与控制权探讨

    着手升级 时间来到 8 月 23 日,我开始将 targetSdkVersion 从 API level 30 更新到 33,并尝试在 Android 模拟器中编译 / 运行这款应用。...开始我并没有惊慌,因为问题看起来跟应用更新没啥关系。但在第一次使用 Android 实机(我之前只在模拟器上测试过)检查了登录流程后,发现应用会崩溃并关闭。...这个问题会导致应用在登录后立即崩溃,而使用较旧 Android 版本则不受影响。我们的最大疏忽,就是没有在模拟测试时使用最新的 Android 版本,所以没能及时问题隐患。...也就是说,我根本没法回归旧版本,唯一的办法只有修复最新 Android 版本的崩溃问题、继续保留更新后的应用。 而且我得马上就开始修复。...但毕竟之前的问题是应用在登录后立即崩溃,所以我觉得这次更新再怎么差也比之前要好。简单来讲,我想达成的效果就是修复所有已知的崩溃问题、发布新版本,然后在逐步完成全面测试后再更新一个包含后续修复的新版本。

    13410

    Android性能优化(一)

    视觉优化 应用程序启动有三种状态,每种状态都会影响应用程序对用户可见所需的时间:冷启动,热启动和温启动。 在冷启动时,应用程序从头开始。在其他状态下,系统需要将正在运行的应用程序从后台运行到前台。...在冷启动开始时,系统有三个任务。这些任务是: 加载并启动应用程序。 启动后立即显示应用程序空白的启动窗口。 创建应用程序进程。 一旦系统创建应用程序进程,应用程序进程就会负责下一阶段。...应用退出 除了常见的崩溃,还有一些会导致应用异常退出的情况,例如: 主动自杀。Process.killProcess()、exit() 等 崩溃。出现了 Java 或 Native 崩溃 系统重启。...被 low memory killer 杀掉、从系统的任务管理器中划掉等 ANR 我们可以在应用启动的时候设定一个标志,在主动自杀或崩溃后更新标志,这样下次启动时通过检测这个标志就能确认运行期间是否发生过异常退出...方法从执行开始到结束过程就是栈帧在虚拟机栈中入栈出栈过程 局部变量表存放编译期可知的基本数据类型、对象引用、returnAddress类型。

    2.7K20

    01.Android崩溃Crash封装库

    手机信息,app信息,崩溃堆栈,内存信息等 5.异常崩溃如何友好退出,以及崩溃后调用重启app是否会出现数据异常 6.针对native代码崩溃,如何记录日志写到文件中 该库可以做一些什么 1.在Android...如果您的应用程序初始化监听或错误活动崩溃,则有可能进入无限重启循环(在大多数情况下,库会对此进行检查,但在极少数情况下可能会发生)。...(得出应用本身内存的占用大小和分布) 线程数 收集崩溃时的应用信息 崩溃场景(崩溃发生在哪个 Activity 或 Fragment,发生在哪个业务中) 关键操作路径(记录关键的用户操作路径,这对我们复现崩溃会有比较大的帮助...详细可以看:Android项目崩溃分析 崩溃后异常堆栈链是如何形成的 待完善,看:异常栈轨迹处理 08.部分问题反馈 该异常捕获实效了是什么情况?....* { ; } 该库笔记介绍 崩溃原理深度探索 常驻应用崩溃后处理 异常栈轨迹处理 Loop拦截崩溃和ANR App重启几种方式 其他项目推荐 1.开源博客汇总 2.降低Crash崩溃库 3.视频播放器封装库

    1.1K30

    Android P 应用兼容常见错误及建议

    从 2018 年 3 月初我们发布 Android P 开发者预览版以来,很多开发者都对当前常见应用在 Android P 上做了一些兼容性测试,我们在这里总结了一些常见的问题,以及它们发生的原因和建议的修改措施...从 Android P 开始,系统会限制非 SDK 接口的使用。 建议: 只使用 Android SDK 中的公开接口进行应用开发。...app/ActivityThread; (dark greylist, reflection) 如果您有合理的理由,必须使用某个非 SDK 接口,请在文章下方留言给我们,我们非常期待聆听和与您进行讨论,并会在充分评估必要性和可行性后...此外请注意,从 Android O 开始,BaseDexClassLoader 和 DexClassLoader 构造函数中的 “optimizedDirectory” 参数已废弃,并在加载 dex 文件时不起作用...如果您在 dex 文件中写入自定义的内容,很可能这些自定义的写入操作与系统优化发生冲突,以致自定义的内容被擦除或覆盖,甚至导致优化后的 dex 在执行时直接崩溃。

    8.5K20

    Android vitals 帮您解决应用质量问题

    Android vitals 可以向开发者发送以下三种警告:崩溃、应用程序无法响应以及渲染次数。这三种情况都会直接影响到用户体验以及他们对应用的评价。...他们可能不会马上卸载您的应用,但是如果 ANR 问题一直不解决,就很有可能会寻找其它替代应用。 过度唤醒 那么,什么是唤醒?什么时候又是唤醒 “过度” 呢?...设定标准能够避免唤醒设备以及不必要的应用运行。 -- 持续性以及自动退避 —— 继续执行任务 (即使在重启后) 并且在失败的情况能自动重试。...界面卡屏几秒后,会出现对话框让用户选择继续等待或者强行停止应用。 从开发者的角度来看,ANR 则是指应用运行的操作耗时过久,如磁盘或网络 I/O,导致主线程阻塞。...但是如果您开始循环运行复杂计算并且处理大数据集,主线程就很容易发生阻塞了。您可以考虑重新调整百万像素大图像的体积,或者在解析大 HTML 文本块后,再将文本显示到 TextView 中。

    1.5K10

    Jetpack WorkManager 看这一篇就够了~

    执行加急工作你所需要知道的 从 WorkManager 2.7 开始,我们可以调用setExpedited方法来告诉系统,我这个任务是加急任务,请尽快执行。...不过我的手机是Android 12的,为了确保没问题,我们必须在Android 11 或低版本上执行一次。没崩溃,但是任务却没执行,我们看到了错误日志如下图所示。 Emm.....例如,第一次运行以 Result.retry() 结束并在 10 秒后重试;然后,如果工作在后续尝试后继续返回 Result.retry(),那么接下来会在 20 秒、30 秒、40 秒后重试,以此类推...总结 特性及注意事项 在早于 Android 12 的 API 版本中,加急工作都是由前台服务执行的,而从 Android 12 开始,它们将由加急作业 (expedited job) 实现。...问题 任务添加到队列后,未开始执行前,如果是在onDestory中调用取消任务的方法是不可行的,此种情况下下次进来时仍然会有重复任务开始执行。原因不明。

    1.6K20

    Android高频面试专题 - 基础篇(三)Service

    2、Service和Thread 看下官网对Service的介绍:服务是可以在后台执行长时间运行的操作的应用程序组件,并且不提供用户界面。...随 后系统会尝试重新创建 service,由于服务状态为开始状态,所以创建服务后一定会调用 onStartCommand(Intent,int,int)方法。...使用这个返回值时,如果在执行完 onStartCommand 后,服务被异常 kill 掉,系统不会自动重启该服务。 START_REDELIVER_INTENT=3:重传 Intent。...使用这个返回值时,如果在执行完 onStartCommand 后,服务被异 常 kill 掉,系统会自动重启该服务,并将 Intent 的值传入。...START_STICKY_COMPATIBILITY=0: START_STICKY 的兼容版本,但不保证服务被 kill 后一定能重启。

    74321

    Android Pie限制非 SDK 接口的调用

    Android Pie的限制 从 Android 9(API 级别 28)开始,Android对应用能使用的非 SDK 接口实施了限制。...目的在于帮助提升用户体验和开发者体验,为用户降低应用发生崩溃的风险,同时为开发者降低紧急发布的风险 对于插件的影响 目前插件的加载都是通过反射调用PathClassLoader与DexClassLoader...非SDK接口等级 在Android9.0后 , Android 10、11都陆续更新了非SDK提供接口全集....如果您的应用尝试访问其中任何一个接口,系统就会抛出错误 有条件屏蔽 (greylist-max-x) 从 Android 9(API 级别 28)开始,当有应用以该 API 级别为TargetVersion...不支持 (greylist) 当前不受限制且您的应用可以使用的非 SDK 接口。 但请注意,这些接口不受支持,可能会在不另行通知的情况下随时发生更改。

    1.1K30

    Android性能优化:这是一份全面 & 详细的性能优化指南(含内存优化、布局优化等)

    具体介绍如下: 更快:应用程序 运行得更加流畅、不卡顿,能快速响应用户操作 更稳定:应用程序 能 稳定运行 & 解决用户需求,在用户使用过程中不出现应用程序崩溃(Crash) 和 无响应(ANR)的问题...消息机制、HandlerThread等 注:实际开发中,当一个进程发生了ANR后,系统会在 /data/anr目录下创建一个文件 traces.txt,通过分析该文件可定位出ANR的原因 4.4 其他优化方案...稳定性 影响Android 应用稳定性的原因有很多,主要是:应用崩溃(Crash)、应用无响应(ANR) 这2个错误的结果将导致程序无法使用 下面,将主要讲解该2个优化方向:应用崩溃(Crash)、应用无响应...系统会在 /data/anr目录下创建一个文件 traces.txt,通过分析该文件可定位出ANR的原因 5.2 应用崩溃(Crash) 优化原理 应用崩溃Crash很多情况是因为 内存溢出,即OOM...总结 区别于 功能性开发需求的短期性,性能优化是贯穿整个应用程序App项目的持续性需求;虽项目一开始时,性能优化的优先级较低,但当应用程序App的用户体量达到一定规模时,性能优化 则非常重要 本文全面总结了

    6.9K12

    减少崩溃,提升体验 | 使用 Kotlin 打造优质应用

    作者 / Florina Muntenescu, Android Developer Advocate 每一个用户都希望从应用中获得无缝体验。崩溃会导致差评增加、应用卸载,甚至有损品牌认可度。...整体上看,Kotlin 的空安全特性帮助点评 Android 应用将空指针导致的崩溃从日均 3 个降低至 0。...2017 年,中国电信营业厅应用团队就开始使用 Kotlin,现在他们的新项目大约有 50% 的代码都是 Kotlin 编写。团队成功将空指针异常的出现概率 降低了 80% 之多。...通过数据类,hashCode() 和 equals() 将由编译器生成,会在您更改类属性后自动更新。 结构相等与引用相等 两个对象是在结构上相等 (具有同等内容) 还是在引用上相等 (指针相同)?...您可以进一步阅读如何 利用 Kotlin 打造更优质的应用,并通过我们的 案例研究 来了解开发者如何从 Kotlin 中获益。

    1.4K10
    领券