引言Android开发是移动应用开发领域中的一个重要方向,而Kotlin作为一种现代的、表达力强大的编程语言,逐渐成为Android开发的首选语言。...本教程将详细介绍如何使用Kotlin和Android Studio开发一个简单的Android应用,包括项目的创建、界面设计、代码编写以及运行应用。...步骤1:安装Android Studio和配置环境首先,确保你的系统中已经安装了最新版本的Android Studio。你可以从官方网站下载并按照安装指南进行安装。...安装完成后,打开Android Studio,确保SDK和其他必要的组件已成功安装。创建或导入一个新的Android项目。步骤2:创建新的Android项目打开Android Studio。...你已经成功创建并运行了一个简单的Android应用程序,使用了Kotlin语言和Android Studio进行开发。这只是一个简单的入门示例,你可以根据需要扩展应用,添加更多功能和界面元素。
从 Room 2.1 版本之后,开发者们可以通过定义 suspend DAO 函数来使用 Kotlin 协程了。...在我们为 Room 添加协程的支持期间,我们遇到并解决了在协程模型和 Android SQL API 中没想到的一些问题。在本篇文章中,我们会向您阐述我们遇到的这些问题,以及我们的解决方案。...比如,Dispatchers.IO 会使用一个共享线程池分流执行那些会发生阻塞的操作,而 Dispatchers.Main 会在 Android 主线程中执行协程。...中 SQLite 的线程限制是合理的,这在 Kotlin 还没出现时已然如此设计了。...直接取消 Android 线程对 SQLite 事务的限制是不可行的,因为我们希望提供一个向后兼容的解决方案,而上述这些方法的组合最终让我们在使用协程和 Fluent API 的解决方案中发挥了创造性。
接下来,我们使用 PyTorch 提供的接口来定义线性回归: 使用 PyTorch 的 nn.MSELoss() 代替自定义的平方损失函数 使用 PyTorch 的 data.DataLoader...代替自定义的数据加载器 使用 PyTorch 的 optim.SGD 代替自定义的优化器 使用 PyTorch 的 nn.Linear 代替自定义的假设函数 使用 PyTorch 来构建线性回归...,和原始数据的直线基本吻合,说明我们训练的还不错。...模型的保存方法 学习目标 掌握PyTorch保存模型的方法 神经网络的训练有时需要几天、几周、甚至几个月,为了在每次使用模型时避免高代价的重复训练,我们就需要将模型序列化到磁盘中,使用的时候反序列化到内存中...小节 本小节主要学习了如何定义和保存网络模型。我们可以直接存储模型对象,但是该方法依赖于 PyTorch 的实现,而存储模型参数与 PyTorch 的实现关系较弱,建议使用第二种方法来存储模型。
'io.reactivex.rxjava2:rxandroid:2.0.2' implementation 'io.reactivex.rxjava2:rxjava:2.1.10' Github地址 使用...延迟执行 Kotlin Observable.timer(1000, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread...()) .subscribe { } 多线程 常用的方式是分线程中处理数据,主线程中使用数据生成页面 Kotlin Observable .create<List<TreeItemModel
对项目的基本介绍 1.整个框架主要是给MVVM框架使用的,自己写完interface接口后,通过自定义的注解就能自动生成接口方法 2.用Kotlin的Flow去代替Rxjava,因为我发现RxJava功能很强大...,但是大家都只是在Http层面使用了一下,既然要用Kotlin里面就已经有Flow,那我还不如少添加一个库 3.通过jetpack的Room数据库实现网络请求的存储,缓存策略也用过注解去完成。...4.发起的网络请求是与宿主生命周期绑定的,在网络请求回来之前,宿主已经销毁的话,网络请求也会中断的 基本使用方法 1.先定义接口类 和Retrofit一样,需要定义一个接口类 其中@AutoApi,@AutoFlowApi...,@NetStrategy是自定义的注解,后面会介绍到。...RepositoryClass这个类会保存ConfigService的类名,包名,类型和所有方法等 [1240] 3.会将ConfigService里的方法包装成AutoMethod(不同的注解会有不同的类型
欢迎使用 Jetpack DataStore,这是一个经过改进的全新数据存储解决方案,旨在替代原有的 SharedPreferences。...Jetpack DataStore 基于 Kotlin 协程和 Flow 开发,并提供两种不同的实现: Proto DataStore 和 Preferences DataStore。...DataStore 可以确保在 Dispatchers.IO 上检索数据,因此不会阻塞您的 UI 线程。...只需要传入 SharedPreferences 构造时所使用的名字就可以了。...DataStore 包含使用 Kotlin 协程和 Flow 实现的完全异步 API,可以处理数据迁移、保证数据一致性,并且可以处理数据损坏。
这个版本的特点是使用 Kotlin 完全重写,对协程和 Flow 有一流的支持,用 RxJava 和 Guava 原语进行异步加载,并对存储库和表现层进行了全面改进。...如果您想要加密 SharedPreferences,请用适当的密钥和方案创建一个 EncryptedSharedPreferences 对象,然后像标准 SharedPreferences 对象一样使用它即可...DataStore 带来了对最佳实践的支持,如 Kotlin 协程与 Flow 和 RxJava。...查询 "body:fruit" 将检索所有在消息正文中带有 "fruit" 一词的文档。...对于自定义 TextViews,可以使用 :emoji2:emoji2-views-helpers 中的实用方法,或通过继承 AppCompat 视图来支持现代表情符号。
有时应用程序有少量的数据需要保存,而且这些数据的格式很简单,都是普通的字符串、标量类型的值等,比如应用程序的各种配置信息(如是否第一次打开应用、是否打开音效等)、小游戏的玩家积分等,对于这种数据,Android...提供了SharedPreferences进行保存。...一.SharedPreferences与Editor简介 ---- SharedPreferences保存的数据主要是简单类型的key-value对。...二.SharedPreferences的存储位置和格式 ---- SharedPreferences数据总是保存在/data/data//shared_prefs目录下,SharedPreferences...最后补充一个小知识点:用shape自定义按钮 当要实现如应用中所示的按钮,首先在drawable目录下建一个xml文件,然后利用shape自定义所需要的按钮形状,比如这里只是实现了最简单的圆角,黑色细线的按钮
在本次开发者大会的首日,会议将从Google Play、Android即时应用、Android KTX,Android Kotlin开发和入门,以及 Android、Android apps for Chrome...本文就Android KTX相关的知识做相关的讲解,可以看到Google对Kotlin的重视程度也越来越高。...SharedPreferences也经常使用,使用 Android KTX后,代码也简介不少。...集成 要在你的 Android Kotlin 项目中开始使用 Android KTX,需要在应用模块 build.gradle的脚本文件中添加以下配置脚本。...KTX中,主要是使用了Kotlin 的几个特性,下面就这些特性进行简单的说明。
,如果你没看到之前的自定义组件你可以看一下: Android自定义下拉刷新动画–仿百度外卖下拉刷新 Android自定义组合控件—教你如何自定义下拉刷新和左滑删除 效果还行,源码也已经传到我的...鉴于现在Retrofit现在网上很多教程,所以基本的使用方法就不介绍了,小编也不重复造轮子了,如果你还不会用,看看下面几篇文章: Retrofit 2.0使用详解,配合OkHttp、Gson,Android...最强网络请求框架 Retrofit 2.0:有史以来最大的改进 Retrofit初探和简单使用 持久化Cookie 今天小编要讲的是,怎么持久化管理你的Cookie,也就是实现用户免登陆过程。...cookies : new ArrayList(); } }) .build(); 上面的.addCookieJar就成功的帮我们将session和cookie...放到了请求头里面,当调用了用户登录的接口之后,服务器接口的header里面的cookie和session我们就已经保存了。
,如果你没看到之前的自定义组件你可以看一下: Android自定义下拉刷新动画—仿百度外卖下拉刷新 Android自定义组合控件—-教你如何自定义下拉刷新和左滑删除 效果还行,源码也已经传到我的Github...鉴于现在Retrofit现在网上很多教程,所以基本的使用方法就不介绍了,小编也不重复造轮子了,如果你还不会用,看看下面几篇文章: Retrofit 2.0使用详解,配合OkHttp、Gson,Android...最强网络请求框架 Retrofit 2.0:有史以来最大的改进 Retrofit初探和简单使用 持久化Cookie 今天小编要讲的是,怎么持久化管理你的Cookie,也就是实现用户免登陆过程。...cookies : new ArrayList(); } }) .build(); 上面的.addCookieJar就成功的帮我们将session和cookie...放到了请求头里面,当调用了用户登录的接口之后,服务器接口的header里面的cookie和session我们就已经保存了。
在 Kotlin 中使用 Android 的 Java API 时,您会迅速意识到这样的做法失去了 Kotlin 语言简单有趣的特点。...其他功能,像 Color 类上可以使用的解构和操作符重载功能,可以访问 KTX 扩展程序列表查看目前是否可以使用。...core-ktx 为来自 Android 平台的 API 提供了常用的 Kotlin 功能。...例如,您正在使用 SharedPreferences,当您想去更新一个值,不需要像使用 Java 一样执行 3 个调用,您只需要执行一个调用即可: /* Copyright 2020 Google LLC.../ktx 一旦您开始使用 -ktx 扩展,您的代码将会从简洁、易读和 Kotlin 习惯用语的特性中受益。
,曾经在项目开发中使用SharedPreferences碰到数据缓存延迟的情况,后面就使用了腾讯的MMKV。...Jetpack DataStore 是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和 Flow 以异步、一致的事务方式存储数据。...Preferences DataStore 由类 DataStore 和 Preferences 实现,使用键存储和访问数据。此实现不需要预定义的架构,也不确保类型安全。...Proto DataStore 将数据作为自定义数据类型的实例序列化存储在磁盘。此实现要求您使用协议缓冲区(Protocol Buffers)来定义架构,但可以确保类型安全。...plugins { id "com.android.application" id "kotlin-android" id "com.google.protobuf" version
在Android项目应用中,经常会用到读取和保存配置文件。Android提供了SharedPreference类方便的对配置文件进行操作。...反正只要能获取到全局的context,在需要参数读取和保存的地方,可以实现操作配置文件。 这种重复的,低效率的事,没给代码增加一点儿清晰度,还容易造成混乱。...在需要保存时,直接赋值并调用saveCfg()即可。 以下为按照这种思想写的一个系统配置类。 使用起来是不是很简单,很直观?...* 然后全局的配置就可以使用,如sysCfg.ip.value即为IP地址的配置。...; import android.content.SharedPreferences; import java.util.Map; /** * 对SharedPreferences的操作管理类 *
在 Kotlin 中使用 Android 的 Java API 时,您会迅速意识到这样的做法失去了 Kotlin 语言简单有趣的特点。...Android 平台 API 的 Kotlin 扩展,导入 core-ktx 软件包即可。...其他功能,像 Color 类上可以使用的 解构 和 操作符重载 功能,可以访问 KTX 扩展程序列表 查看目前是否可以使用。...平台 API — core-ktx core-ktx 为来自 Android 平台的 API 提供了常用的 Kotlin 功能。...一旦您开始使用 -ktx 扩展,您的代码将会从简洁、易读和 Kotlin 习惯用语的特性中受益。敬请期待更多方法,并将 Kotlin 和 Jetpack 的优势应用于您的应用中。
Kotlin 真的是一门美丽的开发语言,她拥有的一些很棒的特性使 Android 开发变成的有趣和令人兴奋。...例如,我们可能想存储一些用户偏好以便让用户自定义应用的功能。普遍采用的方式是使用 SharedPreferences 来存储键值对。...同时,如果为了避免键冲突或者想访问该键,我们还可以提供一个自定义的键。我们还可以为属性提供一个默认值,以防在SharedPreferences没有找到值。...Kotlin Android Extension的视图绑定来获取布局中的控件。...总结 我们看来一些在 Android 开发中使用 Kotlin 委托属性的例子。当然了,你也可以用别的方式来使用它。 这篇文章的目标是展示委托属性是多么强大,以及我们可以用它做什么。
SharedPreferences轻量数据存储 有时候我们做的App中不需要本地保存数据,但是有些小的配置参数需要记录,如果中Sqlite就感觉有点太重了,也比较麻烦,所以今天我们来看看Android系统中轻量数据存储.../data/data/package_name/shared_prefs/目录下,保存的数据类型有String,Int,Float和Boolean,使用起来非常的方便。...获取一个SharedPreferences,两个参数为生存的文件名和创建模式,MODE_PRIVATE:默认模式,该模式下创建的文件只能被当前应用或者与该应用具有相同SharedUserID的应用访问。...通过SharedPreferences.Editor对象进行数据的更新,putstring,putint,putboolean,putfloat,再通过异步apply()或是同步commit()的方式进行数据保存...以上就是SharedPreferences的简单使用方法,为了在别的程序中也可以方便使用,这里我们自己写了一个封装好的kotlin的SpHelper的类 SpHelper类 package dem.vac.sharedpreferencestest
前言 众所周知,kotlin是google力推的用以取代java的android开发语言 kotlin使用起来比较方便,同时有许多语法糖 本文主要讲解了一些比较实用的kotlin技巧 自定义圆角矩形...在Kotlin1.4之前,Kotlin是不支持Kotlin的SAM转换的,只支持Java SAM转换,官方给出的的解释是:是 Kotlin 本身已经有了函数类型和高阶函数,不需要在去SAM转化。...为了实现这一目标,Kotlin 提供了一种将大部分工作委托给一个内部 ArrayList 实例并且可以自定义其行为的方式,并为此引入了一个新的关键字: by。 <!...by bindToPreferenceFieldNullable() } 具体实现可见:SharedPreferences用Kotlin应该这样写 带状态的LiveData 目前我们在开发的过程中越来越多的使用...但是,如果为解决某一特定领域问题就创建一套独立的语言,开发成本和学习成本都很高,因此便有了内部 DSL 的概念。所谓内部 DSL,便是使用通用编程语言来构建 DSL。
一群可爱的小女孩.jpg Kotlin 的委托属性 有一些很常见的属性,虽然我们可以在每次需要它们的时候手动地实现它们,但更好的方法是一次性全部实现,然后放进一个库里面。...,都可以使用如下的方式获取Extras。...long、float、boolean、string以及Set 支持对上述类型使用 AES 算法进行加密,以保障数据安全 没有使用 AES 算法,SharedPreferences的数据文件大致是这样的...可以编写一个 PrefsHelper,把所需要使用 SharedPreferences 保存的属性放进去。...它包含两个 user 对象,分别使用 fastjson 和 gson 来做序列化。
瞎逛的时候发现了一个新东西,来和大家分享一下。 SharedPreferences 大家应该都用过,它的槽点很多,多到我专门写了一篇文章。 细数 SharedPreferences 的那些槽点 !...以上吐槽来自 AndroidX 添加的新成员 DataStore 的类注释,地址如下: https://cs.android.com/androidx/platform/frameworks/support...对于局部修改,请考虑使用 Room 。 DataStore 保证原子性,一致性,隔离性,持久性。它是线程安全,且非阻塞的。尤其是,它解决了 SharedPreferences API 的设计缺陷。...第二,越来越多的新特性都是基于 Kotlin 实现的了,甚至只对 Kotlin 提供支持,大有 Kotlin First 到 Kotlin Only 的趋势。...所以,还没有学习 Kotlin 的同学们,抓紧上车吧! ---- 今天的文章就到这里了,我是一直坚持原创的秉心说,更多最新 Android 动态,扫码关注我的公众号吧 !
领取专属 10元无门槛券
手把手带您无忧上云