gradle&java&kotlin版本冲突问题
java&kotlin version在使用android时,通常会遇到因为jvm版本不匹配导致的报错问题,因此现在说明一下关于这些内容。 通常我们可以看到以下内容 1234567compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } java version and java bite code version通常我们写出来的代码,即直接java代码这些被称为·java version,and另一个版本就是这些代码被转化为字节码即java bitecode version。通常java版本越高,我们可以使用到的语言功能越多。而java bitecode...
android-hilt
hilt依赖注入他应该满足,只要应用程序存在,那么依赖项就一直存在,并且保持单例模式 添加依赖项首先,将 hilt-android-gradle-plugin 插件添加到项目的根级 build.gradle 文件中: 1234plugins { ... id("com.google.dagger.hilt.android") version "2.44" apply false} 然后,应用 Gradle 插件并在 app/build.gradle 文件中添加以下依赖项: 12345678910111213141516171819plugins { id("com.android.application") id("org.jetbrains.kotlin.android") kotlin("kapt") ...
flow中merge,combine,zip的区别
12345678910111213141516fun main() { var flow1 = (1..10).asFlow().onEach { delay(300L) } var flow2 = (11..20).asFlow().onEach { delay(1000L) } runBlocking { flow1.combine(flow2) { n1, n2 -> println("combine $n1:$n2") }.collect() flow1.zip(flow2) { n1, n2 -> println("zip $n1:$n2") }.collect() merge(flow1, flow2).onEach { it -> ...
5开发原则
SOLIDSingle responsibility 单一职责Open close principle 开闭原则Lisk of substitution 替换原则(能被子类替代使用)Interface segregation 接口隔离Dependences 依赖抽象而不是具体
ADB 调试手机的三种方式(USB、WLAN、WIFI)
主要是,家里多了一些旧手机时,可以用这些旧手机来开发App,可是这些手机Android版本过低,只有USB调试,不支持无限调试。所以可以通过这种方式打开无限调试的开关。来达到无限调试的目的。 USB 调试手机开启开发者选项和 USB 调试模式(通常开启方式:在关于手机连续点击7次版本号);USB 连接线和各种接口正常(个别三方数据线仅支持充电,不支持调试);驱动状态正常(Linux 和 Mac 通常没有问题,Windows 可能需要安装);adb devices -l命令查看。 WLAN 调试(Android 10 及更低版本,需要借助 USB)Android 10以及更低的版本,必须通过 USB 连接后,才可实现同一 WLAN 下无线调试。 手机和电脑需连接在同一 WiFi 下;手机开启开发者选项和 USB 调试模式,并通过 USB 连接电脑(即adb devices -l可以查看到手机);设置手机的监听adb tcpip 5555;拔掉 USB 线,找到手机的 IP 地址;通过 IP 连接到手机adb connect ip(端口默认:5555);adb devices...
Android Studio 打包APK
当你开发完一个App项目后,你所运行生成的都是debug的安装包,也就是无法正常安装,只能在开发者模式下调试使用。![](https://image.zfxt.top/hexo-blog/Android Studio 打包APK-2023-10-20-38-51.png) 如果要查看这些隐藏的文件夹,需要打开设置![](https://image.zfxt.top/hexo-blog/Android Studio 打包APK-2023-10-20-40-04.png) 打包过程,进入build![](https://image.zfxt.top/hexo-blog/Android Studio 打包APK-2023-10-04-49-19.png)![](https://image.zfxt.top/hexo-blog/Android Studio 打包APK-2023-10-04-08-07.png)![](https://image.zfxt.top/hexo-blog/Android Studio...
MVC MVP MVVM MVI架构
MVCModel:实体类(数据的获取、存储、数据状态变化)。View:布局文件Controller:Activity(处理数据、业务和UI)。![](https://image.zfxt.top/hexo-blog/MVC MVP MVVM MVI架构-2023-10-12-22-10.png)缺点:随着界面及其逻辑的复杂度不断提升,Activity类的职责不断增加,以致变得庞大臃肿。为了解决MVC的缺点,MVP 框架被提出来。 MVPModel:实体类(数据的获取、存储、数据状态变化)。View:布局文件+Activity。Presenter:中介,负责完成View与Model间的交互和业务逻辑。![](https://image.zfxt.top/hexo-blog/MVC MVP MVVM...
深度学习速成get知识点
dir()它可以展示一个package中所有的方法和类,以列的方式展示出来。 help()它可以具体展示某个方法或者类的使用说明,也可以使用方法??后面接两个问号的方式,实现提示功能 jupyter,python console,python文件的区别和使用python文件:他会将所有内容都重新编译运行,比较耗时,适合完整的大型项目jupyter,python console:都可以将每一个python语句拆分成任意块去单独执行。执行速度快。不会重复运行但是python console如果出了错误。会很影响阅读体验。因此常用来做测试而jupyter有着文字和代码共存的特性适合用来做笔记和学习 TensorBoard的使用他可以将数据转化成图表类型,更加的可观,明了。例1: 123456789101112from torch.utils.tensorboard import SummaryWriter# from read_image import img_arraywriter = SummaryWriter("logs") #...
pytorch和jupyter的安装
第一步,欲要使用python最佳的建议是使用conda实现python的环境管理,因此这里演示conda的安装和使用。注意,接下来的所有内容都推荐关闭代理进行使用。避免出现网络不通畅的情况。还有conda在安装时会修改dll文件。如果有安装360或者其他杀毒软件的话。需要给予白名单或者关闭杀毒程序 anaconda作为python的版本管理神器,但由于他的体积太大,安装后大概占约2G左右的空间,因此这里推荐使用miniconda。 下载安装conda由于官网下载太慢,因此推荐去(清华大学开源软件镜像站下载)[https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/?C=M&O=D] 修改conda源安装后,需要进行换源,不然下载,导包都会异常缓慢。 conda配置文件位置:~/.condarc (Windows路径为:C:\Users.condarc) 清华源配置,通常配置写入标准库的内容即可,若要使用附加库的内容才将其插入“ -...