知者行之始,行者知之成
2023-05-26 · 阅读 1886 · 字数 858
由于使用的 Navigation UI 会在 navigate 时销毁 fragment 的 View,实际操作时,由 list to detail to list 这样的浏览路径,会导致 fragment onViewCreated 中的逻辑执行多次。这是不合理的,所以需要将相关逻辑挪到 view model 中 (fragment view 销毁了,但是 fragment 没有销毁,所以 view model 是安全的)。而 view model 中不应该去获取 fragment 或 activity 的实例,也就没法拿到之前偷懒放到 activity 中的 SQLDeligth Data ...
2023-05-23 · 阅读 3752 · 字数 662
场景 例如,跟 Rasa 机器人对话中,询问今天星期几,然后使用 Python 返回中文答复。 nlu.yml 增加自然语言解析: - intent: weekday examples: | - 今天是星期几 - 今天几号 - 今天的日期 domain.yml 增加 actions: intents: - weekday actions: - action_weekday rules.yml 配置映射关系 - rule: 星期几 steps: - intent: weekday - action: action_weekday actio ...
2023-05-22 · 阅读 3393 · 字数 345
例如,我想用 golang gorm 查询订单表中关联的代理商名称,但是用 Gorm Preload 又会将代理商信息中多余的敏感信息取出来, 例如联系人等信息。于是就需要限制 Preload 的返回字段。 Models type Order struct { gorm.Model AgentId int // 代理商 id Agent Agent // 代理商信息 Status int } type Agent struct { gorm.Model Name string // 代理 ...
2023-05-26 · 阅读 1724 · 字数 622
周五晚上直到 11 点也没有调通 Android SQLDelight Flow 的用法,由于周六早上 5 点半就要起床去参加运动会,所以就此作罢。今天去体育场路途遥远,于是路上查了一堆文档,才理清了思路。晚上回来,终于调通。 build.gradle 配置 dependencies { implementation "app.cash.sqldelight:coroutines-extensions:2.0.0-alpha05" } RecyclerView 监听数据变化 lifecycleScope.launch(Dispatchers.IO) { (activ ...
2023-05-26 · 阅读 1715 · 字数 520
首先需要 在 Android 中配置好 SQLDelight 及数据库初始化,然后就可以测试写入数据了。 .sq 在 SQLDelight 的 sq 文件中补充用于插入的 SQL 语句: 一个用于插入 一个用于保存 save: INSERT OR REPLACE INTO items VALUES ?; insert: INSERT INTO items(name, num, notes) VALUES (?, ?, ?); 这里有个不好的习惯,就是表名用了复数,会导致生成的 kotlin data class 类名也是复数形式,影响代码可读性。 为了兼容旧版本的 app,所以没有改正 ...
2023-05-26 · 阅读 2194 · 字数 562
SQLDelight 官方的文档有点简略,有些步骤看不懂,而网上找到的大部分文章都是跨平台的配置, 而我只想做 Android 单平台的,于是详细记录了一下配置过程。 app build.gradle 注意是 app 模块的 build.gradle, 而不是整个项目的 build.gradle. plugins { id "app.cash.sqldelight" version "2.0.0-alpha05" } sqldelight { databases { Database { // This will be the name ...
2023-05-17 · 阅读 5456 · 字数 2234
这个周我刷碗的时候,带着蓝牙耳机听完了小林制药掌门人小林一雅的《小池大鱼》。 真是一本通俗易懂,难得的好书。现在微信读书的自动朗读功能很惊艳,不会很生硬,超出预期。 利基市场 这本书里反复提到利基市场 (niche market) 这个名词,所以必须首先了解一下什么是利基市场。 利基市场是指一种小众但非常专注的市场,形容大市场中的缝隙市场,通常针对某个特定领域、行业或人群。这类市场由于规模较小,竞争相对较少,因此往往能够为企业提供更好的机会去建立品牌、实现盈利和发展业务。 利基市场的优势在于它可以通过独特的产品或服务来满足特定目标客户的需求,而这些客户可能在主流市场中被忽视或无法得到满足。因此 ...
2023-05-26 · 阅读 2681 · 字数 523
为了将一个 Android App 由 Room 迁移到 SQLDelight 方案,首先需要了解既有 app 的表结构。 使用 Android Studio 自带的 App Inspection 将 Room 创建的 SQLite 数据库导出为 db 文件, 如 item_database.db。 打开 db 文件 使用 sqlite3 命令连上数据库文件,查看具体表的建表语句 sqlite3 item_database.db 注意是 sqlite3,而不是 sqlite. 否则会报错: > sqlite item_database.db Unable to open databa ...
2023-05-17 · 阅读 13294 · 字数 244
今天在编译一个 2021 年写的一个 Jetpack Compose 应用时,报错: Unsupported class file major version 61 Android Studio 版本 Android Studio Flamingo 2022.2.1 Patch 1 报错原因 新版本的 AS 默认使用的是 Java 17 LTS,而这个历史项目的 Gradle 版本很低,不支持高版本的 Java。 具体原因是: Java 17 (major version 61) 编译的 class 文件,如果在 Java 16 及以下环境下运行,就会报错 Unsupported cla ...
2023-05-17 · 阅读 2604 · 字数 1290
这个周末无论是去公司团结的路上,还是一家去永旺吃饭的间隙,我都在纠结这个事情。也是用这些零碎的时间片段在手机上整理了这篇笔记。 纠结的原因 计划将一个一年前用 jetpack compose 写的练手 android app 重构一下。没想到在没有任何推广,维护的情况下,积累了一些用户。 重构的原因是,有一些用户反馈的需求,我想实现一下。但是使用的 jetpack compose 版本太旧了,毕竟 compose 还处于飞速发展解决,一年一个新样子,甚至今年都成了 android studio 的默认模板。今年用新版本的 as 编译,一堆错误,甚至提示 kotlin 的版本都过低。导致没法继续 ...
2023-05-12 · 阅读 2315 · 字数 294
又写了一天的 bug ... 被 ORM 折腾死。 没关系,又活了一天,已经很厉害了。。。 Bug 的根源 一个设备信息管理系统的表,里面会自动给设备生成设备 ID。 格式: 前6位为生产如期,如:211207,代表 2021年12月7日生产。 后3位为生产编号,如:001,代表当日生产的第一台设备。 编号的生成逻辑: sql like 取最新的一条 满足 211207 的记录,如果有,就判断最后三位 + 1 没有,就生成一条 001 这个逻辑跑了很久都没有出问题,但是今天在写一个新系统时,我偷懒 copy 过来了。 然后,另一个 bug 导致几条设备信息被软删除 (gorm 默认是使 ...
2025-03-20 · 阅读 17633 · 字数 502
从 Android Studio Dolphin 2021.3.1 之后,国内源的切换配置就从 build.gradle 文件改到了 settings.gradle 文件。 修改之后,执行一下 Sync 就可以了。 但是如果遇到国内源没有的依赖,就需要取消前面的几个 google maven 源的注释。因为依赖是按照配置源的顺序来查找的,会优先从排在前面的源去下载。 具体配置 2025-03-20 验证通过,下载很快 pluginManagement { repositories { // 注释默认仓库以加速构建 // google() ...
生活 | 跑步 清单 足球 鲁班 探索 孤独的美食家 驾驶 电视剧 收纳 奶爸 健康 game 电影 周末 joke |
---|---|
Geek | 健身 Laravel Git Vim MySQL Linux UI Windows SVN 纪录片 管理 Shell 游记 工具 手机 BackboneJS 自建博客 Mac DNS Tornado CDN Django Python AngularJS 理财 前端 Nginx 爬虫 Redis Javascript Browser 浏览器 推广 OAuth CSS PHP Social Networks 安全 运维 创业 杂记 VueJS Android Image IDE Java ReactJS 数据分析 SQLite RESTful 读书笔记 家电 ecshop Vagrant wordpress docker SEO GTD magento mongodb nodejs weex 冷知识 ruby iOS 微信小程序 AI CMS 快应用 backpack 广告联盟 OA 短信 UWP Win CSharp Tampermonkey graphviz 钉钉 WPS 数据字典 微信公众号 Fuchsia Adobe XD SQL Server thinkphp 代码规范 商业模式 Flutter 头痛的问题 serverless 视频制作 国际化 golang 服务器 Kotlin 网站建设 5G 笔记本 图片 spark spring 物联网 InfluxDB 图像识别 postgre rust 提示词 |
成长的烦恼 | 闲言碎语 待产 不睡觉 写作 程序员 孙心然语录 原则 大鸿语录 |
地球 | 植物 时间 中文 赚钱 国家地理 烟台 一生伏首拜阳明 emoji 弟子规 英文 国际贸易 |