首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/powertoolsteam/blog/18690305

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

R8疑难杂症分析实战:外联优化设计缺陷引起的崩溃|得物技术

一、背景 R8作为谷歌官方的编译优化工具,在编译阶段会对字节码进行大规模修改,以追求包体优化和性能提升。但是Android应用开发者数量太过庞大,无论测试流程多么完善,终究难以避免在一些特定场景下出现问题。 近期我们在升级项目的AGP,遇到了一个指向系统SurfaceTexture类的native崩溃问题。经反编译分析发现问题最终指向了smali字节码中多余的一行new-instance指令。 该指令创建了一个SurfaceTexture对象,但是并未调用其<init>方法,这意味着构造方法没有执行,但是这个类重写了finalize方法,后续被gc回收时会调用其中的nativeFinalize这个JNI方法,最终在native层执行析构函数时触发了SIGNALL 11的内存访问错误. 二、复现问题 我们注意到多出来的new-instance指令下面紧接着的是对a0.e 类中的静态方法 i() 的调用,其内部实现就是SurfaceTexture的构造方法。这是典型的代码外联操作,即一段相同的代码在工程中多次出现,则会被抽出来单独作为一个静态函数,原先的调用点则替换成该函数的调...

远程协作下的项目失控:不是信任危机,而是感知缺失

在阿道与用户每天的沟通咨询中,有相当一部分用户会咨询阿道关于项目管理中的团队合作问题。分享两个真实案例,相信大家在日常的工作中也会遇到类似的情况。 1.看上去一切顺利:某团队项目经理在一次与阿道的问题咨询中,说起了团队中一次印象深刻的项目失误,项目的各项数据都显示,迭代按计划推进,每项任务任务按期完成。但在交付前一周的集成测试中,一个被长期忽视的技术债突然暴露,项目瞬间陷入延期危机。 2.我以为你知道了:某跨国企业项目成员跨越八个时区, 某次欧洲同事深夜微调了一个接口参数,随手将修改信息同步在IM 群中。远在亚洲的团队成员并未注意,数周后模块对接时才发现这个致命的信息差,最终造成大量返工和项目延期。 这些问题的频繁发生,许多管理者将其归咎于团队成员责任心不足,或是彼此之间缺乏信任和默契。但实际上根源在于就是项目协作过程中的感知缺失。 构建高感知的项目管理模式 既然感知缺失是远程项目失控的重要原因之一,那么解决方案的核心就在于构建团队高感知的项目管理协作体系。禅道项目管理工具通过项目仪表盘、可视化工具链和自动化集成,在保持异步工作灵活性的同时,让团队对项目状态的感知始终保持同步。 1.项...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。