大象笔记

知者行之始,行者知之成

基于瑞芯微的 Android 工控屏中 App 的调试方法

最近两天在 Android 工控屏上遇到了一个诡异的问题,经常遇到黑屏现象。黑屏的复现场景: 开机自启动我开发的 APP,在某个工控屏上 80% 的概率出现黑屏。但是切换一下显示就正常了。而后续手动点击启动,也不会遇到黑屏问题。 在 Android 系统的设置页面,随便点击几个配置项目也有小概率出现黑屏的现象。这种情况只能点击重启按钮,然后切换才能跳出黑屏问题。 手头有两台完全一样型号的工控屏,只有一台会出现黑屏的现象。 我感觉大概率是系统的问题,或者硬件的问题。但是现在又换不了这个工控屏,只能先找找是否能通过 app 里的逻辑来规避掉黑屏的问题。 但是,我通过 USB 3.0 公对公数据 ...

阅读全文...

Android 工控屏中 App 的自启动实现

搞了两块 Android 工控屏,需要系统重启后,能自动开启自己开发的这个蓝牙控制 App。找了半天没有找到系统设置,在哪里能指定某个 App 开机自启动。 找了技术支持,大体意思是,这款主板是比较复杂一点,其他款的主板是可以的,这款主板只能在APP里面去设置自启动。然后留下一句话: 把开机包名赋值给这个persist.spirit.bootapp属性就可以了,你试一下 我 X,丈二和尚摸不着头脑,这个回复也太抽象了。于是我 google 了一下,完全没有匹配的关键词。让 AI 写,也完全不行。 在 StackOverflow 上找到了解决方案: AndroidManifest.xml ...

阅读全文...

Android App 中使用自定义字体

写了这么久的 Android App,一直嫌麻烦没有使用过自定义字体,即三方的字体文件。 今天调界面调的头晕眼花,正好查查怎么搞自定义字体,放松一下心情。 没想到非常简单。 使用方法 将字体文件存放到 res/font 目录下。没有 font 目录,需要新建一个目录。 然后在 layout.xml 中或者其他布局文件中,直接使用 android:fontFamily="@font/my_font" 即可。 编译报错 'D' is not a valid file-based resource name character: File-based resource na ...

阅读全文...

用 AI 一招搞定可视化图表,值得收藏的 Claude 提示词

前两天,尝试了 用 DeepSeek 半分钟生成软件系统架构图,但是生成的 PlantUML 虽然逻辑清晰,但是界面不够漂亮。今天恰好在小红书上刷到一个不错的替代方案,就是通过 AI 生成 draw.io 的代码。 例如,作为示例,我想生成一个“Android 平板控制脑机设备的逻辑流程”的可视化图表。 效果图 先看效果 提示词 根据描述直接生成可以运行的 draw.io 代码: 描述 Android 平板控制脑机设备的逻辑流程 注意,最好是使用 claude 来生成代码。因为之前试过 google gemini 2.0 flash 效果也不是很理想。还是 claude 更靠谱一些。可能 ...

阅读全文...

用 DeepSeek 半分钟生成软件系统架构图,或者业务流程图,AI 提示词又学到了

有时候想把项目的架构形象地画出来,毕竟一图胜千言。但 AI 时代了,能不能让 DeepSeek 直接生成项目架构图,或者业务流程图呢?今天尝试了一下,效果异常得秒 ✌️ 提示词 帮忙给出一个 plantuml 的架构图,或者时序图,用于形象展现 Android 平板通过蓝牙控制机器狗,并且机器狗的运行数据实时通过 MQTT 传到服务器,并且服务器上的web 后台可以看到这些实时数据。 生成的效果图 先看效果,当然这个图片不是直接生成的,但是为了大家不感到枯燥,就先看效果。 生成的 PlantUML 指令 将上面的提示词输入或者复制到 DeepSeek 获取其他支持深度思考的大模型都可以, ...

阅读全文...

Claude 开发网站网页的 AI 提示词

​之前是Claude 3.7 生成 APP/网站 UI 设计稿的提示词,这次更直接一些,直接生成手机自适应的网站。 原来一周的网页开发量,现在五分钟就能靠 ai 自动生成,而且美观度,交互体验,和功能细节都比我手写的要好🥲。哎,等待 ai 生成代码的时间,我还去洗了个澡 ╮(¯▽¯)╭ 这个时代真好。 用重新设计我的博客网站做示例。 提示词 我想开发一个程序员的个人博客网站,需要手机自适应,现在需要输出网页代码,请通过以下方式帮我完成所有界面的代码: 1、用户体验分析:先分析这个网站的主要功能和用户需求,确定核心交互逻辑。主要包括首页文章列表,文章详情页,分类/Tag 页面等,文章编辑页。 ...

