![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kotlin
文章平均质量分 86
蜗牛、Z
技术共享,技术分享;有技术需要帮助,可以私聊
展开
-
Android kotlin 协程异步async与await介绍与使用
通过以上几个案例,可以发现1.异步如果不在runBlocking模块中进行,或者runBlocking模块外面再包一层,会引起最里面的模块,甚至方法体不在执行2.想要异步执行,必须在runBlocking中对异步结果进行异步,否则达不到异步效果,变成了同步3.整个函数的外面都是一个同步阻塞的,runBlocking一旦执行,下面的代码处于一个等待的状态4.runBlocking中可以继续嵌套runBlocking异步执行模块。原创 2024-04-25 14:11:53 · 741 阅读 · 1 评论 -
Android Room数据库升级Migration解决方案
不可以,即使你表发生了很大的变化,你也不能随便删除之前修改的,如果删除了,会导致之前有很多用户表有升级到最新,导致后期升级上来,丢了中间的表变化,这样早执行Dao的时候,直接crash。在使用Room数据的时候,一定要小心,如果你的数据库发生了变化,一定要及时新增migration,否则时间一长,可能改的面目全非。这个版本号会记录当前表的信息,如果表发生了变化,在初始化表的时候,并没有通过升级版本,修改表结构,就会导致在Dao执行事务的时候报错。在修改表结构,Room也提供了合并的支持。原创 2024-01-06 12:47:55 · 1803 阅读 · 0 评论 -
Android Uri scheme协议file转content
在处理这些资源时,我们可能会遇到不同的Uri协议,如file和content。本文将详细介绍如何从file协议的Uri转换到content协议的Uri,并解释这个转换过程中的关键步骤和注意事项。首先,我们需要了解file和content两种协议的基本概念。file协议的Uri通常以"file://"开头,用于标识本地文件系统上的文件路径。而content协议的Uri则以"content://"开头,用于访问通过内容提供者(Content Provider)暴露的数据。一、了解file和content协议。原创 2023-12-19 10:29:28 · 2311 阅读 · 0 评论 -
Android 打包配置与输出教程
Android 打包配置与输出教程原创 2023-11-29 10:30:05 · 709 阅读 · 0 评论 -
Android gradle动态配置不同打包环境参数值
Android gradle动态配置不同打包环境参数值原创 2023-10-19 14:48:18 · 603 阅读 · 0 评论 -
Android kotlin内联函数(inline)的详解与原理
内联函数很好的配合了程序的解耦工作。解耦就是将复杂的程序或者共用的模块抽取出来,这样也牺牲了一部分性能,考虑到寻址这个问题。但是在kotlin中又通过inline方式,解决了性能问题,同样也带来了空间问题。这就是程序中经典的空间换时间,这个只针对如今内存条向对便宜的时候可以忽略,计算机起步的时候,空间换时间是一件不可想象的事。注意:内联函数不是百分百会被插入到调用的地方,这是c++的概念。kotlin的内联也遵守c++的设计原则。原创 2023-10-08 16:32:52 · 944 阅读 · 0 评论 -
Android Mvvm设计模式的详解与实现
目前在做有UI展示的一些项目或者端,都在说MVVM设计模式。MVVM全程view-viewModel-Model。还是分为三层,View层,viewModel:view与业务层,Model数据业务层View:是我们fragment或者Activity界面,主要处理UI渲染和交互的viewModel:介于view与Module之前,处理数据与逻辑上的,将Model请求的结果返回给view层Model:与viewModel打交道,将view需要的数据通过Model层来请求,然后将请求到的结果返回原创 2023-08-26 14:08:25 · 2175 阅读 · 0 评论 -
Java与Kotline Funcation函数与参数函数的详解
在现在以IDE为开发工具的时代,各种开发语言都有,kotlin的语法势头比较强,今天我们将介绍在项目中出现比较多的两种函数,一种是参数函数,还有一种就是Function函数原创 2023-08-04 16:49:52 · 533 阅读 · 0 评论 -
Kotlin 内联函数语法之let、apply、also、run、with的用法与详解
Kotlin 内联函数语法之let、apply、also、run、with的用法与详解原创 2023-07-27 11:15:01 · 1050 阅读 · 0 评论 -
Android kotlin高阶函数与Java lambda表达式介绍与实战
目前在Java JDK版本的不断升高,新的表达式已开始出现,但是在Android混淆开发中,kotlin的语言与Java的语言是紧密贴合的。所以Java lambda表达式在kotlin中以新的身份出现:高阶函数与lambda表达式特别类似。接下来我讲会先讲Java的lambda,再介绍kotlin的高阶函数。原创 2023-07-26 18:00:19 · 717 阅读 · 0 评论 -
Android 安卓开发语言kotlin与Java该如何选择
通过kotlin的自身问题,其实kotlin就是一种插件语言,最终还是翻译成Java,只是目前来看,通过翻译的目标类,还是Java本身,但是增加了特别多的校验,导致写法和Java有很大的不同。这种不同来自我们的习惯问题。有人提前判空,有人喜欢丢在使用出判空,调用处让语法自然一些。Android应用不像PC,空指针是致命的BUG,出现一个就会导致崩溃。所以,kotlin对空指针校验特别严格,也对使用埋下了隐患,新手可以绕开校验,但是对于绕开的原理不够理解,就会引起崩溃。原创 2023-06-25 16:13:12 · 7050 阅读 · 1 评论 -
Android kotlin序列化之Parcelable详解与使用(二)
通过原生手写和注解两种对比,我还是建议大家不要通过注解去完成,因为出现问题无法排查,浪费时间。特别是新手,很容易被绕进去,找不到问题。原创 2023-06-09 17:55:31 · 1719 阅读 · 0 评论 -
Android kotlin序列化之@Parcelize详解与使用
如果在使用过程中,通过注解发生了数据异常,需要检查对象是否序列化了,如果通过构造器的,查看方法体是否参与了,如果是很简单的数据建议构造器,如果是复杂的数据,建议抛弃构造器如果采用了注解,就不能使用类中定义类这种用法,否则对象获取为null。那用什么?接下来我会介绍抛弃注解,直接使用手写。原创 2023-06-09 17:22:44 · 6762 阅读 · 2 评论 -
Android Cannot resolve symbol 找不到资源解决方案
在android开发中,我们经常会发现依赖了系统提供的库,但是无法引用,或者找不到,Cannot resolve symbol '@style/Theme.AppCompat.NoActionBar' ,报红。这些最经典的无法加载。原创 2023-06-02 14:05:32 · 1858 阅读 · 0 评论 -
Android H5拉起原原生混合方案的介绍与实战
如今,在APP应用中,消息大多数采用推送方式比较多,到达率很低或者说无法满足业务的需求。在一些大型活动中,依然需要短信的参与,短信的准确度和到达率几乎是百分百的。短信的富文本格式有限,想要快速的让接收人到达业务线,常常是通过短信内容描述+地址连接。在短信内容中,连接是比较好的一种媒介。但是H5的链接也是有限的,大多数开发者还是想通过H5的链接,拉起原生,跳转到原生页面,这样会达到打开原生页面的效果。在现在的业务中,我们也经常收到银行、电商等平台的短信,打开这些链接,如原创 2023-06-01 16:49:11 · 956 阅读 · 0 评论 -
Android 应用快捷ShortcutManager与ShortcutManagerCompat详解与实战(二)
创建快捷方式后,您需要在应用生命周期内对其进行管理。例如,您可能需要确定用户使用您的快捷方式完成特定操作的频率,以此来优化应用。在其他情况下,您可能会决定停用某个固定快捷方式,以防止应用执行过时或缺失的操作。ShortcutManager与ShortcutManagerCompat是快捷的大管家,即使我们不通过xml去配置,也能通过代码去动态的完成。原创 2023-05-31 16:18:43 · 2360 阅读 · 2 评论 -
Android 应用Icon快捷(shortcut)功能的详解(一)
快捷方式可帮助用户快速访问您的应用的某些部分,从而为他们呈现特定类型的内容如何以快捷方式来呈现内容取决于您的用例,以及快捷方式的上下文是属于应用驱动型还是用户驱动型。虽然静态快捷方式的上下文不会更改,而动态快捷方式的上下文会不断变化,但这两种情况下的上下文都由您的应用驱动。如果用户选择了希望应用以哪种方式(例如使用固定快捷方式)向其呈现内容,则此时的上下文是由用户定义的。以下场景展示了各类快捷方式的一些用例:静态快捷方式最适合在用户与应用互动的整个生命周期内使用一致结构链接到内容的应用。原创 2023-05-30 11:43:07 · 3496 阅读 · 0 评论 -
Android 页面滑动悬浮资源位动画+滑动监听解决方案
Android 页面滑动悬浮资源位向左或者向右隐藏解决方案原创 2023-05-08 16:56:58 · 1055 阅读 · 1 评论 -
Android Dialog之DialogFragment详解与使用
看到DialogFragment,从单词可以看到是Dialog与Fragment组合而成,但是在DialogFragment中,DialogFragment其实是一个fragment,内部持有一个Dialog,这样方便了开发者的管理。fragment在碎片管理中其实就是一个View,最终view的显示是通过dialog来完成。原创 2023-05-08 16:07:42 · 4050 阅读 · 0 评论 -
Android Fragment懒加载机制分析与详解
Fragment是Android3.0以后引进,称为碎片。它与Activity非常相似,用一个Activity中描述一些行为或者一部分用户界面,使用多个Fragment可以在一个单独的Activity中建立多个UI面板,也可以在多个Activity中使用Fragment原创 2023-04-21 09:44:39 · 2375 阅读 · 0 评论 -
Android View的坐标获取详解以及动画坐标分析
在平面图形中,图形都是由点坐标确定的。同样,Android的设备屏幕也是一个,如果非3D图形,正常的view就是一个二维坐标屏幕的左上角的坐标A(0,0),如果屏幕的宽为:width,高:height 那么右下角的坐标是D(width,height)坐标的顶点从A点,向右和向下两个方向延伸。所有横坐标为X轴,中坐标是Y轴,变成坐标。原创 2023-04-11 11:13:22 · 2897 阅读 · 0 评论 -
Android Service与IntentService详解与使用
直接通过通过快捷键new一个。创建完,删除里面生成的代码,写入自己的代码,记住:AIDL是接口,所有在使用要小心,准好以后,build->make一下项目,IDE会自动创建对象的JAVA文件。Android Binder,AIDL跨进程通讯详解与实现,看一遍就懂_蜗牛、Z的博客-CSDN博客) {showToast("add收到你的${msg}")info = msg!!return "我已收到你的${info}") {bind.add("发送消息")) {原创 2023-04-07 16:55:29 · 1462 阅读 · 0 评论 -
Android 图片加载库之Coil的详解与使用
Android 图片加载库之Coil的详解与使用原创 2023-04-03 08:30:00 · 5051 阅读 · 1 评论 -
Android kotlin实战之协程suspend详解与使用
Kotlin 是一门仅在标准库中提供最基本底层 API 以便各种其他库能够利用协程的语言。与许多其他具有类似功能的语言不同,async与await在 Kotlin 中并不是关键字,甚至都不是标准库的一部分。此外,Kotlin 的挂起函数概念为异步操作提供了比 future 与 promise 更安全、更不易出错的抽象。原创 2023-03-02 14:38:42 · 2688 阅读 · 0 评论 -
Android Kotlin实战之高阶使用泛型扩展协程懒加载详解
通过前面几篇文章,我们已基本掌握kotlin的基本写法与使用,但是在开发过程中,以及一些开源的API还是会出现大家模式的高阶玩法以及问题,如何避免,接下来讲解针对原来的文章进行一些扩展,解决大家在工作中遇到的问题,如何去解决原创 2023-03-01 18:05:20 · 1504 阅读 · 0 评论 -
Android Handler的内存抖动以及如何在子线程创建Handler详解
Handler,作为一个在主线程存活的消息分发工具,在App开发过程使用频率很高,也是面试问的比较多的。 面试常见的比如:子线程如何创建?Handler的机制是什么?内存抖动等,接下来我们会针对Handler的使用进行总结与指导原创 2023-02-20 16:19:01 · 1141 阅读 · 0 评论 -
Android Jetpack组件DataStore之Proto与Preferences存储详解与使用
Jetpack DataStore 是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和 Flow 以异步、一致的事务方式存储数据。如果您当前在使用 SharedPreferences 存储数据,请考虑迁移到 DataStore,Datastore在存储安全和性能都是有保障的。原创 2023-02-17 14:49:34 · 1944 阅读 · 0 评论 -
Android Jetpack组件之WorkManager高级概念介绍与使用(三)
在您的应用启动时,WorkManager 会使用自定义自行初始化。此代码位于内部类中,并使用默认。自动使用默认初始化程序(除非明确停用它默认初始化程序适合大多数应用.build()原创 2023-02-11 21:36:19 · 2977 阅读 · 0 评论 -
Android Jetpack组件之WorkManager后台任务管理的介绍与使用(一)
WorkManager 是适合用于持久性工作的推荐解决方案。如果工作始终要通过应用重启和系统重新启动来调度,便是持久性的工作。由于大多数后台处理操作都是通过持久性工作完成的,因此 WorkManager 是适用于后台处理操作的主要推荐 API。原创 2023-02-09 17:30:35 · 816 阅读 · 0 评论 -
Android 性能优化之内存优化与泄漏分析工具LeakCanary
在Android应用中,除了正常的业务开发,我们也要关注性能问题。卡顿、内存溢出、内存泄漏等问题,直接的表现会反馈到用户体验上,用户体验不好导致应用被卸载或者换到其他平台。 在性能优化,各大公司都会付出一些代价,或者安排专人负责。有些新手也想做,但是无从下手,对专业工具和专业代码使用以及分析比较吃力,排查起来也比较费劲。如果有专业的工具能够只管的把这些记录并标记好。这样新手也可以通过详情的问题去排查,那么LeaksCanary就是这款工具了。原创 2023-02-09 11:22:01 · 4387 阅读 · 0 评论 -
Android MVVM之ViewModel的详解与使用
ViewModel类是一种业务逻辑或屏幕级状态容器。它用于将状态公开给界面,以及封装相关的业务逻辑。 它的主要优点是,它可以缓存状态,并可在配置更改后持久保留相应状态。这意味着在 activity 之间导航时或进行配置更改后(例如旋转屏幕时),界面将无需重新提取数据原创 2023-01-13 15:53:18 · 3358 阅读 · 0 评论 -
Android MVVM之SavedStateHandle数据保存之详解与使用。
SavedStateHandle从名字可以看出,是保存状态的。这个类常和MVVM中的ViewModel搭配使用,对页面生命周期的数据状态的缓存与恢复做一个容器。这个容易相对onSaveInstanceState(Bundle)要更强一点,保存的数据类型也比较丰富,数据量也相对较大原创 2023-01-09 16:17:44 · 1641 阅读 · 0 评论 -
Android MVVM模式之LiveData详解与使用
livedata是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 activity、fragment 或 service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。原创 2023-01-05 15:46:29 · 994 阅读 · 0 评论 -
Android DataBinding之布局中(layout)事件、运算逻辑、资源、工具类的使用与详解(七)
如果你学习了我前面的六篇文章,基本能够熟悉的处理data binding在开发过程的大多数业务,但是由于layout中的数据不一定满足UI上的效果,正常都是提前处理好数据,如果我们在layout引入中事件、运算逻辑、资源、工具类?那么代码层会显的很自然和干净。了解了layout可以引入这些后,我们应该期待一下这些类的在layout的布局中如何使用?原创 2022-12-13 16:44:06 · 1178 阅读 · 0 评论 -
Android DataBinding之布局include 和 viewStub详解与使用(六)
前面几章节,我们已系统的学习了布局和数据的绑定,都是涉及到布局和数据的更细部分,这个章节我们依旧介绍一个使用频率很多的两个布局include 和viewStub原创 2022-12-08 14:50:43 · 2058 阅读 · 0 评论 -
Android databinding之BindingMethod与BindingMethods介绍与使用(五)
前面几篇文章已介绍了很多data binding的用法,今天我将会介绍一个新的方法绑定BindingMethod的用法。BindingMethod,从名字可以看出是绑定方法的,绑定的一般都是和布局有关,通过绑定来提高布局可扩展性。原创 2022-12-08 11:09:10 · 983 阅读 · 0 评论 -
Android databinding之BindingAdapter与BindingConversion详解与使用(四)
前面几篇文字介绍了databinding的接入使用以及数据的绑定,都是在代码层进行处理,但是如果我们要对layout层进行控制,如何操作呢?接下来我们将介绍BindingAdapter和BindingConversion原创 2022-12-07 17:34:50 · 2034 阅读 · 0 评论 -
Android databinding之数据单向与双向绑定详解与使用(三)
通过前面两篇文档,我们大概了解了databinding的工作方式,view的初始化,recycleview的使用。但是这些UI都不不开数据的填充,数据的修饰。在说道数据绑定,好多开发者平时在工作中也经常听到databinding的数据绑定有简单、单向绑定、双向绑定,玄幻莫测,不敢下手。甚至有些新书听完果然放弃。接下来我会通过代码讲解databinding的数据绑定和使用,包括map、list、和用户自定义类原创 2022-12-06 17:40:36 · 4150 阅读 · 2 评论 -
Android databinding之RecycleView使用与讲解(二)
Activity和fragment的数据绑定相对比较简单一些,在Android开发中recycleview使用频率也比较高。关于recycleview的数据绑定,接下来会做一个简单的介绍原创 2022-12-02 16:45:30 · 1274 阅读 · 0 评论 -
Android databinding的接入使用与详解(一)
DataBinding 是Google Android组件框架,管理view和data之间进行绑定。DataBinding主要管理数个布局文件,这样我们就不用去实例化layout的view。直接通过DataBindingUitl来完成初始化。原创 2022-12-02 11:40:35 · 3414 阅读 · 0 评论