大象笔记

知者行之始,行者知之成

Android 模拟器:xxx requires the Google Play Store, but it is missing

在排查 Jetpack Compose 中 Admob 广告不显示问题时,发现一个运行时错误: xxx requires the Google Play Store, but it is missing 我其实很诧异,Android 模拟器里不都运行的是 Google 的原生系统么?为何会找不到 Google Play? 我打开 AVD 虚拟设备列表,发现确实如此。我当前正在使用的虚拟机确实没有 Play Store。 解决办法 其实就是一句话,新建一个带 Google Play Store 的设备。。。 在选择硬件的时候,会清楚的看到,部分手机型号带 Play Store,而其他的则不 ...

阅读全文...

参加 Google Play 学院 21 天进阶计划喜得订制版音箱

上个月参加了 Google Play 学院 21 天进阶计划的活动,坚持打卡,并学完了所有的在线课程。功夫不负有心人,抽到了活动大奖: 一个 Google Play 定制版音箱 一件 Google 卫衣 旅行大礼包。。。实际上是一堆贴纸和标签,圆珠笔,开箱就被我闺女抢走 这个复古音箱非常有爱,居然有收音机功能,很适合听新闻。让我想起了小时候家里的第一台巨大的收音机,边写作业边听广播,伴我走过了九年义务教育。同时这个音箱也支持蓝牙,数据卡,音频线,功能强大了很多。 Google Play 学院 回归主题,Google Play 学院里的课程给我启发很大,有很多实战经验分享,对于我这种想尝试 ...

阅读全文...

驾驶证过期,请假去开发区政务服务中心更换驾照

突然发现我的驾驶证在今年 8 月份就过期了,于是这周在给客户交付完之后,请了一天调休假去处理。 主要是担心年底查酒驾查得严,别被误伤到。再就是拖久了不会让我重新考吧。 早上坐公交到开发区政务服务中心 B 座 2 楼,也不需要取号,在自助体检机排队做体检即可。 没几个人排队,前面就两个人,不到 10 分钟就轮到了我。这个体检机非常便捷,检测视力、色盲、听力、四肢、身高都实现了自动化,比我想象的方便多了。唯一令我不满的是,就这还要收 40 的体检费,不便宜。 体检完当天取不了新的驾照,说是需要等 2 ~ 3 天才能取。实际上,第二个下午 5 点,我就收到短信通知说新驾驶证已经制作完成,可以去取了 ...

阅读全文...

电脑机箱嗡嗡响,手按上去就没声音

家里的 Dell 台式机估计上了年纪,开始发出嗡嗡的异响。查了一下,说是机箱内风扇引起的共振。 简单粗暴的解决方案 压本书或者压瓶水上去试试吧,可以解决共振引起的噪音 确实找了两本书放到机箱上之后,噪音小了很多。 治本 机箱内常见的三种风扇的位置: 电源风扇: 在机箱的背部,插着电源线的位置 CPU风扇: 在主板的中间位置,凸起的部分,就是CPU散热 显卡风扇: 插显示器线的位置就是显卡,当然风扇是在机箱里边 先不折腾了,等放书都治不了的时候再看吧。 参考 https://www.zhihu.com/question/302693288 ...

阅读全文...

紫外/可见/近红外光谱(UV / VIS / NIR)

VIS 是什么 在 PlantCV 的官方文档中经常会看到 VIS 这个英文缩写,例如: https://plantcv.readthedocs.io/en/stable/tutorials/multi-plant_tutorial/ To run a multi-plant workflow over a single VIS image there are two required inputs: Image: Images can be processed regardless of what type of VIS camera was used (high-throughput p ...

阅读全文...

单片机 4G 模块进行 MQTT 通信的抓包方法

设备调试中发现 4G 模块进行 MQTT 通信总是出问题,即 QoS 为 1 的情况下,总是收到重复的 Publish Message。即便回复了正确的 Pub ACK 包,也依旧会收到重复的 Publish Message。但是 Wifi 模块下就没有这个问题。 之前 Wifi 模块是通过笔记本 Wifi 共享,在笔记本上使用 Wireshark 进行抓包调试的。但是 4G 模块由于是直连腾讯云 MQTT 服务器,所以没法使用这种方案调试。后来想了个方案就是在自己的公网服务器上设置个转发服务,本地设备通过这个转发服务跟腾讯云 MQTT 服务器通信。这样就能在服务器上对数据包用 tcpdump ...

阅读全文...

《OpenCV 轻松入门:面向 Python》读书笔记