阅读全文...

开源版 EMQX 接口查询 MQTT 设备在线状态

基于 EMQX MQTT 开发了一个设备管理,及日志存储的后台系统。 在设备管理页,想看到设备是否在线的状态显示。然后发现原来 MQTT 协议是不支持这个查询的,而是需要通过 EMQX 开放的接口中进行查询。 这里记录一下 显示效果 接口认证 参考 EMQX 官方文档,里面有多种开发语言的实现,例如这个是 go 的。 https://docs.emqx.com/zh/emqx/latest/admin/api.html#go 调用接口时,只需要把 url 替换为对应的接口即可。 api key 和 secret 需要登录 EMQX 服务自带的 web 后台,系统设置-API 密钥,去生成一 ...

阅读全文...

MySQL & golang gorm 按月份自动分表存储物联网设备日志

遇到一个存储大量在线设备日志的需求。设备日志通过 MQTT 上传,服务端使用 golang 订阅 MQTT 主题来获取日志,然后存储到 MySQL。之前,为了偷懒,使用了 InfluxDB 2 来存储这里时序数据,但是,经历了一个项目之后,我觉得还是 MySQL 好用。毕竟 influxdb 2.0 的查询语法很不习惯,而且我没有运维经验,这玩意要花时间去了解如何运维,这些时间花费的非常不值。能用最顺手的技术实现,而且稳定可靠,那么就不要折腾。 按照我的估算,按月存储日志,可以把每个表都日志量控制在 1000 万条以内,那么就不需要按天或按周存储了。 今天能把这个功能搞定,就很不错了。也算是设 ...

阅读全文...

添加 Windows 右键菜单,点击执行一段 Python 脚本

之前用 C# 实现了一个右键菜单上传本地文件到七牛云的本地工具,参见 《做程序员呢,开心最重要,用 .Net 8 开发了一个自用的 Windows 文件上传七牛云小工具》。原理就是第一次运行时,修改 Windows 注册表,添加一个右键菜单。 但是后来对 C# 的 ASP.NET AOT 很不满意,感觉就是个玩具。就又切换回 golang 了。用 golang 开发 windows 工具其实比用 C# 方便很多。这不连 C# 之父优化 TS 7.0 也选择了 golang。 回归正题,既然工具链又回到了 golang / python。那么怎么方便地修改 Windows 注册表添加右键菜单呢 ...

阅读全文...

ERROR: HTTP error 403 while getting https://pypi.tuna.tsinghua.edu.cn/packages

使用清华的 python 源 pip install 失败,报错: ERROR: HTTP error 403 while getting https://pypi.tuna.tsinghua.edu.cn/packages 据说是因为清华源不是 https 的,而 python 禁用了 http 的访问。 更换为阿里云的 python 源 pip config set global.index-url http://mirrors.aliyun.com/pypi/simple pip config set install.trusted-host mirrors.aliyun.com ...

阅读全文...

ubuntu server 下使用 /etc/fstab 挂载的 s3 存储目录,如何卸载掉

之前通过 s3fs-fuse 将 Linode Object Storage 挂载到 Ubuntu Server 本地文件系统,但是现在想将其中一个 Linode Bucket 去掉。记录一下如何操作: 直接复制了 DeepSeek 的回答,感觉比我自己整理的清晰多了 🥲 在 Ubuntu Server 下卸载通过 /etc/fstab 挂载的 S3 存储目录,需按以下步骤操作: 步骤 1:卸载挂载点 首先使用 umount 命令卸载目录: sudo umount /path/to/mount_point # 替换为实际挂载路径(如 /mnt/s3) 常见问题处理: 设备忙(Devi ...

阅读全文...

Claude 3.7 生成 APP/网站 UI 设计稿的提示词

在浏览小红书时 (@大象卷大葱),发现了一个不错的 AI 提示词模板,用于生成 APP/网站 UI 设计稿。非常实用,可以直接在 VSCode Github Copilot 插件的 Edits 中一键生成设计稿的 HTML 网页代码。 例如,我想开发一个颜色搭配的 App。 生成的设计稿效果 先看效果,就是网页啦: 提示词 我想开发一个颜色搭配的 App,现在需要输出高保真的原型图,请通过以下方式帮我完成所有界面的原型设计,并确保这些原型界面可以直接用于开发: 1、用户体验分析:先分析这个 App 的主要功能和用户需求,确定核心交互逻辑。 2、产品界面规划:作为产品经理,定义关键界面,确保 ...

阅读全文...