实现简易的Parcel内存共享
要实现类似Parcel的内存共享,其思路为通过jni在cpp层创建对象,将该对象的指针地址保存到java层,然后通过native方法去操作该块内存。Java层定义的Parcel:[highlightlanaguage="…
要实现类似Parcel的内存共享,其思路为通过jni在cpp层创建对象,将该对象的指针地址保存到java层,然后通过native方法去操作该块内存。Java层定义的Parcel:[highlightlanaguage="…
Splitties介绍在过去的19年12月初,Kotlin项目组下多达15kstar的Anko项目宣布被废弃。在宣布废弃的文章中,Anko强推了项目Splitties。Splitties是小型Kotlin跨平台库的集合(…
Coroutines提供了异步和非阻塞行为,但又不缺乏可读性。使用协程执行网络请求,而不会阻塞线程,也不用使用回调。对于网络请求库,Retrofit已经支持协程。阻塞请求如下是使用Retrofit对Github执行HTT…
D8和R8有3种编译器可以用来编译运行Android开发写的Kotlin代码。Kotlin编译器:可以运行并转换Kotlin代码为Java字节码。D8:它将Java字节码转换为Dex代码,这时就可以运行应用了。R8:用于…
在我们开发过程中经常处理集合,Kotlin的标准库中提供了很多处理集合的方法,而且还提供了两种基于容器的工作方式:Collection和sequence。假如有一组数字,先把其转换为String,然后取第一个以1开始的字…
3月23日,Jetbrains发布了Kotlin1.4的第一个预览版本,在本文中,将重点介绍1.4-M1中提供的新功能和关键改进:默认情况下会启用功能更强大的新类型推断算法。Contracts现在可用于成员函数。Kotl…
一个app包含了许多的函数,其中也包含一些函数把其他函数当作参数。如果需要通过改善一些额外的对象内存分配来提示应用的性能,可以使用内联(inline)。假如在应用中经常使用SharedPreferences而创建了下面的…
在开发中经常需要在代码中声明一些有限集合,如:网络请求可能为失败或成功;用户账号是高级用户或者普通用户。可以使用枚举来实现这类模型,但枚举自身存在很多限制。枚举类型每个值只允许有一个实例,同时枚举也无法为每个类型添加额外…