自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ganshenml的专栏

(~ ̄▽ ̄)~

  • 博客(100)
  • 资源 (5)
  • 问答 (3)
  • 收藏
  • 关注

原创 【GIT】Git 本地无法识别远程分支的原因与解决方法 not a valid ref

本文分析了Git本地无法识别远程分支的常见问题及解决方案。主要问题包括:本地未抓取远程分支、fetch配置限制、upstream配置错误、分支权限或大小写问题等。解决步骤包括:检查远程仓库地址、修复fetch配置、重新抓取远程分支、设置正确upstream等。关键建议是确保fetch配置抓取所有远程分支,并注意upstream配置与远程分支一致。通过系统排查,可解决本地与远程分支不一致的问题,保证开发环境正常运行。

2025-12-04 14:04:13 330

原创 【Web】证书(SSL/TLS)与域名之间的关系:完整、通俗、可落地的讲解

HTTPS证书生效的核心规则是域名必须匹配证书中声明的域名。匹配方式有三种:1)精确匹配单个域名;2)通配符匹配(.example.com),但只能匹配一层子域且不能用于多级;3)SAN证书可包含多个不同层级的域名。通配符证书有严格限制:只能有一个号且在最左端,不能匹配多级或父域。对于复杂多级域名结构,SAN证书是最灵活的解决方案。HTTPS的安全机制要求严格域名匹配,防止证书滥用。实际应用中,需根据业务需求选择合适的证书类型,确保所有访问域名都在证书覆盖范围内。

2025-11-25 11:40:12 515

原创 【Web】域名与 Cookie 的关系:原理、规则与多级域名共享

本文系统讲解了 Cookie 与域名的关系,核心内容包括:Cookie 是浏览器存储的文本数据,用于登录状态等用途;出于安全考虑,Cookie 必须绑定特定域名;Domain 规则决定了 Cookie 的访问范围,主域设置可被子域共享,但子域设置不能被父域访问;判断依据是请求域名是否以 Cookie 的 Domain 结尾,与域名级数无关;跨子域共享需设置 Domain 为主域,并配合 SameSite 和 Secure 属性;文章还指出了常见错误及解决方案,帮助开发者正确使用多级域名 Cookie 共享功

2025-11-25 11:25:46 541

原创 sed 流编辑器在前端部署中的作用

摘要: sed(流编辑器)是Linux/Unix中的命令行文本处理工具,通过流式处理实现高效编辑,适用于自动化部署。其核心功能包括文本替换(如s/old/new/g)、行删除(如3d)和插入(如1i)。在前端部署中,sed常用于构建后动态替换环境变量(如API地址、版本号),避免重复构建。典型场景包括:注入环境变量、修改Nginx配置、Docker镜像配置等。由于前端静态文件无法运行时读取配置,sed成为跨环境部署的关键工具,实现“一次构建,多环境适配”。 关键词: sed、流编辑器、文本替换、自动化部署、

2025-11-24 10:06:57 861

原创 【Android】 Gradle 下载后本地使用方式(macOS / Windows通用)

摘要:在Android开发中,为了避免网络受限或加快构建速度,可以手动下载Gradle分发包(推荐gradle-x.x.x-all.zip)并配置本地使用。操作步骤包括:将下载的zip文件放入.gradle/wrapper/dists/对应版本目录,修改gradle-wrapper.properties文件指向本地路径,并在Android Studio中启用离线模式。这种方式适用于内网、离线开发或CI/CD环境,能显著提升构建速度并确保版本一致性,但需手动管理文件更新。

2025-10-24 11:00:12 1203

原创 【Web】Vue 3 中 router 参数传递的 4 种方式

