展开

关键词

关于应用启动连续崩溃的解决思考

2、安全模式的起由 简单的一句话就是:避免应用在启动阶段崩溃而此时HotFix无法生效,导致的连续、严重的无法启动。 此处举一个例子:假设应用在启动阶段因为Application中某项出错而必现崩溃,而拉取热修复包的操作此时还未发生,那么这个应用就会陷入连续启动崩溃的严重情形;最终的命运一定是被用户卸载。 :对Native的异常无能为力,显然不够精确; 那我们就采用逆向思维,换种思路: 进入应用的时候就记录一个崩溃次数,在满足一定条件之后则认为启动阶段没有异常,同时将崩溃次数重置回复初始状态; 异常次数到达一定程度则进入安全模式 ; 需要维护一个崩溃次数: 进入应用就把崩溃次数+1; 满足一定条件则重置崩溃次数: 用户正常退出应用; 用户打开应用满10秒; 3.3 安全模式能做什么? 异常启动的检测及分级策略:检测APP启动异常,同时也细粒度区分知道异常的等级; 应用自修复的能力; 可以执行同步热修复的能力; 支持获取详细崩溃信息及崩溃的回调; 4.2 扩展性与易用性的设计 扩展性:

68550

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

作者 / Florina Muntenescu, Android Developer Advocate 每一个用户都希望从应用中获得无缝体验。崩溃会导致差评增加、应用卸载,甚至有损品牌认可度。 应用质量 应用质量不仅影响着用户体验,应用的大量崩溃还会影响一些其他方面: 应用曝光度  - Google Play 商店推荐由人工策划和算法计算共同完成,其中质量是最大的考量因素之一。 使用 Kotlin 构建的应用出现崩溃的可能性降低了 20%。 Kotlin 在其中扮演了什么角色? 我们研究了 Google Play 排名前 1,000 的应用,发现使用 Kotlin 的应用与不使用 Kotlin 的应用相比,其用户崩溃率低 20%。 结论 应用稳定性对用户和品牌至关重要。立即使用 Kotlin,降低崩溃率,提高用户满意度,并保持较高的应用评分让您的用户留存和获取始终处于领先地位。

