ANR问题解析(三):ANR问题解决方案

本文详述了安卓系统开机向导时遇到的DUO、Calendar、Music、Play Store等概率ANR问题的原因及规避方案,包括广播接收超时导致的ANR,以及Google Play Store下载apk时的闪退问题。通过对ANR日志的分析和针对性的代码修改,提供了有效的解决方案。
摘要由CSDN通过智能技术生成

本篇文章主要介绍 Android 开发中的部分GMS 包相关APK ANR,闪退问题解决方案知识点,通过阅读本篇文章,您将收获以下内容:

一、开机向导时 Google DUO 概率ANR
二、开机向导时 Google Calendar 概率 ANR
三、开机向导时 ANR 弹框不show的解决方案
四、开机向导时 Google Music 概率 ANR
五、开机向导时 Google Play Store 概率 ANR
六、 Google play Store 下载apk 概率性闪退

一、开机向导时 DUO 概率ANR

Log中分析主要原因是android.intent.action.LOCALE_CHANGED 广播接收超时导致的ANR

1.ANR Log 如下:

img

ANR Log

2.ANR 规避方案如下:

BroadcastQueue类的 processNextBroadcast方法中,当第一次开机时候,跳过此Action。

3.修改类路径如下:

/alps/frameworks/base/services/core/java/com/android/server/am/BroadcastQueue.java
public final class BroadcastQueue {
   
  ... ...
    final void processNextBroadcastLocked(boolean fromMsg, boolean skipOomAdj) {
   
        BroadcastRecord r;
          ... ...
         // import android.provider.Settings;
         //when frist boot , ingore Google Duo anr when receive broadcast : android.intent.action.LOCALE_CHANGED
            if (info.activityInfo.name.contains ("com.google.android.apps.tachyon") && 
                               r.intent.getAction().equals("android.intent.action.LOCALE_CHANGED")){
   
                 int deviceProvisioned = Settings.Global<
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值