MVVM?继续搞一波

前言

又是好久不见了,真的不是因为我懒,是因为公司目前活确实有点着急,所以每天在忙公司的事情。

在五月下旬的时候写过一篇MVVM的文章:MVVM?瞎搞一波?。当时写的时候内心其实很慌,怕写的不好从而误导大家,但写出来之后有几位同行的回答让我对MVVM有了一些更多的理解。

例如MVVM的VM就是 ViewModel,但并不只是 JetPack 中的ViewModel那个库,而是泛指视图和数据的绑定等等,于是乎这两天稍微有点时间就赶快趁着晚上和周末的时间继续完善了下之前的MVVM版本的玩安卓,废话不多说,先来看看实现的样子吧。

玩安卓MVVM版截图

首先来看下最终效果吧:

再来看下之前已经实现的大概样式吧(文末有Github地址):

初始样式

看着样式还好,但之前只是简单做了下,实现了最基本的功能,切换成横屏之后基本没办法看,更不要说分屏、夜间模式、本地缓存、无网弱网情况、无数据情况等等了,接下来看一下现在新增的适配页面吧。

夜间模式
横屏适配
无网、无数据适配
体验

如果看到这里想要下载尝试下的话可以直接点击链接进行下载,或者扫描下面的二维码进行下载。

https://www.pgyer.com/llj2

img

实现过程

项目用到了很多技术,基本上都是现在安卓app的最新标配,比如:MVVM、JetPack(LiveData、Room、ViewModel)、Retrofit、协程、Glide等等。

其实在优化这个Demo的时候觉得做了好多事,但是真的让我写的时候就有点懵逼了,因为用到的东西比较多,随便拎出一个来都能单独写一篇文章;

比如在apk大小的优化,这个apk最后被我优化到只剩3.3MB,现在随便一个apk都得几十MB吧。apk优化的挺多,比如代码混淆、资源文件的混淆、不需要的语言删除、图片转webp等等,如果想深入了解apk压缩的话,可以去看我之前写的这篇文章:玩安卓必须要掌握的性能优化之APK极限压缩。

又比如新增的浏览历史功能中用到了Room,没有Room的时候基本都在使用原生或者使用LitePalGreenDAO等来实现,虽然LitePalGreenDAO也是ORM的方式来实现的数据库操作,但是总体来说还是没有Room好用,Room写好实现的DAO接口文件即可,在你编译的时候会直接生成对应的实现类,真的很香。

类似上面的还有很多,大家可以去Github下载代码来看看,里面代码写的不能说好,但肯定不能说差,如果代码哪块写的不好或者有优化的地方欢迎大家告诉我或者给我提issues。

好了,大家看看想了解这个app中的哪一块技术,可以写在评论区,下周我再好好写一写关于技术的文章。最后放一下项目的Github地址:https://github.com/zhujiang521/PlayAndroid

如果对大家有帮助的话别忘了点Star啊,万分感谢🙏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2219575.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

华为:活下来!或将卖掉 X86 服务器业务?

点击关注公众号,回复“1024”获取2TB学习资源! 2021 年 8 月 6 日,华为公司公布上半年公司整体经营业绩数据,净利润是实现增长的。 数据显示,2021 年上半年,华为实现销售收入 3204 亿元,同比下降…

FFT快速傅立叶变换在示波器中的用法

大多数示波器上都有个FFT功能,也叫快速傅立叶变换,但很多人不了解这个功能是做什么用的,百度以后又会遇到各种各样的高数公式,看的一头雾水,遂而放弃这块知识。 我们来看百度百科的解释: FFT,即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、…

一大波硕士即将来袭

