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

微信关注我们

原文链接: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.项...

相关文章

发表评论

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册