大象笔记

知者行之始,行者知之成

Android Jetpack Compose 的布局基础

我想用 Android Jetpack Compose 新建一个 FloatingActionButton,找到 StackOverflow 上的一个答案,发现居然看不懂。。。 感觉还是概要地了解一下 Jetpack Compose 的布局基础比较好。 官方 Compose 布局文档 参考这里 https://developer.android.com/jetpack/compose/layout Column 最常用的自上而下的布局: import androidx.compose.foundation.layout.Column Column { Text("第一行&q ...

阅读全文...

Android Jetpack Compose 可组合函数 @Composable

Android Jetpack Compose 里可组合函数这个名字太唬人,一眼看上去,一头雾水。 Composable 的英文翻译 可组合函数,英文原文为 Composable Function。 我一直以为 Compose 只有“写作”的意思,原来其还有“组成”的意思。所以,Composable 可以翻译为“可组合”。 可组合函数的功能 代码中定义 APP 的 UI。 可组合函数的定义 函数前,加上注解 @Composable。例如,使用 Android Studio 中自带的 Empty Compose Activity template 创建的 App,自带一个可组合函数 Greeti ...

阅读全文...

网站被恶意镜像

今天在查看百度统计时,偶然发现两个奇怪的域名访问记录,这两个域名不是我当前网站的域名,即 www.sunzhongwei.com 而是两个垃圾域名: jqnbaz.club www.jqnbaz.club 但是,打开之后,可以看到,内容完全一致,实时同步。除了图片没有之外,因为我使用了七牛云的 CDN,设置了图片防盗链。 禁止这两个域名的访问 为了确定对方的镜像机制,我访问了一下对方的页面,同时 tail 查看我服务器上的 Nginx 日志。 13.125.220.1 - - [16/Jan/2021:10:46:48 +0800] "GET /using-thunderbolt ...

阅读全文...

使用迅雷下载 Android Studio Canary build

我想尝试一下 Android Jetpack Compose 来写界面,但是官方推荐使用 Android Studio Canary build 版本。 我本机上有 Android Studio 4.1 稳定版,无法直接升级为 Canary build。只能重新下载。 但是,下载速度感人,国内直接下载被屏蔽;使用海外服务器中转 4K 每秒的速度 。。。 迅雷下载 如果是直接将 Chrome 中的下载地址复制到迅雷,下载速度同样为 0。 这个地址为 https://r3---sn-4g5e6nze.gvt1.com/edgedl/android/studio/ide-zips/2020.3.1 ...

阅读全文...

七牛云 CDN 流量包相比后付费确实优惠许多

下午突然接到七牛云的客服电话,我以为是日常推销。没想到是建议我使用 CDN 流量包取代目前后付费的方式,因为 CDN 流量包可以享受折扣,而后付费没有任何优惠。我觉得有道理,接完电话就买了一个 100G 的流量资源包。 这个博客因为图片很少,一个月 CDN HTTPS 流量在 10G ~ 15G 之间,正好适合最低配的流量包,也就是一年 100G。要是流量再少,就不合适用流量包了,毕竟一年用不完。 我选择了当月立即生效,可以在后台看到,立即被抵扣掉了当前已使用的 5G 流量。 使用率查看 费用 - 资源包管理 CDN 流量包的优惠力度 100G 8.3 折 新人有活动,1分钱1T流量。七 ...

阅读全文...

Spring Boot I18N 中文翻译乱码问题

在设置了 messages_zh.properties 翻译之后,使用请求路径 http://localhost:9090/emoji?lang=zh 发现,中文翻译显示为乱码。 在 application.properties 中配置了 spring.messages.encoding=UTF-8 依旧显示为乱码。 于是检查 messages_zh.properties 的文件编码,果然有问题,IDEA 默认是用 latin1 编码保存 properties 文件的。 修改配置之后,再次编辑 properties 文件,将其中的乱码更正为中文,再次保存。文件编码就变成了 utf-8 ...

阅读全文...

雪夜,惊心动魄12小时驾车到济南

