众所周知,2020年5月23日凌晨,大量三星手机用户的手机无限重启进入 Recovery问题, 操作不当会导致数据丢失(Recovery),三星售后人满为患,很多人声称砸了手机。
先说结论,这个5月23日正好是闰4月开始,手机要显示一个闰字,而且APP系统中没有闰这个词APP奔溃手机重启,多次重启将进入Recovery 界面界面,部分用户不知道恢复操作的错误导致数据丢失。
从程序员的角度来看,这很简单bug,adb里看一眼log知道发生了什么,为什么这么简单bug手机无法启动。因为这是一个系统级别APP,为此安卓app若跑到一定次数,则认为系统有问题,因此将实现系统恢复界面。
这是一些手机显示的错误信息(这款手机是调试机器,可以显示这个日志信息吗?),让我们看看,因为我们找不到它,路由知识因为我们找不到它 common_data_leap_month 这个 string 值.所以APP直接崩溃。
因为简单bug一些中国用户受到影响,因为只有中国才会显示这个飞跃,这个飞跃bug有点像当年的千年虫,很难发现测试过程。
那做为Android 如果开发人员知道的话trings.xml没有定义这个字段,编译就无法通过。为什么三星?APP它可以通过并发部分编译到用户的机器中。在这里,作者做了一个大胆的猜测来发展这一点APP程序员必须有这个字段,可以编译,但三星是一家全球公司,每个系统APP涉及的版本很多,正是因为版本管理的漏洞。由于代码开发完成后,代码开发不在同一阶段,进入测试和发布阶段,因此在开发过程中使用类似的阶段AndroidStudio编译测试工具,发布时使用其他工具组装编译字节码,组装成apk然后进行系统测试,然后发布,组装过程不会编译,所以出现了这个问题。这也是个人猜测。你还有什么看法?欢迎留言讨论。