Vue 3 + Vue Router 4 参数传递方式总结 query参数:通过URL传递,刷新保留,适合普通参数(route.query获取) params参数:依赖命名路由,刷新丢失,适合临时数据(route.params获取) path拼接:参数嵌入路径,刷新保留,适合简单ID(如/detail/1) 本地存储:localStorage保存复杂数据,刷新保留但需手动清理 选型建议:优先用query传递常规参数;敏感/复杂数据用本地存储;简单ID用path;临时数据用params。 (全文98字,清晰涵

2025-10-14 09:20:48 417

原创 【Android】两个不同版本的jar放进一个工程打成aar会有问题么?

AAR打包与依赖冲突问题解析:分为打包与集成两个阶段。打包时,同包名同类会编译失败,Gradle会自动解决依赖版本冲突;不同包名可共存。集成阶段可能出现运行时错误,如方法缺失或行为差异。解决方案包括锁定单一版本、重定位包名或提供独立API。核心建议:避免在AAR中混用不同版本JAR,优先统一版本或隔离处理。

2025-09-26 09:35:20 414 1

原创 【java】双重检查加锁到底锁了个啥?

本文系统分析了多线程环境下单例模式的双重检查加锁(DCL)机制。重点阐述了锁对象的本质是对象实例而非引用变量,解释了为什么锁类对象和堆对象各有优劣:前者简单但粒度大,后者专用但稍复杂。文章明确了不能锁this或instance的原因,强调了static final的必要性,指出DCL仅保证初始化安全而非方法并发安全。最后用"工牌仲裁器"比喻形象说明DCL的核心作用是在首次初始化时提供互斥保护,后续访问则无需加锁。

2025-08-29 09:09:57 832

原创 【Android Studio】安装Trae插件后Android Studio 启动崩溃问题处理

摘要: 在macOS上安装Android Studio Preview时遇到启动失败问题,错误提示为无法加载libjli.dylib。经排查发现,问题源于Trae插件安装后错误设置了JDK路径(ms-11.0.27),导致IDE缓存了错误的Boot Runtime配置。解决方法是通过find命令定位并删除~/Library/Application Support/Google/AndroidStudioXXXX/studio.jdk文件,清除错误配置后重新启动IDE即可恢复正常。关键点在于使用find而非l

2025-07-25 14:40:07 1835 2

原创 【Web】插件开发之Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.

发送消息时,目标页面并没有注入 content script(即 content.js 未在该 tab 上运行)。报错,说明 popup.js 通过。

2025-06-18 10:11:20 2024 2

原创 【大模型】实践之1:macOS一键部署本地大模型

本文档解析了一个自动化部署Ollama+Open WebUI的bash脚本。该脚本主要功能包括:1) 检查并启动Ollama本地大模型服务;2) 自动下载指定模型(默认qwen:1.8b);3) 检测和安装Docker环境;4) 部署Open WebUI容器并配置端口映射(3000→8080);5) 自动打开浏览器访问Web界面(http://localhost:3000)。脚本采用分步执行方式,包含完善的状态检测和错误处理,生成详细运行日志(ollama_run.log),适合在macOS上快速搭建本地大

2025-06-12 14:57:59 1047

原创 【Web】腾讯云 COS 静态网站部署与自定义域名 HTTPS 全流程

本文详细介绍了如何将静态网站部署到腾讯云COS并配置自定义域名HTTPS的全流程。主要内容包括:1)本地项目构建生成静态资源;2)创建COS存储桶并设置权限;3)上传文件到存储桶根目录;4)开启静态网站托管配置索引文档;5)绑定自定义域名并设置CNAME解析;6)配置HTTPS证书;7)验证访问效果和常见问题排查。通过7个步骤实现前端项目的高效、安全部署,适用于Vue、React等框架打包后的静态网站。

2025-06-11 09:12:56 1324

原创 【大模型】MCP是啥?它和点菜、做菜、端菜有啥关系?

摘要: Model Context Protocol(MCP)是一套规范对话上下文管理的协议,确保AI模型在多轮交互中准确理解并传递上下文信息。其核心流程包括上下文收集、结构化编码、传递及动态更新,类似餐厅点餐单的标准化管理。MCP不涉及隐私控制,仅定义数据格式,实际数据是否上传取决于模型部署方式(云端/本地)。通过统一上下文规则,MCP提升对话连贯性,避免信息丢失,但需服务商另行保障数据安全。

