极客视点
极客时间编辑部
极客时间编辑部
113230 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/02:35
登录|注册

Uber开源其Android应用空指针异常检测工具

讲述:丁婵大小:1.18M时长:02:35
近日,Uber 发布了用于检测安卓应用程序中的 NullPointerExceptions,也就是 NPE 的开源工具 NullAway。
对 Uber 而言,保持移动应用程序的可靠性对于用户体验至关重要。在 Java 中取消引用空指针时发生的 NPE 是安卓应用程序崩溃的常见原因。此前,Uber 一直使用第三方静态代码分析工具来尽可能地防止 NPE 崩溃,如 Facebook Infer 和 Eradicate 等工具。
然而,随着 Uber 的代码库的增长,这些工具已经不能满足为工程师提供强大的检测和快速反馈的需求。为了解决这个问题,Uber 开发了 NullAway,这是一个用于帮助消除 NPE 的快速实用的工具。
在 NullAway 之前,Uber 开发者只会注意到在提交队列阶段报告的 NPE 错误,使用这个工具之后,他们可以在本地构建代码阶段,就能早早地识别错误。
NullAway 的核心是基于开源类型的 NPE 检查器,用于 Java 代码。同时,它也是一个用于查找框架 Error Prone bug 的检查插件。Error Prone 的运行代码检查是 Java 编译过程标准的一部分,此编译器的集成允许检查编译器已经完成的工作,如代码解析和类型检查。
此外,NullAway 和 Error Prone 可以直接集成到 Buck 所支持的快速内存并行构建中,Buck 是 Uber 用于安卓代码的构建工具。因此,NullAway 可以比在正常构建过程之外运行的工具快得多。
NullAway 在正常构建时间中只用了很少的开销,大约只占到 10%。因此,Uber 不仅仅是在提交队列中配置了 NullAway,而是把它运行在了安卓代码的每一个版本上。
将 NullAway 整合到 Uber 所有的 Java 构建中的价值主要表现在以下三个方面:
立即反馈:集成到所有版本中,使开发人员能够在引入潜在的 NPE 时立即获得反馈,而不必等待提交队列。
没有 NPE 检查器:构建集成意味着 Uber 不再需要在提交队列上作为单独的作业运行无效检查器,从而节省了大量的机器资源。
降低提交队列延迟:NullAway 能够显着降低提交队列延迟,由于 NPE 警告而导致提交队列失败变得非常罕见;这个减少的延迟在 Uber 转向 monorepo 之后变得更加显着。
点击链接查看其GitHub 介绍
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • crane0116
    这个不错哦
  • xianjin
    good
收起评论
显示
设置
留言
2
收藏
9
沉浸
阅读
分享
手机端
快捷键
回顶部