- 博客(444)
- 资源 (33)
- 收藏
- 关注

原创 鸿蒙 Next 快速开发备忘
1. 文本末尾显示....textOverflow({overflow:TextOverflow.Ellipsis}).ellipsisMode(EllipsisMode.END)
2024-05-10 14:13:44
292

原创 鸿蒙 Next 开发问题备忘
1,鸿蒙DevEco Studio 机测试Failure[INSTALL_FAILED_APP_SOURCE_NOT_TRUSTED]勾选自动签名,然后自动跳转登录华为网站,登录即可。
2024-04-28 14:31:37
787

原创 Android快速开发教程备忘录
Android DataBinding 从入门到进阶https://www.jianshu.com/p/bd9016418af2
2020-11-11 22:26:49
503

原创 Android开发问题备忘录
Android 使用 databinding:view must have a tag这个坑是databinding编译时的问题,将xml布局文件重命名之后,就解决了如:activity_main.xml 改为activity_main_2.xml
2020-10-20 15:21:17
972

原创 Android知识点备忘录
Android Fragment onCreat() 方法是在Activity onCreat 时候调用。onCreateView 调用多次。
2020-10-13 09:42:09
239

原创 Git使用教程
配置用户信息当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:$ git config --global user.name "John Doe"$ git config --global user.email [email protected]再次强调,如果使用了 –glo
2016-12-29 10:15:11
741

原创 使用Gradle发布项目到JCenter仓库
这篇文章介绍通过Gradle把开源项目发布到公共仓库JCenter中,方便你我他的事情,我们都是很懒的嘛。JCenter现在是Android Studio中repositories的默认节点了,之前是Maven的,不过JCenter是兼容Maven的,所以放心使用。步骤基本是按Publishing Gradle Android Library to jCenter Repository这里来的
2015-04-18 19:07:53
2390
1