上个月为了学习 PlantCV 做植物图像识别,就找了本 OpenCV 的书《OpenCV 轻松入门:面向 Python》作为基础入门。这本书浅显易懂,非常适合像我这样的 OpenCV 新手阅读。很快翻完,了解了不少基础概念,对看懂代码非常有帮助。今天跟我联调 MQTT 的同事被抓去车间干苦力,闲来无事,我就把这本书的笔记整理了一下。 二值图像 二值图像是指仅仅包含黑色和白色两种颜色的图像。 这种格式下,可以把一张图片理解为只包含 0 或 1 值的二维矩阵。 在 OpenCV 中,最小的数据类型是无符号的8位数。因此,在OpenCV中实际上并没有二值图像这种数据类型,二值图像经常是通过处理 ...

阅读全文...

微信小程序蓝牙进行设备参数配置经验总结

逻辑 打开小程序配置页面时,蓝牙协议拉取所有配置项 编辑修改后,检测修改项,逐一发送修改指令。注意间隔时间 发送保存指令 加载速度体验优化 如果配置项很多,达到 20 项以上,每次间隔几百毫秒拉取(防止设备死机),在用户体验上会非常不好,一种解决方案是,增加一条蓝牙指令,用于一键拉取所有配置项。这样就不需要批量发送一堆拉取指令了。 微信小程序端只需要等待设备逐一推送即可。 蓝牙协议解析 其实通过命令编号来解析最简单,而且可以方便做后期扩展。 我之前由于太天真,做了各种抽象,以为能以更少的代码来实现解析。 实际上,当遇到设备端协议由多人编辑,并且不可控时,会导致协议变的毫无规律,毫无规则,这 ...

阅读全文...

微信小程序支付前,使用 MQTT 检测设备是否在线

需求场景 例如,用户要出停车场,进行扫码支付,但是需要在支付之前判断一下起杆设备是否在线。 如果不在线需要给出提示,防止收了钱,但是没有起杆。 TODO [x] 腾讯云 MQTT 接口 [x] golang api [x] controller 更名为 mqtt.go, 把 mqtt 相关的操作都放在这个 controller 里,方便共用一些配置 [x] 封装 DescribeDevice。参数为 deviceId,获取 device,从而得到设备名,然后 mqtt 查询在线状态 [x] 线上测试 [x] 小程序端:预支付这里调用了两个 http 微信接口,可能等待时间有点长,导致用户点两 ...

阅读全文...

减肥迫在眉睫,双十一活动入手 Switch 健身环套装

为何想买 Switch 健身环套装 如果单纯是 Switch 掌机的话,我其实毫无兴趣,年纪越大越不喜欢玩游戏 (之前年会中奖的 PSP 玩了一个月就咸鱼卖掉了), 主要是想用健身环锻炼一下身体,减减肥。 为何不出去跑步呢?疫情期间,戴口罩出去跑步,感觉容易喘不上气;不戴口罩吧,怕被人嫌弃。 刷步数吧,换了新公司,中午出去回来还要经过门岗,登记测体温,麻烦,而且打扰保安大爷休息,不好。 再者,冬天了,怕感冒,这岁数感冒一次,要半条命。看了网上玩健身环的视频,感觉挺适合家庭一起健身的,老少皆宜。 大闺女今年上中班了,感觉也到了玩玩游戏机开发一下智力的时候了。。。 我爸就是在我快上小学的时候,花了 ...

阅读全文...

在易版权上第一次提交软件著作权申请失败

由于我想将 Android App 上架国内的小米应用商店,按照要求上架必须先注册软件著作权。小米官方推荐使用易版权,于是我就图省事,直接在这个网站上申请了。相对官方的版权保护中心,易版权有一个优势,就是不需要你脱裤子放屁再邮寄一份纸质资料,只需要额外打印并扫描上传一份授权书。 易版权在填写软著的过程中,提示非常详细,比官方网站详细太多。虽然界面比较丑,且体验差劲。但是忍了,为了上架,根本没得选择。 提交后,我天天刷新看进度,无论等几天,永远是 剩余天数:36天 大概是故意来恶心人的。一个做软件著作权的网站,软件做成这样,本身就是一种讽刺。 大概过了一个周,还是两个周,短信提示我申请失败: ...

阅读全文...

Antd Pro 数据汇总结果展示

例如,我要在数据后台拉取一段时间的代理商交易记录,并进行金额数据合计。 展现形式 可以使用 Antd Pro ProTable 的"表格主体自定义",该区域在 table 列表的上方,更醒目一些。 https://procomponents.ant.design/components/table#%E8%A1%A8%E6%A0%BC%E4%B8%BB%E4%BD%93%E8%87%AA%E5%AE%9A%E4%B9%89 相对 Ant Design Table 的"总结栏","表格主体自定义" 格式更灵活,更醒目。 关键的一点是,Pr ...

阅读全文...