Kotlin Flow常见场景下的使用实例
目录Kotlin Flow在开发中的常用场景使用一、网络请求搭载Retrofit1.1 LiveDataCallAdapterFactory1.2 suspend二、协程与Flow的选择与差异三、StateFlow与SharedFlow的选择...
目录Kotlin Flow在开发中的常用场景使用一、网络请求搭载Retrofit1.1 LiveDataCallAdapterFactory1.2 suspend二、协程与Flow的选择与差异三、StateFlow与SharedFlow的选择...
目录背景知识一、Android VM的内存空间1.查看内存的API二、Android VM内存分配流程小结三、出现OOM的建议解决方案背景知识Android中每个App默认情况下是运行在一个独立进程...
1.App的启动流程,从startActivity到Activity被创建。这个流程主要是ActivityThread和ActivityManagerService之间通过binder进行通信来完成。ActivityThread可以拿到AMS 的Bi...
目录1.apply 函数2.let 函数3.run函数4.with 函数5.also6.takeIf7.takeUnless1.apply 函数apply函数可以看做是一个配置函数。针对apply函数的调用者做一些配置,并把调用者返...
1.在kotlin中,默认类都是封闭的closed的。如果要让某个类开放继承,必须用open关键字修饰类中的方法默认也是关闭的。如果需要子类复写父类的方法,也必须用open修饰。1)定义父类,...
目录1.扩展函数2.infix 关键字3.扩展函数文件4.重命名扩展函数1.扩展函数1)当我们没法接触某个类的定义,或者某个类没有用open修饰无法继承时,我们可以通过扩展函数,来实现该类...
目录背景术语对齐探索如何优雅地提供接口调用?怎样封装多个不同类型的H5容器容器?整体架构通用容器框架容器基础组件这样的架构能带来什么样的好处?背景大家如果经历过Hybrid项...
本文实例为大家分享了使用ViewPager2实现轮播图效果的具体代码,供大家参考,具体内容如下0.实现效果1.添加依赖dependencies { ... implementation 'androidx.viewpa...
本文实例为大家分享了DatePicker日期滚动选择的使用,供大家参考,具体内容如下效果图为:1.dialog_date.xml:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android...
本文实例为大家分享了ViewPager实现图片切换效果的具体代码,供大家参考,具体内容如下xml布局:<RelativeLayout android:layout_width="match_parent" an...
本文实例为大家分享了Viewpager2实现登录注册引导页面的具体代码,供大家参考,具体内容如下介绍屏幕滑动是两个完整屏幕之间的切换,在设置向导或幻灯片等界面中很常见实现图(图...
目录1.嵌套类2.数据类3.定义数据类的必须满足的条件4.解构声明5.枚举类enum class6.运算符重载1.嵌套类如果一个类只对另外一个类有作用,那么可以将其嵌入到该类中,使两个类在...
目录Compose的诞生Compose好处Compose 架构@Composable的背后智能重组真的那么智能吗最后Compose的诞生在2019年的谷歌IO大会上,Compose作为Android新一代UI开发亮相,因为声明...
目录引言1. LineGradientChart2. 散点图3. SteppedChart引言声明:文中的MPChart代指MPAndroidChart.本文主要讲解LineChart中的三个变种Chart,第一个是渐变的LineGradientChar...
目录一.标准布局组件二.修饰符三.滑动组件1.ScrollableRow和ScrollableColumn2.LazyRowFor和LazyColumnFor一.标准布局组件Compose中可以将多个控件元素组合使用,例如下面这...
目录系统应用根据Uri授予权限的正确姿势UriPermission背景分析checkGrantUriPermission系统为什么要这么做?调用者端解决办法扩展系统应用根据Uri授予权限的正确姿势在我们印...
目录前言ASM的作用是什么?如何使用ASM?基本使用方式自定义ClassVisitorASM ByteCode Viewer如何将ASM运用都我们的实际项目中来?引入工程Android Gradle Plugin创建插件项目配...
目录前言术语对齐客户端可以从哪些方面优化h5页面的加载速度?优化思路预渲染的基本实现逻辑是怎样的?预创建预创建个数预创建时机预创建复用预渲染预渲染时机预渲染有效性校验...
前言无论是顶部还是底部导航栏,都是大多数APP的标配,网络上的相关实现教程也非常之多。最近回忆起以前写的小项目,发现对这块内容有些遗忘,不妨就再整理一遍代码逻辑,记录下来,方...
目录一、开发工具1、软件介绍2、Android JDK配置3、Android Gradle配置4、Android API配置5、项目依赖配置二、项目细节详情1、andriodmanifest.xml配置详情2、ExampleInstr...
本文实例为大家分享了Android自定义控件实现雷达图的具体代码,供大家参考,具体内容如下学习了大神的源代码(奈何不知大神的博客地址),觉得必须记录一下,方便以后再次学习。效果如...
1.泛型类、泛型函数1)泛型类可以接收任意类型。Package<T>(t: T)2)泛型类中定义的泛型参数<T>,通常用T(Type)表示,(t: T) 这个表示泛型类Package的主构造函数可以接收T类型的属性...
目录使用场景主要功能监听剪贴板悬浮窗算前台吗?焦点时差监听剪贴板切换焦点的问题必须用悬浮窗获取剪贴板内容吗翻译单词悬浮窗显示翻译内容添加记忆悬浮窗位置的功能停止...
目录1.定义单例类2.对象表达式3.伴生对象在kotlin中的超类是Any,并没有使用Java中的Object关键字表示超类。在Kotlin中Object关键字,另有作用。1.定义单例类在一个进程中只有...
目录JVM与Dalvik基于栈的虚拟机字节码指令执行过程基于寄存器的虚拟机寄存器基于寄存器的虚拟机ART与Dalvikdex2aotdexopt与dexaotAndroid N的运作方式ClassLoader介绍Class...
1.在Kotlin中可以通过以下方式创建ArrayList、LinkedList、HashSet、HashMap等。 val arrayList = ArrayList<String>() val linkedList = LinkedList<String>() v...
目录1. 需求描述2. 基础知识3. 菜单加载4. 需求实现5. 总结1. 需求描述Android Menu菜单是比较常见的功能,在ActionBar or ToolBar上显示,点击更多(3个点),会有下拉列表菜单展...
目录前言一、Handler 与 sleep二、Handler 与 postDelayed三、Handler 与 timer以下结论来源其他博主补充:采用Handler与timer及TimerTask结合的方法总结 前言android开发中,...
前言:使用ASM在编译期修改字节码来完成各种功能(统计方法耗时、全埋点统计...),就需要开发Gradle插件。开发插件中遇到问题排查使用日志输出效率太低了,能断点调试的话就更好了。...
目录搭建实验环境小试牛刀实战尝试CMake添加汇编支持实现汇编Neon优化搭建实验环境首先新建一个包含native代码的项目:然后在gradle中添加对neon的支持: externalNative...
目录一.协程间的通信1.通道容量2.溢出策略二.FusibleFlow接口三.ChannelFlow类一.协程间的通信当需要进行协程间的通信时,可以调用Channel方法,创建一个Channel接口指向的对象...
目录示例代码一.flowOn方法1.ChannelFlowOperatorImpl类二.collect方法1.ChannelFlowOperator类的collect方法2.ChannelFlow类的collect方法3.flow方法中代码的执行4.接收fl...
本文实例为大家分享了TabLayout+ViewPager2简单使用的实现代码,供大家参考,具体内容如下学习之前我们先看一下显示的效果这里显示的底部导航栏,如果想实现的顶部导航栏,只需要调...
本文实例为大家分享了ViewPager实现轮播图引导页的具体代码,供大家参考,具体内容如下创建fragment将fragment对象添加到viewPager中,使其可以进行左右滑动的功能fragmentList.a...
android轮播图引导页(因为是引导页,所以不具备自动轮播的功能)示例:代码后面有数字,3.1开始就是开始做小圆点//分为三个部分(1)布局activity_lun_bo_main.xml<?xml version="1.0" e...
目录1.类的属性 filed2.构造函数3.执行顺序4.延迟初始化5.惰性初始化1.类的属性 filed1)在kotlin中定义属性,必须赋初始值,要不编译器检查不通过。这个和java不同2)kotlin会针对...
目录1、在ComposeUI中加载AndroidView控件2、在AndroidView中加载ComposeUI3、LiveData数据转换成State数据1、在ComposeUI中加载AndroidView控件Compose中可以加载AndroidV...
目录前言介绍执行流程OkHttpClientclient.newCall(request):RealCall.enqueue()Dispatcher.enqueue()InterceptorRetryAndFollowUpInterceptorBridgeInterceptorCacheInterce...
目录引言1 分页加载组件1.1 功能定制1.2 手写分页列表1.3 生命周期管理2 github引言在Android应用中,列表有着举足轻重的地位,几乎所有的应用都有列表的身影,但是对于列表的交...
目录一、背景描述二、效果展示2.1、测试项目介绍三、思路问题分析与模块搭建:3.1、思路问题分析3.2、模块搭建四、问题解决与实编译流程启动,需要找到哪一个 module做了修改m...
使用RecyclerView布局,经常需要调整间距和添加分割线以达到更美观的效果,虽然一直接触和使用,但却从来没有认真研究过,经常忘记如何使用,现在就来好好研究一番先放上一个没有分割...
目录使用教程如下配置初始化注解详解CRUD操作其他注意事项使用教程如下配置初始化Orm.init(this, OrmConfig.Builder() .database("dcache_sample")...
目录1.函数式编程2.函数类别3.变换函数(transform)4.过滤函数(filter)5.合并函数(combine)1.函数式编程我们都知道java是面向对象编程范式。在java的世界,一切皆对象。函数式编程范...
本文实例为大家分享了Android实现秒表功能的具体代码,供大家参考,具体内容如下设计完成一个秒表,具备启停功能,正确使用工作线程完成界面刷新activity_main.xml<?xml version="1...
最近在练习自定义view, 想起之前面试的时候笔试有道题是写出自定义一个时钟的关键代码. 今天就来实现一下. 步骤依然是先分析, 再上代码.实现效果View分析时钟主要分为五个...
目录1、WebView类提供的常用方法2、WebView的简单用法实现浏览网页1、启用JavaScript的支持2、目标的网页仍然在当前WebView中显示3、将网址传入3、结合WebView方法做一个迷...
目录shape标签基本使用语法Shape标签生成GradientDrawable对象GradientDrawable获取shape子标签属性GradientDrawable进行shape绘制作为Android开发,shape标签的使用定然不陌...
目录一、kotlin-android-extensions二、ViewBinding使用1.gradle配置2.在Activity 使用3.在Fragment使用4.在Adapter中使用5.在Dialog中使用6.Include中使用三、ViewBinding...
在Kotlin中@JvmOverloads注解的作用:指示Kotlin编译器为此函数生成替换默认参数值的重载。如果一个方法有N个参数,其中M个具有默认值,则会生成M个重载。第一个重载采用N-1个参...
目录一、背景二、PlayerBase三、AndroidVideoCache3.1 基本原理3.2 基本使用3.3 源码分析一、背景现在的移动应用,视频是一个非常重要的组成部分,好像里面不搞一点视频就不是...