译-viewlifecycleowner与this对比

哈喽,Android 小伙伴们~ 这篇文章将提到 Fragment 中的两种 lifecycleowners。因为作为一个 Android 开发者,我们能够简单地使用 Fragment 作为 lifecycle owner,但某些情境下这可能会使你烦恼。 让我们先来看一下 Fragment 的生命周期: 从图中我们可以看到 onCreate 和 onDestroy 只调用了一次。这些是 Fragment 的主要的生命周期方法。 onCreateView 和 onDestroyView 根据 Fragment 的状态来被调用,因为它们是 Fragment 中 View 的主要生命周期方法。 因此,如果我们在 onCreate 中绑定 LiveData ,仅仅注册一次似乎是很合适很健康的。 1...     阅读全文
CodePoem's avatar
CodePoem 11月 24, 2020

优雅FindViewById

findBiewByIdfindBiewById 是 Android 开发中在布局中查找 View 元素的 Api。 findBiewById 基本使用12345678     阅读全文
CodePoem's avatar
CodePoem 4月 18, 2020

Fragment可见性

1234567891011121314151617...     阅读全文
CodePoem's avatar
CodePoem 3月 05, 2020

ViewPager下Fragment预加载与懒加载

预加载ViewPager 控件有一个预加载机制,即默认情况下当前页面左右两侧的 1 个页面会被预加载,以方便用户滑动切换到相邻的界面时,更流畅地加载界面(节省了初始化时间)。 从源码里可以看到,ViewPager 的预加载机制是不可取消的,预加载数量 limit 至少为 1,如果外部设置小于 1,内部会自动置为 1。 123456789     阅读全文
CodePoem's avatar
CodePoem 1月 11, 2020

记录一次Android7.0适配FileProvider踩坑

FileProvider重复 自定义FileProvider继承FileProvider。 12public class AppleFileProvider extends FileProvider {} AndroidManifest.xml中application节点下添加provider节点。 Provider1     阅读全文
CodePoem's avatar
CodePoem 11月 16, 2019

简析Bitmap

基于9.0(29)简析Bitmap类。 我们只关注Bitmap类暴露出来的(即访问权限为public)东西。 枚举类Config 枚举类CompressFormat 若干 createBitmap 静态方法 其他方法 枚举类Config可能的 bitmap 配置。bitmap 配置描述像素的存储方式。这会影响质量(颜色深度)以及显示透明/半透明颜色的能力。 Config 每个像素占用字节数 表示颜色种数 说明 ALPHA_8 1个字节,A分量占8位,不存储颜色信息 0 单透明通道 RGB_565 两个字节,R分量占5位,G分量占6位,B分量占5位 2^16(65536)     阅读全文
CodePoem's avatar
CodePoem 10月 16, 2019

Android图片压缩

为什么要压缩减少内存占用内存占用大小 = Bitmap大小 = 总像素点数 x 一个像素点占用的字节数 BitmapAndroid中图片在内存中的表达形式是Bitmap,即位图。 总像素点数总像素点数由什么决定呢? 总像素点数 = 图片源长度 x 缩放比例 x 图片源宽度 x 缩放比例 缩放比例可以大致表示为:(为什么说大致呢?因为不是绝对的,实际还有其他因素可以影响实际缩放比例,如inScreenDensity)缩放比例 = 1/inSam...     阅读全文
CodePoem's avatar
CodePoem 10月 14, 2019

简析BitmapFactory

基于9.0(29)简析BitmapFactory类。 我们只关注BitmapFactor类暴露出来的(即访问权限为public)东西。 静态内部类Options 若干decode方法 静态内部类OptionsOptions,顾名思义,是BitmapFactory用于decode方法的选项参数。让我们看看有哪些: Bitmap inBitmap如果使用此参数,decode方法会在加载内容时尝试重用此 bitmap ,如果编码操作不能使用此 bitmap (有限制条件),则会抛出 java.lang.IllegalArgumentException 异常。当前的重用实现方式要求 bitmap 必须是可变的,并且即使一个资源在decode后通常会得到不可变的 bitmap,在重用成功后所...     阅读全文
CodePoem's avatar
CodePoem 10月 14, 2019

Crash治理之TimeoutException

产生原因与 GC 过程相关的守护线程中的2个守护线程 FinalizerDaemon 和 FinalizerWatchdogDaemon 有关。 FinalizerDaemon :析构守护线程。对于重写了成员函数 finalize 的对象,它们被 GC 决定回收时,并没有马上被回收,而是被放入到一个队列中,等待 FinalizerDaemon 守护线程去调用它们的成员函数 finalize ,然后再被回收。 FinalizerWatchdogDaemon :析构监护守护线程。用来监控 FinalizerDaemon 线程的执行。一旦检测那些重定了成员函数 finalize 的对象在执行成员函数 finalize 时超出一定的时间,那么就会退出 VM 。 原因小总结: GC 过程中 FinalizerDaemon 守护线程执行 doFinalize 方法超时。FinalizerWatchdogDaemon检测到后产生 TimeoutException 并退出虚拟机。(每个手机触发 Timeout 的时长不同,比如 vivo 的某些rom 是...     阅读全文
CodePoem's avatar
CodePoem 9月 25, 2019

Android动画

Android中动画划分为两大类 视图动画(View Animation)和 属性动画(Property Animation)。其中 属性动画(Property Animation)需要在Android3.0之后(API >= 11)使用。视图动画(View Animation)又包括了 帧动画(Frame Animation) 和 补间动画(Tweened Animation)。 视图动画(View Animation)帧动画(Frame Animation)帧动画(Frame Animation) 有时也叫 Drawable动画,这种动画的实质其实是Drawable。像播放幻灯片一样,利用视觉残留产生动画效果。 核心类:AnimationDrawable     阅读全文
CodePoem's avatar
CodePoem 9月 16, 2019