MVVM架构可以将程序结构主要分为3个部分,Model是数据的模型部分,View是界面展示部分,而ViewModel是作为链接数据模型和界面展示的桥梁,从而实现使业务逻辑和界面展示分离的程序结构设计。而官方的Jetpack中的许多组件就是专门为MVVM而量身打造的。 官方的应用架构指南中有这么一副图,就可以很清晰的看出Jetpack相关组件在MVVM中充当的角色 数据根据情况选择来源...
ViewModel使用以及原理解析
因为在传统的开发模式下,Activity需要负责逻辑处理,又要控制UI显示等等,负责的内容过多,任务比较重。而ViewModel可以很好的帮Activity分担一部分工作,专注于存放于界面相关的数据,一切界面上有关的数据都应该放到ViewModel中进行管理,并且ViewModel 以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存...
Room使用以及原理解析
依赖 apply plugin: 'kotlin-kapt' implementation "androidx.room:room-runtime:2.3.0" kapt "androidx.room:room-compiler:2.3.0" @Entity 用于定义封装实际数据的实体类,每个实体类都会在数据库中对应一张表,并且表中的列是根据实体类中的字段自动生成的。 常用...
Livedata使用以及原理解析
LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者,也会在应用组件销毁时自动取消关联。 基础使用 LiveData作为一个支持范型的数据对象,一般是...
Lifecycle使用以及原理解析
基础使用 在Android框架中定义的许多应用组件都存在着生命周期(例如Activity、Fragment)。组件的生命周期由操作系统中运行的框架代码管理。它们是Android工作原理的核心,应用必须遵守规则,否则会造成内存泄露以及应用的崩溃。应用中有很多组件需要在创建时注册绑定,在可见时运作,在不可见时停止,在销毁时解除绑定,许许多多的操作都与生命周期密切相关。所以这时如果需要添加到生命...
Android文件目录概览
外部储存 可以在手机中直接查看的目录,目录为Android/data/<package name>/xxx 下的系列文件 传入的参数不要以“/”开始 //主要对应`Android/data/<package name>/files/`下的文件目录,传入空则为根目录 val externalFilesDir = getExternalFilesDir("pl...
SharePreferences的基础使用
获取SharedPreferences对象 要想使用SharedPrefernces储存数据,首先要获取SharedPreferences对象。主要获取方式有以下两种 Context类中的getSharedPreferences()方法 //第一个参数为储存的文件名,第二个参数是操作模式,现只有一种 val edit : SharedPreferences = getSharedPre...
树莓派使用docker安装homeassistant
使用Docker安装homeassistant Raspberry Pi Install Home Assistant Operating System sudo docker run -d \ --name homeassistant \ --privileged \ --restart=unless-stopped \ -e TZ=MY_TIME_ZONE \ -...
树莓派安装docker
树莓派系统 树莓派版本 - 树莓派 4b 8g 系统版本 - Raspberry Pi OS Lite(64-bit) 2022-04-04 Raspberry Os Install Docker Engine 在Install Docker Engine中选择支持的平台,这里选择Raspbian,可以看到其实也是 Debian 的路径。 以下步骤与官网相同 卸载旧版本 sudo...
树莓派数据源
arm64系统源 现在的主流 编辑文件/etc/apt/sources.list,增加以下内容 # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free # deb-src https://mirro...