MVPMVP和MVCDagger讲完了,下面进入我们的另一大正题MVP:MVC模式无论是做web开发还是安卓应该都比较熟悉,毕竟刚开始的时候大家都是用这种开发架构的。刚开始用MVC(M-Model-模型、V-View-视图、C-Controller-控制器)的时候,就感觉一个Activity或者Fragment中要写很多行代码,所有的数据和View都需要在一个文件中写,感觉特别臃肿,后来真正开发的            
                
         
            
            
            
            案例一:火车站买票思路:1.首先要有一个买票的类BuyTicket多线程要实现Runnable接口,重写run()里面是买票,2.买票就需要有票,定义一个票的变量 private int ticketNums = 10;3.写一个买票的方法buy():首先你得判断是否有票,if(ticketNums<=0),就停止return;4.否则就买票,直接ticketNums--就可以了。谁+拿到+            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-06 22:29:33
                            
                                75阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录一、前言二、线程与协程的区别线程需要大量的资源。不可预测的行为竞态条件三、协程GlobalScope.launchrunBlocking 简述async()何时将函数标记为 suspend四、线程的切换五、参考链接 一、前言 在kotlin中协程用法是比较广泛的,协程也是比较复杂的,本文只对其做个简单的记录,后面再进行详细描述二、线程与协程的区别 由于有些耗时操作需要等待,因此常常放在子            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-24 08:35:25
                            
                                209阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言 在 Android 开发中,异步编程是一项必不可少的技能。为了简化异步操作,Kotlin 引入了协程(Coroutines)的概念。协程是一种轻量级的线程,可以帮助开发者更方便地处理异步任务,避免了回调地狱的问题,提高了代码的可读性和可维护性。一、添加依赖首先,确保在你的 Kotlin 项目中添加了协程的依赖:implementation 'org.jetbrains.kotlinx:kot            
                
         
            
            
            
            在Android开发中,使用Kotlin开启一个线程是一个常见的任务,然而在实现过程中若不注意会产生一些意想不到的问题。本篇文章将详细记录这些问题的背景、表现、根因、解决方案及验证过程,确保在使用Kotlin进行多线程工作时的高效与稳定。
## 问题背景
在一个新闻推送应用中,为了提高用户体验,应用需要在后台处理数据,并及时更新UI。这一需求促使我们使用Kotlin来开启后台线程接受推送事件。            
                
         
            
            
            
            目录协变和逆变协变( OUT )不是所有类都可以变成协变的逆变 ( IN )协变和逆变总结reified关键字扩展函数定义一个扩展函数原理扩展函数需要的注意点扩展函数使用场景可空类型扩展泛型扩展函数标准函数与泛型扩展函数扩展属性函数式编程map函数filter函数集合判断式 all , any , count , findgroupByflatMap 和 flatten: 处理嵌套集合中的元素fl            
                
         
            
            
            
            Android开发中,只能是UI线程才可以更新UI界面,否则会抛出异常。除了UI线程意外的其他线程都被称为子线程。我们通常所说的多线程可以直接理解为多个子线程。在Java里面,要开启子线程,有三种方案:一是继承自Thread;
二是实现Runable接口;
三是线程池技术。但面对多任务处理的多线程需求是,还是推荐线程池来实现,这样可以避免线程反复的创建和收回,造成的资源浪费;同时由于消线程池内部实            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-07 07:50:03
                            
                                201阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在现代的Android开发中,Kotlin已经成为了越来越受欢迎的编程语言。对于开发者而言,开启Kotlin的支持不仅能提高开发效率,还能提升代码的可读性和可维护性。本文将详细记录Android项目中如何有效地开启Kotlin支持的过程,包括背景定位、演进历程、架构设计、性能攻坚、故障复盘和扩展应用。
## 背景定位
### 业务场景分析
随着人们对移动应用的需求不断增长,Android应用的            
                
         
            
            
            
            一个多星期都在研究播放器,从双线程到三线程,它们的关系太复杂了,总是搞不定,而且本人c++水平实在有限,很多东西都不太会用。终于搞好了一个能拿得出手的东东,基本没啥严重的bug了,或者我没发现严重的bug,不过代码还是挺乱的,而且音视频对齐使用的办法也不是很好,以后再慢慢优化,先拿来用一个线程读取AVPacket保存到数组,由另外两个线程做解码和播放,这样就不会出现上一篇博文里一个文件两个线程都去            
                
         
            
            
            
            在处理“kotlin rxjava 开启子线程”的问题时,我们需要首先明确这个问题所带来的背景和业务影响。随着应用复杂性的增加,尤其是在移动开发中,性能的优化显得尤为重要。RxJava 结合 Kotlin 的协程特性能够在多线程环境下有效管理复杂的异步编程。但如果未正确开启子线程,可能会导致界面卡顿、响应缓慢等问题,从而影响用户体验。
