
Android踩坑经验
文章平均质量分 93
longlong2015
这个作者很懒,什么都没留下…
展开
-
Android踩坑经验--RecycleView Adapter缓存问题
项目中遇到一个问题,先看现象:发现在一个屏幕上,会出现显示格式不一致问题,比较诡异,同一个布局文件,为什么绘制出来显示效果不一样呢?RecycleView item的显示,主要是onCreateViewHolder和onBindViewHolder两个方法,看下方法调用情况:发现在滑动的时候,并没有执行onCreateViewHolder,而是执行的onBindViewHolder,只有...原创 2019-03-26 17:40:29 · 3974 阅读 · 1 评论 -
Android踩坑经验--App启动时间正确统计姿势
在这里讨论的是指冷启动,热启动不在讨论范围内。如何正确衡量App的启动时间,一般有以下几种方法:AMS日志分析法,录屏分帧法,代码埋点法,logicat分析法等,本文重点阐述最常用的AMS日志分析法,录屏分帧法,代码埋点法,重点阐述代码埋点法的正确姿势。1:AMS日志分析法adb shell am start -w package_name/activity_name输出结果如下:$ ad...原创 2019-03-26 17:45:46 · 5664 阅读 · 0 评论 -
Android踩坑经验-notifyDataSetChanged列表不刷新问题分析
本文主要阐述在使用RecyclerView中遇到notifyDataSetChanged列表不刷新问题,表现是:列表滑动时,notifyDataSetChanged可以正常刷新界面,但Fragment切换Tab后,再次滑动RecycleView,列表不刷新。通过打断点调试,发现数据请求没有问题,每次滑动到底部时自动请求数据,在数据集上添加网络数据,通过打断点信息可得到size由20变为40,数据...原创 2019-03-26 17:49:59 · 15867 阅读 · 2 评论 -
Android踩坑经验-优化APK大小时不可轻易删除/META-INF目录
在优化APK大小时,往往会删除无用资源,重复资源等,有些童鞋可能看到META-INF文件夹下都是声明信息,签名信息等,因此感觉除了签名信息外,其他信息可随意删除,但其实不然。META-INF文件夹主要存放的配置信息,签名信息,service注册信息,文件列表如下:重点有MANIFEST.MF,CERT.RSA,CERT.SF三个文件和services,proguard文件夹:MANIFES...原创 2019-03-26 17:53:47 · 2547 阅读 · 0 评论 -
Android踩坑经验-Finalize TimeoutException原因及解决方案
调用栈信息:背景知识:FinalizerDamemon和FinalizerWatchdogDaemonFinalizerDamemon析构守护线程,重写了finalize的对象,在创建时会新建一个FinalizerReference,这个对象是强引用类型,封装了override finalize()的对象,下面直接叫原对象。原对象没有被其他对象引用时(FinalizeReference除外...原创 2019-03-26 17:56:40 · 3196 阅读 · 1 评论 -
Android踩坑经验-View post方法不执行
View.post()方法在android7.0之前,在view没有attachToWindow的时候调用该方法可能失效,尤其异步线程,如在onCreate,onBindViewHolder时调用view.post方法,可能会不生效,在异步线程view.post方法不执行的情况居多。建议使用Handler post方法代替。看下Android 7.0之前的源码,以4.4版本代码为例:publi...原创 2019-03-26 17:58:22 · 5852 阅读 · 1 评论 -
Android踩坑经验-View.post获取宽高及子线程调用更新UI原理解析
解决两个问题:1:view post为什么能获取宽高?2:子线程执行时为什么可以更新主线程UI?Android开发中,在Acivity的onCreate方法中通过控件的getMeasureHeight/getHeight或者getMeasureWidth/getWidth方法获取到的宽高大小都是0,这个问题比较常见,因为在onCreate方法执行时,View还没有measure,比较常见的方...原创 2019-03-26 18:00:04 · 1621 阅读 · 0 评论