Android历史知识考试App设计:离线题库与考试引擎实现
拿到“安卓Android平台历史知识在线考试系统题库App的设计与实现”这个标题我先说说第一反应。市面上考试刷题App不少但多数集中在公考、驾考、英语这些大品类历史知识这类偏人文素养的题库反而被忽视。我刚做完的这个项目就是把历史知识题库和在线考试机制完整落地到Android端既要保证题目内容丰富、分类科学又要让考生在手机上有接近真实考场的答题体验。这篇文章就从需求拆解、题库建模、核心功能实现到踩坑记录完整复盘一次给打算做类似教育类App的开发者一个可参考的路径。1. 需求分析与整体思路不只是“出题判分”那么简单做这类项目最忌讳的就是上来就画界面、写SQL。我先把需求拆成了三个层面考生要什么、题库运营要什么、技术实现要什么。考生要的是刷题高效、反馈及时、错题能反复练题库运营要的是题目可维护、数据可统计技术端要的是离线可用、启动快、考试流程严谨。三者经常打架比如运营想随时更新题目但考生在高铁上没网这就逼着你必须设计成“本地题库为主、增量更新为辅”的架构。1.1 为什么历史知识特别适合做离线题库历史知识题目有几个特点内容相对稳定朝代、人物、事件、制度这些核心知识点不会频繁变化题目以客观题为主单选、多选、判断占了绝大多数自动判分容易实现图片资源需求少不像生物、地理那样依赖大量图解。这意味着只要在安装或首次启动时把题库种子数据放进本地数据库后续绝大多数场景都能离线刷题既省流量又保证响应速度。这个特性直接影响了我的技术选型也决定了App的核心体验。另外历史知识天然的“时间线属性”适合做知识卡片联动。比如考生答错一道关于“贞观之治”的题App如果能顺带展示同时期世界史的大事件或者关联到“玄武门之变”“开元盛世”等知识点就能形成链条式记忆。这比单纯刷题有意思得多也是后续我要在2.2节讲到的数据表设计的核心考量。1.2 模式设计上的取舍练习模式与模拟考试分开我一开始想做一个“一站式”的刷题入口后来发现练习和考试的逻辑冲突很大。练习题做错应该立刻给解析最好还能当场收藏但模拟考试一旦做成这样考生就会忍不住看答案失去了检验作用。所以我把两种模式彻底分开了模式选择页面做成了两个独立入口底层复用题目表和答题逻辑但行为差异很大练习模式答题后立即显示对错、给出解析、解释选项支持设置“做题模式”或“背题模式”背题模式直接显示答案和解析适合临考前快速过知识点。模拟考试模式按设定规则从题库抽题支持按章节、按随机、按难度比例三种组卷方式考试全程无解析交卷后统一评分并记录得分、排名分位、正确率分布等统计信息。这样分开后业务逻辑清晰了很多测试也好写。更大的好处是运营层面不用为两种模式分别维护题库一套题目两种用法后续加新功能也更容易。1.3 技术栈选型本地优先、ViewModel Room 协程为主轴技术选型上我坚持了一个原则能用成熟方案就不自己造轮子。数据库用Room它封装了SQLite编译期就能校验SQL语法配合Flow做响应式查询非常顺手异步用Kotlin协程避免回调地狱网络层用Retrofit OkHttp但只负责题库增量更新不承担日常刷题依赖UI层用单Activity Fragment Navigation组件页面跳转清晰。还有一个容易被忽视的点是题目图片的加载我用了Glide配合本地缓存策略后面4.2节会详细说。这里要补充一个关键取舍为什么业务完全离线可跑还要保留网络层因为题库不是一成不变的。运营那边每季度会修订一些题目的表述或者补充新增考点如果只能靠发版更新审核周期太长。所以我设计了一个轻量级的“更新包”机制——服务端只下发变更的题目ID和内容客户端启动时后台静默拉取、合并到本地库整个过程不打断用户使用。2. 题库建模与数据表设计历史知识怎样“装”进数据库题库是这个App的心脏。我在设计数据表时参考了历史考试的大纲结构把知识点组织成了章节-知识点-题目的三层结构而不是把题目简单地堆在一个大表里。这个设计直接决定了后续组卷、统计、错题归类的便利程度。2.1 章节与知识点拆分的实操思路看过历史考纲的人都知道内容通常按“中国古代史”“中国近现代史”“世界古代史”“世界近现代史”四大模块划分每个模块下又按时期或国家细分。我把它抽象成了一张类似“树”的结构顶层是模块中间层是时期/朝代/国家最底层是知识点。每个题目必须挂到最底层的知识点上但不限制只能挂一个——因为很多历史题是跨章节的比如一道题考“丝绸之路”的影响既涉及汉代也涉及唐宋。基于这个思路我没有用传统的父子表而是用了一张树形结构表存章节节点再用一张题目-知识点关联表做多对多映射。这样组卷时可以按任意层级筛选题目还能基于知识点维度做薄弱点分析。实际用下来这种设计的维护成本比单纯在题目表里加一个“章节ID”字段高不了多少但灵活性强了不止一个量级。2.2 核心表结构题目、选项、考试记录、错题本下面放一份我实际在项目中用到的表结构简版。命名和字段已经过脱敏处理但关键关系是完整保留的。设计的时候有一个核心原则题目基础信息与用户行为数据必须分离因为它们的写入频率和生命周期完全不同。question题目表字段类型说明question_idTEXT全局唯一ID服务端生成的字符串避免自增ID在增量同步时冲突category_idTEXT挂载的章节节点IDquestion_typeINTEGER题目类型1单选2多选3判断stemTEXT题干内容纯文本或含富文本标记image_urlsTEXT关联图片URL多个用JSON数组存可为空difficultyINTEGER难度等级1入门2中等3困难analysisTEXT答案与解析文本enabledINTEGER是否启用软删除用question_option选项表字段类型说明option_idTEXT选项唯一IDquestion_idTEXT外键指向题目表option_textTEXT选项内容option_tagTEXT选项标志A/B/C/Dis_answerINTEGER是否正确答案exam_record考试记录表记录每次模拟考试的答卷详情包括每题作答结果、用时、对错状态。这张表是后期做统计报表的数据源。wrong_question错题本核心字段是question_id、wrong_count、last_wrong_at、custom_note。错题本需要支持用户手动添加题目和自定义备注所以不能只依赖考试记录自动生成。2.3 预置题库种子数据的制作流水线题库内容从整理到入库中间有一条完整的流水线这是整个项目最耗人工的部分。我最初用Excel整理题目后来发现人多手杂Excel格式容易乱改成了结构化文档再做成JSON最后通过脚本导入SQLite。第一步从历史教材、历年真题、公开题库中搜集和整理题目标注来源。第二步统一题干和选项格式。比如一律用中文全角标点、选项文字中间不允许换行、正确选项必须且只能有一个单选题。判断类的题目则是“正确/错误”二选一不搞花活。第三步清洗和去重。用脚本按题目文本的哈希值做模糊去重人工复核那些改了描述没改考点的“伪新题”。第四步生成JSON文件校验字段完整性再跑一个导入工具写入SQLite。这里要提醒一句历史知识涉及年代、人物评价、事件定性内容的准确性要求非常高。我自己的做法是找历史专业背景的人做三审三校技术这边只能保证“存储和展示没问题”内容层面的责任不能大意。2.4 题库增量更新机制的实现细节增量更新的核心是日志表。每次运营修改题目内容服务端生成一条变更记录包含版本号、变更类型、题目ID、改动字段。客户端本地维护一张question_update_log表记录已应用的更新包序号启动时用序号对比缺失的补拉。合并更新时需要注意事务性拉取更新包、更新题目表、更新日志表必须在同一个数据库事务里完成否则中途崩溃会导致数据不一致。我的做法是整个更新流程在一条Room的withTransaction里跑如果更新包内有几千条数据也不建议一条条执行最好先把JSON解析成List再一次性做批量upsert操作。实测几十KB的更新包处理时间在几百毫秒内完全不会让用户感知。3. 核心功能实现过程考试引擎、答题交互与成绩评估功能实现阶段我按优先级排了三块考试引擎、答题交互、成绩评估。这三个模块是用户体验的骨架也是技术难点聚集地。3.1 考试引擎组卷、计时与交卷的完整生命周期考试引擎本质上是一个“状态机”待开始→答题中→已交卷。我先说组卷逻辑。模拟考试的组卷算法我写了一个独立的ExamPaperGenerator类输入是组卷规则范围、题量、难度比例、是否允许跨章节输出是一份题目列表。实现上不搞复杂的随机算法核心就是“分类加权随机抽取”先按章节比例分配题目数量再在对应章节内按难度比例做加权随机每题随机后标记已选避免重复。计时这块有几个容易踩的坑。考试超时自动交卷如果用单纯倒计时Handler一旦App被系统回收或者用户切到后台运行很久倒计时就会失真。我的做法是记录考试开始时间戳然后用一个每秒走一次的定时器驱动UI刷新而不是每秒去减1。交卷时以“考试开始时间 考试时长”的截止时刻为准而不是凭界面上的剩余秒数判断——因为你永远不知道用户有没有在某个时刻卡住或者手机休眠。自动交卷的边界条件也要处理好。比如倒计时归零那一刻恰好在提交最后一题这时候要防止重复提交——我在交卷入口加了一个ReentrantLock锁同一个考试记录只能被提交一次后续的自动保存请求直接丢弃。3.2 答题交互单选、多选、判断三种题型的差异处理交互层面的核心是“三套选择逻辑、一套作答数据模型”。单选用四个可点击卡片点击一个即选中并立即反馈但不需要立刻翻页——很多考生喜欢连续作答后统一跳到下一题多选需要点选确认后手动点“下一题”避免误触跳题判断只有正确/错误两个大按钮适合单手操作因为考场上很多用户其实是边走路边刷题的。所有题型的作答结果统一存一个AnswerRecord对象映射到RecyclerView的item状态上。这个对象里有answer、isMarked、isAnswered三个字段。isMarked是标记“存疑”状态配合答题卡上黄色小圆点显示是我从纸质考试“做记号”的习惯迁移过来的考生反馈很不错。UI实现上题目区采用滑动嵌套的方式题干和选项在一个ScrollView里题目之间用左右滑动或点击答题卡切换。但要注意嵌套滑动时的焦点冲突我加了一层requestDisallowInterceptTouchEvent的处理防止左右滑动时被RecyclerView拦截。3.3 成绩评估与统计准确率、知识点薄弱点与历史趋势交卷后不能只给个总分就完事。我的成绩评估分三层总分与正确率、章节维度分析、知识点薄弱点提示。总分好算章节维度是在组卷时记录每道题的章节归属交卷后按章节聚合对错数量知识点薄弱点需要第四张统计表——我直接用前面答案详情实时计算遍历一遍考试记录按knowledge_point_id分组统计正确率低于60%的知识点标红。用户在“我的报告”页面还可以看到历史考试成绩趋势图。这里我用了自绘折线图而不是引入完整图表库原因是历史记录通常只是几十条数据用Path和Canvas画一条带网格的折线就够了避免为了一个图表引入几百KB的依赖。对比柱状图则展示近期考试中不同章节的正确率对比视觉上更容易定位自己的薄弱章节。大量历史刷题数据沉淀下来之后还可以做“预测得分”——根据近10次模考的成绩和错题分布拟合一个得分区间。这个功能我当前版本没有上线但统计表的设计已经预留了字段后续扩展不费劲。3.4 离线策略与同步机制题库可用性和作答记录上报离线是框架性的设计不是某个页面单独处理的。启动时App检查本地题库版本与服务端版本差异超过阈值就后台拉更新包更新包下载后先落盘缓存文件再解析写入Room。这个流程我称为“被动同步”——更新动作由版本差异驱动而不是由用户点击驱动。作答记录的上报策略是“积攒-批量上传”本地维护一个待上报队列用户在无网状态下做的每一道题都先写入本地库标记为待同步。等网络恢复时一次性上报全部记录服务端确认后清空队列。这个机制需要特别注意重复上报问题我给每条记录加了一个UUID服务端收到重复UUID会直接忽略。4. 常见问题与排查技巧实录开发过程中踩过的坑不少我挑了三个最典型的写出来都是线上真的遇到过、排查起来绕了点弯的。4.1 数据库升级时千万要小心“旧版本字段丢失”有一次升级我把题目表里的stem字段长度从“TEXT”改为“VARCHAR(500)”但Room的迁移脚本写错了导致老用户升级后所有题干的末尾被截断几百道题的最后一两个字全部丢失。排查时真皮层里找了两天最后发现是MIGRATION脚本里写了ALTER TABLE question MODIFY COLUMN stem VARCHAR(500)但SQLite对MODIFY COLUMN支持并不完善它实际上重建了表却没有保留原有数据。教训是任何涉及表结构的修改都不要手写ALTER TABLE除非你非常确定SQLite的兼容行为。最稳妥的做法是在迁移脚本里创建一个临时表复制数据删除旧表再重命名新表。流程烦琐但不会出错我自己后来把这个封装成了一个RoomDatabase.Callback里的统一方法团队其他成员有新需求时直接用同一个工具类再没出过类似事故。4.2 题目图片加载导致的OOM与模糊加载策略历史题虽然不是图片密集型但一些地图题、文物图题还是需要展示图片的。初期我直接用Glide加载网络图结果遇到文案里的“示意图”是宽幅长图时内存峰值飙得很快低端机上出现OOM。排查发现是我没有给ImageView设置固定的宽高比Glide不知道目标尺寸可能加载原始分辨率的大图。解决方法是三步第一步在JSON里给每个图片URL配上宽高比例字段第二步自定义了一个FitImageView在知道比例后提前计算View的高度第三步在Glide请求里固定指定override宽高并使用diskCacheStrategy缓存到本地。改完之后内存占用降低了至少40%图片模糊率几乎消失。4.3 考试计时器在锁屏和后台时的“假死”问题这个问题很隐蔽。考试倒计时走着走着用户锁屏一会儿再打开发现倒计时变慢了。原因是我用了每一秒发一次消息的Handler但锁屏后系统为了省电会推迟Handler的执行频率有些甚至会被延迟几秒。如果只是界面显示还好最怕的是后台误判为考试超时直接交卷。解决思路在上面3.1节说了这里再补充一个细节除了记录开始时间戳还要监听ProcessLifecycleOwner的ON_STOP事件在App进入后台时记录“暂停时剩余时长”回到前台时通过“暂停时刻”计算实际流逝时间然后校准剩余时间。这个逻辑加完后不管用户是锁屏、切后台、还是接电话倒计时都不会失真。4.4 横竖屏切换时的答题状态丢失这是一个老生常谈但依然常见的坑。考生答题答到一半横竖屏切换后答案被清空了。根因是Activity重建导致Fragment重新实例化而我的AnswerRecord对象只放在了Fragment的成员变量里没有保存到ViewModel或SavedStateHandle。现在的做法是所有答题状态统一存放在Activity作用域的ViewModel里配合SavedStateHandle做进程被杀时的状态恢复。RecyclerView滚动位置、正在作答的题目索引、倒计时剩余时间、已经标记的存疑题目——全部放进SavedStateHandle。切换屏幕后完全无感恢复。这个改动看起来不难但涉及重构所有答题界面当时花了整整一个迭代周期去改改完后稳定性提升非常明显。5. 从题库运营角度反推的几点设计建议技术实现之外我还想聊几个和运营、内容生产相关的话题。做教育类App和做工具类App最大的不同是你不仅要设计好工程还要设计好“内容生产规范”否则题库质量会拖垮产品口碑。首先建议在数据库设计时内置一个“题目审核状态”字段而不仅是enabled布尔值。因为运营不可能一次性把所有题目都审核完有的题目可能是草稿状态、试运行状态、正式发布状态。我自己的表里用了一个review_state字段0是待审1是通过2是驳回。客户端查询题目时只过滤“1”运营后台则能看到全量。这样无论题目库多大都能增量审核、逐步上线而我最初在设计时差点只用一个enabled字段解决那样运营压力会很大。其次错题本的“自定义备注”功能在历史学科里意外地重要。考生遇到一道时间线错题往往不是只记“我选错了B”而是想记“混淆了开元盛世和贞观之治的时间”。备注字段允许用户输入文本还支持拍照附件——这个功能需求就是运营从用户反馈里收集来的后来成了错题本模块使用频率最高的功能之一。最后历史知识题库可以拓展“知识卡片”的形态。不要局限在“出题-作答”的闭环里在考生答错后除了显示标准解析还能弹出一张关于该历史事件的知识卡片包含时间地点人物、背景经过结果、延伸阅读三部分。我在3.2节实现时给题干区域设计了一个可折叠卡片效果非常好。这其实不算复杂的技术但需要内容团队提前按结构整理好知识点数据库表结构上预留一个knowledge_point_id关联即可。6. 最后的补充与实战体会整个项目从头到尾做了大约三个月中间一半时间花在题库整理和打磨考试流程上真正写代码的时间反而不多。我个人最大的体会是这类App的核心竞争力不在界面多炫、动画多流畅而在题库质量和考试流程的严谨性。考生可能不会因为你用了Material Design加分但一定会因为考试中途意外交卷而卸载。所以如果你也打算做类似的历史知识考试App我的建议是先把考试引擎的状态管理捋清楚再花大量精力设计数据表和内容规范最后才轮到UI打磨。最后分享一个小技巧答题卡界面的设计可以直接参考纸质考卷的作答方式除了常规的方格跳转之外我加了“已答”“未答”“标疑”“当前题”四种状态的颜色区分配合底部一排数字按钮考生定位非常快。这个设计后来在用户调研里获得了很高的评价算是无心插柳却相当成功的一个细节。

