- 博客(5)
- 收藏
- 关注
原创 从0开始写一个基于Flutter的开源中国客户端(2)——Dart语法基础
Dart中的类没有访问控制,所以你不需要用privateprotectedpublic等修饰成员变量或成员函数,一个简单的类如下代码所示:int age;
2024-05-16 14:14:41
442
原创 一文搞懂Android-JetPack组件原理之Lifecycle、LiveData、ViewModel与源码分析技巧(1)
为了对分析工作有个感性认识,先过一下各个组件的作用和简单用法。LifecycleLifecycle可以方便我们处理Activity和Fragment的生命周期,可以将一些逻辑更加内聚和解耦,比如把资源的释放操作从Activity的回调代码中解耦出来,放到资源管理类中自动进行。该组件是后两个组件的基石,理解它的原理也有助于我们理解LiveData是如何保证不会造成内存泄漏的。下面是一个简单的使用示例,在自定义LifecycleObserver的实现接口上,用注解的方式声明与生命周期相关联的方法。
2024-05-16 05:15:45
828
原创 Kotlin 宣布一个超级特性
是的子集,比会得到更多优化,现阶段和一样,只能在构造函数中传入一个参数,参数需要用val声明,将来可以在构造函数中添加多个参数,但是每个参数都需要用val声明,官方说明如下图所示。将来如果支持添加多个参数,那么它的使用范围会越来越广的。升级到 Kotlin 1.5 之后,将被弃用,如下图所示,编译器将会给出警告。根据提示目前唯一需要改变的是语法inline替换为value, 然后在添加@JvmInline注解即可。@JvmInline编译后的效果和是一样的,因此后面的案例将会使用。
2024-05-14 17:07:42
426
原创 Android组件间的交互和进程间IPC通信
对应的,隐式消息就一般用于跨进程的通信了,隐式消息没有确定的消息目的地,除了数据外,隐式消息只是包含了一些用于表征消息特征的描述字段。而一些需要收到某种特定特征消息的某个程序中的某个组件,需要通过在其所在程序的AndroidMainifest.xml中注册一种被称为intent-filter的消息特征筛选器,然后Android系统会按照一定的匹配规则来匹配发出的消息特征和所有拥有响应这种特征的intent-filter的组件(无论是同一进程内的组件还是不同程序中的组件),匹配到的组件就会接受到相应的消息。
2024-05-11 21:40:56
628
原创 Android强行进阶—按键事件&焦点事件攻略(1)
监听器的优先级高于Callback的回调,也就是说OnKeyListener的函数优先Callback的onKeyDown等等函数的回调。View的Callback回调要早于Activity,Activity的回调早于PhoneWindow。优先级高的消费KeyEvent,优先级低的不再受理该事件。下面通过时序图对上文KeyEvent做一个整体流程的阐释(虽然不能准备表达意思)
2024-05-11 17:24:47
395
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