所有分类创业AI人工智能编程开发科学上网山地自行车论文生活小技巧收藏视频旅游健康与饮食人生经验
Okhttp源码
Okhttp源码
使用方法 val client = OkHttpClient() val builder = Request.Builder().url("https://example.com") // 1.同步请求 client.newCall(builder.build()).execute() // 2.异步请求 client.newCall(builder.build()).enqueue(object
2024-07-12
暂无分类
HTTPS通信原理
HTTPS通信原理
「在通信刚开始的时候使用非对称加密算法,解决密钥交换的问题。后续全都使用对称加密进行通信」 握手流程 客户端带上自己产生的随机数和支持的加密套件向服务器发出 Client Hello 请求。 服务器收到请求后带上自己的随机数以及选择的加密套件返回 Server Hello 信息。在之后服务器发送自己的证书。此时服务器也可要求客户端出示证书。发送完成后发送 Server Hello
2024-07-02
暂无分类
Kotiln伴生对象
Kotiln伴生对象
写法 class Test { companion object { } } 反编译后 public final class Test { @NotNull public static final Companion Companion = new Companion((DefaultConstructorMarker)null); public static
2024-06-30
编程开发
Kotlin扩展函数/扩展属性
Kotlin扩展函数/扩展属性
扩展函数 顶层(Top-Level)扩展函数 // 文件名 Test.kt fun String.extendedFun(i: Int): String { // this代表(.)前面的对象,在这里,就是String对象 return this + i } 反编译结果 public final class TestKt { @NotNull public stati
2024-06-30
编程开发
Android Jetpack 三件套 Lifecycke ViewModel LiveData
Android Jetpack 三件套 Lifecycke ViewModel LiveData
LifeCycle 原理:Activity中添加了一个ReportFragment,在fragment的生命周期方法体内调用handleLifecycleEvent,利用反射机制找到对应的注解,执行方法 // ComponentActivity实现了LifecycleOwner接口 public interface LifecycleOwner { /** * Returns t
2024-06-27
暂无分类
Kotlin协程
Kotlin协程
创建协程环境 runBlocking 阻塞当前线程直到协程执行结束 launch 不会阻塞当前线程,返回值类型为Job,拿不到协程体的返回值 async 不会阻塞当前线程,返回值为Deferred,调用await()可以拿到协程体的返回值 协程启动模式 CoroutineStart.DEFAULT 立即进入待调度状态,一旦调度器 OK 就可以开始执行 CoroutineStart.LAZY
2024-06-25
编程开发
Kotlin委托和属性委托
Kotlin委托和属性委托
委托 // 定义接口 interface Printer { fun print(message: String) } // 实现接口的具体类 class ConsolePrinter : Printer { override fun print(message: String) { println("Printing message: $message")
2024-06-24
编程开发
python虚拟环境使用教程(venv/virtualenv/conda)
python虚拟环境使用教程(venv/virtualenv/conda)
venv venv是Python 3.3版本以后自带的虚拟环境管理工具。可以通过以下步骤创建并激活虚拟环境: $ cd 项目根目录 $ python -m venv <ENV_DIR> # 创建虚拟环境 python -m venv <ENV_DIR> $ source <ENV_DIR>/bin/activate
2024-06-06
暂无分类
播放m3u8视频
播放m3u8视频
用FFmpeg工具把视频转换成m3u8格式,转换时会生成n个ts文件。最好再用ffmpeg获取视频的第一帧作为视频封面 把m3u8文件和*.ts文件放在同一个文件夹,上传到服务器 在video.js中设置src为https://xxx.xxx/xxx.m3u8,视频就可以正常播放了 原理:播放器根据m3u8文件中的播放列表,逐个下载视频切片到本地,解析并播放。好处就是不会像播放mp4那样下载整个文
2024-05-27
暂无分类
css疑难杂症
css疑难杂症
height auto 过渡效果 把height改成max-height,width同理 .accordion-body { max-height: 0; transition: 500ms max-height ease; } .accordion:hover .accordion-body { max-height: 200px; }
2024-05-26
暂无分类