dynamic feature是Google利用了安卓系统自带的split apk机制提供的官方‘插件化‘方案,通过使用此技术,我们可以做到模块按需下发,减少应用包体积。但使...

dynamic feature是Google利用了安卓系统自带的split apk机制提供的官方‘插件化‘方案,通过使用此技术,我们可以做到模块按需下发,减少应用包体积。但使...
方向性相关字符效果Left-to-Right (LTR)强字符从左至右(英文字母、汉子以及世界上大部分左->右书写的文字)方向性确定,LTR 或 RTL,和上下文无关.并且可...
当我们给构造函数指定了默认值,并且存在重载的构造函数, 比如如下场景 如上代码场景,kotlin是如何决定在重载的时候调用哪一个构造函数呢? 首先kotlin是如何处理含有默...
我们在自行编写Wav播放器的时候,有的时候发现经过ffmpeg处理后的wav文件头大小不再是44字节大小,使用 二进制分析工具可以看到其中有一个LIST Chunk部分,不知...
runBlocking是kotlin提供的一个协程启动函数,它的作用是运行指定的中断函数,同时保证在runBlocking的协程体执行完成之前,runBlocking的下一行...
park/unpark和wait/notify都是Java提供给我们的机制,让我们能够对当前线程是否陷入阻塞进行控制。 park/unpark是LockSupport包中的功...
开发中,设计给了一个切图,比例为1356*1808,从设计稿的要求来说,这个切图宽度是需要撑满屏幕,高度按照比例自适应,根据该思路,我在xml中编写了如下布局,结果发现图片并...
谷歌在安卓12以及以后的系统,对应用启动服务进行了更严格的限制,如果需要应用在后台停留的时候,仍然能够执行后台代码逻辑,这个时候需要通过前台服务的机制,前台服务和一般的服务A...
答案是会!以下为详细的解释。 SynchronousQueue是没有容量的队列,往队列里插入一个元素,下一次插入会陷入阻塞,直到之前的元素被其他消费者给取走。 在线程池的上下...
由于Activity可能会被回收,通常来说有效的监听目标Activity返回的结果是通过onActivityResult或者Activity主动发送广播,这种系统提供的rpc...
项目中使用了自定义View作为Toast的展示内容,发现在后台时Toast自定义View不展示,而使用系统的Toast仍然会展示,查了半天,以为是我姿势不对,最后发现是系统变...
入门 https://developer.android.com/jetpack/compose/animation/quick-guide[https://develope...
suspend () → R 和 () → R 本质上函数签名完全不同,一般情况下,我们没法将前者传递给后者,但当函数是inline的时候例外 由于justDoAction会...
当项目的gradle升级到8.0之后,由于项目中使用了room,因此也使用了ksp替代kapt,然后我在编译的过程中就遇到了如下错误 google一番,找到了几个比较相关的解...
最近思考下对于单词分割的想法,思考得来可能不同的语言对于单词的分割是不同的,那我以空格等分割符作为基础,以不同语言的正则表达式去匹配,岂不是就可以获取到单个单词,妙啊妙啊,在...
mutableStateListOf 返回一个可感知状态变化的MutableList 通常的State只能用来值改变的场景,对于List数据,List引用不变,往内部添加数据...
flow是如何工作的 stateflow是建立在flow的基础上的,要理解stateflow,首先需要对flow有一定的了解,其实flow的原理很简单,不过是建立在了协程的基...
jetpack库 理解SavedStateHandle 作用 和ViewModel协作,用于从Activity销毁重建中恢复ViewModel的相关状态数据,我们知道当Act...
【声 明】 首先,这一系列文章均基于自己的理解和实践,可能有不对的地方,欢迎大家指正。其次,这是一个入门系列,涉及的知识也仅限于够用,深入的知识网上也有许许多多的博文供大家学...