相关新闻

ComfyUI+LTX-2文生视频实战:从扩散模型原理到参数调优全指南

ComfyUI+LTX-2文生视频实战:从扩散模型原理到参数调优全指南

用ComfyUI把一段文字变成视频,这事我最近替不少人跑通了。要聊的主角是LTX-2,一个专门干文生视频的模型,也是目前我在ComfyUI里用下来比较顺手的视频方案之一。这篇文章不会给你堆一堆专业术语然后丢下一句"自己悟",而是…

2026/10/17 17:56:36 阅读更多 →
AI辅助毕业论文写作:从选题到降重的合规高效全流程指南

AI辅助毕业论文写作:从选题到降重的合规高效全流程指南

先亮明态度:这篇不是带货文,也不是“一键生成论文”的偷懒教程。我写这篇东西的原因很简单——每年3到5月,总能在各类群里看到被本科毕业论文逼到凌晨三点的学生,导师的意见永远是“逻辑不清”“问题意识不足”“表达不够学术化”…

2026/10/17 17:56:36 阅读更多 →
UML网上订餐系统实验报告:12个用例+顺序图+类图全解析

UML网上订餐系统实验报告:12个用例+顺序图+类图全解析

简介:UML网上订餐系统.doc是一份基于统一建模语言的网上订餐系统分析与设计实验报告,面向软件工程课程设计、UML建模学习及系统分析设计参考人群,核心价值在于展示从需求建模、分析模型到用例实现、类图与顺序图的完整过程。压缩包共1个doc文…

