Android:使用Kotlin搭建MVC架构模式
一、简介Android MVC架构模式
M 层 model ,负责处理数据,例如网络请求、数据变化
V 层 对应的是布局
C 层 Controller, 对应的是Activity,处理业务逻辑,包含V层的事情,还会做其他的事情,导致 activity里的代码变的庞大
二、KotlinMVC架构介绍
2.1 技术摘要
- 网络框架
retrofit2 + 协程
协程上下文与调度器 中文文档
协程上下文与调度器 英文文档- 日志框架
okhttp3:logging-interceptor- 数据库
room- api
玩Android 开放API- Gradle依赖统一版本管理
Version Catalog
TOML官网- KSP
从 kapt 迁移到 KSP
KSP官网文档- TextInputEditText
- ViewBinding
Android Gradle 插件 3.6.0推出的新特性
Android Gradle 插件 4.0.0开始放在buildFeatures
2.2 项目结构图
2.2.1 baselib
BaseRepository.kt代码图
BaseModel.kt代码
2.2.2 app

三、源码
点击查看gitee上的KotlinMVC源码demo
点击查看github上的KotlinMVC源码demo
相关文章:
Android:使用Kotlin搭建MVC架构模式
一、简介Android MVC架构模式 M 层 model ,负责处理数据,例如网络请求、数据变化 V 层 对应的是布局 C 层 Controller, 对应的是Activity,处理业务逻辑,包含V层的事情,还会做其他的事情,导致 ac…...
delete原理
一 原理 new申请动态内存,delete释放内存,将内存的数据块标记为可覆盖,可再次使用。在调用delete时不会将内存块的数据,全部初始化为0。 二 new动态内存,不调用delete的后果? 造成内存泄漏。new申请的动…...
青少年 CTF 练习平台:Misc(一)
前言 当然,我可以更详细地介绍一下青少年CTF练习平台。 青少年CTF练习平台是一个专为青少年设计的网络安全竞赛和训练平台。该平台由思而听(山东)网络科技有限公司与克拉玛依市思而听网络科技有限公司共同建设,自2018年创建以来…...
展锐平台+Android系统开发概要
文章目录 一、缩略语二、系统分区1. UIS7885android13的系统分区 三、系统编译四、开发调试 一、缩略语 BBAT:Baseband Auto Test,基带自带测试CRC:Cyclic Redundancy Check,循环冗余检验SPL:Secondary Program Loade…...
unity开发Hololens 制作滑动框
一定要做到最后一步,才会有效果 1、创建空物体 ,并添加组件 创建空物体 命名ScrollingObjectCollection, 添加组件如下图 下面是各个组件展开的内容 2、在ScrollingObjectCollection 下面创建两个空物体,分别命名Container、Clipping…...
【JavaEE进阶】——Spring Web MVC (响应)
目录 🚩学习Spring MVC 🎈返回静态网页 🎈返回数据ResponseBody 🎈返回html代码片段 🎈返回JSON 🎈设置状态码 🎈设置Header 🚩学习Spring MVC 既然是 Web 框架, 那么当⽤⼾在…...
基于springboot+vue的公司资产网站(全套)
一、系统架构 前端:vue2 | element-ui 后端:springboot | mybatis 环境:jdk1.8 | mysql | maven | node 二、代码及数据库 三、功能介绍 01. 管理后台-登录 02. 管理后台-首页 03. 管理后台-个人中心-修改密码 04. 管理后台-个人…...
Element-UI10分钟快速入门
Element-UI 是一个基于 Vue.js 的桌面端组件库,它为开发者提供了一套完整、易用、美观的组件解决方案,极大地提升了前端开发的效率和质量。以下是一个 Element-UI 的快速入门指南: 1. 安装 Element-UI 首先,确保你已经创建了一个…...
深入解析:如何在遍历List时安全地删除元素
什么是并发修改异常(ConcurrentModificationException) 在深入探讨解决方案之前,我们首先要理解什么是并发修改异常。当我们使用迭代器(Iterator)遍历一个List时,如果在迭代过程中结构被修改(比…...
RT_Thread内核源码分析(一)——CM3内核和上下文切换
目录 一、程序存储分析 1.1 CM3内核寻址空间映射 1.2 程序静态存储和动态执行 二、CM3内核相关知识 2.1 操作模式和特权极别 2.2 环境相关寄存器 2.2.1 通用寄存器组, 2.2.2 状态寄存器组 2.2.3 模式切换环境自动保存 2.2.4 函数调用形参位置 2.3 …...
Android 13 高通设备热点低功耗模式
需求: Android设备开启热点,使Iphone设备连接,自动开启低数据模式 低数据模式: 低数据模式是一种在移动网络或Wi-Fi环境下,通过限制应用程序的数据使用、降低数据传输速率或禁用某些后台操作来减少数据流量消耗的优化模式。 这种模式主要用于节省数据流量费用,特别是…...
律所电子签章有效吗,怎么操作?
电子签章在很多国家和地区是合法有效的,但其有效性、使用条件和操作流程可能依据具体的法律法规而有所不同。在中国,随着《中华人民共和国电子签名法》的实施,电子签章在满足一定条件下是具有法律效力的。电子签章可以提高合同签订的效率&…...
详解 Scala 的变量、标识符、数据类型
一、注释 Scala 注释与 Java 一致 // 单行注释/** 多行注释*//*** 文档注释*/二、变量与常量 1. 语法 // 变量,类型可以省略 var varName:varClass value // 常量,类型可以省略 val valName:valClass value2. 案例 // 使用 var/val 才会在类中声明属…...
JVM-调优之-高内存占用问题排查
排查思路 1)检查jvm内存的分配情况 2)检查jvm的gc情况 3) 找出占用量比较大的对象 第一步:jmap -heap PID 查看jvm内存使用情况 jmap -heap 2525 可以看到老年代年轻代等其他内存区域内存使用率百分比 第二步:jsta…...
全球排名第一的免费开源ERP:Odoo与微信集成的应用场景解析
概述 本文介绍了世界排名第一的开源免费企业应用软件Odoo ERP和企业微信、个人微信的各种对接功能。包括微信登录的对接、微信公众号的对接、微信消息的对接、微信支付的对接、微信打卡的对接、微信小程序的对接。 微信登录的对接 Odoo的登录,除了标准的用户名/密码…...
C++中的两类智能指针std::unique_ptr与std::shared_ptr
在C中,std::unique_ptr和std::shared_ptr是两种智能指针,用于管理动态分配的内存资源,避免内存泄漏和提高代码的安全性。它们之间有一些重要的区别,下面对它们进行简要比较: std::unique_ptr: 独占所有权:…...
java中Future使用详细介绍
一、什么是Future? 在并发编程中,可以通过Future对象来异步获取结果。 使用Thread或runnable接口都不能获取异步的执行结果,因为他们没有返回值。而通过实现Callable接口和Future就可以获取异步执行的结果,当异步执行结束后&…...
docker和containerd的区别
docker和containerd的区别 1、容器运行时 1.1 容器运行时概念 容器运行时(Container Runtime)是一种负责在操作系统层面创建和管理容器的软件工具或组件。它是容器化技术的核心组件之一,用于在容器内部运行应用程序,并提供隔离…...
汇编实现流水灯
1.使能时钟: 1使能GPIO的外设时钟ldr r0,0x50000A28ldr r1,[r0]orr r1,r1,#(0x3<<4)//使能第4,5位str r1,[r0] 2.设置为输出模式 设置GPIOE10为输出模式ldr r0,0x50006000ldr r1,[r0]bic r1,r1,#(0x3<<20)orr r1,r1…...
SQL生成序列浅析
01.sqlserver版本 使用sqlserver将数据复制n条 selectt.indx,t.name,tmp.vlue from (values(1,苹果) ) as t(indx, name) ,(select[number] as vluefrom master.dbo.spt_valueswhere [type] pand [number] between 1 and 10 ) as tmpspt_values是什么 spt_values是SQL Se…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...




