- 博客(59)
- 资源 (1)
- 收藏
- 关注
原创 Tauri开发桌面端使程序拥有管理员权限,桌面图标有小盾牌
摘要:Rust的std::process::Command执行系统命令时需要管理员权限时,可修改Tauri项目的build.rs文件,使程序运行或打包时拥有管理员权限
2026-01-29 15:26:57
364
原创 安卓apk解析包失败,重新签名
最近对一个2年前项目做适配,发现部分手机出现apk解析失败,于是在网上大量研究发现,需要用到jarsigner工具签名,在签名时,要加上2个参数:复制代码代码如下:-digestalg SHA1 -sigalg MD5withRSA造成无法签名错误的原因,初步估计是JDK版本的问题。JDK 1.6签名没事,但是1.7会出这个问题。完整的签名命令如下:打开cmd命令提示符,切换...
2018-09-29 11:00:31
2694
原创 散装变量写到崩溃?struct 给你的数据一个“正式编制”
本文介绍Rust中struct与impl的使用:用struct将相关数据打包成“数据档案卡”,通过#[derive(Debug)]实现打印;用impl块将方法绑定到类型上,实现area()、can_hold()等操作,强调&self借用机制与关联函数作为构造器的用法。结合..big字段更新语法,展示结构体的灵活应用,并通过Song结构体实战练习,巩固对所有权与可变性的理解。
2026-11-02 09:31:35
306
原创 学了 8 天所有权,敢来拆这颗“5 处错误的炸弹“吗?
本文通过一个“病人登记程序”挑战,揭示了Rust所有权系统中的5处典型错误:4处编译报错(E0382、E0502、E0596)与1处运行时panic(字符边界错误)。涵盖所有权转移、借用规则、可变借用、字符串切片边界等核心知识点。强调修复关键在于理解病因而非盲目修改,旨在提升对生命周期与借用检查的直觉。最终目标是实现“看到红字即有修复方案”的出师境界。
2026-10-29 16:44:10
378
原创 红色报错别再截图求助了:三大高频报错急救手册(建议收藏)
学 Rust 的前两周,屏幕大概红了不下 50 次。今天不教新东西,只做一件事:把新手期 99% 会撞上的三大报错(E0382 / E0502 / E0596)逐个拆解,每个都给"病因 + 急救方案"。
2026-10-29 16:41:54
74
原创 那个吓退 50% 新手的撇号 ‘a,其实 90% 的代码根本不用写
'a——一个撇号加一个字母,官方文档里最短、社区论坛里最吓人的语法。多少人搜"rust 生命周期"搜到劝退。但先说结论:它不是要你学的新东西,而是编译器一直在悄悄替你做的事。今天把它拉到明面上。
2026-10-29 16:37:36
322
原创 3 行代码写崩一个函数?切片才是 Rust 字符串处理的正确姿势
Rust切片是零复制的数据视图,&str即字符串切片,通过“划重点”方式引用原文。其核心优势:零成本、编译期越界检查、借用检查防止悬空引用。处理字符串首单词时,不可用字节下标硬切(如[..2]),否则因UTF-8中文占3字节会触发byte index not a char boundary panic。正确做法是用find(' ')找空格位置,返回&str切片,确保安全、高效、支持中文。
2026-10-26 09:40:42
321
原创 String 还是 &str?一张表终结 Rust 新手第一大纠结
函数参数应优先使用 &str,因其可自动接收 String 引用和字符串字面量,实现“通吃”,符合 Rust 社区最佳实践。String 是拥有所有权的可变文本(如书),&str 是只读视图(如书签),字面量本质为 &str。参数用 &str 灵活高效,避免编译错误,且契合借用规则。记住:参数用 &str,存储用 String,返回新文本用 String,临时查看用 &str。
2026-10-23 09:00:21
329
原创 一张“借书证“解决所有 move 报错——& 和 &mut 全解
借用(Borrowing)是Rust中零成本共享数据的核心机制:通过&(不可变引用)或&mut(可变引用)借阅数据,不转移所有权,避免复制开销。关键规则:同一时间只能有多个不可变引用或一个可变引用,防止数据竞争。本文以print_len为例,展示如何用&String替代String参数,实现高效、安全的读取。借用让代码既高效又安全,是避免“杀鸡用牛刀”的更优解。
2026-10-22 15:48:21
234
原创 揭秘 Rust 最反直觉的设计:move 之后原变量凭空消失
Rust中赋值的差异源于所有权机制:堆上类型(如String)赋值即“移动”(move),原变量失效,防止双重释放;而栈上类型(如整数)实现Copy trait,赋值为廉价复制,原变量仍可用。整数无需clone因无内存管理负担。滥用clone会带来性能开销,正确做法是根据需求选择:需两份数据用clone,仅临时使用应借用来避免成本。
2026-10-21 11:37:06
281
原创 没有 GC 也不用手动释放内存,Rust 凭什么不泄漏?
Rust通过编译期所有权系统实现内存安全:栈上数据自动管理,堆上数据由唯一所有者负责。遵循“唯一所有者、同一时刻仅一个主人、作用域结束即释放”三规则,无需垃圾回收或手动free,即可避免内存泄漏与双重释放。其核心是将运行时的内存管理转化为编译期的产权登记,兼顾性能与安全。
2026-10-21 11:33:07
188
原创 学了 5 天 Rust,这 10 道题敢来验收吗?(全对算我输)
本文通过10道自测题检验读者对Rust基础概念的掌握,涵盖Cargo命令、变量不可变性、类型系统、控制流与函数返回等核心知识点。强调“看懂≠记住≠会用”,倡导以间隔重复强化长期记忆。结合答案解析与易错点排行,指出高频陷阱如分号误用、区间边界混淆、遮蔽与mut混淆等,并提出“重做而非重读”的复习策略。最终目标是通过主动回忆与实践,真正实现知识内化,为后续深入学习打下坚实基础。
2026-10-21 11:30:52
193
原创 代码写成一锅粥?Rust 用“函数 + 模块“给你立好收纳规矩
四天下来,你的猜数字游戏已经能玩了——但所有代码都挤在 main 里。现在写 30 行没事,写到 300 行、3000 行呢?今天学函数和模块,给你的代码立好"收纳规矩"。这是模块一的最后一天,明天我们要盘点验收。
2026-10-20 10:06:33
228
原创 if 竟然是一个“值“?Rust 的控制流和你以前写的完全不一样
先说个昨天的承诺:Day 2 我们做的猜数字游戏只搭了骨架,说好"学完控制流就把它写完整"。今天不仅还账,你还会见到两个颠覆认知的写法:if 能直接赋值给变量,loop 能用 break 返回结果。
2026-10-20 10:03:23
267
原创 为什么 Rust 的变量默认“不可变“?90% 的人第一周都在这里懵掉
📅 学习连载 Day 3 / 共 33 天 · Rust 编程语言 昨天我们搞定了 Cargo 全能管家,今天攻克:变量、可变性与基本数据类型(难度:L2 原理理解)昨天刚体验完 Cargo 的丝滑,今天写第一行"正经"代码就翻车:let x = 5;然后 x = 6;——编译器直接拒绝,还语重心长地给你发一篇小作文。别慌,这不是 Bug,而是 Rust 最重要的设计决策之一。今天讲透它。
2026-10-20 09:58:09
202
原创 为什么 Rust 程序员从来不用“复制粘贴开源代码“?
Cargo是Rust的官方构建工具与包管理器,堪称编程界的“全能管家”。它自动处理依赖下载、版本管理、编译构建,只需在Cargo.toml中声明依赖,如rand = "0.8",Cargo便会从crates.io自动拉取并解析依赖关系。通过cargo new、cargo add、cargo run等五个核心命令,开发者可轻松创建项目、引入库、运行程序。Cargo.lock文件确保环境一致性,提交至Git是社区惯例。从此,引入第三方库不再繁琐,真正实现“一行配置,生态即用”。
2026-10-20 09:52:40
174
原创 被吹了 10 年的 Rust,到底值不值得你熬过前两周?
Rust以“高性能+编译期内存安全”著称,被誉为“带防撞系统的赛车”。虽因所有权系统难倒初学者,但前两周的挫折随经验消退。本文手把手10分钟搞定环境配置:通过rustup安装,用cargo创建项目,运行第一行println!代码。强调读懂报错、拒绝糊弄,养成良好习惯。核心要点:Rust=快且不崩,环境三件套(rustup/rustc/cargo),起手式为cargo new+cargo run。劝退的从不是语言,而是无节奏自学。
2026-10-20 09:51:13
201
原创 form表单校验对象中的对象的属性 / 根据表单中某一个数据动态添加其他项是否必填
Element的form表单校验对象中的对象的属性 / 根据表单中某一个数据动态添加其他项是否必填
2024-12-18 14:46:19
657
转载 Android 任意View转为bitmap图片
在开发的过程中有时会碰到这样的需求,把一个activity或者一个view变成图片分享出去。从网上收集了一些资料之后经过整理现在分享出来,教大家实现activity,scrollview,listview,recycleview,画中画以及在后台把layout生成图片的方法。如有侵权的地方,请及时告诉我改正,谢谢。代码在这里 https://github.com/iotxc/ScreenShootDemo在贴方法之前我要提醒大家注意一点,view中有图片的,如果是本地图片那么网上的代码你拿过来直接用
2021-04-08 10:57:39
1636
原创 android studio编译、打包超级慢
在C盘user用户目录下.gradle文件夹下面创建gradle.properties文件gradle.properties文件内容:# 编译时使用守护进程org.gradle.daemon=true#JVM最大允许分配的堆内存,按需分配org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8#使用并行编译org.gradle.p...
2021-01-12 16:32:24
3263
原创 Android清理缓存,获取缓存大小
接上篇文章保存至本地缓存后进行清理,创建CaheUtil.java工具类public class CaheUtil { public static final int SIZETYPE_B = 1;//获取文件大小单位为B的double值 public static final int SIZETYPE_KB = 2;//获取文件大小单位为KB的double值 public static final int SIZETYPE_MB = 3;//获取文件大小单位为MB的do.
2020-09-22 11:03:50
296
原创 Android将Bitmap保存至本地缓存,网络图片转Bitmap
使用Glide工具,在build.gradle添加Glide,大括号里面不用写,我这里写是因为和我的其它第三方有冲突implementation("com.github.bumptech.glide:glide:4.11.0") { exclude group: "com.android.support"}annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'获取BitmapGlide.with(get.
2020-09-22 10:59:47
1386
原创 android星级评价、星星进度条实现
<RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:numStars="5" android:rating="4" style="@style/mRatingBar" android:p.
2020-09-16 14:59:29
729
原创 android加载本地html实现图表,Echarts宽度100%变为100px
html页面<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>ECharts</title> <!-- 引入 echarts.js --> <script src="echarts.min.js"></script> <script src="jquery-1.7.1.min.js
2020-07-27 17:34:47
264
原创 16进制的字节数组与16进制的字符串互相转换 android蓝牙通信
byte[] bytes = Hex16StringToHex16Byte(“A5 01 01”);// 此方法用于将16进制的字符串转换成16进制的字节数组public static byte[] Hex16StringToHex16Byte(String _hex16String){ //去掉字符串中的空格。 _hex16String = _hex16String.replace(" ", ""); if (_hex16String.length() / 2 == 0.
2020-07-07 18:28:22
484
原创 Bitmap 拉伸,缩放,裁剪,旋转,偏移
/** * 根据给定的宽和高进行拉伸 * * @param origin 原图 * @param newWidth 新图的宽 * @param newHeight 新图的高 * @return new Bitmap */ private Bitmap stretchBitmap(Bitmap origin, int newWidth, int newHeight) { if (origin == null)...
2020-06-30 11:46:23
1143
原创 SmartRefreshLayout包裹RecyclerView点击item或者打开新页面返回出现背景变黑问题
SmartRefreshLayout包裹RecyclerView出现背景变黑,原因是我在AndroidManifest.xml设置了<application android:hardwareAccelerated="false"/> //false关闭硬件加速 true打开硬件加速application里面android:hardwareAccelerated属性设置false导致全局硬件加速关闭,网上搜索资料发现可以在Application、Activity、Window..
2020-06-29 10:49:32
659
1
原创 Android刻度表进度条
下载进度条Module链接:https://pan.baidu.com/s/11nejB9Lvwhfwr-hcH9ilRA提取码:9w8v布局文件:<com.moos.library.CircleProgressView android:id="@+id/progressView_circle" android:layout_width="240dp" android:layout_height="240dp" android:layout_ma..
2020-06-23 18:35:08
837
原创 Android自定义消息通知Notification
NotificationChannel channel = null;if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){ //创建 通知通道 channelid和channelname是必须的(自己命名就好) channel = new NotificationChannel(CHANNEL_ID, CHANEL_NAME, NotificationManager.IMPORTANCE_DEFAULT); channel.e.
2020-06-18 15:50:45
745
原创 Android图片压缩的4种方法
//缩放法压缩文件public static void compressBitmapToFile(Bitmap bmp, File file){ // 尺寸压缩倍数,值越大,图片尺寸越小 int ratio = 1; // 压缩Bitmap到对应尺寸 Bitmap result = Bitmap.createBitmap(bmp.getWidth() / rat...
2020-03-12 15:15:08
737
原创 android将view内容保存为图片在本地
Handler mHandler = new Handler();/** * 生成二维码图片 */private void getShareImg() { cvLayout.setDrawingCacheEnabled(true); cvLayout.buildDrawingCache(); mHandler.postDelayed(new Runnable(...
2020-03-09 09:44:15
2760
原创 Android在TextView中一段文字部分文字添加点击事件和超链接
@BindView(R.id.test) TextView test; private void tests() { SpannableString str = new SpannableString("点击一,点击二,跳转网页"); str.setSpan(new ClickableSpan() { @Override...
2019-12-26 18:25:19
1829
原创 android调用qq打开指定qq号进行聊天
跳转指定qq号聊天 if(isQQ(this)){ String qqUrl = "mqqwpa://im/chat?chat_type=wpa&uin=你的qq号&version=1"; startActivity(new Intent(Intent.ACTION_VI...
2019-12-26 10:12:11
1438
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