2025-06-05 17:04:30 933

原创 【小程序】揭秘微信小程序用户手势识别机制:如何判定“人为触发”?

微信小程序对敏感API调用设有严格的手势触发机制,确保仅通过用户真实操作(如点击、触摸)才能调用权限接口。微信内部使用私有变量__wxUserGestureContext管理手势上下文,在用户操作时置为有效状态,敏感API调用时会验证该变量。开发者无法通过代码模拟或绕过此机制,如直接调用事件处理函数将因缺少有效上下文而失败。该设计保障了用户隐私与安全,开发者需将敏感操作绑定到真实用户事件上,避免无效调用。理解这一机制有助于优化小程序交互流程,确保功能正常使用。

2025-06-05 16:21:19 1235

原创 【Web】如何解决 `npm run dev` 报错 `address already in use 127.0.0.1:9005` 的问题

这个问题的根本原因是端口配置未彻底修改,并且由于间接引用的配置文件未被正确捕捉到,导致我们修改的端口并未生效。确保所有配置文件都修改正确:包括间接引用的文件,如。清理缓存和依赖:删除和构建产物,重新安装依赖。加强搜索手段:使用grep进行更为彻底的全局搜索,避免遗漏配置。优化配置文件管理:确保项目配置文件不被.gitignore排除,保持其可访问性。希望本文能帮助大家更好地理解端口占用问题的根本原因,并提供有效的解决方案。在开发过程中,确保所有配置文件的修改彻底且一致,是避免类似问题的关键。

2025-04-29 15:32:06 860

原创 H5 图片系列—new Image()加载图片是否会有缓存,从而img标签获取同一数据源显示时使用该缓存数据?

new Image() 加载图片后,浏览器会利用缓存,避免重复下载相同的图片。Vue 中的会使用图片的 URL,如果该 URL 被缓存,浏览器会直接从缓存中加载,无需再次发起网络请求。

2025-02-10 09:23:13 1031

原创 Android 更改包名

这个就是包名。同一台手机能否安装不同的APP就是依据这个标识来判断。它在gradle文件中指定。

2025-01-03 10:14:32 1557

原创 Git 拉取指定分支创建项目

如果你使用了 --single-branch 参数进行克隆,那么默认只会拉取指定分支,其他远程分支不会被克隆。这样只会克隆指定分支的历史,减少不必要的数据传输和存储。<repository_url>:远程仓库的地址。<branch_name>:要拉取的分支名称。–depth 1:只拉取最新一次提交记录。这可以进一步减少克隆的大小,加快拉取速度。因为项目过大,只需要部分分支的代码即可。当前克隆只针对一个分支。

2024-11-18 22:34:08 2062 1

原创 Web Edge浏览器访问http时转成了https

因为是http站点,且登录页跳转时指定的也是http(登录页有https,只不过未指定)。2.如果手动更改登录页地址为https,则重新通过主页来跳转,它就会是https,而并没有变成http;2.前往「设置」中的「隐私,搜索和服务」里的「安全性」,「清除以前允许的所有站点」的选项里,点击「清除」1.如果手动更改登录页地址为http,则重新通过主页来跳转,它就会是http,而并没有变成https;访问地址: edge://flags/#edge-automatic-https。将不安全的域名添加至允许中。

2024-08-22 10:38:52 3168 1

原创 Android 一些技术点杂记

设置自定义View时,手动消除间距。

2024-07-30 10:50:38 343

原创 【Android】传给后端的Url地址被转码问题处理

在 Gson 中,默认情况下会对某些特殊字符进行 HTML 转义,以确保生成的 JSON 字符串在 HTML 中是安全的。因此,字符 = 会被转义为 \u003d。你可以通过禁用 HTML 转义来避免这种情况。为什么使用Gson().toJson的时候,字符串中的=会被转成\u003d。