### 问题背景
在现代移动应用中,用户对性能的要求不断提高            
                
         
            
            
            
            Kotlin中,一切都是对象,和Java相比,不存在java中原始基本类型等。这种特点使我们操作更加容易:可以使用统一的方式来处理所有的可用的类型。—-基本类型——  像Integer,float或者boolean等基本数据类型仍然存在,但全都作为对象存在。基本类型及操作方式与Java极为相似的,我们要考虑到的区别有://数字类型不会自动转型。不能给Double变量分配一个Int。必须要做明确的类            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-28 06:38:47
                            
                                58阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            上期我们学了函数的一些高级用法和字符串的基础操作,还记得什么是函数的函数吗?我们说匿名函数就是lambda表达式,然后我们将lambda函数当成一个参数传给kotlin的参数,那么就是一个函数的函数,就像是C语言里面的函数指针,然后是字符串的length,replace替换操作,其实就是我们手动替换了一些字符,增加阅读难度。那么这一期我们接着聊函数,不过今天我要带来的可不是一般的函数,他们都是匿名            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-03 19:12:15
                            
                                27阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Android Kotlin开启服务
## 介绍
在Android开发中,服务(Service)是一种在后台执行长时间运行操作的组件。它不提供用户界面,但可以在后台处理耗时任务、播放音乐、下载文件等。本文将指导你如何在Android Kotlin中开启服务。
## 流程图
```mermaid
flowchart TD
    A[创建Service类] --> B[在AndroidMan            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-11-15 04:39:05
                            
                                144阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            正儿八经上班第一天,刚刚想写的什么的时候,发现同事在项目里面使用了kotlin。真不知道是该高兴奈还是该高兴奈,总有人推着你前进。那我也开始吧。半年前看过一点,现在忘得差不多了,写的比较乱,都是边开发边学习。   1、对象1.1、对象表达式先回顾下java的匿名内部类:匿名内部类就是没有名字内部类,因为没有名字只能使用 一次。// 匿名内部类:
new 类名或接口名(){
    重写方法;
};            
                
         
            
            
            
            多线程的好处是不言而喻的,它能帮我们刚更多的事情,同时干不同的事情在程序设计中是经常出现的,这种时候我们使用的是线程。在Kotlin  中,使用的还是原先java 的那一套,用的还是Thread ,可能是在java 中Thread就挺好用的,Kotlin  没有做太多的变化。线程Thread的使用Thread 是一个类,有几种用法,比较常规的是声明一个类,继承Thread ,重载run()的方法,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-16 11:15:23
                            
                                50阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、背景线程安全问题由全局变量和静态变量引起,多个线程同时对统同一对象进行写操作,就可能发生每个线程读取到的值不一样。简而言之,如果在线程中不对变量进行写操作,值进行读操作,就可以避免线程安全。二、加锁锁可以分为实例锁和全局锁,通用的方法有Synchronized关键字和Lock方法进行加锁实例锁:对某一个对象加锁,如果该对象的类的单例类,将同时也和全局锁一样 全局锁:对某一类加锁,该类的所有对象            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-06 14:41:07
                            
                                687阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Kotlin学习笔记前言 今年听闻Google在I/O开发者大会上宣布,将Kotlin语言作为Android开发的一级编程语言,意味着在开发Android这块,迟早会取代Java,只是时间问题,两天的使用感受来看,语法上确实比Java简洁许多,能很程度上避免空指针问题,在方法与变量定义上更加灵活,刚接触会有点不习惯,但只要习惯了你会不觉爱上它。基本数据类型 在数据类型这点上与java类似,常用的有            
                
         
            
            
            
            在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们:
无连接分组交付服务(Connectionless Packet Delivery Service)
无连接交付抽象地表示大多数分组交换网络都能提供的一种服务。简单地讲,指的是TCP/IP灰暗网按照报文上携带的地址信息把短报文从一台机器传递到另一台机制。因为无连            
                
         
            
            
            
            Kotlin笔记 线程(十一) 文章目录Kotlin笔记 线程(十一)一、线程创建二、线程状态三、线程管理1、join 一、线程创建fun main(args: Array<String>) {
//    public fun thread(
//        start: Boolean = true,  //创建完成是否马上启动
//        isDaemon: Boo            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-10 11:22:49
                            
                                157阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              协程( Coroutines)并不是 Kotlin 提出来的新概念,很多的编程语言都有实现,如:Go、Python 等。。本文所讲,专指kotlin的协程。  在Android 11中,Asynctask已经被废弃了,因为协程可以更简单,直观的实现异步任务。而且协程是谷歌推荐的异步处理机制,那么什么是协程呢?其实很简单,就是kotlint封装的一套线程api(线程框架),类似于 Java 中的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-15 01:03:02
                            
                                194阅读