2026/10/17 17:56:36 阅读更多 →

最新新闻

Vastbase G100 V2.2信创实战指南:从连接配置到安全加固

Vastbase G100 V2.2信创实战指南:从连接配置到安全加固

简介:本资源是Vastbase G100 V2.2官方用户手册PDF文档,面向数据库管理员、信创项目实施工程师及国产化替代技术选型人员,聚焦解决Vastbase这一基于openGauss的国产信创数据库在部署、连接、管理与调优等核心环节的操作落地问题。文档共1个PDF…

2026/10/17 18:52:14 阅读更多 →
编译原理实验报告:词法分析器与递归子程序语法分析实战

编译原理实验报告:词法分析器与递归子程序语法分析实战

简介:东北大学秦皇岛分校的这份编译原理实验报告,聚焦PL/0语言词法分析程序的设计与实现,面向正在学习编译原理、需要完成词法分析实验的本科生及备考者。报告以C为载体,完整实现了从源程序字符串到(单词、类别&#x…

2026/10/17 18:52:14 阅读更多 →
SAP集团拷贝Client Copy完整流程与避坑指南

SAP集团拷贝Client Copy完整流程与避坑指南

简介:面向SAP Basis顾问及ECC系统管理员的集团拷贝(Client Copy)操作指南,详细讲解在SAP ECC 6.0 32位环境下从000集团复制到新建790测试集团的完整流程,涵盖逻辑系统定义与分配、新客户端参数配置、SAP*账号启用、后台…

2026/10/17 18:52:14 阅读更多 →
JavaScript表格隔行变色实战:从CSS方案到动态重绘

JavaScript表格隔行变色实战:从CSS方案到动态重绘

1. 从需求说起:隔行变色到底在解决什么问题1.1 一个再常见不过的展示场景先别急着写代码,想一下:你有多久没看过一张完全没有底色交替的纯白表格了?不管是后台管理系统里的订单列表,还是数据分析平台上的指标明细&…

2026/10/17 18:52:13 阅读更多 →
Flutter嵌套滑动实战:从手势竞技场到联动控制器

Flutter嵌套滑动实战:从手势竞技场到联动控制器

Flutter 里做嵌套滑动,说起来就一句话:让外层滚动视图和内层滚动视图配合起来,该让的让、该抢的抢。但真动手写代码的时候,你会发现它牵涉到手势竞技场、滚动通知链、物理惯性这几层东西,哪个环节没理顺,表…

2026/10/17 18:52:13 阅读更多 →
JS根据身份证号码精确计算年龄:从原理到实战避坑指南

JS根据身份证号码精确计算年龄:从原理到实战避坑指南

1. 从一个真实需求说起:为什么前端也要算年龄做前端开发这些年,表单校验和用户信息处理是绕不开的活儿。尤其是涉及实名认证、医疗登记、保险投保、在线教育报名这类场景,身份证号码几乎是必填项。产品经理往往会提一个看似简单的需求&#x…

2026/10/17 18:51:13 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →