- 博客(86)
- 收藏
- 关注

原创 Kotlin协程和在Android中的使用总结(七 一些使用协程的三方库)
文章目录1 依赖注入[Kodin](https://github.com/Kodein-Framework/Kodein-DI)2 图片加载框架 [Coil](https://github.com/coil-kt/coil/)3 权限申请4 网络请求5 数据库6 更多1 依赖注入Kodin实际上这部分跟协程没有什么关系,只是觉得这篇文章主要介绍一些Kotlin的三方库,所以将其纳入。如果...
2020-04-01 17:04:22
1771

原创 Kotlin协程和在Android中的使用总结(五 Collection、Sequence、Flow与RxJava对比(上))
0 Collection和Sequence在Kotlin中表示多个值时,我们会使用集合Collection和序列Sequence来表示,现在说一下这两者的区别和使用注意事项。首选这两者的调用都会阻塞当前的线程。如果是在主线程调用,那就会阻塞主线程,可能会引起卡顿。关于Sequence操作符的一些基础知识点,中间操作符intermediate operator和末端操作符terminal o...
2020-03-30 21:54:01
1269

原创 Kotlin协程和在Android中的使用总结(四 协程和Retrofit、Room、WorkManager结合使用)
文章目录0 设计一个全新Android app架构的思考1 Coroutines in Room & Retrofit2 在高阶函数中使用协程3 将协程和WorkManager结合使用4 关于协程取消和超时的处理Timeout超时控制5 关于测试用例的编写0 设计一个全新Android app架构的思考以前有看到过这样的一些文章,如果让你重新设计一个app,你会用什么架构,用哪些三方...
2020-03-29 17:51:50
2528
2

原创 Kotlin协程和在Android中的使用总结(三 将回调和RxJava调用改写成挂起函数)
本文主要介绍以下,对于现有项目中的接口回调逻辑,和Rxjava中的订阅逻辑代码,修改成suspend挂起函数的形式。文章目录1 接口回调的改写(1)使用suspendCoroutine(2)使用suspendCancellableCoroutine2 RxJava的订阅回调转换成挂起函数总结:1 接口回调的改写一般接口回调的场景,我们都可以改成挂起函数的形式,比如网络接口的成功与失败的回调...
2020-03-28 17:21:49
3555
1

原创 Kotlin协程和在Android中的使用总结(一 基础知识)
1 在Android中引入协程implementation ‘org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2’implementation ‘org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2’implementation “org.jetbrains.kotlinx:kot...
2020-03-27 23:27:52
1312

原创 Kotlin协程和在Android中的使用总结(二 和Jetpack架构组件一起使用)
官网:https://www.kotlincn.net/docs/reference/coroutines/coroutines-guide.html一 协程的使用1. Android中引入implementation ‘org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3’...
2020-03-27 18:39:40
1279

原创 Android Jetpack Compose总结
简介Jetpack Compose 是用于构建native UI的新方式,写法跟Flutter非常相似,对Flutter有了解的同学可以很快上手。官网:https://developer.android.com/jetpack/compose官方demo :https://github.com/android/compose-samples官方的介绍: https://developer....
2019-11-19 17:14:24
8651

原创 Java范型那些事(四)
在某些情况下,编译器会推断出通配符的类型,例如,列表可以定义为List<?>,但是在评估表达式时,编译器会从代码中推断出特定类型,此场景称为通配符捕获。看以下两个方法,其中test1方法中,将i中的一个元素取出后,再放入,由于编译器的类型推断机制,i.get(0)被推断为Object类型,报错信息如下:对于一个在其类型中含有通配符?的变量,比如这里的test1函数的参数lis...
2019-10-04 13:10:03
698

原创 Dart语法基础1-类、构造函数
语法基础Dart的主函数名称为 void main (){ },也可以添加参数,main(List args)Dart里的变量、函数、getter和setter可以独立于类存在,main方法位于最顶层。Dart中的修饰符默认是public的,且没有类似public、private和protected的修饰符。在标识符前加下划线_ ,可以使得其变成private的,如下可以对变量...
2019-08-02 11:13:41
654

原创 用Kotlin封装一个自定义SpannableString
参考自:https://github.com/jaychang0917/SimpleText使用Kotlin进行了改写,保留了大部分功能,现不支持点击时的文字颜色和背景色(感觉用到的场景不多,所以就没加)Github上有更详细介绍 :https://github.com/chenyucheng97/SpannableStringBuilder欢迎star
2018-11-05 22:13:25
2012

转载 Kotlin系列之let、with、run、apply、also函数的使用
转载自:https://blog.csdn.net/u013064109/article/details/78786646 标签: Kotlin &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 常用技巧 目录:一、回调函数的Kotin的lambda的简化二、内联扩展函数之let三、内联函数之with四、内联扩展函数之run五、内联扩展...
2018-08-31 00:36:58
305

原创 Kotlin笔记12-Java和Kotlin中的范型对比(一)
Kotlin中的范型和Java中的比较相似,可以参考我的关于介绍Java范型的文章 :Java范型那些事(一)Java范型那些事(二)Java范型那些事(三)Java范型那些事(四)在上述博文中,讲述了为什么Java要在1.5版本中引入范型,以及一些有关Java范型的基本知识点。如果把一个对象分为声明、使用两部分的话。泛型主要是侧重于类型的声明的代码复用,通配符则侧重于使用...
2018-08-30 14:24:54
601

原创 ViewModels and LiveData: Patterns + AntiPatterns
官网已经对ViewModel做了一些说明,比如不能在ViewModel中引入Activity的Context,但是还有很多注意事项,或者说idioms(惯用语法)来更好的使用ViewModel。本文参考自Google官网推荐的一篇博文:ViewModels and LiveData: Patterns + AntiPatterns先来一张官网给出的使用架构组件的整体描述图:理想情况...
2018-08-28 21:42:36
648

原创 ViewModel、ViewModelProviders、ViewModelStores官网学习总结
1. ViewModel官网介绍: https://developer.android.google.cn/topic/libraries/architecture/viewmodel官方API文档介绍:https://developer.android.com/reference/android/arch/lifecycle/ViewModel ViewModel类旨在以生命周期...
2018-08-28 17:00:54
2003

原创 Kotlin学习资源汇总
有关Kotlin的好文已经越来越多,初学者实在没有必要去自己写一些文档,但是文档的搜集和分类还是要做,所以就有了本篇博客 本文不再更新,最新更新在 GitHub:https://github.com/chenyucheng97/Kotlin-Index欢迎大家star 在学习Kotlin语言的过程中,发现了很多不错的学习资源,包括基本语法、一些惯例或者好的用法、RxKot...
2018-08-27 18:13:55
607

原创 Kotlin笔记11-类型检查和转换'is' and 'as'
在运行时可以通过 is 和 !is 来检测一对象的类型。智能的类型转换 Smart Casts在很多情况下,我们不需要在kotlin中显示地使用类型转换操作,因为编译器会追踪 is 检查和显示的类型转换,并会自动为不可变类型的值进行类型转换,如:fun demo(x: Any) { if (x is String) { print(x.length) // x...
2018-08-18 18:14:16
920

原创 Kotlin笔记10- Destructuring Declarations 解构声明
参考官网对于解构声明的介绍:http://kotlinlang.org/docs/reference/multi-declarations.html 借助于解构声明的语法,可以很方便的将一个对象解构成几个变量,比如:val (name, age) = personprintln(name)println(age)解构声明会创建相应个数的变量,编译为以下代码:val na...
2018-08-11 15:39:28
418

原创 Kotlin笔记9-Inline functions 内联函数 和 noinline crossinline修饰符
目录一、 Inline functions二、noinline三、Non-local returns四、Reified type parameters 具体参数类型五、内联属性 Inline properties (since 1.1)一、 Inline functions参考官网对于Inline functions的介绍:http://kotlinlang.org/...
2018-08-09 20:23:01
823

原创 Kotlin笔记8-Higher-Order Functions and Lambdas 高阶函数和Lambda表达式
目录1. Higher-Order Functions 高阶函数2. function types 函数式类型3. 实例化函数式类型 Instantiating a function type4. 调用一个函数类型变量 Invoking a function type instance5. Lambdas表达式和匿名函数Anonymous Functions(1)Lambd...
2018-08-06 10:17:51
820

原创 Kotlin笔记7-Delegation 和 Delegated Properties
一、Delegation 类的代理代理模式被证明是实现继承的一个很好替代方案,代理模式使得我们可以用聚合来替代继承,将代理和真实实现分离开来,以达成解耦的目的。Kotlin对代理模式内置支持,且零模版代码化。下面代码中代理类Derived通过实现Base接口,把其所有public的成员代理给一个指定的对象binterface Base { fun print()}cla...
2018-08-05 18:14:51
511

原创 Kotlin笔记6-Object Expressions and Declarations 对象表达式和声明
目录 1. Object Expressions 对象表达式2. Object declarations--Kotlin中的单例模式3. Companion Objects 伴生对象1. Object Expressions 对象表达式在Java中,有时候需创建一个已有的类的对象,但是需要对该类做一点修改,又不希望明确定义一个子类,这时可以使用匿名内部类,形式如下:n...
2018-08-04 21:20:08
250

原创 Kotlin笔记5-Data Classes数据类、Sealed Classes密封类、Nested Classes嵌套类、Enum Classes枚举类
目录1. Data Classes数据类(1) copy()函数(2) 数据类的解构(3) 标准数据类 Pair 和 Triple2. Sealed Classes密封类3. Nested Classes嵌套类4. Enum Classes枚举类1. Data Classes数据类数据类的作用主要就是用来存储数据。在class类名前用data修饰符data...
2018-08-04 17:40:37
914

原创 Kotlin笔记4-可见性修饰符和扩展函数
参考自官网介绍:http://kotlinlang.org/docs/reference/extensions.html 1. Visibility Modifiers 可见性修饰符可见性修饰符有四种:private, protected, internal and public,默认是public可以用于修饰类、伴生对象object、接口、构造函数、一般函数、属性和其setter...
2018-08-03 17:58:10
382

原创 Kotlin笔记3-类、属性(成员变量)和接口
目录一、 类1. 类的定义2. 类的构造函数3. 类的继承和方法、属性的复写4. Interfaces接口一、 类1. 类的定义通常如下所示:class Invoice { ... }可以省略参数和函数体,最简单形式如 : class Empty 但是目前还不知道这样定义的类有什么应用场景。2. 类的构造函数其中主构造函数primary c...
2018-08-02 20:09:54
1431

原创 Kotlin笔记2-操作符和扩展方法
1. kotlin的操作符可以重载,在方法前面加 operator 关键字,如下面的重载 + 运算符data class Counter(var index: Int)operator fun Counter.plus(increment: Int): Counter { return Counter(index + increment)}fun main(args: A...
2018-07-30 23:16:46
318

原创 Kotlin笔记1-变量和流程控制
历史:2011年7月,JetBrains推出Kotlin项目 2016年2月15日,Kotlin V1.0发布 2017年 Google I/O大会,Kotlin成功官方Android开发语言。建议学习网站:kotlin中文网: https://www.kotlincn.net/ 官网: http://kotlinlang.org/ 官方在GitHub上的文档说明:https://gi...
2018-07-22 23:47:12
251

原创 Android中常见的内存泄露及解决办法汇总
内存泄露就是指该被GC垃圾回收的,由于有另外一个对象仍然在引用它,导致无法回收,造成内存泄露,过多的内存泄露会导致OOM。 android中的内存泄露通常是Activity或者Fragment的泄露。下文分析以Activity展开,Fragment同理。1. 非静态内部类、匿名内部类2. 静态的View3. Handler4. 监听器(各种需要注册的Listener...
2018-07-12 01:59:47
16723
1

原创 Android 自定义View 总结
1. 自定义属性2. 重写onMesure3.重写onDraw4. 重写onLayout 自定义View入门还是很简单的,但是很少有程序员能做好它,因为涉及的面太广,网上经常有写文章标题是一篇就能搞定自定义View的,简直是too young too simple……可以说自定义View是从入门到懵逼,哈哈,其实没那么恐怖,满满积累就好了。 自定义View可以分为...
2018-07-01 22:32:05
259

原创 Android 事件分发,你真的了解吗?
android中的事件分发,可以说是面试经常被提及,日常开发中也偶尔会遇到一些事件冲突,弄清楚整个事件分发的流程,是一个基本功,作为搬砖的码农,基础还是要打牢固。 其实网上关于事件分发的文章已经很多了,但是自己总结一下,印象总会深刻一点。 推荐一篇觉得介绍很详细的博文:安卓自定义View进阶-事件分发机制原理 先介绍一下事件分发相关方法,X表示不含有该方法: To...
2018-06-27 23:36:18
289

原创 Android动画大合集
android中的动画实现方式繁多,在项目中也经常用到动画,网上有很多人也都进行了一些总结,但是感觉还是零零散散,自己总结一下才能加深印象,以后有时间了,也可以从各个分类里进一步去补充完善。如果喜欢看Google官方英文文档的,可以直接移步Animations and Transitions一、View Animation1、Tween Animation 补间动画2、Fram...
2018-06-25 00:30:11
9741

原创 Java参数传递方式---值传递还是引用传递
最近偶然看到一篇博客,你真的理解Java的按引用传递吗?然后,看了一下文中的几个例子,确实一开始,自己做错了,虽然用Java已经有四年时间了,但是还是发现自己没有彻底理解清楚,到底是值传递还是引用传递。首先,明确一下,什么是值传递,什么是引用传递。Java中的值传递:Java中的基本数据类型,传递给方法形参时,是直接将值传递过去的,准确的说,应该是将值copy了一份,传递给了形参。...
2018-06-05 23:49:45
325

原创 Android中MVP架构总结(二)
在上一篇文章中,我们介绍了MVC和MVP的一些基本写法,文末也介绍了使用MVP可能会存在的问题,本文就介绍如何处理那些问题,并对MVP架构做一个简单的封装。额,本来打算再亲自写一下,单由于时间原因,大家可以参考以下两篇文章,作为参考。参考链接: 浅析如何高效的使用MVP干货 | MVP模式在携程酒店的应用和扩展最后,附上一个关于MVP的插件,方便我们在Android Studio中的代码编写。
2017-06-03 17:06:08
478

原创 Android中的MVP架构总结(一)
MVC 、MVP 、MVVM 这些开发框架相信大家都已经听说并或多或少的用过了,在项目中,我也用到了MVP开发模式,在此结合网上一些介绍,做一个关于MVP的总结。一 、android中的MVC是什么?存在什么问题?网上关于MVC是什么的图片分析不少,但是看到一句话:自古图片留不住,总是代码得人心,哈哈,那就上实际点的代码,这里应用了参考文献中的代码。看样子很符合MVC的架构, Model : H
2017-06-03 16:40:07
842

原创 Cannot resolve symbol'R'产生的原因和解决方法
最近遇到一个奇怪的问题,在Windows系统上使用Android Studio,一次修改后,文件中所有的R都被标红了,提示Cannot resolve symbol’R’, 如下图所示:但是R文件确实是存在的,只是提示找不到R文件而已,导致整个代码文件中全是错误,但是还是能正常编译运行。试过 Clean ReBuild 重启android studio, 试过更新buildToolsVersion,
2016-06-20 21:51:33
92050
21
原创 Flutter状态管理4-flutter_bloc使用和原理学习总结
flutter_bloc今天发布了4.0.0版本,现关于其使用和原理做一个简单的总结。flutter_bloc官网:https://github.com/felangel/blochttps://bloclibrary.dev/#/flutterbloccoreconcepts?id=flutter-bloc-core-conceptspub.dev上的介绍,包括了多个Examples:...
2020-04-21 23:10:59
5724
1
原创 Flutter中的一些知识概念总结
在学习Flutter一段时间后,有一些概念性的东西,还是打算写下来,记录一下。Widget、Element、RenderObject大家都知道Widget、Element、RenderObject,每个部分负责相应的功能,我们只需要写Widget就行,为什么还需要Element和RenderObject呢,这是因为Flutter为了在大量Widget时保证良好的性能,不能一直删除创建新的对象,...
2020-04-01 20:43:36
481
原创 Kotlin协程和在Android中的使用总结(六 通道Channel)
ChannelDeferred对象提供了一种在协程间传递值的简便方式,Channel就是用于在协程间传递一个stream的值流。Channel有点类似于BlockingQueue,不同的是,BlockingQueue的put 和take 操作都是阻塞式的,而Channel的send和receive都是可挂起的非阻塞式。fun main() = runBlocking { val ch...
2020-03-31 22:19:04
2742
原创 Kotlin协程和在Android中的使用总结(五 Collection、Sequence、Flow与RxJava对比(下))
文章目录flow的扁平化flatMapConcatflatMapMergeflatMapLatestFlow exceptions使用try-catch捕获collector的异常flow中的任何异常都可以被捕获Exception transparencyFlow completionLaunching flowFlow and Reactive Streamsflow的扁平化假设现在有这样...
2020-03-31 11:22:32
2583
原创 Android开发实用工具汇总
本文记录一些比较实用的工具,包含但不限于Android Studio的介绍、UI相关的工具等等,遇到比较好的会不断更新。一个很容易生成Android中的material design风格的icon网址:https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html#foreground.type=clipart&...
2019-10-17 10:34:25
575
原创 Flutter与Android原生混合开发——EventChannel与MethodChannel的使用
在使用Flutter开发app时,会遇到跟Android原生系统API交互的情况,通常可以使用Flutter来写页面,复用原来已有的Android的逻辑(如自己的或者第三方的SDK),来加快开发进度。可以使用插件来解决,官网关于插件的开发介绍:撰写双端平台代码(插件编写实现)文中列出了一个完整的demo:注意:可在 /examples/platform_channel/ 中获得使用 Ja...
2019-10-09 17:35:07
5317
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人