临近元旦,媳妇家的小舅去世了。由于媳妇怀孕,丈母娘腰不好,本打算不去。但是早上六点接到丈母娘的电话,希望我能代表她去济南,说是一夜未眠,估计也在纠结。于是我临时请假,跟几个大哥一行六人,下午从烟台启程出发济南。 本想坐动车,三个小时就能到济南。而且连续两天烟台下大雪,高速不开。但是大哥对驾驶技术非常自信,且想顺路去临沂见供应商,所以就改成开车了。 无法上高速 从烟台出发,因为大雪,高速不让上。一路向西,连续几个高速入口都不让上,在青岛雪小一些,但是只允许七座以下车辆上高速,而我们恰好是七座。。。不得已,全程从下道开往济南。 镜子一般亮的路面 潍坊市区路面就像镜子一样,上冻了,只能40公里的速度 ...

阅读全文...

tampermonkey 代码规范与组织结构

修改几年前给媳妇写的一个 tampermonkey 自动挂会计网校学时的插件。由于只是网校的页面做了些许修改,其实代码需要调整的地方不多。但是发现已经看不懂了,逻辑混乱,无从下手。 赶上元旦假期,时间充裕,所以思考了一下,怎样组织 tampermonkey 的代码,可读性更高,最好能形成代码规范,以后再调整时,可以瞬间秒懂。 代码结构 分成三大部分,之间用注释块隔开。 全局配置变量 自动逻辑。引入类 route 机制,多页面逻辑清晰。 公用函数 多文件还是单文件 例如要在一个网站里,多个页面间跳转,还是单文件比较好。原因: 逻辑清晰 函数可复用 可复用代码 还是做 vim snippe ...

阅读全文...

红米 K30 至尊纪念版入手体验

无法忍受老小米手机电池续航能力越来越弱,加上卡顿,所以决定买个新手机。纠结了好久,看同事入手的红米 k30 至尊版确实不错,就选择了同款。 惊喜之处 小米换机迁移数据和应用很方便。连微信聊天记录都自动迁移。只需要重新安装 google play,其他应用无缝迁移。 充电快,确实肉眼可见的速度。 电池续航能力逆天,也可能是之前老手机电池不行了,总之,玩一天还不用充电确实舒服。 我最喜欢的是弹出摄像头这个设计。对比了几款小米手机,实在无法接受屏幕上钻个孔的设计,还是完整屏幕看着舒服。 小米商城抽中一个小米10周年体恤衫,还有一个圣诞红包。 Android 10 的权限控制进一步完善,对支付宝这种 ...

阅读全文...

微信小程序中点击按钮加入企业微信群聊

添加方法 参考官方文档 https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wxaae6519cee98d824&token=377852292&lang=zh_CN 企业微信管理后台创建群聊 直达链接 https://work.weixin.qq.com/wework_admin/frame#customer/config/interactive 或者,登录企业微信网页版 - 联系客户 - 加客户 - 加入群聊 - 设置 加入微信企业群聊的三种方式 通过二维码加入群聊 通过立牌加入群聊 在小程序中加入群聊 小程序类目限 ...

阅读全文...

微信小程序如何兼容企业微信

昨天发现在企业微信中无法进行小程序登录操作。原来微信和企业微信存在着些许平台差异: 账号系统差异 后台获取用户信息的接口不同 微信拿到的是个人信息,企业微信拿到的是个人在企业中的信息 API 接口及组件差异 企业微信 API 感觉市场潜力巨大,可以有效管理客户资源,避免因员工离职造成客户资源流失。而且,微信渗透率极高,我觉得搞不好会抢占一大批 CRM 的市场。 如何判断是在哪个平台打开的 wx.getSystemInfoSync 可以判断小程序是运行在微信中,还是企业微信中。 小程序可以在微信和企业微信中调用此接口,但是在企业微信中调用此接口时,会额外返回一个 environment 字段 ...

阅读全文...

拼多多上的华强北蓝牙耳机质量逆天

作为永辉超市的股东,我一次次选择了政治不正确,在拼多多上频繁购物。 这一次,我冒险购买了华强北蓝牙耳机,实际上就是仿苹果 AirPods Pro 3 代。 京东上的正品需要近 2K,而拼多多上的华强北版只需要 100 左右,这巨大的价格差让我无法相信这质量是否靠谱。 为何我需要蓝牙耳机 烟台的冬天挺冷的,刷步数时,就不方便看手机了。所以,需要一个续航能力强的蓝牙耳机听播客解闷。 在家里带有线耳麦不方便来回走动;手头上的旧款单耳蓝牙耳机续航能力太差,想用的时候基本没电 我发现周边的年轻人全天带着蓝牙耳机,而且还都是 AirPods。被他们说的主动降噪功能吸引到了。 但我不确定是否真的需要,不 ...

阅读全文...

近期节日

查看更多节日