View 的事件分发
事件分发的伪代码
1 | boolean dispatchTouchEvent(MomentEvent ev){ |
事件分发的伪代码
1 | boolean dispatchTouchEvent(MomentEvent ev){ |
META-INF/CERT.RSA 是 apk 文件的证书
keytool -printcert -file xxxx
arcTo 方法
在 path 中的arcTo()
方法只画弧形,不画扇形,所以没有 useCenter
这个参数
其中的 arcTo(float left, float top, float right, float bottom, float startAngle,float sweepAngle, boolean forceMoveTo)
中的最后一个参数代表是否将画笔抬起,即强制将画笔的移到圆弧的起点再开始进行绘制
addArc() 方法
这个方法与上一个方法的区别在于没有 forceMoveTo 这个参数,实际上等同于 arcTo(...,true)
方法
当依赖两个库时,这两个库(A,B)中又同时依赖于另一个库(C),如果这个时候 A,B 中依赖的 C 库版本不同,Gradle 会自动使用最新的版本,比如
1 | dependencies { |
两者都是 Kotlin 中用来延迟加载类属性的方法
lateinit var 不能用来修饰基本类型,因为 Kotlin 中用来判断变量是否初始化是通过判断该变量是否为 null 来作为依据的,而基本类型在初始化的时候会默认赋值,所以 lateinit var 不能修饰基本类型
在 Android Apk 包体积治理的项目中,对于资源文件的治理是其中很重要的一部分,其中,做好前期的压缩删除等工作是前提条件,但在后续的开发迭代过程中,如何进行长期的治理、预警和自动化,是值得深入探讨的问题
在包体积治理的过程中,我们知道对于 apk 的组成,其中资源文件占了很大的一部分,需要对其进行处理
ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。
1 | private val viewModel = ViewModelProvider(this).get(MyCustomViewModeClass::class.java) |
RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences.
RxJava 是 Reactive Extensions 的 Java VM 实现:一个使用可观察序列组合异步和基于事件的程序的库。
RxJava 通过观察者订阅被观察者进行事件的分发,并提供了很多被观察者(即事件发送者)的创建方法和事件转换的操作符函数(map、flatmap、filter 等等)
先提出一个问题,将两张分辨率相同(48px * 48px),但文件大小不同的 png 图片,放在 drawable-xhdpi 文件夹下,在不同分辨率的手机上,所加载出来的 Bitmap 的占用内存大小分别是多少?
在 Android 中,使用 Handler 主要用于不同线程间的通信
本文基于 Target 30 的 Android 源码进行分析