2024-07-17 23:45:02 867

原创 Android Activity.FLAG.ACTIVITY_NEW_TASK是什么

activity启动目标activity时,有无该标志没有任何影响非activity启动目标activity时,必须添加该标志告诉系统新开任务栈并将新建activity放入其中。

2024-05-10 16:13:54 4818

原创 Android 升级TargetSdkVersion30

即无法在后台时弹出通过方法的提示了。总的来说,TSDK=30是个关键的版本。使用存储的方式需要变更软件包可见性需要添加声明,影响分享、跳转其他APP等功能。

2024-05-09 17:24:33 2914 1

原创 【鸿蒙】通知

通知是个UI组件,它和BroadCastReceiver还是不同的。鸿蒙版本的通知较为基础。

2024-04-26 17:39:01 916

原创 【鸿蒙】ArkTS语言基础类库——并发

并发并没有什么新鲜的介绍。

2024-04-26 17:11:35 1341

原创 Android CardView层级之上的View无法显示

在 XML 中,后声明的视图会绘制在先声明的视图之上。因此,如果你想要一个视图显示在 CardView 的上面,你应该在 CardView 标签之后声明这个视图。如果 CardView 和视图都包含在一个父布局中,检查父布局是否有限制视图显示的设置。检查你的视图和 CardView 的背景色和透明度设置。如果视图的背景色与背景相同或者视图是透明的,它可能会与背景融合,看起来像是被盖住了。确保视图的尺寸足够大以至于能够显示出来,并且它的位置设置正确,没有被 CardView 的边界所限制。

2024-04-11 10:13:16 902

原创 鸿蒙 线程模型

前提:基于官网3.1/4.0文档。参考官网文档基于Android开发体系来进行比较和思考。(或有偏颇,自行斟酌)

2024-03-13 14:48:34 730

原创 鸿蒙 进程模型-公共事件

公共事件—>Receiver。

2024-03-05 18:46:08 1054

原创 鸿蒙 Stage模型-AbilityStage、Context、Want

类同Applicationmodule.json5中:2.使用二、Context1.概念与Android类似。传递的数据包含参数:deviceId、bundleName、moduleName、abilityName、uri、type、action、entities、flags、parameters。其中abilityName指定了值则为显式规则,否则为隐式规则。匹配规则偏向于正则表达式匹配规则、包含关系。actionentitiesaction ->actionentities ->

2024-03-05 18:08:42 1789

原创 鸿蒙 Stage模型-应用组件-配置、UIAbility

UIAbility约等于Activity。

2024-03-04 16:25:13 1571

原创 鸿蒙 渲染控制

前提:基于官网3.1/4.0文档。参考官网文档基于Android开发体系来进行比较和思考。(或有偏颇,自行斟酌)

2024-02-26 23:09:25 663

原创 鸿蒙 状态管理-组件装饰器

因为它们类似于Android中的ContentProvider与ContentResolver。一个是提供者,一个是消费者。

2024-02-20 18:30:54 1192

原创 鸿蒙 状态管理-应用存储

如果组件中有多个状态变量,多个状态变量发生状态变化时,是否会触发多次组件初始化?如果是,那么有没有什么办法减少渲染?一直都有个疑问,状态变量在后台发生状态值变更时,UI 是否会渲染?的设计无法理解,因为看起来冗余且麻烦若是想直接本地持久化的数据直接作用于UI 元素渲染,其实通过其他方式实现更简单。(譬如,注解之类,再不济包裹一层通用对象也可以的。和UI 线程直接搅在一起不是明智之举)

2024-02-04 16:23:37 1548

原创 Android Mac电脑更改aar中的文件再打包

其中,your_updated_library.aar 是您新建的AAR文件的名称,folder_name 是包含您修改后文件的文件夹。将AAR文件重命名为.zip,并解压缩它,得到一个文件夹。打开终端(Terminal)并进入AAR文件夹的上级目录。在解压后的文件夹中找到您想替换的文件,将其替换为新文件。将生成的新AAR文件拷贝到项目中,并更新相应的依赖。要在Mac电脑上替换AAR中的文件并重新打包。

