![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
三驴蛋蛋
这个作者很懒,什么都没留下…
展开
-
Android插件开发适配2022.3.1 Giraffe
基本都是gradle intellij plugin的锅,可以关注下这个插件的issue更新下版本。原创 2023-11-16 12:00:38 · 173 阅读 · 0 评论 -
Android 插件开发ClassNotFoundException: com.intellij.openapi.util.SystemInfoRt 问题解决
在开发Android Studio插件时出现如下问题:Caused by: java.lang.ClassNotFoundException: com.intellij.openapi.util.SystemInfoRt ,可以考虑升级gradle intellij plugin插件解决原创 2023-11-15 23:04:27 · 176 阅读 · 0 评论 -
一个小例子解释async和await的作用
当前协程被挂起(注意不是阻塞,只是当前的suspend方法停止在了这个地方,等待结果),如果此时有另一个挂起函数和testDeferred同级,会发现那个函数继续在运行。,直接向下进行,这里在子协程中进行耗时操作的处理,不阻塞当前作用域。在协程作用域中,使用async发起一个耗时操作,并返回一个结果。(子协程处理完毕),当前协程恢复,继续向下进行。之后等待这个结果,并使用这个结果。此时才会执行781行和783行。原创 2023-05-25 16:22:52 · 86 阅读 · 0 评论 -
Android JNI方法为什么要加上@Keep注解?
在Android中,为了确保应用程序的正确性和稳定性,我们需要在JNI方法上添加@Keep注解。注解是由ProGuard提供的,它告诉ProGuard不要混淆被注解的类、方法或字段。在Android中,当我们使用ProGuard来优化和混淆代码时,如果没有添加。因此,为了确保JNI方法的正确性和稳定性,我们需要在JNI方法上添加@Keep注解,以防止ProGuard混淆这些方法。在这个示例中,我们在myNativeMethod()方法上添加了@Keep注解,以确保ProGuard不会混淆这个方法。原创 2023-03-31 10:18:03 · 650 阅读 · 0 评论 -
【Android】用AIDL实现Server端回调Client端方法(一)
背景在公司实习的过程中需要用到跨进程的通信,查看项目之前的代码发现是通过aidl绑定的两个进程,但是因为两个进程需要互相收发消息,所以A→B, B←A进行了两次绑定。本着能只绑定一次就不多浪费一次的原则,选择对这个通信方式进行改造。首先aidl这个东西就不再多赘述,是非常基础的多进程通信方法。其次通过一次aidl绑定后就可以调用Server端的服务,这一点也不多赘述,因为是aidl的平A用法。这里主要说明一下如何使用aidl实现反向调用客户端的方法用法通过查找其他博主的文章,发现统一使用了Rem原创 2021-07-30 22:11:08 · 1125 阅读 · 0 评论 -
【Kotlin入门】使用密封类优化代码
可以解决为了满足编译器的要求而编写无用条件分支的情况没有写密封类的时候interface Resultclass Success(val msg: String):Resultclass Failure(val error:Exception):Resultfun getResultMsg(result: Result) = when(result){ is Success -> result.msg is Failure -> result.error.mess.原创 2021-07-18 19:36:27 · 103 阅读 · 1 评论 -
【Kotlin入门】延迟初始化
没有延迟初始化的时候:priavte var adapter : MsgAdapter?=null //需要首先赋值为null//在接下来的方法中对其初始化override fun onCreate(){ adapter = MsgAdapter(msgList)}//即便已经初始化,在下面方法中仍然需要判空override fun onClick(){ adapter?.notifyItemInserted(msgList.size-1)}延迟初始化private late原创 2021-07-18 19:35:05 · 224 阅读 · 0 评论 -
【Kotlin入门】作用域函数
Withval result = with(obj){ //这里是obj的上下文,可以进行所有关于obj的操作 "value"//返回值,with函数的返回值}作用:可以是的连续调用同一个对象的多个方法的时候让代码变得更加简洁fun appendBuilder(){ val list = listOf("Apple", "Banana", "Orange", "Watermelon", "Peach", "Pear") var builder = StringBuil原创 2021-07-17 23:05:31 · 93 阅读 · 1 评论 -
【Kotlin入门】空指针检查
继承时构造函数的问题子类中有主构造函数,就会默认调用父类中的构造函数,所以冒号后面继承父类的时候需要加上() 。class Student (val sno:String, val grade:Int, name:String, age:Int): Person(name, age){ constructor(name: String, age: Int):this("",0,name, age) constructor():this("",0)}子类中没有主构造函数,就不会默认调原创 2021-07-17 23:02:57 · 67 阅读 · 0 评论 -
【Kotlin入门】面向对象相关
继承时构造函数的问题子类中有主构造函数,就会默认调用父类中的构造函数,所以冒号后面继承父类的时候需要加上() 。class Student (val sno:String, val grade:Int, name:String, age:Int): Person(name, age){ constructor(name: String, age: Int):this("",0,name, age) constructor():this("",0)}子类中没有主构造函数,就不会原创 2021-07-17 23:00:54 · 56 阅读 · 0 评论