kotlin - java
文章平均质量分 55
android开发
wy313622821
这个作者很懒,什么都没留下…
展开
-
android——workermanager
Android Jetpack WorkManager是一个库,它简化了后台任务管理和异步工作处理,使得开发者可以编写更易于管理、可靠且响应用户交互的应用。WorkManager可以帮助你在合适的时间执行长时间运行的任务,比如定期数据同步、清理缓存等,而不会影响用户体验。。原创 2024-08-22 13:56:07 · 265 阅读 · 0 评论 -
android——设计模式(工厂模式)
Android 设计模式中的工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而不必暴露其内部的创建逻辑。在Android中,工厂模式通常用于管理复杂组件实例化的过程,比如创建各种View、Activity、Fragment等。通过将组件的创建过程封装在一个单独的类或者接口中,可以方便地改变实现细节而无需修改客户端代码。原创 2024-07-05 11:49:40 · 400 阅读 · 0 评论 -
android——Livedata、StateFlow、ShareFlow和Channel的介绍和使用
LiveData是一种在Android开发中用于观察数据变化的组件。它可以被观察者注册并在数据变化时通知观察者,从而实现数据的实时更新。LiveData具有生命周期感知能力,它会自动管理观察者的生命周期,确保观察者只会在活动状态下接收数据更新。示例代码// 模拟获取新数据) {// 更新UI显示})StateFlow是一个具有生命周期的可变状态流。它在流中保存了一组数据,并在数据发生变化时通知观察者。原创 2024-06-28 18:12:44 · 641 阅读 · 0 评论 -
kotlin——MVVM框架下的大型项目优化、以及activity和viewmodel臃肿的优化
在大型项目中,随着项目越做越大,activity和viewmodel的代码会越来越多,尽量保持Activity和ViewModel的代码精简和易于维护是非常重要的。个人建议700行以上就应该考虑,尽量让代码控制在1000行以内。不然随着代码多维护起来困难,代码混乱,有bug时定位问题难,增加需求代码难等问题就会随之而来,那应该怎么办呢?(Code Review):定期进行团队内部代码审查,发现并修复代码中的冗余和不良编码习惯。中处理的数据过多,可以考虑将其拆分为多个小的。更加专注和易于理解。原创 2024-06-22 12:01:44 · 449 阅读 · 0 评论 -
android——解决bug的流程以及细节
解决bug的第一步,当然是稳定的复现bug。根据我的经验,如果一个bug可以被稳定的复现,至少它就被解决了70%。通过观察bug的现象,就可以对bug做个大致的归类或者定位了。是因为数据问题?还是第三方库的问题?还或者是代码的问题?接着就是debug,看日志等常规操作了~如果经过上面的操作,你还是一筹莫展,那么请往下看。遇到bug,先观察bug现象,然后想想大概是什么原因导致的,然后尝试复现它,再调试它,处理它。原创 2024-06-21 11:01:51 · 881 阅读 · 0 评论 -
android ——MMKV保存bean实体对象、保存数组bean
MMKV是一款基于 mmap 内存映射的 key-value 存储库,专门为移动端开发设计。相比于传统的SharedPreferences和SQLite等存储方式,MMKV具有更快的读写速度和更小的存储空间占用。同时,MMKV还提供了多线程安全的支持和可配置的加密选项。因此,在移动端开发中,MMKV被广泛应用于数据持久化和缓存优化等方面。原创 2024-05-10 17:54:00 · 831 阅读 · 0 评论 -
android——关于app性能优化篇
应用性能优化是指通过各种技术手段和优化策略,提高应用程序的性能,使其能够更高效地运行和响应用户操作。下面介绍一些常见的应用性能优化方法。原创 2024-05-10 17:31:25 · 695 阅读 · 0 评论 -
java——分页(先加载全部数据,然后把数据分页进行加载)、异步任务AsyncTask
1、先加载全部数据,然后把数据按照20条一页进行加载(不需要UI主动去调分页)2、异步任务AsyncTask。原创 2024-04-08 18:59:02 · 372 阅读 · 0 评论 -
android——枚举enum
在Kotlin中,枚举(Enum)是一种特殊的类,用于表示固定数量的常量。它允许你定义一组命名的常量值,这些值在程序中具有固定的意义。Kotlin的枚举功能强大,支持多种特性,如伴生对象、构造函数、属性、方法等。原创 2024-03-29 16:21:30 · 952 阅读 · 0 评论 -
android——【封装】使用建造者方式封装一个类
在Kotlin中,使用建造者模式来封装一个类有以下几个好处:简化对象的创建过程:使用建造者模式可以将复杂的对象创建过程分解为多个简单的步骤,使得代码更加清晰易读。通过链式调用,可以按需设置对象的属性,而不需要记住每个属性的顺序和参数。提供可选参数:建造者模式可以让你在创建对象时只设置必要的参数,而将其他参数设置为可选。这样可以避免创建多个构造函数或者使用大量的重载方法。保证对象的一致性:建造者模式可以确保在对象创建过程中,对象始终处于一致的状态。原创 2024-03-27 16:59:41 · 491 阅读 · 0 评论 -
android——rxjava的使用(连续多个弹窗的处理)
本文介绍项目开发中使用到rxjava的情形,以及详细的代码。RxJava是一个基于Java语言的Reactive Extensions库,它用于实现异步编程和流式处理,通过将事件和数据流以数据序列的形式进行处理,提高了代码的可读性和可维护性。原创 2024-01-11 17:31:41 · 2935 阅读 · 1 评论 -
android——服务
【代码】android——服务。原创 2023-11-01 10:13:58 · 238 阅读 · 0 评论 -
android——自定义控件(编辑框)、悬浮窗
【代码】android——自定义控件(编辑框)原创 2023-10-24 18:30:49 · 793 阅读 · 0 评论 -
android——服务JobService
JobService是JobScheduler的回调,是安排的Job请求的实际处理类。需要我们覆写onStartJob (JobParameters)方法,并在里面实现实际的任务逻辑。因为JobService的执行是在APP的主线程里响应的,所以必须提供额外的异步逻辑去执行这些任务。JobService是Android L时候官方新增的组件,适用于需要特定条件才执行后台任务的场景。由系统统一管理和调度,在特定场景下使用JobService更加灵活和省心,相当于是Service的加强或者优化。原创 2023-09-06 09:41:28 · 1040 阅读 · 0 评论 -
android——spinner下拉弹窗、popupwindow下拉弹窗列表
android——spinner下拉弹窗原创 2023-08-30 12:34:17 · 1437 阅读 · 0 评论 -
android——提高代码复用
继承和接口:使用继承和接口可以创建可重用的类和抽象类型,可以避免在不同的代码中重复编写相同的代码段。扩展函数和属性:Kotlin 允许在已有的类中添加新的函数或属性,可以避免在每个需要该功能的地方都重复编写相同的代码。集合函数:Kotlin 中提供了多种用于集合的高阶函数,例如 map、filter、reduce 等,可以避免在使用集合的代码中编写重复的循环和条件语句。原创 2023-06-16 10:22:04 · 214 阅读 · 0 评论 -
android——怎么写内部类才能防止内存泄漏以及怎么查看内存泄漏
非静态内部类是指在一个类的内部定义另一个非静态类,这个非静态类就成为了外部类的成员之一。在Java中,要防止非静态内部类的内存泄漏,需要注意以下几点:非静态内部类必须保存对外部类实例的引用,因此要避免外部类实例和内部类实例的相互引用,否则会导致内存泄漏。要避免内部类持有外部类实例的引用,可以使用弱引用或者静态内部类的方式。如果使用弱引用,要注意判断弱引用是否为空,否则会产生空指针异常。原创 2023-06-16 10:18:22 · 1014 阅读 · 0 评论 -
android——Hilt 实现依赖项注入
Hilt 是 Android 的依赖项注入库,可减少在项目中执行手动依赖项注入的样板代码。Hilt是Google推出的一种依赖注入框架,它能够大大简化Android应用程序的开发过程。简化依赖注入过程。使用Hilt可以将大量冗杂的依赖注入代码转移到注解中,从而使得代码更加简洁易懂。易于测试。使用Hilt可以更容易地进行单元测试和集成测试,从而提高应用程序的质量和稳定性。提高可维护性。Hilt使用标准注解和标准分层架构,这意味着应用程序的代码结构更加清晰和易于维护。支持多种依赖注入场景。原创 2023-06-14 14:46:10 · 1685 阅读 · 0 评论 -
kotlin——闭包
闭包的概念,外部函数调用之后其变量对象本应该被销毁,但闭包的存在使我们仍然可以访问外部函数的变量对象。Kotlin 的闭包可以获取上下文的局部变量,并可以修改它。实现办法是 Kotlin 编译器给引用的局部变量封装了一层引用。原创 2023-06-14 11:42:43 · 1031 阅读 · 0 评论 -
android——角标
【代码】android——角标。原创 2024-05-10 17:37:48 · 245 阅读 · 0 评论 -
android——文件工具类
【代码】android——文件工具类。原创 2023-06-11 15:58:03 · 528 阅读 · 0 评论 -
android——compose双向绑定
Text控件本篇文章主要用实例来体验compose双向绑定。原创 2023-03-21 18:28:52 · 469 阅读 · 0 评论 -
kotlin——委托(使用委托类来实现多继承)、使用委托类来创建viewmodel实例、内部类实现多继承、使用委托把activity的部分职责代码分离出来
【代码】kotlin——委托(使用委托类来实现多继承)原创 2023-04-07 15:33:24 · 541 阅读 · 0 评论 -
android——通信(传值)之LiveDataBus、Flowbus
Activity之间进行通信你现在使用的是什么?如果你还在用上面说的这些,那你的技术还停留在老旧和原始的技术上,现在技术从LiveData中延伸出,用谷歌的原话从18年谷歌IO大会开始 官方建议:在Activity与Activity ,Activity与Fragment,Fragment与Fragment之间通信使用LivedataBus。原创 2023-05-14 12:17:09 · 907 阅读 · 0 评论 -
android——room数据库
data/data/包名/databases/**.db。解决办法:应用卸载重新安装。原创 2023-06-09 15:42:22 · 243 阅读 · 0 评论 -
android——深拷贝、过滤
【代码】android——深拷贝。原创 2023-06-04 23:57:38 · 776 阅读 · 0 评论 -
android——Lifecycle
然后在activity中的onCreate使用。新建一个生命周期跟随activity的类。原创 2023-05-23 17:17:37 · 181 阅读 · 0 评论 -
android——两个bean的转换(bean映射)
Mapstruct原创 2023-05-23 10:48:37 · 415 阅读 · 0 评论 -
android——bean保存一个函数,函数中返回一个匿名函数、data打印、Pair 和 Triple
可以bean中存储一个函数,等需要用的时候直接获取来用即可,在list中使用bean来获取使用能缩小比较多的代码和逻辑。原创 2023-05-08 17:55:52 · 146 阅读 · 0 评论 -
kotlin——进制转换
【代码】kotlin——进制转换。原创 2023-05-04 00:18:29 · 1133 阅读 · 0 评论 -
kotlin——Arouter的使用、compose和XML视图的混合使用
分两个模块:main模块使用传统的xml方式显示,into_cabinet模块使用compose形式来显示。首先:在Activity/Fragment类上面写上 Route path 注解。这部分主要是介绍在传统的xml视图上加入compose视图的开发。注意:compose版本需要跟kotlin版本的兼容性。原创 2023-03-14 16:54:35 · 735 阅读 · 0 评论 -
kotlin——默认参数、次构造函数的运用
如果默认的参数写在最后面,调用的时候就可以省略,如果不是写在最后面,则需要指定参数,例如:原创 2023-03-03 14:10:09 · 633 阅读 · 0 评论 -
android——basequickadapter结合recycleview使用、二级子项、网格多行多列、单选、最后一个item显示不全
引入binding,在build.gradle里面加入。repositories地方都。setting里面的两个。activity的代码。原创 2023-02-27 17:38:09 · 2550 阅读 · 0 评论 -
android——判空、let、apply
java代码的判空用:TextUtils.isEmpty()原创 2023-02-23 15:18:53 · 498 阅读 · 0 评论 -
android——异常捕获崩溃后重新启动App
重启app这是一种解决方式,还有另外一种方式可以集成三方平台用于捕获异常,例如:Bugly。最后,异常每个人都会遇到,希望这篇文章能帮助到大家。原创 2023-02-11 10:21:39 · 1755 阅读 · 0 评论 -
Android——adb无线调试使用
7、以后再次连接时,只要没有从手机无线调试页面的已配对设备列表中删除配对设备,就可以直接使用adb connect命令进行连接,而不再需要使用adb pair进行配对。,点击会弹出一个二维码,然后打开手机开发者选项中的无线调试设置页面,里面有个使用二维码配对设备的选项,点击即可打开相机进行扫码,稍等片刻后就会自动连接成功。5、此时已成功配对,第2步中显示的ip端口等信息可能会发生变化,在命令行中再次输入。其中的x为第2步中显示的Ip,y为第2步中显示的端口号。其中的x为当前手机上显示的Ip,y为端口号。原创 2023-02-08 10:27:53 · 1626 阅读 · 0 评论 -
android——开发中哪些习惯会影响卡顿的发生、如何提高代码健壮性(稳定性)
自从Android引入 ART 并且在Android 5.0上成为默认的运行时之后,对象分配和垃圾回收(GC)造成的卡顿已经显著降低了,但是由于对象分配和GC有额外的开销,它依然又可能使线程负载过重。在一个调用不频繁的地方(比如按钮点击)分配对象是没有问题的,但如果在在一个被频繁调用的紧密的循环里,就需要避免对象分配来降低GC的压力。2.4:不要在activity的onResume和onCreate中进行耗时操作,比如大量的计算等。2.1:主线程中不要直接操作数据库,数据库的操作应该放在数据库线程中完成。原创 2023-02-01 22:21:50 · 496 阅读 · 0 评论 -
android——搜索页面
在SearchActivity里。原创 2022-12-12 18:23:50 · 147 阅读 · 0 评论 -
android——引入模块、splash页面、@Parcelize页面跳转带参数(传值)、序列化、kotlin-android-extensions的替换方案
第一步、拷贝模块文件夹到项目里第二步、setting.gradle里面加入第三步、config.gradle文件拷贝进来(如果没有使用到config.gradle这一步可以省略)第四步、在项目的build.gradle里面加入apply from: 'config.gradle'第五步、在app的build.gradle里面加入implementation project(path: ':lib_base')至此,就可以使用到lib_base模块里面的类和方法了。原创 2022-12-11 23:26:35 · 1046 阅读 · 0 评论 -
android——SwipeRefreshLayout上拉加载、下拉刷新、SmartRefreshLayout
android-SwipeRefreshLayout上拉加载、下拉刷新原创 2022-12-10 15:22:06 · 859 阅读 · 0 评论