FileProvider重复
自定义FileProvider继承FileProvider。
12public class AppleFileProvider extends FileProvider {}
AndroidManifest.xml中application节点下添加provider节点。
Provider1
阅读全文
基于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)
阅读全文
基于9.0(29)简析BitmapFactory类。
我们只关注BitmapFactor类暴露出来的(即访问权限为public)东西。
静态内部类Options
若干decode方法
静态内部类OptionsOptions,顾名思义,是BitmapFactory用于decode方法的选项参数。让我们看看有哪些:
Bitmap inBitmap如果使用此参数,decode方法会在加载内容时尝试重用此 bitmap ,如果编码操作不能使用此 bitmap (有限制条件),则会抛出 java.lang.IllegalArgumentException 异常。当前的重用实现方式要求 bitmap 必须是可变的,并且即使一个资源在decode后通常会得到不可变的 bitmap,在重用成功后所...
阅读全文
为什么要压缩减少内存占用内存占用大小 = Bitmap大小 = 总像素点数 x 一个像素点占用的字节数
BitmapAndroid中图片在内存中的表达形式是Bitmap,即位图。
总像素点数总像素点数由什么决定呢?
总像素点数 = 图片源长度 x 缩放比例 x 图片源宽度 x 缩放比例
缩放比例可以大致表示为:(为什么说大致呢?因为不是绝对的,实际还有其他因素可以影响实际缩放比例,如inScreenDensity)缩放比例 = 1/inSam...
阅读全文
我们在日常打aar包和jar包,并上传到远端中央仓库时,需要引入大段gradle代码,较为繁琐。我这里整理了常用的上传到中央仓库的gradle代码,提供了较为方便的使用方式。上传代码模板GitHub目前只有上传到bintray也就是jcenter的整理,后期有需要其他远端中央仓库的会继续跟进。
模板整理GitHub
阅读全文
官方文档
免费Travis-CI(针对开源项目):https://travis-ci.org
收费Travis-CI(针对私有和商业项目):https://travis-ci.com
使用步骤
登录 Travis CI 并对指定的项目启用。
配置 .travis.yml ,参考官方文档。
push(或其他方式)触发Travis-CI。
实现工作流
构建。开...
阅读全文
产生原因与 GC 过程相关的守护线程中的2个守护线程 FinalizerDaemon 和 FinalizerWatchdogDaemon 有关。
FinalizerDaemon :析构守护线程。对于重写了成员函数 finalize 的对象,它们被 GC 决定回收时,并没有马上被回收,而是被放入到一个队列中,等待 FinalizerDaemon 守护线程去调用它们的成员函数 finalize ,然后再被回收。
FinalizerWatchdogDaemon :析构监护守护线程。用来监控 FinalizerDaemon 线程的执行。一旦检测那些重定了成员函数 finalize 的对象在执行成员函数 finalize 时超出一定的时间,那么就会退出 VM 。
原因小总结:
GC 过程中 FinalizerDaemon 守护线程执行 doFinalize 方法超时。FinalizerWatchdogDaemon检测到后产生 TimeoutException 并退出虚拟机。(每个手机触发 Timeout 的时长不同,比如 vivo 的某些rom 是...
阅读全文
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
阅读全文
什么是自定义View自定义 View 就是通过继承 View 或者 View 的子类,并在继承的类里面实现自定义的处理逻辑(重写相应的方法),以达到自己想要的效果。
为什么要自定义View
让界面有特定的显示效果、交互
优化布局(减少布局层次)
封装
如何自定义View自定义View主要流程
测量阶段 measure
布局阶段 layout
...
阅读全文