实用工具
IP地址检测
视频播放器
友情链接
签到福利
后台管理
留言板
Search
登录
为什么钱难赚了?
跨境出海
机器学习
所有分类
创业
AI人工智能
编程开发
科学上网
山地自行车
论文
生活小技巧
收藏视频
旅游
健康与饮食
人生经验
全部展开
定义和使用AIDL接口
定义AIDL接口 使用场景:在library/module中定义AIDL,打包成sdk,再给其他APP调用 第一步,新建一个module,取名为sdk,在main目录下新建AIDL文件 编辑器报错,无法创建,我们需要在build.gradle文件设置一下,内容如下: 添加之后再sync一下,然后就可以创建AIDL文件了,AIDL文件长下面这个样子 文件名以.aidl结尾,里面的内容跟我们平时
2024-07-27
编程开发
同步锁
公平锁: 每个线程获取锁的顺序是按照线程访问锁的先后顺序获取的,最前面的线程总是最先获取到锁。公平锁的优点是按序平均分配锁资源,不会出现线程饿死的情况,它的缺点是按序唤醒线程的开销大,执行性能不高 非公平锁: 每个线程获取锁的顺序是随机的,并不会遵循先来先得的规则,所有线程会竞争获取锁。非公平锁的优点是执行效率高,谁先获取到锁,锁就属于谁,不会“按资排辈”以及顺序唤醒,但缺点是资源分配随机性强,可
2024-07-25
暂无分类
Android-View绘制机制-高级
调用流程:ActivityThread.handleResumeActivity-->WindowManager.addView(DecorView,LayoutParams)-->WindowManagerGlobal.addView-->ViewRootImpl.setView-->requestLayout()-->scheduleTraversals() vo
2024-07-24
暂无分类
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通信原理
「在通信刚开始的时候使用非对称加密算法,解决密钥交换的问题。后续全都使用对称加密进行通信」 握手流程 客户端带上自己产生的随机数和支持的加密套件向服务器发出 Client Hello 请求。 服务器收到请求后带上自己的随机数以及选择的加密套件返回 Server Hello 信息。在之后服务器发送自己的证书。此时服务器也可要求客户端出示证书。发送完成后发送 Server Hello
2024-07-02
暂无分类
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扩展函数/扩展属性
扩展函数 顶层(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
LifeCycle 原理:Activity中添加了一个ReportFragment,在fragment的生命周期方法体内调用handleLifecycleEvent,利用反射机制找到对应的注解,执行方法 // ComponentActivity实现了LifecycleOwner接口 public interface LifecycleOwner { /** * Returns t
2024-06-27
暂无分类
Kotlin协程
创建协程环境 runBlocking 阻塞当前线程直到协程执行结束 launch 不会阻塞当前线程,返回值类型为Job,拿不到协程体的返回值 async 不会阻塞当前线程,返回值为Deferred,调用await()可以拿到协程体的返回值 协程启动模式 CoroutineStart.DEFAULT 立即进入待调度状态,一旦调度器 OK 就可以开始执行 CoroutineStart.LAZY
2024-06-25
编程开发
Kotlin委托和属性委托
委托 // 定义接口 interface Printer { fun print(message: String) } // 实现接口的具体类 class ConsolePrinter : Printer { override fun print(message: String) { println("Printing message: $message")
2024-06-24
编程开发
1
2
3
4
5
…
9
📢
网站公告
欢迎来到这里
🔥
近期热门
播放m3u8视频
3个月前
HTTPS通信原理
2个月前
Kotlin协程
2个月前
Kotlin委托和属性委托
2个月前
Kotlin扩展函数/扩展属性
2个月前
Android Jetpack 三件套 Lifecycke ViewModel LiveData
2个月前
本站推荐:腾讯云服务器仅需2.3折 (点击直达)
用户协议
隐私政策
邮箱:
[email protected]