一、什么是Navigation Navigation是google推出的Jetpack架构组件里的一种,一个Activity内的多个Fragment由Navigation负责页面跳转并互相传值,同时能保留先前多个Activity的切换的用户体验。二、Navigation有啥优点传统的一个页面就是一个Activity,Activity是重量级的,一个Activity的创建是很复杂的,会销毁很多内存资
转载
2024-10-08 20:30:46
37阅读
迭代1. 迭代器:
迭代是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问结束。
迭代器只能往前不会后退
2. 可迭代对象:
对list,tuple,str等类型的数据使用for...in...的循环语法从其中依次拿到数据进行使用
我们把这样的过程称为遍历,也叫迭代。
3. 判断一个对象是否可以迭代
转载
2024-06-12 12:29:51
29阅读
前言前一阵子,写了几篇 Android 启动优化的文章,主要是从两个方面论述的。Application 多线程异步加载,以及怎么解决多线程任务依赖的问题首页布局优化,从常规的布局嵌套优化到渐进式加载,再到异步加载。今天,就让我们来聊一聊 JetPack App Startup。目录大概是这样的1 什么是 JetPack App Startup 2 JetPack App Startup 能解决什么
转载
2024-03-14 21:12:55
95阅读
额,听说 协程是个轻量级的线程.咱也不懂,一个应用呢,后台就是个进程,然后这个进程能开一堆线程,线程能做耗时任务,Android 有很多地方都比较需要线程,比如:定时任务,耗时任务,网络请求~但是呢,一般开多了就容易GG,不是有个面试题经常问多线程并发么,反正我没遇到~然后呢,kotlin这个协程感觉是轻量化这个线程,然后就能无限开咯,老套路了:没有好的解决方案那就从根本上替换他!翻译过来就是优化
转载
2023-12-20 05:47:31
70阅读
基于原文修整 一些 API 启动长时间运行的操作(例如网络 IO、文件 IO、CPU 或 GPU 密集型任务等),并要求调用者阻塞直到它们完成。协程提供了一种避免阻塞线程并用更廉价、更可控的操作替代线程阻塞的方法:协程 挂起。 协程通过将复杂性放入库来简化异步编程。程序的逻辑可以在协程中顺序地表达,而底层库会为我们解决其异步性。该库可以将用户代码的相关部分包装为回调、订阅相关事件、在不同线程(
转载
2023-12-15 14:06:07
80阅读
进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈、局部变量和指令指针。 线程和进程各自有什么区别和优劣呢?进程是资源分配的最小单位,线程是程序执行的最小单位。进程有自己的独立地址空间,每启动一个进程,系统就会为它
转载
2023-12-26 06:47:29
24阅读
初步印象协程是线程之下更小的处理单元,本质上协程是轻量级的线程。本文章先把协程的简单用法梳理一遍,至于细节再在以后的文章里结合网络请求、IO操作在进行深入研究。协程比较轻量协程是基于线程的封装,底层还是依赖于线程协程可以简化异步编程相关概念kotlinx.coroutines 是由 JetBrains 开发的功能丰富的协程库。它包含本指南中涵盖的很多启用高级协程的原语,包括 launch、 asy
转载
2023-12-21 19:33:11
56阅读
在一般的应用场景下,我们都希望可以异步进行耗时任务,比如网络请求,数据处理等等。当我们离开当前页面的时候,也希望可以取消正在进行的异步任务。这两点,也正是使用协程中所需要注意的。既然不建议直接使用 GlobalScope,我们就先试验一下使用它会是什么效果。private fun launchFromGlobalScope() {
GlobalScope.launch(Dispatchers.M
转载
2024-08-11 10:48:34
31阅读
些代码,跟ui无关的,这样这些代码会执行多次,有时候这个执行多次的代码 也许并不符合我们的需求2.在某个Composable函数 中,我们有一段代码,这个代码我就是仅仅想让他在生命周期内
原创
2023-06-22 10:31:56
292阅读
官网介绍:https://developer.android.com/kotlin/coroutines一、协程的概念协程(Coroutines)是一种并发设计模式,可以在 Android 平台上使用它来简化异步执行的代码。 协程是在版本 1.3 中添加到 Kotlin 的,它基于来自其他语言的既定概念。在 Android 上,协程有助于管理长时间运行的任务.二、协程的特点协程是在 Android
转载
2023-09-11 21:44:05
170阅读
前言大家好,我是小益!在上章内容中,我们简单了解了什么是协程以及协程的基本使用,主要提到了协程的launch与withContext用法。但是launch与withContext并不适合用于需要返回结果的并发场景,在并发场景中,我们一般会使用协程的async/await。推荐文章将率先在公众号「Code满满」上发布,欢迎大家关注!一、async与awiatasync单单从字面意思理解就知道其与异步
转载
2023-07-28 00:03:15
257阅读
一:协程是什么?协程基于线程,是轻量级的线程 coroutine = cooperation+routine 难度在哪里? 1,java中不曾出现,新概念 2,概念不清晰 3,Kotlin基础不扎实 4,多线程基础太薄弱二:在android中协程用来解决什么问题?1,处理耗时任务,这种任务常常会阻塞主线程 2,保证主线程安全,确保安全的从主线程调用任何suspend函数(挂起函数) 异步任务已经过
转载
2023-12-20 17:35:55
130阅读
一、协程概念 协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。 大概就是这个样子 协程的运行需要在一个 EventLoop 中进行,由它来控制异步任务的注册、执行、取消等。其大致原理是:把传入的所有异步对象(准确的说是可等待对象,如 Coroutine,Task 
转载
2023-10-08 18:10:49
115阅读
转载
2020-09-05 05:40:00
330阅读
2评论
什么是协程(不严谨解释)作者:阿猫链接:https://www.zhihu.com/question/20511233/answer/24260355没有啥复杂的东西,考虑清楚需求,就可以很自然的衍生出这些解决方案。一开始大家想要同一时间执行那么三五个程序,
原创
2021-09-28 13:10:11
233阅读
废话留在结尾了。以下括号内有的是细分问题,有的是关键点。(注:我简历上有写源码okhttp、Retrofit、Glide、Eventbus、Arouter。)一、作业帮:1面: 1、Https握手过程(CA验证、哪些是对称加密、哪些非对称加密,ssl包含哪些内容);
转载
2023-09-19 17:27:48
205阅读
目录
前言
Kotlin协程,现在已经成为了面试甚至是工作中一个非常火的东西。本人在刚开始了解Kotlin协程的时候,断断续续看了网上不少文章,用长篇大论把Kotlin协程描述的非常玄乎,但是看完后还是依然云里雾里,所以决定来写一篇关于协程的文章,希望能够帮助大家能够更快的上手Kotlin协程JetPack里的组件上图就是JetPack中包含的组件列表,每个组件都是相对独立的,可以被单独使用和构建
转载
2024-02-01 15:12:12
50阅读
协程解决了什么?协程Coroutines作为Kotlin的一大特性,被Android官方所强推,主要用来简化Android中异步代码的编写,将开发者从异步代码的泥潭中解救出来。在Android开发中,协程Coroutines所解决的两个最大的问题是:耗时任务:阻塞主线程主线程安全:任何suspend方法都可以在主线程中被调用我们来详细看看这两大问题,协程Coroutines都是如何去解决的。耗时任
转载
2023-08-01 21:02:56
100阅读
如何理解协程协程是一种不同于进程和线程的存在,其本质是一种函数,同一线程中的多个协程是串行执行的,但为了理解仍然需要三者一起对比。进程、线程、协程三者的上下文切换对比:进程线程协程切换者操作系统操作系统用户(编程者/应用程序)切换时机根据操作系统自己的切换策略,用户不感知根据操作系统自己的切换策略,用户不感知用户自己(的程序)决定切换内容页全局目录&内核栈&硬件上下文内核栈&
转载
2023-12-21 07:13:05
98阅读
android 协程基础基础概念协程挂起和恢复挂起和阻塞调度器Dispatchers.MainDispatchers.IODispatchers.DefaultnewSingleThreadContext结构化并发-CoroutineScope调试 背景:上家公司干了三年,开发语言主要用的JAVA和flutter来开发的,新的公司全是kotlin,所以又要把上上家公司用的kotlin要回顾下了,
转载
2023-09-19 14:25:12
114阅读