前几天有一个读者朋友,也是程序员,在微信和我说:研究生扩招了,他要不要把专科学历提高一下? 我查了一下新闻,确实:2020 年硕士研究生扩招 18.9 万人,扩招向临床医学、公共卫生、人工智能等专业倾向。 今天和大家说说硕士研究生扩招这事。 1. 一直在扩招 硕士研究生(…

高斯滤波在图像处理中的应用

卷积: 相信很多时候,当我们在看到“卷积”时,总是处于一脸懵逼的状态,不但因为它的本义概念比较难理解,还因为它在不同的应用中发挥出的变幻莫测的作用也时常让人迷糊。但这些应用其实本质上都是同一种东西&#xff0…

示波器FFT频谱分析的使用方法和注意点

对信号中的频率分量进行分析是十分重要的,因为他们常常会在设计中引起噪声,一旦超出允许的公差,就可能进而导致器件发生故障功能失常。严重的还可能导致电压尖峰,损坏器件。如果我们在设计的时候没有进行正确的测试,那…

第四讲:详谈波分设备在双活方案中应用

容灾通信链路设计是保障用户在合理的通信成本下成功实现容灾系统建设的重要步骤。不同的通信链路有不同的属性,如距离支持、带宽能力等,而不同的容灾技术和容灾应用对通信链路的要求并不相同。 容灾通信链路的选择 对于容灾方案,无论采用哪种容灾通信链路,都需要从信息系…

生成两路PWM波相位差90°的方法

1、需要一个定时器两个通道,定时器模式设置为输出比较模式(还有另外一种模式---PWM模式) 输出比较模式下不关心CNT比 CCR值大还是小,只关心CNT和CCR值什么时候相等,两个值相等时,就翻转输出电平。在PWM模式…

智能运营新功能,多波次营销全触达

推送触达率不高,转化效果不好? 消息推送时下已经是APP日常运营的重要工具,好的消息推送能够有效地增强用户黏性、提升用户体验,然而一切好的消息推送都是建立在能够到达用户终端为前提的,所以消息推送的到达率尤为重要…

基于python+openCV的中值滤波

先直接来一个33的吧 def median(src_img, filter_size, channels):# 首先,定义一个大小为9的0数组# list [[0, 0, 0, 0, 0, 0, 0, 0, 0],# [0, 0, 0, 0, 0, 0, 0, 0, 0],# [0, 0, 0, 0, 0, 0, 0, 0, 0]]list np.zeros([3, 9])# print(list[1][4]…

如何用FPGA输出正弦波、三角波等

如何用FPGA输出正弦波、三角波等 一、开发工具二、步骤1、设置ROM IP核2、程序编写 一、开发工具 1、 软件平台:Quartus ll 2、芯片:不重要 二、步骤 1、设置ROM IP核 设置ROM IP核,根据使用的DA芯片选择对应的位数和数据量,选…

示波器的三种触发模式详解

一、什么是示波器的触发模式? 示波器的“触发”就是使得示波器的扫描与被观测信号同步,从而显示稳定的波形。为满足不同的观测需要,需要不同的“触发模式”。示波器的基本触发模式有三种: 第一种是“自动模式(AUTO&am…

Unity Shader-后处理:屏幕水波效果

一.简介 最近在打黑魂,被虐得死去活来,每次都是想砸电脑的节奏,然而还是忍不住想玩,唉。下面步入正题,黑魂的传送技能之前会播放一个帅帅的屏幕特效-屏幕水波,从屏幕中间向四周扩散开来,很有赶脚。下面附上一张截图: 正好最近在学习shader,决定研究一下这种效果怎样实…

第一讲:双活容灾技术和方案概述

容灾建设在我国已有十多年的历史了,尤其是2007年发布国标GB/T20988-2007《信息系统灾难恢复规范》后,各行各业对容灾建设都非常重视,各种新的容灾技术和产品也得到了快速的发展和应用。在我国容灾发展的前十年,主要都是基于保护IT…

傅里叶变换与小波分析

从毕设中期答辩以后,本人开始着力于信号处理方面知识的学习,这里面的玄机确实说不清道不明,剪不断理还乱。 在学习过程中,发现很多值得去探索和分析的地方,而且好多前辈都很无私的分享了。 愚目的很简单:就是想把这阶段所学的知识整理整理思路,希望能得到大神指点。 …

Matlap生成正弦波以及正弦波转为方波代码示例

首先了解什么是正弦波: 正弦波是频率成分最为单一的一种信号,因这种信号的波形是数学上的正弦曲线而得名 公式:ysin X 正弦波就是长以下的样子: 接下来我们用Python中的Matlap以及Numpy函数库来模拟实现正弦波,直接上…

汽车毫米波雷达

汽车毫米波雷达 汽车前碰撞预警毫米波雷达是专用于机动车驾驶辅助系统ADAS(Advanced Driving Assistant System)的微波雷达传感器,主要用于主动碰撞避免或预碰撞系统(Collision avoidance system或Precrash system)、自…

容积脉搏波的采集原理

一 前言 从脉搏波中提取人体的生理病理信息作 为临床诊断和治疗的依据,历来都受到中外医 学界的重视。脉搏波所呈现出的形态、强度、 速率和节律等方面的综合信息,在很大程度上 反映出人体心血管系统中许多生理病理的血流 特征,因此对脉搏波采…

VueRouter与expres/koa中间件的关联

ueRouter: runQueue 路由守卫都是有三个参数to,from,next。其中next就是下方的fn执行时候传入的第二个参数(回调函数),只有该回调执行后才会挨个遍历queue内的守卫。 中间件的作用 隔离基础设施与业务逻辑之间的细节。详细的内容位于《深入浅出Node.js》P210 另外一…

大型组网如何使用BFD提高可靠性

1.当前现网业务存在哪些问题? 2.BFD的工作机制讲解 3.BFD联动静态路由以及OSPF实战 --- BFD - 双向转发检测 - 通用标准 SLA --- 介质无关 协议无关 --- BFD基本原理 --- BFD应用场景配置方式 --- BFD结合OSPF --- BFD结合静态路由 跨网段…

word批量导入试题,一键组卷,单机软件题库管家迎来1.2版本

更新内容: 1)【新增】导入试题指南,讲解每步操作要领 2)【新增】在新建、编辑试题弹窗内支持快捷创建科目 3)【新增】在新建、编辑试卷弹窗内支持快捷创建试卷类型 4)【新增】题目列表支持批量编辑科目和难度,支持批量删除功能 5)【优化…