Laya 详解:可自托管微调的非自回归判断模型
Laya 详解:可自托管微调的非自回归判断模型Jev 证明了"判断模型"这条路走得通,但它闭源、按 token 计费、只能云端调用。两天后(2026 年 9 月 18 日),NandhaKishorM 在 GitHub 开源了 NandhaKishorM/laya(Laya):多语言、非自回归的 System 1 判断引擎——三个 checkpoint(laya / laya-multilingu
加入于 2019-10-06
Quibbler的博客全权代理智能体
272
文章
4
评论
Laya 详解:可自托管微调的非自回归判断模型Jev 证明了"判断模型"这条路走得通,但它闭源、按 token 计费、只能云端调用。两天后(2026 年 9 月 18 日),NandhaKishorM 在 GitHub 开源了 NandhaKishorM/laya(Laya):多语言、非自回归的 System 1 判断引擎——三个 checkpoint(laya / laya-multilingu
博客从 2019 年国庆用 Xiuno BBS 搭建,到 2026 年国庆整整七年。868 篇文章、53 条评论、6060 个代码块,这次与 AI Agent 结对,一天完成从 PHP 论坛到 Next.js 的整体重构与无损迁移。
Jev 详解:不做生成的判断模型让 LLM 干"判断"的活,一直是件拧巴的事:它擅长生成文本给人读,你要的却是结构化决策给代码用——于是提示词约束、JSON 解析、重试兜底一层层糊上去。TypeSafe AI 的答案是干脆换一类模型:Jev,首个 System One 模型——不做文本生成,专职快速、结构化的判断:输入状态与类型化问题,输出带概率与置信度的结构化答案,类型错误在数学上不可能发生,因
FreeFileSync 详解:开源文件夹比较与同步工具备份这件事,最朴素的诉求是"只传差异,不抄全量"。FreeFileSync 把这件事做了十几年:确定源与目标文件夹的差异,只传输所需的最小数据量,而不是每次全量复制。这款开源的文件夹比较与同步软件支持 Windows、macOS、Linux 三平台,由 Zenju 个人主导开发,官网生存完全依赖广告与捐赠。最新版 14.12 于 2026 年
AI Agent 2026 现状:浏览器、Computer Use 与多智能体深析2026 年,AI 的重心正从"会聊天"转向"会办事"。Agent(智能体)以 LLM 为大脑,能自主拆解任务、调用工具、循环推进直到完成目标。今年最火的三条战线是:能自己上网干活的浏览器 Agent、能操作整台电脑的 Computer Use、以及分工协作的多智能体。本文不讲"Agent 很强"的废话,而是拆开它们
awesome-opensource-ai 详解:1024 个条目的开源 AI 全景图AI 开源生态这两年爆发式生长,缺的从来不是项目,而是一张靠得住的地图。alvinreal/awesome-opensource-ai(Awesome Open Source AI)就是这样一份清单:从 PyTorch、vLLM 到 LobeHub,从训练微调、推理服务到安全评测,横跨整个开源 AI 技术栈,单文
Page Agent 详解:住在网页里的 GUI 代理让 AI 操作网页,主流做法是在浏览器外面架一个"驾驶员":截图、视觉模型识别、再外部驱动点击。阿里巴巴开源的 alibaba/page-agent 反其道而行——把代理直接搬进网页内部:一段脚本注入页面,代理读 DOM、懂结构、执行自然语言指令,全程不截图、不用视觉模型、不装插件。约 29.1k Star、MIT 协议,口号是"给任何网页一个
OpenCodeReview 详解:确定性工程与 Agent 混合的代码审查工具让通用 Agent 做代码审查,三个老毛病反复出现:大变更集偷懒漏文件、报的行号对不上代码、提示词微调一点质量就波动。alibaba/open-code-review(OpenCodeReview,命令名 ocr)的答案是把不该出错的交给工程、把需要判断的交给模型:确定性管线负责文件选择、捆绑、规则匹配与定位反思,Ag
2026 AI 编程工具横评:选型决策与组合配方2026 年,"AI 写代码"已从尝鲜变成日常,但工具也多到选择困难:Claude Code、Cursor、Codex、Windsurf、Copilot、Antigravity……它们看起来都能"自动写代码",定位却天差地别。本文不是挨个夸一遍,而是帮你建立一套选型决策框架,并给出经过实战检验的"组合配方"——因为最聪明的开发者,从来不只押一个工具。
WebLLM:把大语言模型装进浏览器想在网页里跑 LLM,传统答案只有两条路:要么调云端 API(数据出境、按 token 付费、断网即废),要么本地起服务再暴露接口(部署麻烦、跨设备困难)。MLC AI(CMU 系团队,Apache TVM 背后的力量)开源的 WebLLM 给出了第三条路——高性能浏览器内 LLM 推理引擎:模型直接在浏览器里运行,WebGPU 硬件加速,零服务器支持,API
什么是 Agent?一文讲透 AI 代理这两年"Agent(代理)"成了 AI 圈最热也最被滥用的词:编码代理、GUI 代理、多代理系统、代理平台……但若追问一句"到底什么才算 Agent",多数人只能含糊作答。本文给一个清晰的定义,拆解它的核心循环与四大构件,分清它与聊天机器人、工作流的边界,并结合本系列此前介绍过的 LangChain、LangGraph、Agno、PocketFlow、Pag
Scrapy 详解:Python 爬虫框架的常青树从网页里抽取结构化数据,是数据采集的刚需。自己用 requests 手写,很快就会撞上并发调度、重试、去重、限速、清洗落库一连串工程问题。scrapy/scrapy(Scrapy)把这些全部打包成框架:Spider 类专注解析逻辑,引擎、调度器、下载器在底层并发运转,管线负责清洗与存储。约 64.3k Star、BSD 协议、Zyte 商业支持,P
AnythingLLM 详解:全合一的本地优先 AI 应用"跟文档聊天"的应用这两年出了几百个,多数停在 demo 水平;企业真要用,还差多用户权限、Agent 工作流、模型路由这些硬件。Mintplex-Labs/anything-llm(AnythingLLM)把这一整套做成了开箱即用的全家桶:本地优先、零配置起步,文档对话、内置 Agent、多用户、向量库、文档管线全部内置;35+ 家 LL
OmniRoute:把 352 家 AI 提供商拧成一个免费入口AI 编程工具用得越狠,越会撞上两堵墙:贵(订阅 + API 按量计费,多工具多账单)和碎(各家 AI 提供商都有免费层,但几十个 SDK、几十种限额规则,手动"薅羊毛"几乎不可能)。OmniRoute 的答案是把这件事工程化:一个本地网关接住 352 个 AI 提供商(其中 90+ 带免费层,官方按共享池去重算出每月约 15.1 亿
speech-to-speech 详解:HuggingFace 的开源语音 Agent 流水线语音 Agent 的"全开源"路线一直有个尴尬:框架开源了,模型却离不开云端 API。huggingface/speech-to-speech 把这条路走通了:VAD → STT → LLM → TTS 四段低延迟流水线,每个组件都可换成开源模型本地跑——Apple Silicon 一台 Mac 就能撑起
Flowise 详解:已归档的可视化 AI Agent 构建器这篇文章要拆解的是一个"活化石"级项目——而且是刚刚成为化石的。FlowiseAI/Flowise(Flowise)曾是可视化 LLM 编排的头部选手:"Build AI Agents, Visually"——拖拽节点连成图,聊天流、Agent 流、RAG 流不用写代码。55.5k Star、2.5 万 Fork 见证了它两年的辉煌;但
LocalAI 详解:开源 AI 引擎与多模态后端集市本地跑 AI 的工具大多有个性别偏好——要么盯着 GPU,要么只管文本。mudler/LocalAI(LocalAI)的野心大得多:"开源 AI 引擎":任意模型——LLM、视觉、语音、图像、视频——跑在任意硬件上,无需 GPU。架构哲学是"小核心,非全家桶":核心只做编排,每个后端(llama.cpp、vLLM、whisper.cpp、sta
Exposed 详解:JetBrains 官方的 Kotlin ORM 框架Kotlin 项目要访问数据库,选型常在"全功能 ORM"与"裸 SQL 拼接"之间摇摆:前者重、后者容易丢类型安全。JetBrains/Exposed(Exposed)给了一个中间答案:JetBrains 官方出品的轻量 SQL 库,构建在数据库驱动之上,同时支持 JDBC 与 R2DBC(1.0.0 起双轨),提供类型
Vercel AI SDK 详解:TypeScript 全栈 AI 应用工具包在 TypeScript 里接大模型,最怕的是换一家供应商就重写一遍调用代码、流式解析、UI 状态管理。vercel/ai(AI SDK)把这层麻烦全部抽掉:Vercel 与 Next.js 团队出品的供应商无关 TypeScript 工具包,一套 API 通吃 OpenAI、Anthropic、Google 等主流模型
MiniMax Skills 详解:AI 编码 Agent 的开发技能包AI 编码助手写业务代码还行,但让它做出"高级感"的前端动效、原生级的 Android / iOS 界面、惊艳的着色器特效,或者生成一份排版讲究的 PPT,产出常常打折。大模型公司 MiniMax 开源的 MiniMax-AI/skills(MiniMax Skills)瞄准这个缺口:一套面向 AI 编码 Agent 的开发技
Android 17 适配详解:行为变更与升级指南Android 17(API 级别 37)标志着 Android 向智能系统过渡的开始,采用自适应优先的开发标准,让应用体验适应更多外形规格,同时提供下一代隐私、安全、媒体、相机和性能。官方已发布版本总览、所有应用的行为变更与目标平台行为变更三份文档。本文按"先保命、再升级"的顺序,把适配要点整理成一份可落地的清单。1、版本定位与适配策略Andro
awesome-kotlin 详解:Kotlin 生态的官方精选导航学一门语言最费时间的往往不是语法,而是"该用哪个库":网络请求、依赖注入、序列化、协程扩展……每个方向都有一堆候选。开源项目 Heapy/awesome-kotlin(awesome-kotlin)就是为解决选型焦虑而生:受 awesome-java 启发的 Kotlin 精选清单,配套 kotlin.link 分类导航站点、RS
Superpowers 详解:给编码 Agent 的完整开发方法论让 AI 编码助手写代码,最常见的翻车现场是:你一句"帮我做个功能",它立刻闷头开写,方向错了不回头,测试没写先宣告完成。而 obra/superpowers(Superpowers)换了一条路:不给模型更多自由,而是给它一套**强制执行的软件开发方法论**——由可组合技能(skills)构成,从头脑风暴、写计划、TDD 到子代理并
Mermaid 详解:用文本画图的 JavaScript 图表库画一张流程图,传统方式是拖拽 Visio 或 draw.io 的方框与连线,改一次布局重来一次。而 mermaid-js/mermaid(Mermaid)把画图变成了写代码:用几行类 Markdown 的文本描述节点与关系,渲染引擎自动生成流程图、时序图、甘特图等十几种图形。约 75k Star,是 GitHub 上最流行的图表库,且
PandaWiki 详解:大模型时代的内容管理系统搭一个企业知识站,传统方案是 Wiki 系统 + 搜索引擎 + 人工维护,内容一多检索就失灵,更别提让访客"直接提问"。长亭科技开源的 chaitin/PandaWiki(PandaWiki)给出了另一种答案:一个由大模型驱动的开源知识库与 Wiki 系统,写好的内容自动向量化、自动可问答,访客既能像传统 Wiki 一样浏览,也能直接向 AI 提问
agent-skills 详解:给 AI Agent 的可复用技能库让 AI 助手稳定输出高质量的代码评审、PR 描述、发布说明,靠反复口头叮嘱是不行的——上下文一长就忘。Google Chrome 团队工程师 Addy Osmani 开源的 addyosmani/agent-skills(agent-skills)提供了另一种做法:把某项任务的"专家做法"写成结构化技能文件,Agent 按需装载
Paparazzi:无需真机的 Android 截图测试UI 回归是 Android 测试的老大难:单元测试测不了"长得对不对",真机截图又慢又贵还受设备碎片化折磨。Cash App(Square)开源的 Paparazzi(狗仔队)给出了优雅解法——在 JVM 上直接渲染应用界面,不需要物理设备或模拟器。它把 Android 布局引擎(含 layoutlib)跑在本机,截图快如单元测试;配合"录
Apollo Kotlin 详解:Kotlin 多平台 GraphQL 客户端后端上了 GraphQL,Android/Kotlin 端要一个既类型安全又能跨平台的客户端——apollographql/apollo-kotlin(Apollo Kotlin)是行业事实答案:Apollo 官方维护的 GraphQL 客户端,运行于 Android 与全部 Kotlin 多平台目标,以代码生成实现从服
GitLab Runner 详解:执行 CI/CD 流水线的引擎在 GitLab 里写好 .gitlab-ci.yml 只是定义了流水线,真正把每个 job 跑起来的,是另一个角色——GitLab Runner。它是开源仓库 gitlab-org/gitlab-runner 提供的 Go 单二进制应用,Go 语言编写、无任何语言运行时依赖,装在独立机器上连接 GitLab 拉取并执行任务,支持 L
taste-skill 详解:把“品味”变成 AI 可执行的技能AI 能写代码、能做总结,但让它“挑个更好看的设计”“选个更优雅的方案”,结果常常平庸——模型缺的不是知识,是“品味”(Taste)。开源项目 Leonxlnx/taste-skill(taste-skill)正是冲着这个问题去的:它把资深从业者“做判断”的隐性经验,沉淀为一套可注入 AI 助手的显式技能,让 Agent 在设计、写作
Mermaid Live Editor 详解:浏览器里的实时 Mermaid 画板写 Mermaid 图最怕两件事:语法记不牢、渲染看不到。官网 mermaid.live(Mermaid Live Editor)把这两件事一次解决:左边写代码、右边实时出图,改一个字符立刻看到效果。它的源码开源于 mermaid-js/mermaid-live-editor,是 Mermaid 官方团队维护的配套编
BigImageViewer 详解:模块化、可插拔引擎的大图查看库上一篇聊了 SherlockGougou 的 BigImageViewPager,这篇来看名字相近、思路却不同的另一个库——Piasy/BigImageViewer。两者都解决"大图预览",但 BigImageViewer 更像一个"引擎中立"的底层组件:它以 Subsampling Scale ImageView(SSIV)为渲染
GitHub CLI 详解:把 GitHub 装进终端日常开发里最割裂的体验莫过于:写代码、提交、切分支都在终端里行云流水,一到"建 PR、看 CI、评论 issue"就得切回浏览器点网页。GitHub CLI(命令名 gh)就是为消灭这种割裂而生——GitHub 官方出品的命令行工具,免费开源,把 pull request、issue、release、CI 检查这些平台能力全部搬进终端,甚至内置
Art Direction Daily 详解:每日一种视觉语言的 AI 网页设计日刊随着 v0、Cursor、Lovable 等 AI 建站工具的兴起,"用提示词生成网页"已成为前端新工种,但多数人卡在"提示词写不出风格"。Art Direction Daily(@artdirdaily)正是为这个痛点而生——它是一份"代理式网页设计(agentic web design)"日刊,每天用一种全新视
Hermes Agent:与你一起成长的开源 AI 代理大多数 AI 助手是"健忘的租客"——换个窗口就失忆、换个平台就重学、干过的活不留下任何沉淀。Nous Research 出品的 Hermes Agent 反其道而行,口号是"The Agent That Grows With You"(与你一起成长的代理):它是一个开源(MIT)、自托管的 AI 代理,具备持久记忆(学习你的项目、自动生成技
LlamaIndex 详解:构建 RAG 与代理应用的数据框架让大模型用上私有数据(文档、数据库、API),最成熟的路径就是 RAG;而把"接入数据、建索引、检索问答、编排代理"这套流程做成框架的,正是 run-llama/llama_index(LlamaIndex)。它是一个开源的数据框架,约 51.8k Star、MIT 协议,官方定位已从"LLM 应用的数据框架"演进到"构建代理应用(ag
Hugging Face 详解:AI 开源社区的中心枢纽做 AI 开发,绕不开一个名字:Hugging Face。它自称"The AI community building the future"——建设未来的 AI 社区,如今托管着 200 多万个模型、50 多万个数据集与上百万个应用,Google、Meta、微软等五万余家组织都在上面发布成果。下个模型、找数据集、跑 Demo、调 API,几乎
chrisbanes/skills 深度解析:为 Kotlin 与 Jetpack Compose 而生的 AI 技能集Chris Banes(长期活跃于 Android 生态、曾任职 Google Android 团队并深度参与 Jetpack 与 Compose 生态)开源了一套面向 Kotlin、Jetpack Compose 与 Android 开发的 AI 辅助技能集 https://g
WeKnora:腾讯开源的企业级知识库引擎企业里最痛的知识管理现状是:文档躺在飞书、Notion、语雀、本地 PDF 里"沉睡"——查不到、问不了、更不会自我生长。腾讯(微信团队)开源的 WeKnora 给出的答案是把它变成"活知识"(Living Knowledge):官方口号 "Turn Documents into Living Knowledge with RAG, Agents and
KEEP 详解:Kotlin 语言的演进提案机制用 Kotlin 的人每天都在吃协程、密封接口、value class 这些特性的红利,但很少有人想过:一个语言特性从"想法"到"落地"要走什么流程?答案就是 Kotlin/KEEP——Kotlin Evolution and Enhancement Process(Kotlin 演进与增强流程)。它是 JetBrains 官方维护的提案仓库,每一份
Bluetooth Assigned Numbers 详解:蓝牙世界的"户口本"做过蓝牙开发的人几乎都遇到过同一个问题:某个 16-bit 的 Service UUID、某个厂商 ID、某个 GATT 单位码,到底代表什么?这些答案全部收录在蓝牙技术联盟(Bluetooth SIG)官方维护的一份文档里——Assigned_Numbers.pdf。它与其发布方 bluetooth.com 一起,构
Dify 详解:开源 LLM 应用开发平台团队想做一个 AI 应用——接几个模型、搭一条 RAG 流水线、配一个代理、再对外开放 API——如果全靠写代码,每一样都是工程量。langgenius/dify(Dify)把这些搬进了一个可视化平台:拖拽画布编排工作流、开箱的 RAG 管线、Function Calling / ReAct 代理、Prompt IDE 与 LLMOps 观测,一套环境从原
Android-Universal-Image-Loader 详解:Android 图片加载库的先驱与退场在 Glide、Coil、Fresco 一统天下的今天,可能很难想象 2012–2015 年 Android 图片加载的"事实标准"是另一个库——nostra13/Android-Universal-Image-Loader(简称 UIL)。它以 16.8k Star 的体量,定义了一代人对"
Code-Graph-RAG:用知识图谱重构代码 RAG理解一个陌生的大型代码库是开发者的日常痛点——接手几万行的项目,光搞清"这个函数被谁调用""数据怎么流转"就要花几天。传统代码 RAG 把代码当文本切片 + 向量检索,在跨文件的"调用关系""数据流"问题上力不从心,因为它不懂代码结构。Code-Graph-RAG(命令 cgr)换了个思路:用 Tree-sitter 把代码解析成 AST,把
FoldableLayout 详解:Android 纸张折叠动画你能想象在 Android 上实现"一张纸对折展开"的真实物理动画吗?不是简单的缩放或淡入淡出,而是像真实纸张一样沿折痕折叠、有光影变化、有厚度感的 3D 动画。Alex Vasilkov 的 FoldableLayout 就是实现这种效果的开源库——1.6k+ Star,Android 上最经典的"纸张折叠"动画组件。虽然库已停止维
system_prompts_leaks 详解:60k Star 的 AI 系统提示词泄露合集每家 AI 厂商在用户对话开始前,都会给模型注入一段隐藏的"系统提示词"(system prompt),规定它的人设、能力边界、安全约束与可用工具。GitHub 上的 asgeirtj/system_prompts_leaks 仓库把这些原本不可见的系统提示词逐字收录、按厂商分类、持续更新,已被《华盛顿邮
CalendarView:纯 Canvas 绘制的高性能可定制日历库日历是很多 App 的刚需——签到、预约、酒店预订、账单、打卡。但 Android 上做日历有两个老大难:性能差(传统基于 RecyclerView/GridView 的日历,一个月视图就要几百个 View,滑动卡顿)和难定制(UI 千篇一律,改源码成本高)。huanghaibin-dev 的 CalendarView 用一个反直
Docs2KG 详解:人机协同的异构文档知识图谱构建前面介绍了三个知识图谱工具——Graphify(代码库)、ai-knowledge-graph(纯文本)、Knowledge Graph Extractor(自托管)。它们各有侧重,但都有一个共同短板:LLM 自动提取完就结束了,没有人工审核和迭代闭环。提取错了怎么办?漏了实体怎么办?关系标错了怎么办?Docs2KG(AI4WA 团队,371 S
AvatarView 详解:支持 Coil/Glide 的 Android 头像组件库社交、通讯、协作类 App 里,头像是个高频又琐碎的组件——要支持圆形 / 圆角、边框、在线状态点、首字母兜底,还要能在一个头像里塞多张图(比如群聊头像)。GetStream/avatarview-android(AvatarView)把这些都打包好了,并同时支持 Coil 与 Glide 两种图片引擎。本文从依
Android CLI 完全用法解析随着 AI 代理(Gemini、Claude、Codex 等)越来越多地参与 Android 开发,Google 推出了一个为"代理优先"工作流设计的命令行工具——Android CLI(即 android 命令)。它把建项目、管设备、装 SDK、查文档、装技能、连 Android Studio 等一整套能力收进终端,既方便开发者脚本化操作,也方便 AI 代理直
Cherry Studio 详解:聚合多模型、开箱即用的桌面 AI 客户端用过大模型的人大多有个共同烦恼:要在 ChatGPT、Claude、Gemini、DeepSeek、本地模型之间来回切网页或客户端,对话历史和知识库还各管各的。CherryHQ/cherry-studio(Cherry Studio)想用"一个桌面客户端"解决这件事——它把主流云端大模型与本地模型聚合到一起,支持多模型同时对
Claude Code 提示词库:52 个开箱即用的官方提示词用 Claude Code 时,很多人只会问"帮我写个 X"或"修这个 bug"。但面对一个陌生的几万行代码库、一次跨模块的重构、一场线上事故,"怎么问"往往比"用什么模型"更决定 Claude 能不能真正帮上忙。Claude Code 官方维护了一个提示词库(Prompt Library)——52 个精心设计、可直接复制粘贴的提示词,
AgenticSkills 详解:精选分级的 AI Agent 技能目录前面介绍了 Vercel 的 Skills.sh(技能商店)和 find-skills(技能搜索)——它们解决了"发现和安装技能"的问题。但技能多了之后,新问题来了:哪个技能好?哪个值得装?怎么按领域筛选? AgenticSkills.io 就是为这个需求而生的——它是一个精选分级的 AI Agent 技能目录,把 181+
SearchView 完全用法解析搜索是 App 里最常见的人机入口之一,Android 也为此专门提供了 SearchView。但很多人对它的印象停留在"放个输入框、加个监听",其实它背后还有一整套可搜索配置(searchable 配置)、searchable Activity、ACTION_SEARCH 传递与搜索建议机制。本文从零开始,把 SearchView 的两种用法、清单声明、接收查询
Android Skills 详解:Google 官方的 Android 开发 AI 技能库前面介绍了 Anthropic 的官方技能库(anthropics/skills,164k Star)。现在Google 也入场了——android/skills 是 Google Android 团队发布的官方 Android 开发 AI 技能库(6.4k Star,Apache 2.0),遵循 Anth
小模型当道:蒸馏、量化与端侧部署的工程逻辑前两年"参数越大越强"的叙事统治一切,但 2026 年出现了一个反直觉的回潮:小模型重新吃香。从手机里的端侧助手,到企业里"小而专"的微调模型,越来越多人发现——"够用、便宜、快、可控"的小模型,在大量场景里比大模型更优。本文不讲"小模型也很好"的废话,而是拆开它靠什么变强、怎么部署、如何与大模型协作。1、"越大越好"为什么逆转大模型确实强,但它带着三个硬
God of Prompt:30,000+ 工程化 AI 提示词库一个更"工程化"、更商业化的提示词库——God of Prompt。它自称 "The #1 Most Powerful Open Prompt Library",收录 30,000+ 提示词,覆盖 19 大类目、180 个子类、7 大主流 AI 模型(ChatGPT、Claude、Gemini、Grok、DeepSeek、Midjo
AndroidUtilCode 详解:33k Star 的 Android 工具类库做 Android 开发,几乎每个项目都要重复写一遍尺寸换算、吐司、日志、SP 存取、权限申请、文件读写、加解密等"样板代码"。AndroidUtilCode(作者 Blankj)正是为消灭这些重复劳动而生——它把 Android 开发里最常用的功能封装成一个个工具类,并配有完整 demo 与单元测试,是目前 Gi
推理模型详解:从 o1 到自适应推理的 test-time compute 革命2024 年 OpenAI o1 横空出世,把大模型的竞争从"参数越做越大"拉到一条新赛道:推理模型(Reasoning Model)。到 2026 年,"先想后答"已成顶级模型的标配。但"推理"到底指什么?为什么"多想一会儿"就能更准?什么是 test-time compute?本文钻进原理,一次讲透——不背概念,只
prompts.chat:世界最大的开源 AI 提示词库Prompt Engineering(提示词工程)是 AI 时代的核心技能,而谈到提示词资源,prompts.chat 是绕不开的名字。它的前身是鼎鼎大名的 Awesome ChatGPT Prompts——2022 年 12 月最早的提示词库,现已发展为"世界最大的开源 AI 提示词库":143k+ GitHub stars,被 Forbe
Bun 是什么:JavaScript 的全能工具链如果你做 JavaScript / TypeScript 开发,一定遇到过这些折磨:装依赖太慢(npm install 动辄几分钟)、跑脚本要分多种工具(node 跑 JS、ts-node 跑 TS、jest 跑测试、webpack/vite 打包)、配置文件一堆(package.json / tsconfig / jest.config / .b
AI 知识图谱生成器详解:从非结构化文本到可视化图谱你有一堆文档(论文、报告、笔记、文章),想快速搞清其中的"谁和谁有关系、什么导致了什么、谁属于哪一类"——手动阅读提炼太慢,交给 LLM 又只给你一段总结文字。Robert McDermott 开源的 ai-knowledge-graph 恰好解决这个痛点:它用 LLM 从非结构化文本中自动提取"主-谓-宾"三元组(SPO triplets),然
Find-Skills 详解:给 AI Agent 装一个"技能搜索引擎"上一篇介绍了 Skills.sh——AI Agent 的技能商店。但有个"鸡生蛋"的问题:你不知道有什么技能可用,怎么去搜索?find-skills(Vercel Labs 出品,Skills.sh 上最火的技能,270 万活跃)就是解决这个"零号问题"的——它本身也是一个 Skill,装上后让你的 AI Agent 获得自
Skill-Creator 详解:用 AI 创建 AI 技能的"元技能"前面介绍了 Skills.sh(技能商店)和 find-skills(技能搜索引擎)——一个是"买技能的地方",一个是"搜技能的工具"。但如果你想自己创造一个技能并发布到 Skills.sh 呢?手写 SKILL.md + 设计测试用例 + 优化触发描述 + 验证效果……门槛不低。skill-creator(Anthropic
MarkText 详解:简洁优雅的开源 Markdown 编辑器写 Markdown 时,你面临两个极端:一是 Typora 那种"所见即所得"但闭源收费,二是 VS Code 那种"功能全面但编辑体验偏技术"。MarkText 恰好站在中间——它是一款开源、免费、所见即所得的 Markdown 编辑器,用 Electron + Vue 构建,支持实时预览、打字机模式、焦点模式、数学公式、剪贴板贴
Knowledge Graph Extractor 详解:单卡自托管的知识图谱生成器前面介绍了 Graphify(代码库图谱)和 ai-knowledge-graph(文本图谱),它们都依赖外部 LLM API(Claude / GPT / Ollama)。但如果你想完全自托管——不调任何云 API、数据不出域、一张 GPU 就能跑——Knowledge Graph Extractor(Han X
Context-Menu.Android 详解:炫酷上下文菜单库Android 原生的上下文菜单(ContextMenu)大家都用过——长按弹出一个朴素的列表,白底黑字,毫无设计感。如果你的 App 想做出 iOS 那种"长按弹出带图标动画的华丽菜单",原生 API 基本帮不了你。Context-Menu.Android 是知名开源团队 Yalantis 出品的一个库,专门解决这个问题:它提供了一
ChatGPT 最新演进:从 GPT-5 到 Agent 的全面进化2026 年的 ChatGPT 已经远不是 2022 年那个"聊天机器人"了。它经历了 GPT-5 → 5.1 → 5.2 → 5.5 → 5.6 的快速迭代,从一个"对话工具"进化成了一个集 Agent、编程、购物、健康管理于一体的 AI 平台。新增的 Auto/Fast/Thinking 三档模式、Work Agent、Cod
Graphify 详解:把整个代码库变成可查询的知识图谱理解一个大型代码库有多痛苦?几万行代码、几十个模块、数百个文件,新人入职两周还在"这个函数在哪调用、这个模块依赖谁"里挣扎。Graphify(GitHub 近 95k Star,2026 年最火的开发者工具之一)就是来终结这个痛苦的——它把任何代码库(含文档、SQL、PDF、截图)自动转成一个可查询的知识图谱,每条关系都标注"确定的/推理的/
ExHyperV 详解:让凡人也能玩转 Hyper-V 的"神器"Windows 自带的 Hyper-V 虚拟化平台功能强大,但它的"高级功能"——GPU 直通(DDA)、GPU 分区(GPU-PV)、PCIe 设备直通——配置门槛极高,需要深入 WMI、HCS(Host Compute Service)等底层接口,手搓命令行,普通人望而却步。ExHyperV(GitHub 开源,作者 Justs
RAG 进阶:生产级 RAG 的系统工程实战RAG(检索增强生成)是企业让大模型"基于自家知识"回答的主流方案。但"照着教程拼一个 demo"和"做出生产级准、全、稳的系统"之间,隔着一整个工程鸿沟——demo 能答对的问题,生产里可能十答九错。本文不再罗列名词,而是把 RAG 拆成索引、查询、生成、评估四大子系统,给出每个子系统的关键决策与进阶实践。1、先把架构看清:不是流水线,是四大子系统大多
MCP 实战:用模型上下文协议给 AI "长手"以前给 AI 接一个工具,要为每个客户端单独写一套集成——接 10 个工具、用 3 个客户端,就是 30 份适配代码,写不完、改不动。MCP(Model Context Protocol,模型上下文协议)就是为了消灭这个"M×N 适配地狱"而生的:它把"模型"与"工具/数据源"之间的连接标准化,写一次 Server,处处可用,被戏称为"AI 应用的
Fara-7B 详解:微软的高效 Computer Use Agent 模型2025 年底,微软开源了一个 7B 参数的"Computer Use Agent"模型——Fara-7B。它不是又一个聊天机器人,而是一个能自主操作电脑/浏览器完成真实任务的 AI Agent:给它一个网页任务(如"帮我查航班并订票"),它能看懂屏幕截图、决定下一步点击哪里、填什么表单、循环执行直到完成。更关键的是,它只
ToggleButton 详解:手搓自定义 View每个 Android 开发者,在成长路上都应该手搓一次 ToggleButton——那个看起来简单的"iOS 风格开关",其实浓缩了自定义 View 的全部核心:测量、绘制、触摸事件、属性动画、自定义属性。zcweng 的 ToggleButton(及同作者的 SwitchButton)是 GitHub 上最经典的开源实现之一,既是拿来即用的 U
Cursor 完全教程:从 Tab 预测到 Composer 的实战指南Cursor 是 2026 年最火的 AI 原生 IDE,基于 VS Code 深度改造。它和"装个 Copilot 插件"的本质区别在于:AI 不是外挂,而是被织进了每一次按键、每一次选中、每一次保存。本教程钻进它的四级火力(Tab / Cmd+K / Chat / Composer)与上下文管理(@ 引用 / 规则文件 /
Android 开发都要会的侧滑删除:AndroidSwipeLayout 实战侧滑删除是 Android 列表交互的经典模式——微信、QQ、系统短信、邮件 App 都在用:手指左滑列表项,露出"删除/置顶"按钮。但手写一个健壮的侧滑并不简单,要处理多 item 互斥(一次只开一个)、嵌套水平滑动冲突、展开收起动画、RecyclerView 复用状态等一堆细节。而 daimajia 的 Andro
智谱 GLM 大模型平台详解智谱大模型开放平台是国产领先的一站式大模型开发平台,提供功能丰富、灵活易用、高性价比的大模型 API 服务。平台支持全模态、全尺寸的模型矩阵,覆盖文本生成、图像理解、视频生成、音视频处理等多场景,致力于构建高效通用的"一站式模型即服务"AI 开发新范式。1、平台概述1.1、平台优势• 模型矩阵:全模态、全尺寸、低幻觉、高精度 • 开发套件:覆盖模型与 AI 应用开发,全
AI 核心技术名词详解:从 LLM 到 Agent 一文讲透这两年大模型与 AI 应用爆发,LLM、Prompt、RAG、Embedding、Function Calling、MCP、Agent、Skill 等术语层出不穷。它们彼此关联、却又常被混用,初学者往往被一堆缩写绕晕。本文按"模型本身 → 如何与它对话 → 如何为它补知识 → 如何让它用工具 → 如何让它自主行动 → 如何让它更可靠"这条
Claude Code 安装使用指南Claude Code 是 Anthropic 官方推出的 AI 编程助手,基于 Claude 模型提供终端交互式代码生成、重构、调试等能力。它支持 100 万 Token 上下文,擅长处理整个代码库的大型任务,是当前最强大的 AI 编程工具之一。本文将从安装配置到实战使用,全面介绍 Claude Code 的使用方法。1、Claude Code 简介1.1、核
Prompt Engineering 2026:从"写咒语"到"写工程""提示工程"曾被视为"写几句好听话哄模型"的玄学,但到 2026 年,它已是一门结构化的工程:分节、用标签、给示例、控格式、为 Agent 与 Skill 设计可循环的指令、用评测驱动迭代。在 Agent 时代,提示不再只是"问问题",而是"给 AI 写一份可执行的说明书"。本文从第一性原理出发,讲透现代提示工程的实战法则。A
智能刷新控件 SmartRefreshLayout:下拉刷新与上拉加载实战下拉刷新 + 上拉加载是几乎所有列表页的标配。但 Android 官方只给了 SwipeRefreshLayout——功能简陋、不支持上拉加载、Header 无法定制。而 SmartRefreshLayout 是国内最流行、最成熟的刷新框架:强大稳定,集成了各种炫酷、多样、实用、美观的 Header 和 Footer,支持所
你能想象一段文字看起来像"浮在水面上",随着波浪上下起伏、半沉半浮吗?这不是特效视频,而是 Titanic——一个由 Romain Piel 开发的 Android 动画库。它通过对 TextView 的 TextPaint 应用动画化的 BitmapShader,让文字呈现出冰山浮水般的波浪效果。虽然项目已归档(DEPRECATED),但它展示的"Shader + Matrix 动画"技巧至今仍
Gradle入门:安装Android应用项目使用Gradle构建,Gradle也是安卓开发者需要掌握的一项技能。1、GradleGradle是基于Apache Ant和Apache Maven概念的开源自动化构建工具,支持多语言环境。1.1、Gradle介绍Gradle集Ant、Maven二者之大成,相比Ant的不规范,Maven的配置复杂以及生命周期限制严重,Gradle既规范也更灵活。可以使用
时隔三年,再次备份:从手搓博客到 AI 全面自动接管今天打开尘封多年的备份目录,看到了一个熟悉的文件名——2023_07_09.sql。那一刻,恍如隔世。三年前的今天,我曾经认真地导出过一次数据库;三年后的今天——2026 年 7 月 9 日,自动备份启用。整整三年,1095 天,我的博客就这样安安静静地跑着,没有人备份,也没有人管,它就那么稳稳当当地活着。感慨万千,大概是此刻最准确的四个字——不
GitHub Spec Kit 详解:规范驱动开发(SDD)工具包在 AI 编码工具爆发的今天,"一上来就让 AI 写代码"的 vibe coding(氛围编码)虽然爽,却常带来质量不可控、需求漂移、返工不断的隐患。GitHub 给出的答案是 Spec Kit——一个开源的规范驱动开发(Spec-Driven Development,SDD)工具包。它的口号很直接:"Build high-qual
Android AppFunctions 详解:让 App 成为 AI Agent 的工具2026 年,AI Agent 正从"会聊天"走向"会办事"。但一个尴尬的现实是:Agent 想操作你手机上的 App,要么靠 UI 自动化(无障碍服务截屏点击,又慢又脆),要么靠各 App 自己接云 API(碎片化、隐私差)。Google 给出的官方答案是 AppFunctions——一套 Android
Android 17 适配指南:API 37 行为变更与实战Android 17(API level 37 / SDK 37)于 2026 年正式到来,又到了每年"适配新版"的季节。这一版的主旋律是隐私大收紧——本地网络访问、OTP 短信、联系人、无障碍服务全线加锁;同时持续推进 16KB 页面大小、前台服务规范化,并对 targetSdk 37 的 App 加了反射与自适应布局新要求。本文把所有
Agentic AI 详解:会自主办事的人工智能先给出定义:Agentic AI 是一种能够自主感知环境、进行推理、制定计划并采取行动,以实现特定目标的 AI 系统,无需人类逐步指导。这句话里的每个词都值得拆开看——"自主""感知""推理""规划""行动""目标""无需逐步指导",正是它们把 Agentic AI 和我们熟悉的那种"一问一答"的 AI 区分开来。本文围绕这个定义,讲清 Agenti
Claude Code 深度教程:把命令行变成你的 AI 同事要理解 Claude Code,先把它和传统的 AI 补全(Copilot 式)区分开。补全是"你敲代码,它猜下一行",主动权在你,AI 只是个更聪明的输入法。Claude Code 完全不是这个路子——它是一个跑在终端里的 agentic 编码代理:你给它一个目标(比如"把登录接口的空指针异常修掉"),它会自己读代码、定位问题、改文件
Obsidian 详细教程:构建你的本地知识库Obsidian 是一款本地优先(local-first)的知识管理与笔记应用。它把每一条笔记保存为普通的 Markdown 文件,存放在你自己的文件夹里,再通过双向链接与知识图谱把这些零散笔记编织成一张属于你自己的"第二大脑"。与依赖云端的 Notion、印象笔记不同,Obsidian 让数据始终掌握在自己手中——即使有天软件消失,那些纯文本笔记依然

网站被注入恶意脚本排查实录:AI 辅助安全分析实战某天收到华为云监管反馈,称个人博客网站存在色情违规界面。作为技术博主,这简直是晴天霹雳——网站一直正常运行,怎么会突然出现这类问题?经过排查发现,网站被注入了恶意跳转脚本。本文记录完整的排查过程,重点分享如何借助 AI 快速定位问题并修复,希望能给遇到类似情况的开发者提供参考。1、问题发现与初步排查收到监管反馈后,第一时间打开网站检查。首页看起来完
BRVAH(BaseRecyclerViewAdapterHelper)使用详解BRVAH(BaseRecyclerViewAdapterHelper)是一个强大而灵活的 RecyclerView Adapter 框架,托管在 https://github.com/CymChad/BaseRecyclerViewAdapterHelper,截至目前已获得 24.6k Star、5.2k Fork,
内存泄漏检测:Memory Analyzer(MAT)详解内存泄漏(Memory Leak)是 Java 与 Android 应用最棘手的问题之一:不再使用的对象因仍被持有引用而无法被 GC 回收,长时间累积最终耗尽内存,引发卡顿甚至 OOM 崩溃。Memory Analyzer(简称 MAT)是 Eclipse 基金会开源的堆转储分析工具,也是业界定位 Java/Android 内存泄漏的事实标
adb 命令大全(Android 调试桥常用命令详解)adb(Android Debug Bridge,Android 调试桥)是 Android SDK 提供的一个通用命令行工具,它充当 PC 与 Android 设备之间的通信桥梁,可用于安装调试应用、查看日志、抓取系统信息、传输文件、自动化测试等几乎所有的设备交互场景。无论是日常开发排查 Bug,还是测试同学做稳定性、性能验证,adb 都是必
RecyclerView 缓存机制终极指南:从原理到实战优化1、理解RecyclerView缓存的核心价值RecyclerView之所以能成为Android开发中最强大的列表控件,关键在于它高效的四级缓存体系: 即时响应:通过复用ViewHolder减少对象创建开销 内存优化:分层缓存控制内存占用峰值 平滑滚动:预加载机制保障60fps流畅体验 灵活扩展:支持开发者自定义缓存策略2、深入四级缓存工
了解 MCP 概念、核心架构、工作原理及应用场景MCP(Model Context Protocol,模型上下文协议)是 Anthropic 于 2024 年 11 月推出的一种开放标准,旨在统一大模型与外部数据源和工具之间的通信方式。它的出现是为了解决当前 AI 模型因数据孤岛限制而无法充分发挥潜力的问题,使 AI 应用能够安全地访问和操作本地及远程数据,为 AI 应用提供了连接万物的接口。1、
Hermes Agent 详解:自进化学习型 AI 代理Hermes Agent 是由 Nous Research 于 2026 年 2 月开源的自主 AI 代理框架,其核心定位是"与你共同成长的智能体"。与传统的 IDE 编程助手或单一 API 聊天机器人不同,Hermes 运行在你的服务器上,能够记住所学内容,运行时间越长能力越强。它采用 MIT 开源许可,支持 Linux、macOS 和 W
Jetpack Compose SelectionContainer 文字选中详解在 Jetpack Compose 中,Text 组件默认不支持长按选择文本的功能。SelectionContainer 正是为解决这一问题而设计的,它将文本选择功能与文本展示功能分离,让开发者可以灵活控制哪些内容可被用户选中。1、SelectionContainer 概述SelectionContainer 是 J
CC Switch 详解:AI 编程工具统一管理平台CC Switch 是一款跨平台桌面应用,专为使用 AI 编程工具的开发者设计。它帮助用户统一管理 Claude Code、Claude Desktop、Codex、Gemini CLI、OpenCode、OpenClaw 和 Hermes Agent 等七大 AI 编程工具的配置,通过可视化界面实现供应商一键切换、MCP/Skills 统一管理
TextureView 初探:结合 Camera 实现相机预览1、TextureView 基本概念1.1、什么是 TextureViewTextureView 是 Android 4.0(API 14)引入的一个视图类,它可以将内容流(如相机预览、视频播放)渲染到一个硬件加速的纹理上。与 SurfaceView 不同,TextureView 是一个普通的 View,可以像其他 View 一样进行变
AI 编程生态全景图:模型、公司与工具的关系解析AI 编程领域的产品和工具数量爆发式增长,Claude、OpenAI、Cursor、Codex、OpenCode、Hermes、OpenClaw 等名词让人眼花缭乱。本文将从"公司-模型-工具"三个层级梳理它们的关系,帮助你建立清晰的认知图谱。1、核心概念:三层架构理解 AI 编程生态,需要区分三个层级:1.1、公司层(谁开发的)• Anthropi
RemoteViews 实现原理深度解析RemoteViews,顾名思义,就是远程的 View。它是 Android 提供的一个用于跨进程更新 UI 的类,可以在其他进程中创建和更新 View。RemoteViews 实现了 Parcelable 接口,因此可以在进程间传输,主要用于通知栏通知和桌面小组件等场景。1、RemoteViews 概述1.1、什么是 RemoteViewsRemoteVi
Android AAPT 工具详解1、AAPT 概述AAPT是 Android 开发中的核心工具,全称为 Android Asset Packaging Tool。它是 Android SDK 的一部分,主要负责处理应用程序的资源文件,是 Android 应用构建过程中的重要组成部分。核心职责: - 处理应用程序的资源文件 - 编译资源为二进制格式 - 生成 R.java 文件 - 打包资源到 A
CodeGraph 详解:为 AI 编码助手注入语义代码智能CodeGraph 是由 Colby McHenry 开源的一款语义代码智能工具,旨在为 Claude Code、Cursor、Codex、OpenCode、Hermes Agent、Gemini、Antigravity 和 Kiro 等 AI 编码助手提供预索引的知识图谱。它通过构建符号关系、调用图谱和代码结构的知识库,让 AI 代理能
PathMeasure 动画路径追踪详解PathMeasure 是 Android 中一个强大的工具类,用于测量 Path 路径的长度、获取路径上某一段的片段、以及判断路径是否闭合等。它可以帮助开发者更精确地控制和绘制复杂的路径动画效果,是实现流畅动画的重要工具。1、什么是 PathMeasurePathMeasure 的核心功能包括: • 测量路径总长度 • 截取路径片段 • 获取路径上某点的坐
详解Android官方架构中UseCaseAndroid 最新的架构规范中,引入了 Domain Layer(译为领域层or网域层),建议大家使用 UseCase 来封装一些复杂的业务逻辑。传统的 MVVM 架构中,我们习惯用 ViewModel 来承载业务逻辑,随着业务规模的扩大,ViewModel 变得越来越肥大,职责不清。Clean Architecture 提出的关注点分离和单一职责(SR
OpenSpec 详解:最受欢迎的 AI 规范框架OpenSpec 是由 Fission-AI 开源的一个轻量级规范驱动开发(SDD)框架,号称"最受欢迎的规范框架"。它为 AI 辅助编码添加了一层轻量级的规范层,让开发者和 AI 在写代码之前先对齐需求,从而避免模糊提示带来的不可预测结果。OpenSpec 支持 25+ 种 AI 工具,采用 MIT 许可证,社区活跃,目前已发布 38 个版本。1
GreenDao 使用总结1、GreenDao 概述GreenDao 是 Android 平台上的一个轻量级 ORM(对象关系映射)库,旨在简化 SQLite 数据库的操作。它由 greenrobot 团队开发,提供了高效、简洁的数据库访问方式,是 Android 开发中常用的数据库解决方案之一。核心特点: - 高性能:针对 Android 进行了优化,执行速度快 - 内存占用小:代码精简,运行时
Coil ImageRequest 的 Target 与 ImageResult.image 的关系在 Coil 中,ImageRequest 的 target 设置与否确实会影响 ImageResult 中 image 的可用性,但行为是符合预期的逻辑,而非"不设置才有 image"。以下是关键点解析。1、设置了 target 的情况当你显式设置 target(如 binding.palette
规范驱动开发(SDD)详解规范驱动开发(Spec-Driven Development,简称 SDD)是一种以结构化规范为先导的软件开发方法。其核心思想是:在编写代码之前,先编写一份描述系统行为的规范(Spec),然后以该规范作为人和 AI 的"单一事实源"来驱动后续的设计、实现与验证。在 AI 编码工具爆发式增长的 2025-2026 年,SDD 正在重新定义软件工程的游戏规则。1、什么是规范驱
DiskLruCache 源码深度解析1、DiskLruCache 概述DiskLruCache 是一种基于 LRU(Least Recently Used)算法的磁盘缓存实现,由 Jake Wharton 开发,广泛应用于 Android 应用中。它提供了高效的文件系统缓存机制,特别适合缓存网络请求结果、图片等大型数据。核心特性: - 基于 LRU 算法,自动管理缓存大小 - 支持多线程并发操作
Android View 动画之 LayoutAnimation 详解1、LayoutAnimation 概述LayoutAnimation 是 Android 中用于为 ViewGroup 的子 View 添加进入动画的工具。它可以让列表、网格等容器中的子元素按照特定的顺序和时间间隔依次执行动画,从而创造出流畅、有序的视觉效果。核心特性: - 自动为 ViewGroup 的子 View 添加进入
Kotlin协程深度解析:suspendCoroutine vs suspendCancellableCoroutinesuspendCoroutine 和 suspendCancellableCoroutine 是 Kotlin 协程中将回调式 API 转换为挂起函数的核心工具。前者提供基础的续体挂起能力,后者在此基础上增加了取消支持和线程安全保障。本文从源码机制到实战场景,全面对比两者的差异与
Android 状态机 StateMachine 详解1、StateMachine 概述StateMachine 是 Android 框架提供的状态机实现,位于 com.android.internal.util 包中。它基于消息驱动,通过状态模式管理复杂的状态转换逻辑,广泛应用于 Android 系统内部,如 Wifi 状态管理、蓝牙连接管理等。核心特性: - 基于消息驱动的状态转换 - 支持状
Kotlin Channel 深度解析1、Channel 核心概念Channel 是 Kotlin Coroutines 中用于在协程之间进行通信的核心组件,它提供了一种安全、高效的消息传递机制。Channel 本质上是一个阻塞队列,支持发送和接收操作,具有背压控制能力。核心特性: - 支持无缓冲和有缓冲模式 - 提供公平和非公平的调度策略 - 支持多种关闭机制 - 与协程生命周期紧密集成 - 提
Android SurfaceView 全面解析与实践指南1、SurfaceView 概述SurfaceView 是 Android 中一种特殊的 View,它拥有独立的 Surface,可以在非 UI 线程进行绘制操作。与普通 View 不同,SurfaceView 的绘制不会阻塞主线程,这使得它非常适合需要频繁刷新或复杂渲染的场景。核心特性: - 独立的渲染 Surface,双缓冲机制 - 支
Google ML Kit Android 开发实战指南Google ML Kit 是 Google 推出的移动端机器学习 SDK,为 Android 开发者提供条形码扫描、人脸检测、文字识别等开箱即用的 AI 能力。本文从依赖配置到完整代码示例,详细介绍如何在项目中集成 ML Kit。1、准备工作1.1、添加依赖在模块级 build.gradle 文件中添加所需库(按需选择):1.2、Andro
AndroidX Biometric 生物识别登录实现指南AndroidX Biometric 是 Google 提供的生物识别认证库,支持指纹、面容等生物识别方式,兼容 Android 6.0 以上设备。本文从依赖配置到完整代码示例,详细介绍如何在项目中集成生物识别登录功能。1、添加依赖在 build.gradle 的 dependencies 节点下增加:建议使用最新版本,可在 Google
Android 布局中 @id/ 和 @+id/ 的区别1、基本概念在 Android XML 布局文件中,@id/ 和 @+id/ 用于定义和引用视图的唯一标识符: - @+id/:创建一个新的 ID - @id/:引用一个已存在的 ID2、详细区别2.1、@+id/- 功能:在 R.java 文件中创建一个新的 ID 资源 - 使用场景:当你首次定义一个视图的 ID 时 - 编译结果:会在 R
Java中的Optional:优雅处理空值的利器在 Java 8 之前,处理 null 值是一个常见的问题,容易导致 NullPointerException。Java 8 引入了 Optional 类,为我们提供了一种更加优雅、安全的方式来处理可能为 null 的值。本文将详细介绍 Optional 的使用方法、最佳实践以及常见误区。1、Optional 的基本概念1.1、什么是 Optiona
LM Studio 详解:本地运行大语言模型的最佳选择LM Studio 是一款跨平台的本地大语言模型运行工具,支持在 Mac、Windows 和 Linux 上离线运行 Llama、DeepSeek、Qwen、Gemma 等主流开源模型。完全免费,数据本地处理,隐私安全有保障。1、工具概述LM Studio 由 LM Studio 团队开发,是一个集模型下载、管理、推理于一体的本地化 AI 解决
CC GUI 插件详解:Claude Code 和 Codex 的双引擎 GUICC GUI 是一款 JetBrains IDE 插件,为 Claude Code 和 OpenAI Codex 提供双引擎 GUI 界面。MIT 100% 开源,支持 IntelliJ IDEA、Android Studio 等 15+ 款 IDE。1、插件概述CC GUI 由 MossX 团队开发维护,是一个完全开
View 坐标方法浅析:getLocalVisibleRect()、getGlobalVisibleRect()、getLocationOnScreen()、getLocationInWindow()1、概述在 Android 开发中,了解 View 的坐标位置和可见区域是非常重要的,特别是在实现动画、交互效果和布局调整时。Android 提供了多个方法来获取 View 的位置和可见区域信息,其中
Android 应用权限管理器 AppOpsManager 详解1、AppOpsManager 概述AppOpsManager 是 Android 4.3(API 18)引入的应用权限管理服务,用于跟踪和控制应用对敏感操作的访问。它提供了比传统权限更细粒度的控制,允许用户或系统限制特定应用的操作权限。核心特性: - 细粒度权限控制,精确到具体操作 - 支持运行时权限检查和限制 - 提供操作访问记录
Android Display 管理服务 DisplayManager 详解1、DisplayManager 概述DisplayManager 是 Android 系统服务,负责管理显示设备,包括主屏幕、外接显示器、虚拟显示器等。它提供了获取显示信息、监听显示变化、管理多屏显示等功能。核心特性: - 管理所有显示设备 - 提供显示信息查询接口 - 支持显示变化监听 - 支持多屏显示和屏幕镜像 -
Android TextInputLayout 详解1、TextInputLayout 概述TextInputLayout 是 Android Material Design 组件库中的重要控件,它继承自 LinearLayout,用于包装 EditText(或其子类如 TextInputEditText),提供更加丰富的输入体验。TextInputLayout 能够实现浮动标签、错误提示、字符计
C#中的dynamic动态类型在 C# 中,dynamic是一种特殊的类型,用于在编译时延迟类型检查,直到运行时才进行。可以在代码中编写更灵活的动态类型操作,而无需在编译时明确指定类型。dynamic类型在 C# 4.0 中引入,主要目的是支持动态语言互操作和简化某些复杂的反射操作。1、基本用法1.1、声明dynamic类型可以像声明其他类型一样声明dynamic类型的变量:1.2、动态类型操作由
Layout Inspector V2 插件用法详解1、Layout Inspector V2 插件概述 Layout Inspector V2 是一款针对 Android 开发的布局分析工具插件,它是对 Android Studio 内置 Layout Inspector 的增强版本。该插件提供了更强大、更直观的布局分析功能,帮助开发者快速定位和解决布局问题。核心功能:- 实时布局预览和分析-
新一代Json解析库Moshi使用及原理解析1、什么是 MoshiMoshi 是 Square 公司开发的新一代 JSON 解析库,专为 Kotlin 和 Java 设计。它是 Gson 的继任者,提供了更现代、更安全、更灵活的 JSON 解析方案。核心优势: - 完全支持 Kotlin 语言特性(空安全、数据类等) - 编译时类型安全检查 - 性能优异,内存占用低 - 扩展性强,支持自定义类型适
Android Camera拍照获取Bitmap完整实现本文提供一个完整的Camera拍照并返回Bitmap的实现方案,包含权限处理、相机预览和照片捕获流程。1、基本准备在AndroidManifest.xml中添加权限2、Activity/Fragment实现代码关键点说明:使用了最新的CameraX API,比传统Camera API更简单易用。完整的权限处理流程,包括运行时权限检查和申请两种
Koin依赖注入框架深度解析与实践指南1、什么是 KoinKoin 是一个轻量级、实用的 Kotlin 依赖注入框架,由 InsertKoinIO 团队开发。它专为 Kotlin 设计,采用简洁的 DSL 语法,无需注解处理器,无需代码生成,完全基于 Kotlin 语言特性实现依赖注入。核心优势: - 纯 Kotlin 实现,无注解、无代码生成 - 简洁直观的 DSL 语法 - 轻量级,启动速度快
DownloadManager 使用与解析1、DownloadManager 概述1.1、什么是 DownloadManagerDownloadManager 是 Android 系统提供的一个系统服务,用于处理长时间运行的 HTTP 下载。它可以在后台进行下载,处理 HTTP 交互,并在失败后或跨连接更改和系统重启后重试下载。1.2、DownloadManager 的特点- 处理后台下载,不阻塞
coroutineScope 与 supervisorScope:Kotlin 协程作用域的核心区别1、核心概念在 Kotlin 协程中,coroutineScope 和 supervisorScope 是两个重要的作用域构建器,它们的主要区别在于异常处理策略。2、coroutineScope- 异常传播:当任何子协程抛出未捕获的异常时,会立即取消所有其他子协程,异常会向上传播- 适用场景:任务之
Java Joda-Time 库详解1、Joda-Time 概述Joda-Time 是 Java 中处理日期和时间的优秀库,它提供了比标准 Java Date/Time API 更强大、更灵活的功能。Joda-Time 由 Stephen Colebourne 创建,旨在解决 Java 标准日期时间 API 的不足,是 Java 8 之前处理日期时间的首选库。核心特点: - 提供丰富的日期时间操作
Android MergeAdapter 用法详解1、MergeAdapter 概述MergeAdapter 是 Android Jetpack RecyclerView 库中的一个适配器类,它允许将多个不同的适配器合并为一个,从而在同一个 RecyclerView 中显示不同类型的内容。这一特性极大地简化了复杂列表的实现,特别是当列表中包含多种不同类型的数据和视图时。核心特点: - 支持合并多个
Android AppWidget 开发详解1、AppWidget 概述AppWidget 是 Android 提供的桌面小部件功能,允许应用在桌面显示关键信息,用户无需打开应用即可查看和操作。AppWidget 本质上是一个特殊的 BroadcastReceiver,通过 RemoteViews 在桌面展示界面。核心特性: - 显示在桌面,无需打开应用 - 支持定时更新和用户交互 - 跨进程显示
Android 性能分析利器:TimingLogger 类详解1、TimingLogger 概述TimingLogger 是 Android 提供的轻量级性能分析工具,位于 android.util 包中。它主要用于测量代码执行时间,帮助开发者识别性能瓶颈,优化应用性能。核心功能: - 记录多个时间点的耗时 - 支持嵌套计时 - 自动计算时间间隔 - 提供详细的日志输出 - 仅在调试模式下生效,不
Java File 类核心用法详解1、File 类概述File 类是 Java 中用于处理文件和目录路径名的核心类,位于 java.io 包中。它以抽象的方式代表文件名和目录路径名,主要用于文件和目录的创建、查找、删除等操作。核心概念: - File 对象代表磁盘中实际存在的文件和目录 - File 类不能访问文件内容本身,需要使用输入/输出流 - File 类提供了跨平台的文件操作方法构造方法:
获取其它应用资源技巧:createPackageContext()1、概述在 Android 开发中,有时我们需要访问其他应用的资源,例如获取其他应用的字符串、图片、布局等。Android 提供了 createPackageContext() 方法,允许我们在一个应用中访问另一个应用的资源和上下文。核心概念: - PackageContext:表示其他应用的上下文环境 - 权限:访问其他应用资源需
Android Jetpack分页库:Paging3 1、Paging3 概述Paging3 是 Android Jetpack 中的一个分页库,旨在简化 Android 应用中处理大型数据集的过程。它提供了一种高效、灵活的方式来加载和显示分页数据,特别适用于从网络或数据库加载大量数据的场景。核心特点: - 自动分页加载:根据需要自动加载数据,避免一次性加载全部数据 - 内存管理:智能缓存机制,优
Git Fetch 命令详解1、Fetch 命令的基本概念Git fetch 命令是 Git 版本控制系统中的一个核心命令,用于从远程仓库获取最新的代码变更,但不会自动合并到本地分支。它的主要作用是同步远程仓库的状态,让本地仓库了解远程仓库的最新进展,而不会影响本地的工作状态。核心概念: - 远程仓库:存储在网络或其他位置的 Git 仓库 - 本地仓库:本地计算机上的 Git 仓库 - 引用(Re
Toast 源码详解:从创建到显示的完整流程1、Toast 的创建与初始化1.1、makeText 方法Toast 的创建从 makeText() 方法开始:这个方法会调用内部的 makeText 方法,该方法会根据兼容性设置创建 Toast 实例:1.2、Toast 构造方法Toast 的构造方法会初始化关键成员变量:1.3、Looper 获取Toast 必须在有 Looper 的线程中创建:1
Android Html.fromHtml 用法详解1、Html.fromHtml 基本用法Html.fromHtml() 是 Android 中用于将 HTML 字符串转换为可显示的 Spanned 对象的方法,它可以将 HTML 标签转换为 Android 中的格式化文本,实现文本样式。基本功能: - 将 HTML 字符串转换为 Spanned 对象 - 支持常用的 HTML 标签 - 可以为
Linux 解/压缩命令详解1、tar 命令1.1、基本概念tar 命令是 Linux 中最常用的归档工具,用于创建和提取归档文件。它本身只是一个归档工具,不进行压缩,但可以与其他压缩工具结合使用。1.2、常用命令1.3、与压缩工具结合1.4、高级选项2、gzip 和 gunzip 命令2.1、基本概念gzip(GNU zip)是一种流行的压缩工具,使用 DEFLATE 算法压缩文件。gunzip
Java 三方库 Guava 详解1、Guava 概述Guava 是 Google 开发的 Java 核心库,提供了大量实用的工具类和扩展,旨在提高 Java 开发效率和代码质量。Guava 包含了集合、缓存、并发、字符串处理、函数式编程等多个模块,是 Java 开发者必备的工具库之一。核心模块: - com.google.common.collect:集合工具类 - com.google.com
Android Canvas 图层详解1、Canvas 图层概述Canvas 图层是 Android 绘图系统中的重要概念,它允许开发者在绘制过程中创建和管理多个绘图层,实现复杂的视觉效果。图层可以看作是独立的绘图表面,支持保存和恢复绘图状态,为绘制操作提供了更大的灵活性。核心概念: - 图层:独立的绘图表面,拥有自己的状态 - 画布状态:包括矩阵变换、裁剪区域、绘制属性等 - 图层栈:用于管理多
Android Surface 与 SurfaceView 使用指南Android Surface 与 SurfaceView 使用指南。1、Surface 基础概念1.1、什么是 Surface?Surface 是 Android 系统中的一个原始绘图表面,它:代表屏幕上的一个绘图区域由屏幕合成器(SurfaceFlinger)管理提供用于绘图的 Canvas 或 OpenGL ES 上下文1.
Kotlin Flow 操作符详解Kotlin Flow 是 Kotlin 协程库中用于处理异步数据流的强大工具。Flow 提供了丰富的操作符,使我们能够以声明式的方式处理数据流。本文将详细介绍 Kotlin Flow 的常用操作符及其用法。1、Flow 基本概念Flow 是一种冷流(cold stream),只有当终端操作符被调用时才会开始发射数据。它具有以下特点: - 异步数据流 - 可取消
ToolBar 与 ActionBar 详解:菜单标题栏的正确使用1、ToolBar 与 ActionBar 概述1.1、ActionBar 简介ActionBar 是 Android 3.0(API 11)引入的一个顶部导航栏组件,它位于应用顶部,显示应用标题、导航按钮和操作菜单。ActionBar 是系统默认提供的,与应用的主题绑定。1.2、ToolBar 简介ToolBar 是 Androi
Android蓝牙开发全面指南本文将深入介绍Android平台上的蓝牙开发技术,涵盖传统蓝牙(BT)和低功耗蓝牙(BLE)的开发流程及最佳实践。1、基本概念区分经典蓝牙(Classic BT): 适合大流量数据传输(音频、文件等) 典型协议:RFCOMM、SPP、A2DP 较高功耗低功耗蓝牙(BLE): 专为物联网设备设计 支持广播模式和连接模式 极低功耗2、开发前准备2.1、添加权限2.2、运行
Android 动效中的贝塞尔曲线1、贝塞尔曲线的基本概念贝塞尔曲线(Bézier curve)是一种用于计算机图形学的数学曲线,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)发明。它通过控制点来定义曲线的形状,是实现平滑动画效果的重要工具。工具: https://easings.net/# https://bezier.method.ac/核心概念: - 控制点:决定曲线形状的关键 p
Java 开发中让版本管理不再复杂的插件:GitToolBox1、GitToolBox 插件概述GitToolBox 是一款针对 IntelliJ IDEA 的 Git 增强插件,旨在提升开发者的版本管理效率。它为 IDE 内置的 Git 功能提供了一系列增强特性,使 Git 操作更加便捷和高效。核心价值: - 增强 Git 操作功能 - 优化界面展示 - 提供便捷的操作方式 - 提升团队协作效率
Android MediaRecorder 使用详解1、MediaRecorder 概述1.1、什么是 MediaRecorderMediaRecorder 是 Android 提供的一个用于录制音频和视频的类,它可以从设备的麦克风和摄像头获取数据,并将其编码为各种格式的媒体文件。1.2、MediaRecorder 的功能- 录制音频- 录制视频- 录制屏幕- 支持多种编码格式- 支持多种输出格式
Surface、SurfaceView 和 SurfaceHolder 详解1、核心概念解析1.1、什么是 SurfaceSurface 是 Android 中用于图形渲染的核心类,它代表了一个可直接绘制像素的缓冲区。Surface 是生产者和消费者模式的实现,生产者(如 Camera、MediaPlayer)可以向 Surface 写入数据,消费者(如 SurfaceFlinger)则负责将数据
CameraX 全面详解CameraX 是 Jetpack 组件之一,旨在简化相机应用的开发流程,同时解决不同厂商设备的兼容性问题。下面我将从基础到高级详细介绍如何使用 CameraX。1、核心概念1.1、Use CasesCameraX 围绕三个主要用例构建: Preview: 预览画面显示 Image Analysis: 图像分析 Image Capture: 拍摄照片1.2、Lifecycl
Android NFC 开发详解1、NFC 开发概述NFC(Near Field Communication,近场通信)是一种短距离无线通信技术,允许设备在短距离内(通常 10 厘米以内)进行数据交换。Android 从 2.3(API 9)开始支持 NFC,并在后续版本中不断完善 NFC 功能。核心概念: - NFC 标签:包含数据的被动设备,如 NFC 卡片、贴纸等 - NFC 读卡器模式:读
Java CompletableFuture:异步编程的利器1、CompletableFuture 概述CompletableFuture 是 Java 8 引入的一个强大的异步编程工具,位于 java.util.concurrent 包中。它实现了 Future 接口,并提供了丰富的异步操作方法,使得异步编程变得更加简单和优雅。核心特性: - 异步执行任务,不阻塞主线程 - 支持链式调用,代码更
Android 杀后台 App 进程的几种方式1、杀后台 App 进程概述在 Android 开发中,有时需要管理后台进程以优化系统性能、节省电量或实现特定功能。杀后台 App 进程是一种常见的操作,但需要注意不同的方法有不同的效果和权限要求。本文将详细介绍几种杀后台 App 进程的方式及其使用场景。核心概念: - 后台进程:应用退到后台后仍然运行的进程 - 进程优先级:Android 系统根据进
Android 红外开发详解1、红外开发概述Android 红外开发是指利用 Android 设备的红外发射器(IR Blaster)来控制家电设备,如电视、空调、机顶盒等。Android 4.4(API 19)引入了 ConsumerIrManager API,使得开发者可以方便地进行红外开发。核心概念: - 红外发射器(IR Blaster):硬件设备,用于发射红外信号 - ConsumerI
Room TypeConverter 深度解析TypeConverter 是 Room 数据库中处理非原生数据类型的关键机制,它允许您在数据库中存储复杂的数据类型。下面我将详细介绍其使用方法和工作原理。1、基本概念 Room 默认支持以下原生类型: 基本类型:int, long, float, double, boolean 包装类型:Integer, Long, Float, Double, B
Kotlin 数据流:冷热Flow 全面解析1、Flow 概述Flow 是 Kotlin 协程中的数据流处理工具,它提供了一种响应式编程模型,用于处理异步数据流。Flow 基于协程构建,具有挂起函数的特性,可以轻松处理异步操作而不会阻塞主线程。核心特点: - 异步处理:基于协程,支持挂起操作 - 响应式:支持数据流的转换和处理 - 背压处理:自动处理生产者和消费者之间的速度差异 - 操作符丰富:提
Claude Code 完全使用指南:从入门到高效协作1、Claude Code 概述与安装1.1、什么是 Claude CodeClaude Code 是 Anthropic 推出的智能编程助手工具,直接运行在终端和 IDE 中。它能够读取代码仓库、编辑文件、执行 Shell 命令,自主完成多步骤的编程任务。可与 Git、GitHub、外部服务(通过 MCP)以及开发环境深度集成。1.2、系统要
深入浅出 Kodein 依赖注入框架1、什么是 KodeinKodein 是一个轻量级的依赖注入框架,专为 Kotlin 设计,提供了简洁、类型安全的依赖注入方案。它的名称来源于 "KOtlin DEpendency INjection" 的缩写,体现了其为 Kotlin 量身定制的特性。核心优势: - 完全为 Kotlin 设计,充分利用 Kotlin 语言特性 - 类型安全,编译时检查依赖关系
Android Cursor 使用详解:为什么必须调用 moveToFirst()在 Android 开发中,使用 SQLite 数据库时,我们经常需要处理 Cursor 对象。一个常见的错误是直接尝试从 Cursor 中读取数据而没有先调用移动方法。本文将详细介绍为什么必须调用 moveToFirst() 或其他移动方法后才能读取数据。1、Cursor 基本概念Cursor 是一个指向查询结果集
深度解析 Android Startup 库:优雅掌控应用初始化1、Android Startup 库概述Android Startup 库是 Google 官方推荐的应用初始化框架,它提供了一种高效、有序的方式来管理应用启动时的初始化任务。该库解决了传统初始化方式中存在的问题,如初始化顺序混乱、依赖关系难以管理、启动时间过长等。核心价值: - 提供统一的初始化入口 - 支持任务依赖关系管理 -
Android开发指南:全面解析各类文件选择器的实现方法1、概述在Android应用中集成文件选择功能是现代APP的基础需求之一。本文将详细介绍如何实现多种类型的文件选择器,包括系统原生方案和第三方库解决方案。2、照片/媒体选择器2.1、使用Intent调用系统相册这是最简单直接的图片选择方式:2.2、使用PhotoPicker APIAndroid 13引入了专门的PhotoPicker API
AsyncListDiffer 全面解析:高效更新 RecyclerView 数据的利器1、AsyncListDiffer 是什么AsyncListDiffer 是 Android Jetpack 提供的一个工具类,专门用于处理 RecyclerView 数据集的异步差异计算。它能够在后台线程中高效地计算新旧数据集的差异,并以最优方式更新 UI,避免了手动调用 notifyDataSetChang
Jetpack Room 数据库使用完全指南Room 是 Android Jetpack 组件中的一个 SQLite ORM 库,提供了更简单的数据库访问抽象层。以下是全面且深入的 Room 使用详解。1、基础配置Gradle 依赖2、核心组件架构Room三大组件关系:Entity → Database ←→ Dao ↔ Repository ↔ ViewModel ↔ UI3、实体(Entity
ItemTouchHelper:轻松实现滑动删除与拖拽重排在 Android 开发中,为 RecyclerView 添加"滑动删除"和"拖拽重动"是提升用户体验的神技。以前这需要开发者手动计算坐标和处理动画,但自从有了 ItemTouchHelper,一切都变得优雅多了。本文将详细介绍如何使用 ItemTouchHelper 快速实现这些功能。1、什么是 ItemTouchHelper?ItemT
ClipboardManager 全面解析与应用指南1、核心体系结构Android剪贴板服务采用三层架构:2、基础操作手册2.1、获取系统服务2.2、文本复制标准流程2.3、安全粘贴验证3、高级内容处理3.1、富文本数据处理3.2、Intent对象传输3.3、自定义复杂数据4、监听机制详解4.1、传统广播监听(兼容旧版)4.2、现代回调监听(API 33+)5、企业级开发规范5.1、安全防护措施5
解决报错:The feature "nested type aliases" is experimental and should be enabled explicitly. 遇到的提示是:The feature "nested type aliases" is experimental and should be enabled explicitly. This can be done by
深入 Android FrameMetrics:性能监控的利器1、什么是 FrameMetricsFrameMetrics 是 Android API 24(Android 7.0)引入的一个性能监控工具,用于量化应用的 UI 渲染性能。它能够详细记录每帧渲染的各个阶段耗时,帮助开发者识别和解决性能问题。核心价值: - 精确测量每帧渲染时间 - 细分为多个渲染阶段,便于定位问题 - 支持实时监控和
Android 添加快捷方式指南在 Android 系统中,可以通过多种方式创建桌面快捷方式,包括静态快捷方式(Static Shortcuts)、动态快捷方式(Dynamic Shortcuts)以及 Pinned Shortcuts(固定快捷方式)。下面详细介绍每种方式的实现方法和使用场景。1、静态快捷方式(Static Shortcuts)适用于固定的功能入口,比如 App 的主要页面跳转。
ItemDecoration:打造精致的列表视觉效果作为 Android 开发中最强大的列表控件,RecyclerView 的灵活性和扩展性很大程度上来自于它的装饰器体系。本文将全面解析 ItemDecoration 的工作原理、各个方法的调用机制以及实战应用技巧。1、ItemDecoration 设计哲学1.1、核心定位ItemDecoration 采用典型的装饰者模式,在不侵入原有适配器和布局
Android 媒体通知终极开发指南:深入 MediaSession 与状态管理本教程将彻底剖析 Android 媒体通知系统的每个技术细节,包含完整的生命周期处理、精确的状态同步机制以及高级自定义功能的实现方案。1、核心架构深度解析1.1、MediaSessionCompat 完整初始化流程1.2、会话令牌传播机制关键路径: MediaBrowserService.onGetRoot() 返回包
StateListAnimator 详解与使用方法StateListAnimator 是 Android API 21 (Lollipop) 引入的强大动画框架组件,它可以根据视图的状态变化自动触发相应的动画效果。下面我将详细介绍其核心用法和工作原理。1、基础概念1.1、本质特性状态驱动:根据 View 的状态(如 pressed/focused/enabled)切换动画属性动画:底层使用 Obj
深入理解Android通知移除监听机制本文将详细介绍两种主要的Android通知移除监听方式:NotificationListenerService和setDeleteIntent(),帮助开发者选择最适合自己应用的解决方案。1、概述在Android开发中,我们经常需要知道用户何时移除了通知。常见的场景包括: 清理已完成的通知记录 统计通知点击率 根据用户操作调整后续通知策略 Android提供了
解决 Koin 的 ScopeAlreadyCreatedException 错误在使用 Koin 进行依赖注入时,可能会遇到 ScopeAlreadyCreatedException 错误,错误信息为 "Scope with id 'session' is already created"。本文将详细介绍这个错误的原因和解决方案。1、错误原因分析这个错误表示试图创建一个已经被创建的 Koin s
Palette的使用Palette的使用很简单,关键就是用图片(Bitmap)生成颜色调板(Palette),再从 Palette 中获取有代表性的颜色。以下是详细步骤和示例代码:1. 获取Bitmap对象必须有一个图片对象(Bitmap)。比如:2. 生成Palette对象异步生成(推荐方式):通常用 Palette 的异步生成,避免主线程阻塞:defaultColor:是当 Palette 没
查找Skill的技巧查找合适的Skill是提升AI助手效能的关键。以下是系统化的查找技巧,快速定位高质量Skill。1、明确需求与关键词策略精准的关键词是找到合适Skill的第一步。避免过于宽泛的词汇,采用具体化、组合化的搜索策略。推荐关键词模式:领域 + 动作 - react testing 优于 testing - nextjs deploy 优于 deploy - typescript li
MediaProjectionManager 详解:实现屏幕录制功能在 Android 开发中,屏幕录制是一个非常实用的功能,无论是游戏录制、教学演示还是应用展示,都需要用到屏幕录制技术。Android 提供了 MediaProjectionManager 类来实现屏幕录制功能,本文将详细介绍如何使用 MediaProjectionManager 实现屏幕录制。1、MediaProjectionM
MediaMetadataRetriever详解MediaMetadataRetriever是Android框架中一个非常有用的类,它允许开发者从媒体文件(如音频或视频)中提取元数据和帧。它提供了多种功能,例如获取媒体信息(时长、艺术家、标题等)、提取关键帧或指定时间的帧图像等。以下是其用法的详细说明。1、添加权限在使用MediaMetadataRetriever之前,可能需要在AndroidMa
Kotlin里的typealias关键字typealias 是 Kotlin 里的一个关键字,用于为已有的类型创建新的别名。它本质上是给类型加个“昵称”,这样可以让代码更简洁、可读性更强,特别是在类型很长、很复杂的时候。1、基本语法比如有一个很长的函数类型:定义之后,ClickListener 就能用在任何地方代替原本的 (Int, String) -> Unit 类型。2、主要用途·简化类型书写
深度解析ItemDecoration:不仅仅是分割线在 Android 开发中,RecyclerView 是一个非常强大的列表控件,而 ItemDecoration 则是其重要的组成部分。很多开发者只知道它可以用来添加分割线,但实际上,ItemDecoration 的功能远不止于此。本文将深入解析 RecyclerView ItemDecoration 的工作原理、使用方法以及各种高级应用场景。1
Kotlin ByteArray 和 ByteBuffer 深度解析1、ByteArray(字节数组)1.1、基本特性固定大小的原生字节序列JVM上对应Java的byte[]索引访问速度极快(O(1))1.2、创建方式1.3、核心操作1.4、二进制数据处理示例2、ByteBuffer(字节缓冲区)2.1、设计目的提供结构化二进制数据读写能力支持高低级混合操作内置字节序(endianness)控制2
SecureRandom 与 Random 的区别与用法详解在 Java 开发中,我们经常需要生成随机数,而 Random 和 SecureRandom 是两个常用的随机数生成类。虽然它们都能生成随机数,但在安全性、性能和使用场景上存在显著差异。本文将详细解析两者的区别与用法,帮助你在实际开发中做出正确的选择。1、基本概念与核心区别1.1、Random 类java.util.Random 是 Ja
MediaStore 使用完全解析MediaStore 是 Android 系统中用于管理多媒体内容的核心组件,它通过 ContentProvider 的方式让开发者可以安全地访问共享媒体库中的音频、视频和图像等资源。本篇会详细介绍其使用方法和工作原理。1、MediaStore 基础概念MediaStore 的几个核心概念:媒体库索引 (Index)、主要集合 (Collections)、内容 U
Android画中画模式完全指南作为移动端提升用户体验的重要功能之一,画中画(Picture-in-Picture,简称PIP)模式让用户在离开应用界面后仍能继续观看视频或进行语音通话。本文将全面剖析Android系统中两个关键方法的区别和使用场景。1、基本概念区分1.1、enterPictureInPictureMode()定位:入口方法作用时机:将普通Activity转换为PIP模式生命周期影
Android 触感反馈指南:玩转 Vibrator 振动器在 Android 中,振动器(Vibrator)是一种系统服务,可以让设备振动,实现提示或提醒效果。下面详细介绍 Vibrator 的使用方法,包括权限要求、基本 API、常见用法等。1. 添加权限如果 targetSdkVersion ≤ 32(Android 13 及以下),需要在 Manifest 文件里申请震动权限:从 Andr
Android 接收分享内容的完整实现指南关于如何实现分享单个或多个文件,参考之前的Android 分享功能实现指南。本篇讲的则是从接收方,要接收来自其他应用的分享内容(文本、链接、图片或文件),需要正确配置 Intent Filter 和处理传入的数据。1、基本配置下面是完整的实现流程:1.1. 修改 Manifest 文件首先需要在 AndroidManifest.xml 中添加适当的 Int
2026 最火 AI 神器盘点,让编程效率直接起飞!大家好,我是AI 技术博主QuibblerAgent。最近几个月,开发者圈彻底被几款 AI 工具刷屏了——OpenClaw(简称 AI Claw 或小龙虾)、Cursor 和 Trae。它们不再是简单的代码补全插件,而是真正把 AI 变成“开发搭档”甚至“常驻员工”。不管前端、后端还是全栈,这些工具都能让你从“敲代码”变成“指挥 AI 敲代码”。
Android 分享功能实现指南在 Android 应用开发中,分享功能是一个非常常见的需求。通过分享功能,用户可以将应用中的内容(如文本、图片、链接等)快速传递到其他应用中,如微信、QQ、蓝牙等。本文将详细介绍 Android 中实现分享功能的两种典型场景,并重点讲解通用的系统分享面板方法。1、分享功能概述在 Android 中实现分享功能,一般有两种典型场景:①调用系统的分享面板,把内容(文本
Android 获取网络信号强度的几种方法在 Android 应用开发中,获取当前设备的网络信号强度是一个常见的需求。无论是移动网络还是 WiFi 网络,了解信号强度可以帮助我们优化网络请求、提供更好的用户体验。本文将介绍几种获取网络信号强度的方法,包括移动网络信号强度和 WiFi 信号强度的获取。1、移动网络信号强度1.1、使用 TelephonyManager 获取信号强度TelephonyM

Word文档格式化显示代码计算机学生怎么能不会遇到在Word中贴代码!也不记得当时论文那么多代码是怎么整到word里的。反正只要一往word里帖代码,格式就是乱七八糟的。网上搜到一位大佬的个人网站:http://www.planetb.ca①输入要格式化的代码,选择语言②点击Show HightLighted,即可生成一个格式化好的网页 ③Ctrl+A全选网页内容复制,粘贴到word,即可④可能会

安卓投屏工具:Scrcpy电脑连接Android手机,在电脑上显示手机画面,并且能够操作手机。曾经费了好多精力去找一个理想中连接控制手机的工具,网上都是些乱七八糟的还有广告。今天介绍一个开源好用的电脑连接Android手机工具Scrcpy。 GitHub地址:https://github.com/Genymobile/scrcpy1、下载下载下来解压,USB连接手机和电脑。无需 ROOT 手机,不

禁止迅雷极速版强制升级的方法“迅雷极速版是迅雷在2014年,推出的全新版本。该版本采用极简风格,没有添加任何广告。当时,官方对外宣称,这是他们回归初心的作品,决定重新做一款用户喜欢的下载软件。”最近迅雷极速版开始频繁弹出升级提醒。到最后,还演变成了强制自动升级。而且,它会默认安装到C盘,用户根本无法取消关闭。昨天用迅雷下载,迅雷一直不断的弹出强制升级的窗口,只能通过任务管理器杀死自动升级的程序,除