随笔分类 - Android
摘要:一、ProcessLifeCycleOwner是什么? 用于监听App程序的生命周期。 二、示例 ApplicationObserver类: class ApplicationObserver: LifecycleObserver { } DemoApplication类: class DemoAp
阅读全文
摘要:一、LifecycleService的用途? 解耦系统组件Service的生命周期。 LifecycleService继承自Service。 二、示例 MyServiceObserver类: class MyServiceObserver : LifecycleObserver { } MyServ
阅读全文
摘要:一、Lifecycle是什么? Lifecycle生命周期感知组件,可执行操作响应另一个组件(Activity或者Fragment)的生命周期状态。 二、Lifecycle出现的背景 用于解耦系统组件与其它组件的生命周期。 三、示例 App中都有开屏广告,在开屏广告右上角一个倒计时功能。倒计时功能需
阅读全文
摘要:一、Jetpack之前使用哪些架构? 在Jetpack之前,Android是没有官方的标准架构,大家使用架构从MVC演化到MVP及MVVM架构。 二、Jetpack是什么? Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法、减少样板代码并编写可在各种 Android 版本和设备中一
阅读全文
摘要:一、JNI是什么? JNI是Java Native Interface的缩写,译为Java本地调用。JNI是一种技术。 二、JNI技术的用途? Java程序中的函数调用Native程序中的函数。Native一般指使用C/C++编写的函数。 Native程序中的函数调用Java程序中的函数。 三、注册
阅读全文
摘要:1. 什么是异步? 先说说什么是同步,与同步对应的就是异步了。 同步:整个事件过程按顺序执行,等待各个事件过程都执行完成。整个事件线性执行,只有完成一个事件,才能继续执行下一个。 异步:调用者只是发送一个指令,无需等待事件执行完成,继续执行下一个事件。异步并不一定就是多线程操作,同一线程也可以完成异
阅读全文
摘要:一、by Lazy 延迟初始化是线程安全吗? Lazy是线程安全的,系统默认给Lazy属性添加了同步锁。也就是LazyThreadSafetyMode.SYNCHRONIZED,使之在同一时刻只能有一个线程对Lazy属性初始化操作。 /** * Specifies how a [Lazy] inst
阅读全文
摘要:一、协程是什么? 协程是程序自己控制挂起和恢复的程序。 协程可以实现多任务协作执行。 二、协程作用? 协程可以让异步代码同步化。 协程可以降低异步程序的设计复杂度。 三、协程分类 按调用栈分类: 有栈协程:每个协程都会分配一个单独调用栈,类似于线程的调用栈。 无栈协程:协程不会分配一个单独调用栈,挂
阅读全文
摘要:Android 事件分发原理 1. 事件传递机制 1. 在Android中事件一次完整的事件传递分为三个阶段: 事件分发; 事件拦截; 事件消费; 2. Android中触摸事件类型: Android中触摸事件类对应MotionEvent类,主要事件有三种:ACTION_DOWN、ACTION_MO
阅读全文
摘要:一、异常体系分类 异常的基类(超类)是Throwable,throwable有两个子类,分别为:Error、Exception。 Error:指程序中出现无法处理的错误。在出现Error时,JVM虚拟机会选择将出现Error的线程关闭。 Exception:异常,指程序本身可以处理的异常。异常分为:
阅读全文
摘要:代理关键字 by 属性代理:对象X代替属性a实现getter、setter方法。 接口代理:对象X代替类B实现接口C的方法。 举例 属性代理 在UI初始中使用过,代码如下: 1 class MainActivity : AppCompatActivity() { 2 3 private val mT
阅读全文
摘要:类属性延迟初始化 在Android中声明UI类型变量,由于Kotlin的类型安全机制必须进行初始化,比如: Java: 1 public class TestActivity extends AppCompatActivity { 2 3 private TextView mTvNmae; 4 5
阅读全文
摘要:一、ANR是什么? Application Not Responding,ANR是Android中的无状态响应对话框。 二、造成ANR原因 1. 主线程被IO操作(从Android 4.0后网络请求不允许在主线程)堵塞。 2. 主线程中存在耗时计算。 三、Android中哪些操作是在主线程执行 1.
阅读全文
摘要:一、Handler是什么? 在Android开发中,使用消息队列(message)完成线程间通信。而使用消息队列的线程就是消息循环(message looper)。消息循环不断的检查消息队列,是否有新消息。消息循环是由一个线程和一个looper组成;looper对象管理着线程的消息队列。 Andro
阅读全文
摘要:在Handler基础篇中讲述了Handler原理和使用,下面是从Handler源码进一步解析Handler。 一、源码解析 1. Handler的构造函数 1 /** 2 * Use the {@link Looper} for the current thread with the specifi
阅读全文
摘要:一、简介 进程(Process)是程序的一个运行的实例,以区别“程序”这一静态的概念。线程(Thread)是CPU调用的基本单位。 二、进程的组成部分 在Android中的四大组件是进程组成的一部分,Android App在启动时,创建App进程,以及主线程(UI线程)和两个Binder线程。创建一
阅读全文
摘要:一、Android 启动模式LaunchMode Standard:标准模式,也是系统默认的启动模式。每次启动都会创建一个新的Activity实例,不管这个实例在栈中是否已经存上。Activity所在的任务栈为启动新Activity B的Activity A所在任务栈。具体就是Activity A所
阅读全文
摘要:一、简介 Android应用版本号可以在Androidmanifest.xml文件中配置,标签<manifest>的属性android:versionCode和android:versionName配置版本号。 android:versionCode -- 为设备识别app版本,用于app升级所使用
阅读全文
摘要:一、概述 二、注意事项 1. 在派生类中,重写onDraw(...)方法,如果不给LinearLayout设置一个背景,系统是不会调用onDraw时,也就是说,我们重写的onDraw(...)是不会调用的。当设置一个背景后,onDraw就会被调用。ViewGroup本身是一个容器,其本身并没有任何东
阅读全文
摘要:一、样式和主题(style and theme) 1.1 样式(style)是来指定视图和窗口的外观和格式的一组属性集合。样式可以指定文本、字体及大小、背景颜色等属性。比如: 样式在TextView控件中使用: 1.2 样式继承 style可以通过paren属性继承一个现在的样式,然后,修改或者添加
阅读全文

浙公网安备 33010602011771号