原创 Android学习——查看apk签名 和 keystore 的信息
1、查看 keystore $ keytool -list -keystore debug.keystore结果Keystore type: JKSKeystore provider: SUNYour keystore contains 1 entryandroiddebugkey, Mar 21, 2013, PrivateKeyEntry,
2014-01-23 11:52:53
32771
原创 Kotlin Multiplatform 跨平台开发的新范式
由于 Android 系统内置的 ART/Dalvik 虚拟机本质上是 JVM 的衍生实现,后端服务通常也运行在传统 JVM 环境中,所以 Kotlin/JVM 可以同时支撑移 Android 和服务端业务逻辑。KMP 不像早期的 React Native 一样,与原生通讯需要依赖 JavaScript Bridge 机制,JS ↔ Native 的序列化/反序列化过程有着显著的通信延迟。KMP 采用将 Kotlin 代码编译为各平台原生二进制文件的方式,这种方式使得最终产出的应用性能接近原生开发水平。
2025-08-28 09:51:11
68
原创 Flutter镜像替换
若涉及项目依赖下载,可执行 flutter pub get 或 cd android && ./gradlew clean(Mac/Linux)/ gradlew clean(Windows)测试。打开 Flutter 项目目录下的 android/build.gradle 文件。配置后若出现依赖冲突,可删除项目的 android/.gradle 缓存目录后重试。镜像源可能存在同步延迟,若某镜像失效,可尝试切换其他镜像(如华为云、腾讯云镜像)。// 保留其他必要仓库(如本地仓库)
2025-08-02 17:05:19
985
原创 Windows 11 强制删除一个文件夹及其中的所有内容
在 Windows 11 上,你可以使用 命令提示符(cmd) 或 PowerShell 来强制删除一个文件夹及其中的所有内容。del /f /s /q “C:\test-folder*.*” —— 先删除 C:\test-folder 内所有文件。如果目标文件夹需要管理员权限删除,请以 管理员身份运行 cmd(右键 cmd → 选择“以管理员身份运行”)。rmdir /s /q “C:\test-folder” —— 再删除空文件夹。/s —— 删除指定文件夹及其中所有子文件夹和文件。
2025-07-23 11:03:47
459
原创 Android原生TabLayout使用技巧
1.碰到这种问题我们第一时间应该查看 Android 源码,在源码中会发现 TabLayout 的默认属性中 tabTextAppearance 继承了 Button 的 textAllCaps 属性.我们通过查询TabLayout 源码发现,在style文件中,TabLayout 继承来自 Button 属性 textAllCaps = true,这个属性是设置英文为使用大写。TabLayout 在xml文件设置 tabTextAppearance 属性。1,TabLayout 英文自动大写的问题。
2025-07-11 13:30:21
129
原创 Android ViewBinding 使用与封装教程
XML 中的 android:id=“@+id/text_title” 在 Binding 类中转为 binding.textTitle(下划线转驼峰)。核心功能:为每个 XML 布局文件自动生成一个绑定类(如 ActivityMainBinding),直接暴露所有带 ID 的视图引用。优点:避免繁琐的 findViewById(),类型安全且编译时检查。ViewBinding 仅处理视图引用,无数据绑定功能。Sync Now 同步项目。场景 推荐方式。
2025-07-10 18:34:54
108
原创 Yolov5 训练自定义模型,并在Android上运行
其中weights里存储两个训练出的模型,分别为best.pt和last.pt,顾名思义,best.pt为跑出来结果最好的模型。二者在体积和准确度有差别,可以自行根据项目要求使用。本篇只介绍了转成 tflite的方式。使用ncnn的方式在android设备上进行yolov5的目标检测。点击进入或者在 Pychram 配置之后进入。下载 yolov5s.pt 预训练模型。先进入 创建的python 虚拟环境。项目先配置创建的Python 环境。如果默认不指定就是 float16。安装 Anaconda。
2025-07-07 14:30:59
90
原创 Android 获取签名 keystore 的 SHA1和MD5值
解决方法如下:**Setting>Experimental>勾选Configure all gradle tasks during Gradle Sync(this can make Gradle Sync slower)**最后点击Apply之后,还需要同步才能生效。Studio中,在右侧找到菜单栏“Gradle”—>”:app”—>“Tasks”—>“android”—>双击“signReport”即可。这时在Terminal中可以查看debug版本、resalse版本的SHA1和MD5值。
2025-06-14 15:27:27
388
原创 Git 提交了错误代码怎么办?
通过分场景精准选择回滚策略,可最大限度降低代码丢失风险,保障团队协作稳定性。紧急情况下主分支回滚后,建议结合 CI/CD 自动化测试验证数据一致性。
2025-06-04 15:11:18
340
原创 超高频RFID读写器天线分类及应用场景
超高频RFID(Radio Frequency Identification,射频识别)技术作为一种先进的自动识别技术,已经在多个领域得到了广泛应用。作为RFID系统的重要组成部分,超高频RFID读写器天线不仅影响着系统的读取距离、读取速度和准确性,还决定了RFID系统的适应性和灵活性。本文将详细介绍超高频RFID读写器天线的分类及其适用场景。
2025-05-30 18:10:09
194
原创 海底捞为何用上了RFID
在海底捞的后厨,每一份食材都被赋予了一个独特的RFID标签,这个“数字身份证”详细记录了食材的生产日期、重量、供应商以及保质期等关键信息。海底捞使用RFID技术,不仅为海底捞带来了显著的经济效益和社会效益,也为餐饮行业的发展提供了有益的借鉴和启示。而RFID技术的应用,实现了数据的自动化采集和处理,减少了人为因素的干扰,提高了数据的准确性和可靠性。而且,海底捞1000多家门店分散在全国各地,公司需要定期复盘各个区域出现的问题,排除有可能大规模出现的风险,一个高效的数字化工具必不可少。
2025-05-30 18:09:08
123
原创 什么是RFID电子标签
产品专属的RFID电子标签,可以记录产品从源厂家到销售终端的所有信息,电子标签中的唯一编码、电子标签的仿造难度以及电子标签的自动探测特点,使电子标签具有产品防伪和防盗作用,在产品上使用RFID电子标签,还可以起到品牌保护的作用,可广泛应用于药品、门禁、门票等身份识别领域。总之,随着技术的不断进步和应用领域的不断扩大,RFID电子标签将朝着低成本化、高效化、智能化和多应用化方向发展,为各领域的发展提供更高效、更准确、更智能的支持。未来,RFID电子标签将朝着快速化方向发展,进一步提高生产的速度和效率。
2025-05-30 17:53:34
173
原创 UHF RFID无源标签的芯片供电原理
无源标签对来自阅读器的射频能量,除作为标签信片电源之外,更重要的是通过无线数据传输实现阅读器对标签的指令信号传送,标签对阅读器的应答信号传送。无源标签利用无线功率传输获取能源,转变为直流电压,对片上电容充电储能,然后通过放电对负载供电,因此,无源标签的供电过程就是电容充放电过程。无线功率传输的电源是在标签没有电源的情况下通过接收阅读器射频场能,倍压整流建立电源,因此,其接收灵敏度受前端检波二极管管压降限制,对于CMOS芯片,倍压整流接收灵敏度在-11~-0.7dBm之间,是无源标签的瓶颈。
2025-05-30 17:52:37
322
原创 Android Java 版本与 Gradle 版本兼容问题
在 gradle-wrapper.properties 文件中,修改 distributionUrl 属性,将其修改为指向 Gradle 8.9 的分发版。当前项目的 Java 21.0.3 和 Gradle 4.8.1 不兼容,导致 Gradle 正确构建项目。您的版本当前配置为,使用不兼容的 Java 21.0.3 和 Gradle 4.8.1,无法同步项目。Gradle 版本过低,这里给出建议升级到 Gradle 8.9 版本。Java 版本过高,这里给出最大兼容版本为 10。(2)降级 Java。
2025-05-29 17:18:06
291
原创 Git 克隆子分支
打开你的命令行工具(例如Terminal、Git Bash等),然后使用git clone命令并指定你想要克隆的分支。在Git中,通常我们谈论的是从一个仓库的特定分支克隆,而不是所谓的“子分支”。--single-branch 选项确保只克隆指定的分支,这有助于节省空间和减少克隆时间。-b feature-x 指定你想要克隆的分支。
2025-05-20 14:37:06
337
原创 Git Worktree 使用
问题在于,由于你正在开发一个重要的新功能,你的工作仓库(你的“工作树”)一片混乱。一旦你确定你的工作被安全地跟踪,并且存在安全的状态,以便在出现严重错误时可以恢复,你就不会害怕尝试新的想法。我发现最好的方法是创建一个工作树,执行需要它的任务,提交工作,然后删除该工作树。工作树与主工作副本有独立的路径,但可以处于不同的状态并位于不同的分支。Git 中新工作树的优势在于,您可以进行与当前任务无关的更改,提交更改,然后在稍后合并,所有这些都不会干扰您当前的工作环境。现在你可以将此工作树视为你的主工作区。
2025-05-17 14:10:38
1084
原创 iPhone 和 Android 在日期格式方面的区别
我们传递和储存时间一律使用时间戳。在 JS 中可以使用 date.toISOString();// 输出标准的 ISO 8601 时间格式不同时区转换可以通过设置timeZone来实现。
2025-05-07 14:23:57
519
原创 排序-计数排序
计数排序(Counting Sort)是一种线性时间复杂度的排序算法。它适用于排序一定范围内的整数,特别是当范围不大时,表现非常高效。
2025-05-07 11:31:08
925
原创 C语言 printf函数和scanf函数
/ 前16位数字是准确的, 后面的都不准确。// 前8位数字是准确的, 后面的都不准确。// 清空输入缓存区。// 可以输入 数字 空格 数字, 或者 数字 回车 数字。// 无符号十六进制整数(不可以输出负数)// 无符号十六进制整数(不可以输出负数)// 单、双精度浮点数(默认保留6位小数)// 以最短输出宽度,输出单、双精度浮点数。// 无符号八进制整数(不可以输出负数)// 无符号整数(不可以输出负数)// 有符号整数(可以输出负数)// 输入 数字,数字 即可。
2025-05-07 09:45:45
61
原创 C语言语句基础
switch也是一种分支语句,常常用于多分支的情况,比如将表达式和一系列值进行比较,从中找出当前匹配的值。switch(整型表达式) //注意,这里必须是 整型,int long 甚至 char 都行,但 float 不可以语句项;语句项里是一些casecase 整型常量表达式:语句;但在switch语句无法直接实现分支,搭配break使用才能真正实现分支效果,即: Cswitch(整型表达式) //控制表达式case 整型常量表达式: //分支标号,注意,这里必须是 整型常量语句;
2025-05-05 17:34:05
51
原创 C语言操作符、关键字、#define和存储
C语言中的宏(Macro)即宏定义(macro dfinition),是一种预处理指令,它提供了一种机制,可以用来替换源代码中的字符串,用于批量处理。宏的名字一般采用大写字母,这是一种规范,而非强制,但希望所有程序员都能遵守这种规范。注意,C语言是区分大小写的,大小写字母的ASCII码值是不同的。int main()//因为宏是完全替换此处代码//相当于 printf("%d\n", 4 * 2 + 3);return 0;
2025-05-05 17:13:36
169
原创 C语言基本概念
一般的,在一个变化过程中,假设有两个变量x、y,如果对于任意一个x都有唯一确定的一个y和它对应,那么就称x是自变量,y是x的函数。x的取值范围叫做这个函数的定义域,相应y的取值范围叫做函数的值域。
2025-05-05 16:21:21
32
原创 Android 手动删除 AAR jar 包 中的文件
A.aar B.aar 有类冲突;使用 exclude 排除本地aar无效;所以要删除其中一个aar中导致冲突的包或类;直接解压aar然后再解压jar,删除冲突的类后 ,再使用指令打包jar和aar;一定要使用指令打包jar和aar,zip改后缀成aar或jar是不可以的;
2025-04-29 11:30:36
284
原创 RSA + AES 混合加密通信
RSA + AES 的组合方案是一种经典的“混合加密”方案,它结合了非对称加密的安全性和对称加密的高效性,解决了密钥分发和大量数据加密的难题。单独使用 AES(对称加密)或 RSA(非对称加密)都存在一定的安全隐患,因此,结合 RSA 和 AES 的混合加密方式成为一种常见的安全解决方案。它采用分组加密的方式,将数据分成固定长度的块,然后使用密钥对每个块进行加密。通过这种组合,我们既能享受 AES 的高效加密能力,又能利用 RSA 解决密钥分发的安全问题,真正实现了。,适用于大多数的安全通信场景。
2025-04-22 14:20:53
213
转载 5分钟手把手教你开发一个MCP服务
使用装饰器暴露函数能力,并通过文档字符串描述功能(供大模型理解用途):import os"""获取当前用户桌面上的所有文件列表(macOS专属实现)""""""生成个性化问候语(中英双语版)"""return f" 你好 {name}!)"mcp.run(transport='stdio') # 启用调试模式关键点:工具函数需返回JSON序列化兼容的数据类型(如字符串、列表、字典)。
2025-04-22 09:17:34
422
转载 5分钟手把手教你开发一个MCP服务
MCP服务就像乐高积木,你可以随意拼接功能模块。换个端口:app.run(port=5001)代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。
2025-04-22 09:04:27
201
原创 UHF-RFID基础知识
A:符合G2协议的标签和读写器,应该支持必备的命令有十一条:Select(选择),Query(查询), QueryAdjust(调节查询), QueryRep(重复查询), ACK(EPC答复), NAK(转向裁断), Req_RN(随机数请求),Read(读),Write(写),Kill(灭活),Lock(锁定)。上述三条Q字头的命令体现了G2的抗冲突机制:随机数为零的标签才能发回RN16,若同时有多个标签随机数为零,而不能正确解码,就策略性地重发Q字头的命令或组合,给被选择的标签群,直到能正确解码。
2025-04-19 08:50:19
565
原创 UHF RFID 标签分区说明和锁定介绍
RESERVER区:8byte(4字)大小,前4byte(2字)为摧毁密码(用于摧毁标签,一般用不到),后4byte(2字)为访问密码(用于进行写数据和锁定操作),默认值为:0000 0000 (摧毁密码) 0000 0000 (访问密码)。长度根据实际需要写入的数据长度填,比如:0001,长度为1word,4位(需要注意的是,数据位长度必须为4的倍数),加上长度控制位0800,软件中长度填写2;注意:如要进行密码区之外的区域的锁定操作,需要先锁定两个密码区,才能锁定其他区域。永久锁定的区域无法被解锁。
2025-04-18 17:21:36
705
JD-GUI Window下的 jar2java 有图形界面的 ( jd-gui-0.3.3.windows.zip
2011-12-18
sqlite developer SqliteDev387.zip sqlite管理工具
2011-12-18
精益数据分析 Lean Analytics.pdf
2018-06-18
viPlugin_2.9.0 eclipse 插件 附带xx方法
2012-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人