2024-01-30 17:06:18 1502

原创 鸿蒙 ArkTs初识

前提:基于官网3.1/4.0文档。参考官网文档基于Android开发体系来进行比较和思考。(或有偏颇,自行斟酌)吐槽:官网上的案例只有代码和文档解释,没有可以直接运行查看效果的模拟器,这一点上,Jetpack Compose是有的。

2024-01-28 23:05:06 2164

原创 TypeScript初识——基于Java、Android开发体系

TS就是套用较多Java特性的JS语言,它具有更多类似Java语言规范的约束TS的类型映射较Java更灵活尽量不要使用逻辑性需要特别推测的语法,新上手容易搞晕,尤其TS这种语法灵活的开发语言注重开发工具的提示,能了解、加深语法认识什么时候能去掉语句结尾的分号;

2024-01-18 18:48:04 1410

原创 Android 项目拉取运行、aar打包集成问题处理合集

解决思路也是:接受方使用一致的版本(或者引用公共gradle文件依赖,或者手动改为一致),或者exclude掉冲突组件,而这需要仔细看build的警告、错误日志以及有去排除可能错误的手段。b.ctrl+鼠标左键点击文件标签即可看到该文件的树级目录(mac 是command+鼠标左键点击)。gradle-wrapper-.properties 提升distributionUrl 的gradle版本。删除无效的原因在于,这是build时产生的,删除后仍旧会重生。找到该重复文件,并进行删除——无效。

2024-01-02 14:22:47 1353

原创 Android Kotlin could not find the required JDK tools in the java installation. Make sure Kotlin comp

能发现问题就好解决。难点往往在于发现问题。安装本地包成功,但使用脚本打aar过程中则失败电脑重装后,拉取之前成功的项目时,再次运行就不可以了变量在于Android studio的版本发生变更和本地环境变量重置了。通过这两点来找到问题的症结,而不是尝试更改代码的配置,譬如随意去更改gradle版本和其插件版本(众所周知,更改这两个后重新构建会带来很多问题。好好看build 控制台的输出,等找到这段错误或者警告提示时,可能问题已经解决一半了。

2023-12-27 10:53:05 953

原创 Android ViewPager实现下载当前页面ImageView的Bitmap图片

一般情况重新获取url再次进行bitmap的下载是可以的,无法是获取currentItem及其position,然后从List中获取对应的url进行远程加载。经常会有画廊组件需要在当前展示给用户的页面进行下载功能。一般情况下下载按钮的UI曾经是和ViewPager同级的,而不是作为ViewPager中adapter对应的item一部分。因此知道当前展示给用户的item页面及其bitmap在用户点击下载按钮时的处理,显得比较关键。因此,直接使用当前已经显示的bitmap复用是一种较为划算的方式。

2023-12-20 23:03:54 646

原创 Android 顶部对齐宽度撑满高度等比例缩放及限制最大最小高度

【代码】Android 顶部对齐宽度撑满高度等比例缩放及限制最大最小高度。

2023-12-12 00:01:42 847

myeclipse与eclipse注释文件,格式文件导入

在myeclipse或eclipse中导入注释文件和格式文件,便于编码规范

2013-10-22

Android给app自定义铃声

Android给app自定义铃声

2016-08-26

json的基本传值方式(从前台到后台,再从后台到前台)

自己因为被json传值累得十分痛苦,所以痛定思痛,在实现了一个基本的传值方式后,在此上传资源!下载用过的朋友请多多指出不恰当的地方!

2014-02-27

滑动组件悬浮固定在顶部

内容中间的组件当滑动至顶部的时候固定显示在顶部

2016-11-10

利用SurfaceView实现简单的计时器

利用SurfaceView实现简单的计时器

2016-04-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除