
Android技术文章
文章平均质量分 88
Aaron大宝剑
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeakCanary检测原理和源码解析
一、引言 内存泄露一直是Android开发中需要避免的问题,因此发现和定位内存泄露就是我们治理内存泄露问题的首要动作。目前市面上最流行的内存泄露排查组件非大名鼎鼎的***LeakCanary***莫属了,它能非常方便直观把内存泄漏处的引用链展示出来,有助于我们的快速定位。另外,其使用方式也十分简单友好。对于开发者而言,仅满足使用还是不够的,尽量知其所以然,于是就有了这篇源码的解析。 二、使用和原理 源码分析基于LeakCanary版本1.6.3 2.1 使用方式 LeakCanary可以检测具体Acti原创 2021-12-28 17:20:22 · 1301 阅读 · 0 评论 -
Fragment、DialogFragment和BottomSheetDialogFragment生命周期流程源码解析
一、Fragment 1.1 生命周期 官方网上的Fragment声明周期。 图 1 Fragment生命周期流程图 除了上述声明周期之外,也可以注册FragmentLifecycleCallbacks来插入更多Fragment状态的监听,具体有: public abstract static class FragmentLifecycleCallbacks { /** * Called right before the fragment's {@link Fragme原创 2021-10-22 18:46:06 · 1048 阅读 · 0 评论 -
Android ServiceLoader使用详解和源码分析
一、SPI(Service Provider Interface) 在介绍ServiceLoader之前,需要先说下SPI (Service Provider Interface)这个概念。 SPI属于动态加载接口实现类的的一项技术,是JDK内置的一种服务提供发现机制,使用ServiceLoader去加载接口对应的实现,这样我们就不用关注实现类,ServiceLoader会告诉我们。官方文档描述为:为某个接口寻找服务的机制,类似IOC思想,将装配的控制权交给ServiceLoader。 使用场景 只提供服务原创 2021-08-23 15:30:50 · 377 阅读 · 0 评论 -
Android ServiceLoader使用详解和源码分析
一、SPI(Service Provider Interface) 在介绍ServiceLoader之前,需要先说下SPI (Service Provider Interface)这个概念。 SPI属于动态加载接口实现类的的一项技术,是JDK内置的一种服务提供发现机制,使用ServiceLoader去加载接口对应的实现,这样我们就不用关注实现类,ServiceLoader会告诉我们。官方文档描述为:为某个接口寻找服务的机制,类似IOC思想,将装配的控制权交给ServiceLoader。 使用场景 只提供服务原创 2021-08-03 17:19:36 · 891 阅读 · 1 评论 -
Android View可见性判断方法
在Android开发过程中,经常需要获取Window或某个View的可见性变化时机,以便在View的Visibility变化时进行相应的处理。目前,比较常用的判断View可见性时机的回调有 onWindowVisibilityChanged onVisibilityChanged OnAttachStateChangeListener#onViewAttachedToWindow 一、onWindowVisibilityChanged /** * Called when the wind原创 2021-07-30 13:56:08 · 2938 阅读 · 0 评论 -
消息传递和同步屏障机制全面解析
文章目录一、消息机制原理1.1 基本概念1、Handler2、MessageQueue3、Message4、Looper1.2 消息机制主流程1、发送消息2、消息入队3、消息出队4、消息分发二、同步屏障三、IdleHandler四、消息对象池3.1 创建Message对象3.2 回收Message对象五、总结 一、消息机制原理 Handler消息机制老生常谈了,必备八股之一。但是每次看都有新收获,故好好总结一下Handler相关知识。 1.1 基本概念 1、Handler 用于发送和处理消息的类,有多种重载原创 2021-04-21 14:11:08 · 1109 阅读 · 0 评论 -
Android设备屏幕信息
文章目录一、前言二、屏幕信息API2.1 基本单位2.2 WindowManager2.3 Display2.4 DisplayMetrics 一、前言 众所周知,由于Android碎片化严重,屏幕尺寸适配可说是Android开发中非常繁琐也令人头疼的问题。本文主要是讲解一些和屏幕信息相关的API,以便开发中,如果涉及到UI的适配,能够准确找到所需要的API来满足需求。 二、屏幕信息API 2.1 基本单位 在开发中,设置空间布局的时候常用的一些单位有:px、dp、sp和dpi等,它们各自的含义如下。原创 2021-01-16 16:05:26 · 662 阅读 · 0 评论 -
DialogFragment使用详解
文章目录一、前言二、DialogFragment使用2.1 DialogFragment的创建1、重写onCreateDialog()2、重写onCreateView()2.2 DialogFragment布局不生效1、setBackgroundDrawableResource 一、前言 DialogFragment是用于展示弹窗的API,与Dialog不同,DialogFragment本质上是一个Fragment,也就具有Fragment所拥有的生命周期。在使用时,更容易通过生命周期回调来管理弹窗。对于复原创 2021-01-15 20:32:58 · 10741 阅读 · 0 评论 -
Android源码分析之LayoutInflater
文章目录一、前言二、LayoutInflater源码解析2.1 View加载流程2.2 View的创建三、onFinishInflate调用机制和时机四、root和attachRoot参数的作用 一、前言 近来在开发时,经常使用到inflate方法加载视图布局,并且回调onFinishInflate方法进行一些初始化的操作。 顿时心血来潮,想要探究一下Layoutinflater的原理,怎么就把XML格式的布局文件加载为布局的实例对象,对于一些特殊标签,例如<merge>,<include原创 2020-11-01 23:01:47 · 336 阅读 · 0 评论 -
Android音视频开发(一)之基础知识
一、视频录制 视频录制有两种方式: 调用系统相机录制 在Android中调用系统相机,通过Intent设置系统相机的Action,然后startActivity就可以启动。但这种方式在实际开发中通常不能很好满足业务需要,比如我要指定一下录制视频的码率、分辨率、预览画面的大小和视频画面的尺寸等。 自定义相机录制 自定义相机开发过程相对复杂,使用Android SDK提供的Camera和Mediarecorder类来完成,单纯使用Mediarecorder也能直接进行录制,但通常是前置方式来实现。相机相原创 2020-08-01 16:59:20 · 2539 阅读 · 0 评论 -
Viewpager和Fragment的懒加载机制
一、背景 ViewPager默认加载当前页面,而且预加载当前页面的前后两个页面数据(即同时会加载3个页面的数据),如果3个页面都有网络请求,就会影响性能,影响用户体验,由此,懒加载就尤为重要了,可以在滑到哪个fragment的时候,该fragment再进行网络请求。 二、懒加载 所谓的懒加载,其实也就是延迟加载,就是等到该页面的UI展示给用户时,再加载该页面的数据(从网络、数据库等),而不是依靠ViewPager预加载机制提前加载两三个,甚至更多页面的数据.这样可以提高所属Activity的初始化速度,也可原创 2020-07-19 21:21:16 · 309 阅读 · 0 评论 -
RecyclerView进阶(二)ItemDecoration之分组栏的吸顶效果
在RecyclerView进阶(一)之分割线、添加Header和Footer展示过一个类似微信通讯录的粘性头部效果。 这篇文章就来实现一下这个效果。 像上面这种分组栏,它是通过ItemDecoration实现的;也就是说继承ItemDecoration并重写它的方法绘制出来的,注意一下:分组栏本身不是itemView,它本质上是在itemView撑开的区域上画出来的图案。 普通的分组栏 我们首先...原创 2018-12-21 10:07:25 · 778 阅读 · 0 评论 -
RecyclerView进阶(一)之分割线、添加Header和Footer
如今越来越多的开发者开始使用RecyclerView,与传统的ListView相比,它有许多优势:有更多的布局方式,更好的动画效果,更加灵活容易扩展,有局部刷新的能力等等。但不是说这样就能而完全取代ListView,毕竟它添加分割线、Header和Footer十分方便,而且自带有item的点击事件。所以使用RecyclerView还是ListView还是看具体应用场景。 RecyclerView之...原创 2018-12-20 16:38:01 · 692 阅读 · 0 评论 -
Android动画详解(二)插值器
在上一篇Android动画详解(一)补间动画中我们提到过一个叫插值器的东西,看名字一头雾水完全不知道是什么神奇玩意。其实用人话翻译过来就是速度模型或者速度曲线的意思。为动画设置插值器就是设定动画的速度模型,就是设置它是怎么动的,先加速再加速呀、一直减速呀、匀速的运动啊。插值器不只是补间动画需要设置啊,后面要讲的属性动画一样有插值器。具体效果一看动图便知。 1、AccelerateDecelerat...原创 2018-11-16 16:12:15 · 178 阅读 · 0 评论 -
Android动画详解(一)补间动画
一、概述 Android中常用到的动画有三种,分别是:帧动画、补间动画和属性动画。 1、帧(Frame)动画 帧动画的原理和电影一样,就是把一系列静态图片按一定顺序播放,利用人眼的视觉暂留效应使之呈现 动态效果。 2、补间(Tween)动画 补间动画是利用视图的平移、旋转、缩放和渐变来实现动画效果。 3、属性(Property)动画 虽然帧动画和补间动画可以实现很多动画效果,但是...原创 2018-11-14 20:49:03 · 544 阅读 · 1 评论