40310
  • 广告
    关闭

    老用户专属续费福利

    云服务器CVM、轻量应用服务器1.5折续费券等您来抽!

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

    使用ProcDump工具解决Windows应用程序崩溃

    而且也同ADPlus以及DebugDiag一样,它可以对一个挂起的应用程序强制进行进程转储。但和之前的任何工具不同的是,ProcDump可以在CPU的活动峰值达到一个指定的级别时,对一个进程进行转储。 当不带任何参数时,ProcDump工具会在保持应用程序执行的情况下,强制进行一个内存转储。 通过使用-h参数,ProcDump会检测一个挂起的Windows应用程序,并强制进行内存转储。 使用-e参数可以使得ProcDump去检测应用程序的一个未处理的异常,并获取进程转储。通过接下来对进程转储的分析,您可以弄清哪些程序、DLL以及错误情况在中断时发生了。

    1.1K50

    应用崩溃了?Android vitals 帮您精确诊断

    第二点比较微妙 —— 在用户看到用户界面之前,应用就可能已经崩溃了。第三方工具几乎无法检测到这些崩溃,因为崩溃报告库可能在崩溃发生时尚未完成初始化。 不过,一旦确定崩溃的来源,调试就变得容易多了。 应用崩溃和 ANR 在 Android vitals 菜单下有一个专门的分区。 您还可以根据 Android 版本、时间段、应用版本和应用安装源过滤数据。 ? 选择相关的崩溃群集即可深入研究被报告出的崩溃现象。这里会有详细视图显示出来供您查看。 但是在处理应用崩溃时,以下方案可能会派上用场: 使用像 Firebase Crashlytics 这样优秀的崩溃报告工具以及 Android vitals,更深入地了解应用崩溃现象。 虽然这可能无法直接帮助修复崩溃,但您将获得有关如何避免崩溃和提高应用性能的专家提示。

    47130

    应用性能监控平台是什么 应用产生崩溃的因素有哪些

    随着互联网应用的不断更新发展,市面上的应用软件和系统越来越多。IT 市场的价值规模不断扩大的同时,网络和应用的问题也就逐渐渗透出来。应用性能监控平台就是根据很多企业的需要而产生的监测系统。 应用上线之后如何经营和扩大用户才是研发部门的最大希望,而应用的存货周期是考验应用品质的关键。应用性能监控平台是什么呢? ,捕捉各种系统崩溃现象和异常现象的发生,深度还原故障的原因和现场,从而给运维人员提供可靠的解决途径,以免引起更大的损失。 应用产生崩溃的因素有哪些 应用性能监控平台的内容已经有所了解,那么导致应用产生这样那样的问题,比如反应异常或者卡顿是为什么呢? 以上就是应用性能监控平台是什么的相关内容,系统崩溃时耗费人力物力,如果能使用监控平台及时发现预警信息和问题,会给工作人员带来更大的方便。

    9020

    Android照片墙应用实现,再多的图片也不怕崩溃

    照片墙这种功能现在应该算是挺常见了,在很多应用中你都可以经常看到照片墙的身影。 制作类似于这种的功能的应用,有一个非常重要的问题需要考虑,就是图片资源何时应该释放。 因为随着GridView的滚动,加载的图片可能会越来越多,如果没有一种合理的机制对图片进行释放,那么当图片达到一定上限时,程序就必然会崩溃。 今天我们照片墙应用的实现,重点也是放在了如何防止由于图片过多导致程序崩溃上面。 textViewResourceId, objects); mPhotoWall = photoWall; taskCollection = new HashSet<BitmapWorkerTask>(); // 获取应用程序最大可用内存

    48380

    Mac 全栈开发-查看IOS应用崩溃时的日志

    然后,崩溃日志可以在这里找到: ~/Library/Logs/CrashReporter/MobileDevice/<DEVICE_NAME>

    28020

    WPF 基于 WER 注册应用崩溃无响应回调和重启方法

    本文来告诉大家如何在 Windows 上利用从 Vista 引入的 Windows Error Reporting (WER) 机制来实现,在应用崩溃、无响应等异常的时候收到回调用于处理信息保存 在 《 Application Recovery and Restart Reference》 里可以了解到可以通过 Application Recovery and Restart (ARR) 技术,在应用崩溃的时候 ,有时机可以保存应用的信息。 例如做一个类似 Office 的 PPT 的软件,可以在此软件在崩溃的时候,依然有时机可以保存用户的文档信息。从而实现尽可能不会因为软件崩溃而丢失信息 在开始之前,先来做一个演示。 如下应用将因为写了逗比代码而无响应,在弹出 WER 时,可以让用户选择重启或退出等。无论选择什么,都可以让应用有机会弹出 应用程序炸掉 提示。

    23430

    开源应用中心|程序员的崩溃瞬间,太形象了!

    其实程序员的工作不容易,不信,就来看看程序员崩溃的各种瞬间—— 01.试图清除几行旧代码时 02.产品还没测试就投入生产时 03.调试bug 04.向老板展示项目的时候 05.苦逼的后端工程师 06.朋友听说你是程序员时 告别崩溃时刻 D哥带来几款 开源应用中心 王炸应用 免费体验,一键部署 不要再浪费时间用传统方式部署 社区和论坛了 作个优质开源人吧 Discuz! 4.在开源应用中心即可一键部署,告别繁琐的部署流程 Focus聚焦社区一键搭建社区论坛 1.Focus聚焦社区是一个开源的、国产的社交平台项目,致力于给用户提供更好的社区交流体验。 3.在开源应用中心即可一键部署,告别繁琐的部署流程 Commento-面向开发者的开源评论管理系统 1.可以被集成到其他站点里去采集用户评论和反馈。 4.在开源应用中心即可一键部署,告别繁琐的部署流程 MDClub-美丽与实力并行的轻量社区系统 1.它运行快速且易于使用,完全具备一个成熟社区所需的功能。

    9920

    FlexboxLayoutManager崩溃

    记录一个FlexboxLayoutManager内部崩溃的排查过程 背景 崩溃发生在FlexboxLayoutManager内部 没有与项目代码直接关联的信息 在小米11上容易复现,其他机型没有复现 首先看下崩溃log Caused by: java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1 at java.util.ArrayList.get ,具体崩溃的代码,需要配合mapping文件来定位 根据mapping定位崩溃代码 项目采用R8混淆,mapping的代码会不太一样,先看下最终崩溃时候的log信息 ArrayIndexOutOfBoundsException log,computeScrollOffset后面跟的行数信息是java:4,说明对应的是上面的mapping的第二行 2:5对应的行数是2291:2294,因为崩溃地方是4,所以对应的行数是2293, :1220,所以崩溃的行数是1219,我们看下源码 可以知道是mFlexLines.get(lastFoundLinePosition)导致的崩溃 崩溃溯源 由于有机子可以稳定复现,重新复现后,定位下崩溃时候的信息

    45420

    02.Android崩溃Crash库之App崩溃分析

    06.ANR是如何监控的 07.回过头看addErrorToDropBox 前沿 上一篇整体介绍了crash崩溃崩溃重启,崩溃记录记录,查看以及分享日志等功能。 项目地址:https://github.com/yangchong211/YCAndroidTool 欢迎star,哈哈哈 01.抛出异常导致崩溃分析 线程中抛出异常以后的处理逻辑。 crash", r, processName, crashInfo); } ``` 然后接着看一下handleApplicationCrashInner方法做了什么 调用addErrorToDropBox将应用 catch (InterruptedException ignored) { } processCpuTracker.update(); // 2.爬取顶级应用到的 return; } //8.关键,在这里可以添加一个application error的接口,用来实现应用层接收崩溃信息

    28430

    浅谈linux模拟多线程崩溃和多进程崩溃

    结论是: 多线程下如果其中一个线程崩溃了会导致其他线程(整个进程)都崩溃; 多进程下如果其中一个进程崩溃了对其余进程没有影响; 多线程 #include <stdio.h> #include <string.h = wait(NULL)); //等待所有子进程结束 printf("main return\n"); getchar(); return 0; } 到此这篇关于浅谈linux模拟多线程崩溃和多进程崩溃 的文章就介绍到这了,更多相关linux模拟多线程崩溃和多进程崩溃 内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

    53611

    Xcode崩溃原因汇总

    UIView *view = [UIView alloc]; [self.view addSubview:view]; view只是分配了内存空间,并没有初始化,是僵尸对象,addSubview会造成崩溃 程序直接崩溃。 内存泄漏 本不该放这,但是又不想重新写一篇只有几十个字的文章,暂且将就放这。 一般情况下,我们会使用Instruments来监测,当然能解决问题。 概念 断点,其实就是一个让应用暂停运行的机制,这是为了方便开发人员执行调试,查看寄存器的某些值。 设置断点,让应用停在某一时刻,那么这一时刻应用所处的环境我们便一目了然,这个环境就是案发现场,断点就是帮助我们破案的工具。

    30030

    System.Threading.Tasks.Task引起的IIS应用程序池崩溃

    问题现象 IIS应用程序池崩溃(Crash)的特征如下: 1. 从客户端看,浏览器一直处于连接状态,Web服务器无响应。 2. 因为程序池'q.cnblogs.com'崩溃了。然后呢?IIS会强制回收应用程序池。 (注:如果在你的Web服务器的事件日志中出现这个错误,一定是某个原因引起了应用程序池崩溃。) 问题原因 我们这次遇到的应用程序池崩溃,是由于在使用System.Threading.Tasks.Task进行异步操作时产生了未处理的异常。 分析:逐步升级的后果就是当前应用程序进程崩溃,对于ASP.NET程序来说,就是应用程序池崩溃。 然后,这个异常被一级一级上报,直到当前程序进程的最高领导,最高领导为了顾全大局,果然决定与这个异常同归于尽,也就是让整个应用程序池崩溃。。。

    87520

    我们如何应对Python桌面应用程序的崩溃

    Crashpad作为一个小的帮助程序进程监视你的应用程序,当出现崩溃的信号时,它就会捕获有用的信息,包括: 1.进程崩溃的原因和导致崩溃的线程; 2.所有线程的堆栈轨迹; 3.堆的部分内容; 4.开发人员添加到应用程序的额外注释 应用程序通过实例化一个进程内对象(称为“客户端”)来使用Crashpad,当检测到崩溃时,该对象报告给进程外的帮助程序—称为“处理程序”。 当应用崩溃报告中含有minidump(小存储器转储文件:可帮助确定计算机为什么意外停止的最小的有用信息集)时, 我们使用之前生成的符号来跟踪应用里每个堆栈内容并将其链接到源代码中。 同样需要注意的是,并非所有终止都是应用崩溃(例如用户关闭应用程序或应用自动更新就不属于应用崩溃)。尽管如此,有一些终止情况仍然表明应用可能存在问题。 因此,我们希望有一种方法能来记录和判断出哪种情况算是应用正常退出,哪种情况算是应用意外崩溃。 这也为我们提供一个基线,用来验证我们的新崩溃报告构架是否捕获了大部分应用崩溃情况。

    28710

    RunLoop总结:RunLoop的应用场景(五)阻止App崩溃一次

    今天要介绍的RunLoop应用场景感觉很酷炫,我们可能不常用到,但是对于做Crash 收集的 SDK可能会用得比较频繁吧。相比关于RunLoop 可以让应用起死回生,大家都听说过,可是怎么实现呢? IOS程序异常crash捕获与拦截 (我下面的Demo 就是在这部分代码上做了简化,以方便理解) 原理 iOS应用崩溃,常见的崩溃信息有EXC_BAD_ACCESS、SIGABRT XXXXXXX,而这里分为两种情况 ,一种是未被捕获的异常,我们只需要添加一个回调函数,并在应用启动时调用一个 API即可;另一种是直接发送的 SIGABRT XXXXXXX,这里我们也需要监听各种信号,然后添加回调函数。 performSelectorOnMainThread:@selector(handleException:) withObject:customException waitUntilDone:YES]; } 第四步,添加让应用起死回生的 遇到数组越界,应用依然没崩溃 sunnyxx 称之为回光返照,为什么呢? 我再一次点击视图,应用依然还是崩溃了,只能防止第一次崩溃。 我测试了,确实是第二次应用崩溃,未能起死回生。

    91431

    火眼金睛 | 应用崩溃惯用三大杀招,你中招了么?

    虽说应用崩溃这个冷血杀手来无影去无踪,但四眼哥的得力助手腾讯bugly还是能在崩溃发生后,应用退出前,获得足够的案发现场信息。 汇总了多年来的办案经验,四眼哥琢磨出这位冷血杀手的三大杀招! 在所有发生崩溃的用户中,因为崩溃导致应用退出后,当天不再使用应用的用户占比为14%。因为在这种情况下,用户往往无言应对,只能选择暂时远离应用,待来日内心伤痛平缓些后,才有可能重新启动应用。 所以在应用崩溃后,有些用户仍会再度启动应用。此外,杀手出招也未必招招毙命,有些应用不断自动重启,用户在使用过程中也只会感觉卡顿,但又不至于退出。 据四眼哥统计,所有崩溃用户里,在一天内同一应用遭遇两次和两次以上崩溃的用户占比在33%。 面对如此冷血无情的杀手,四眼哥号召所有开发者群防群治,建议给所有的应用接入腾讯Bugly,让每一个崩溃都无处隐身。四眼哥同时广发英雄帖,求专治应用崩溃的独门绝技,帮助开发者应对冷血杀手。

    49270

    04.Android崩溃Crash库之Loop拦截崩溃和ANR

    目录总结 01.能否利用Looper拦截崩溃 02.思考几个问题分析 03.App启动时自动开启Looper 04.拦截主进程崩溃 前沿 上一篇整体介绍了crash崩溃崩溃重启,崩溃记录记录,查看以及分享日志等功能 拦截全局崩溃(主线程),避免 APP 退出。 ,自行上报崩溃信息"); } }); } } ``` 通过上面的代码就可以就可以实现拦截UI线程的崩溃,耗时性能监控。 04.拦截主进程崩溃 拦截主进程崩溃其实也有一定的弊端,因为给用户的感觉是点击没有反应,因为崩溃已经被拦截了。 如果是Activity.create崩溃,会出现黑屏问题,所以如果Activity.create崩溃,必须杀死进程,让APP重启,避免出现改问题。

    43420

    扫码关注腾讯云开发者

    领取腾讯云代金券