摘要: 1. 什么是UI线程? App通过Zygote fork创建一个App进程,通过ActivityThread的main()函数创建ActivityThread实例及UI线程Looper对象。 程序都有一个main()函数,也就是主函数,Android中的主函数在ActivityThread这个类中, 阅读全文
posted @ 2021-08-28 19:14 naray 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 一、LiveData是什么? LiveData是可观察数据存储器类,与常规可观察数据存储类不同,LiveData具有对系统组件(如:Activity、Fragment、Service等)的生命周期感知能力。 LiveData只有在生命周期的活跃状态下才会更新数据,即start、resume,非活跃状 阅读全文
posted @ 2021-08-28 18:23 naray 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 一、ViewModel是什么? ViewModel以注重组件生命周期的方式存储和管理页面相关的数据。ViewModel让Activity未设置configChanages="orientation|screenSize"属性时,设备发生旋转后,页面数据得以继续留存。 二、ViewModel产生背景? 阅读全文
posted @ 2021-08-28 17:41 naray 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 一、ThreadPoolExecutor类使用 1. 创建线程池源码: /** * Creates a new {@code ThreadPoolExecutor} with the given initial * parameters. * * @param corePoolSize the nu 阅读全文
posted @ 2021-08-28 16:52 naray 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 1. 为什么使用锁? 多线程操作带来的问题? 访问冲突; 锁竞争; 死锁; 锁的粒度; 上下文切换开销; 同步/内存拷贝开销等; 2. 线程安全 Java内存模型(JMM) working memory & main memory 原子性; 可见性; 有序性; happens before原则 代码 阅读全文
posted @ 2021-08-28 16:52 naray 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 1. 线程的状态 Java程序在运行过程中线程可能有6种状态: New:新创建状态; Runnable:可运行状态; Blocked:阻塞状态; Waiting:等待状态; Timed waiting:超时等待状态; Terminated:终止状态; 2. 线程同步 1. 加锁与条件变量 Lock/ 阅读全文
posted @ 2021-08-28 16:51 naray 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 1. Java线程 2. Java线程安全 3. 多线程与线程间通信 4. Java 线程池ThreadPoolExecutor类 5. Java线程与线程池进阶 阅读全文
posted @ 2021-08-28 16:51 naray 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是线程安全? 可变资源(内存)间线程共享。 2. 如何实现线程安全? 不共享资源; 共享不可变资源; 共享可变资源: 可见性; 操作原子性; 禁止重排序; 1. 不共享资源 1. 可重入函数:函数体内部不涉及任何外部变量; // 可重入函数 public static int addTwo 阅读全文
posted @ 2021-08-28 16:49 naray 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 1. 如何停止一个线程? 官方停止线程的方法被废弃了,所以不能直接停止线程,这么做是非常不安全的。 2. 为什么不能简单停止一个线程? 因为,简单停止一个线程会出现很多异常情况,比如:多线程读取共享变量时,其中一个线程加锁了,其它线程处于等待状态,如果,将加锁线程暂停了,那么其它线程就会被堵塞在这里 阅读全文
posted @ 2021-08-28 16:49 naray 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 一、ProcessLifeCycleOwner是什么? 用于监听App程序的生命周期。 二、示例 ApplicationObserver类: class ApplicationObserver: LifecycleObserver { } DemoApplication类: class DemoAp 阅读全文
posted @ 2021-08-28 15:25 naray 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 一、LifecycleService的用途? 解耦系统组件Service的生命周期。 LifecycleService继承自Service。 二、示例 MyServiceObserver类: class MyServiceObserver : LifecycleObserver { } MyServ 阅读全文
posted @ 2021-08-28 15:17 naray 阅读(717) 评论(0) 推荐(0) 编辑
摘要: 一、Lifecycle是什么? Lifecycle生命周期感知组件,可执行操作响应另一个组件(Activity或者Fragment)的生命周期状态。 二、Lifecycle出现的背景 用于解耦系统组件与其它组件的生命周期。 三、示例 App中都有开屏广告,在开屏广告右上角一个倒计时功能。倒计时功能需 阅读全文
posted @ 2021-08-28 15:05 naray 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 一、Jetpack之前使用哪些架构? 在Jetpack之前,Android是没有官方的标准架构,大家使用架构从MVC演化到MVP及MVVM架构。 二、Jetpack是什么? Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法、减少样板代码并编写可在各种 Android 版本和设备中一 阅读全文
posted @ 2021-08-28 10:55 naray 阅读(190) 评论(0) 推荐(0) 编辑