ANR问题了解新思路

本文探讨了ANR问题的本质,指出解决ANR需要深入理解系统事件分发、ANR机制、BINDER、线程同步等多个方面。作者提出通过手动编写导致ANR的代码来更好地理解这一问题,模拟了一个输入事件超时的场景,详细分析了日志和trace文件,以帮助开发者更清晰地把握ANR问题的分析方法。
摘要由CSDN通过智能技术生成

众所周知,ANR问题一般不太容易解决。它是一种比较综合性的问题。往往涉及系统事件分发逻辑,ANR产生机制,BINDER机制,线程同步,CPU和内存使用等各方面。意思就是说,要分析ANR,你需要的知识非常多。
也就因此,很多人看着ANR问题感觉无从下手,日志中的很多说法都很抽象。
既然如此,我们在了解一些基础知识的基础上,再自己去写一下anr是不是可以??
手动写出的“问题代码”如下:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        //Debug.startMethodTracing();
        Trace.beginSection("zhangkai");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mTextView = findViewById(R.id.textView);
        Log.d("kaijun", "onCreate: ");
        mTextView.setOnClickListener(new View.OnClickListener() {
   
            @Override
            public void onClick(View v) {
   
                Log.d("kaijun", "onClick: -----");

                Intent intent = new Intent();
                intent.setComponent</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值