Android Studio开发实战:从零基础到App上线的关键路径
简介面向Android零基础学习者的实战开发指南系统串起从环境搭建到App上线的完整路径。内容以Android Studio为核心涵盖Java环境配置与SDK设置并深入讲解UI布局LinearLayout、RelativeLayout、ConstraintLayout、Activity与Intent、Service与BroadcastReceiver等后台组件以及SQLite、SharedPreferences数据存储方案。网络部分重点介绍HttpURLConnection、OkHttp、Retrofit的请求方式与JSON解析并说明高德地图Key的申请调用思路。全书用实战项目贯穿需求分析、界面设计、功能实现、测试调试等阶段每章配置课后习题与参考答案便于边做边学。资源压缩包大小约80.98MB目前已有6411人学习下载适合自学入门、高校课程配套刷题及准备独立开发App的读者快速建立体系并动手实践。1. Android Studio开发实战从零基础到App上线这条路得这么走很多人把“Android Studio开发实战从零基础到App上线”理解成一本书、一门课或者一个遥远的目标实际上它是一条被验证过无数次的固定工序搭环境、写业务、跑调试、打包上架。我带过的新人里最快的那个用一周时间把第一个能用的工具类App交到应用市场审核慢的卡在环境上两天没动过差别不在天赋而在有没有按对的顺序走。这篇文章就按这条工序展开先解决JDK、SDK和模拟器的版本匹配再动手改项目结构和写交互代码然后把调试当成必修课最后处理签名、Release构建和市场审核。适合手上有Java或Kotlin基础、想独立完成一个工具类App从代码到上架全流程的新手也适合用来复盘带新人的路线是否漏了关键节点。2. 搭建开发环境JDK、SDK与模拟器的版本匹配陷阱新手在Android Studio落地的第一道坎不是下载软件而是版本匹配。安装包装完、界面能打开不代表你能顺利跑起模拟器。JDK版本和Gradle版本不对应、SDK Platform没下载、模拟器系统镜像和宿主机架构不匹配这三类问题占了环境搭建阶段八成以上的报错。我一般建议新人按“JDK先于Studio、SDK按需下载、模拟器最后创建”的顺序走每完成一步就用命令行验证一次避免装完一堆东西之后不知道错在哪。2.1 JDK版本先装对后面少一半玄学问题新版Android Studio默认要求JDK 11以上的长期支持版本当前更稳妥的选择是JDK 17。很多翻车案例是因为机器里装了多个JDKStudio用的是8而Gradle插件版本要求11最后报出各种看不懂的编译错误。先确认当前默认JDK版本这一步能省掉后面不少玄学时间。java -version # 期望输出类似openjdk version 17.0.x如果输出显示Java 8或者找不到命令优先去安装JDK 17然后在系统环境变量里把JAVA_HOME指到新目录。注意Studio自带JBRJetBrains Runtime可以开发用但命令行执行Gradle时走的是系统JAVA_HOME两者不一致会导致命令行打包和Android Studio界面里表现不同这是新手最容易忽略的差异点。检查完JAVA_HOME后在终端执行echo $JAVA_HOME确认路径没有空格、没有指向旧版本目录。2.2 SDK Platform与构建工具下载源与路径注意Studio首次启动会引导下载Android SDK默认路径在用户目录下的Android文件夹里。SDK Manager里有两类东西必须装一个是与你目标版本匹配的SDK Platform一个是构建工具Build-Tools。常见误区是只装了最新Platform结果项目里的compileSdk用旧版本号构建时Gradle会临时下载对应的Platform网络不好时直接卡死。下载慢的问题常见做法是在Gradle配置里加国内镜像仓库。把镜像地址放在google()和mavenCentral()之前Gradle会优先从镜像拉取依赖pluginManagement { repositories { // 国内镜像仓库地址按你网络环境选延迟最低的 maven { url https://maven.example.com/repository/google } maven { url https://maven.example.com/repository/gradle-plugin } google() mavenCentral() } }这里的关键是镜像地址的选用没有唯一标准建议先实测延迟。还要注意Android SDK目录权限Windows下不要把SDK装到Program Files里否则后续写文件会频繁弹权限确认Linux下避免用root直接装否则模拟器启动时会因为AVD文件属主不对而拒绝运行。2.3 创建模拟器分辨率、系统镜像与冷启动创建模拟器时选系统镜像这一栏很多人直接选最新的API版本结果发现宿主机的CPU不支持对应的硬件加速模拟器启动到一半黑屏。先确认电脑CPU架构Intel和AMD的现代CPU基本都支持HAXM或Hyper-V但老的CPU或某些虚拟机嵌套环境里x86_64镜像跑不起来这时只能退而用ARM镜像启动速度会慢很多。创建AVD时有三个参数值得反复调分辨率不要默认追高一般1920x1080足够日常调试RAM按宿主机内存一半左右给给太多会影响电脑整体响应Storage里的SD卡大小保持默认对大多数调试场景没影响。如果模拟器启动后一直黑屏或卡在蓝色启动画面先看事件日志里有没有“HAXM is not installed”或者“Hyper-V conflict”的提示再检查BIOS里的虚拟化开关是否打开。冷启动优化可以之后再做第一步是让它能稳定起来。3. 用Kotlin写第一个能跑的App项目结构、Activity与布局文件环境跑通之后真正的代码阶段才开始。很多教程上来就铺开整个项目目录把几十个文件一一解释新手看得懂但记不住。我的建议是反过来先只看三个文件跑通一个按钮点击跳转的流程再去理解其他文件是干什么的。这样第一印象是“我改了哪里、App就变成了什么样”后面自己去扩展时不会慌。3.1 New Project里的四个选项怎么选Android Studio新建项目时会让你选模板底部的选项里最影响后续工作的是Empty Views Activity、Kotlin和最低API版本。Empty Views Activity比Empty Activity多带一个简单的布局启动流程适合练习UICompose模板虽然更新但对零基础来说学习曲线更陡建议等熟悉了传统View体系再切。语言选Kotlin现在新项目里Java的占比越来越低没必要在起步阶段给自己挖坑。Minimum SDK建议选API 24或26覆盖了绝大多数活跃设备同时不会像选API 21那样在后面的新特性适配里反复做兼容判断。3.2 项目结构你只需要改这三个文件打开新建好的项目后Android视图里看着文件很多核心需要动的只有三个其余都是脚手架。搞清楚这三者的分工比盲目浏览目录更有用。文件作用你需要关心的内容MainActivity.kt页面行为控件的事件响应、数据加载、页面跳转activity_main.xml页面长相控件摆放、文字颜色、按钮样式AndroidManifest.xml应用入口与权限哪个Activity先启动、需要哪些权限清单文件里最常见的坑是加了Activity类但忘了在Manifest注册结果运行点击跳转直接闪退系统日志提示“ActivityNotFoundException”。养成习惯每新建一个页面先在Manifest里写注册代码再写页面逻辑。3.3 构建第一个交互按钮点击与页面跳转第2章里跑过模拟器之后新建项目的默认页面一定会显示。现在做的事是让页面上有一个按钮点击后打印一条日志并跳转到第二个页面。先把布局文件activity_main.xml改成下面的内容?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android android:layout_widthmatch_parent android:layout_heightmatch_parent android:orientationvertical android:gravitycenter Button android:idid/btn_login android:layout_widthwrap_content android:layout_heightwrap_content android:text登录 / /LinearLayout这里id/btn_login是给按钮起的控件标识后面Kotlin代码里通过它找到控件的实例。wrap_content让按钮宽高跟随文字内容自适应不会撑满整行。gravitycenter让按钮位于父布局的中央。LinearLayout的orientation用了vertical之后再往布局里加控件会从上往下依次排列而不是左右挤在一排。对应MainActivity.kt里的逻辑写成class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val btnLogin findViewByIdButton(R.id.btn_login) btnLogin.setOnClickListener { // 点击按钮后先打日志确认事件被触发 Log.d(MainActivity, login button clicked) // 跳转到SecondActivity val intent Intent(this, SecondActivity::class.java) startActivity(intent) } } }findViewById是传统View体系里拿到控件对象的通用方式Button表明期望拿到的是Button类型Kotlin写起来比Java的强制转换更简洁。setOnClickListener注册了点击事件的回调里面每次都创建一个新Intent指向SecondActivity。注意SecondActivity要先在Manifest里注册否则会抛出ActivityNotFoundException。这套点击跳转的结构后续所有页面的入口都长这个模样。4. 调试与联调从Logcat到断点定位崩溃的完整路径代码能跑起来只是第一步真正花时间的是“为什么没按预期工作”。Android Studio里最常用的调试工具就两个Logcat日志和断点调试器。前者用于观察运行时的输出后者用于让App停在可疑代码处逐行分析状态。新手最容易犯的毛病是看到崩溃直接截错误信息却不知道错误日志要从哪一行开始看。掌握以下四个操作大部分问题能自己定位。4.1 Logcat是黑匣子探针五个日志级别怎么用Logcat相当于App的黑匣子系统、应用框架、第三方库和你自己打印的日志都会汇入这里。Android的日志级别从低到高是V、D、I、W、E分别对应详细、调试、信息、警告、错误。日常排查综合症是只记得用Log.e一条道走到黑其实定位问题时要按场景选级别进入某个回调时用Log.d业务关键节点用Log.i可恢复的异常状态用Log.w只有会导致功能失败的才用Log.e。把级别用对过滤时才能一眼找到关键内容。// 观察某段网络请求是否被调用 Log.d(Network, request started) Log.d(Network, request finished. code: $code)Logcat面板里可以按包名过滤也可以按关键字搜索Network标签。如果日志被刷得太快先在过滤条件框里输入包名再叠加关键字。一个实用习惯在关键入口打上固定标签比如统一用小写类名做标签后期看日志时快速对齐代码位置比系统帮我们生成的类名直观很多。4.2 断点调试单步执行、变量观察与条件断点断点调试的核心是让代码在到达指定行时暂停从而观察那一刻变量的值。在代码行号右侧点一下就能打上断点App运行到该行就会停在Debug视角里。启动调试用Studio工具栏里的Debug按钮而不是Run按钮否则断点不会生效。常见的几个操作用得最频繁Step Over跳过当前行直接执行下一行Step Into进入被调用的函数内部Resume Program让App继续跑到下一个断点。三者配合就能把一段逻辑从入口到出口完整地看一遍。条件断点是熟手和新手的分界线。比如列表加载有100条数据想看第50条的状态不用一条条点过去直接在断点上右键设置条件position 50只有满足条件时才会停下来。这在处理循环和列表加载场景时节省大量时间。另一个常用技巧是给变量添加Watch这样在断点暂停时某些表达式的结果会实时显示不需要展开大对象逐层找。4.3 真机联调开发者选项里的三个关键开关模拟器能解决大部分界面层问题但定位性能、推送和硬件调用问题时真机联调比模拟器可靠得多。插上手机后先进入设置里的关于平板电脑/关于手机连续点击版本号七次打开开发者选项。三个开关决定是否能顺利联调USB调试必须打开仅充电模式下允许ADB调试建议打开否则每次插线都要在手机弹窗里手动允许一次不锁定屏幕选项开不开无所谓但调试时建议把锁屏时间调长避免App跑着跑着屏幕锁了那那会儿日志还在继续刷人却啥也看不清。第一次连接时会弹出“允许USB调试吗”的授权框勾选“一律允许”后以后这台电脑连接就不用再确认。如果插线后依然看不到设备先在命令行执行adb devices能列出设备但状态是unauthorized说明授权被拒绝状态是offline说明驱动或数据线有问题。普通USB线只能充电没数据能力这个翻车案例几乎每周都遇到。4.4 两种最常见的崩溃空指针与主线程卡顿崩溃定位可以先看异常类型。空指针异常NullPointerException在Android的Kotlin代码里大多数出现在强制解包可空变量时日志里会给出具体行号和变量调用链。比如下面的代码在列表数据为空时会崩溃val list: ListString? getList() val size list!!.size // 当list为null时直接抛出NPE解决方式不是一路加!!而是判断加提示if (list null) { return 空态占位 }之后走正常分支。另一个常见崩溃是主线程卡顿引起的ANR。系统规定主线程的输入事件处理超过一定时间会弹出“应用无响应”的弹窗。排查思路是去Logcat里搜“ANR in”或“Input dispatching timed out”定位是哪条消息超时。核心原则是耗时操作——网络请求、读写大文件、复杂计算——都不应该直接写在Activity的onCreate或点击回调里要用线程或协程包一层避免阻塞UI线程。5. 打包与上线签名、Release构建与应用市场审核的避坑清单开发调试阶段跑得再顺到了打包上架这时才遇到真问题。签名文件、构建配置、市场审核每一环都能让前面几周的努力卡在最后一步。这个环节的坑大多是“平时用不到、用时翻车多”所以值得单独做一份排查清单按现象、原因、解决三步对照处理。5.1 签名文件丢了它等于丢了后悔药签名是Android应用的身份标识同包名的App只有用同一把签名签出来的包才能覆盖安装。很多新手把签名文件放在项目目录里结果清理电脑、换电脑或压缩备份时把它弄丢后面再想更新版本只能换新签名用户那边旧版本无法直接升级只能卸载重装。签名文件的生成是一次性的生成之后必须单独备份。常见的保险做法是在Android Studio的Build菜单里选Generate Signed App Bundle or APK跟着向导创建新的Key Store时把密码写进密码管理器同时把.jks文件复制到项目目录之外的加密磁盘备份。日常开发不要拿正式签名去签测试包测试包用Android Studio自动生成的debug签名上线包才用正式签名这样正式签名的使用面最小泄露风险也低。5.2 两种Release构建方式菜单点击与命令行打包构建Release包有两种常规方式效果一样选哪种取决于你的工作流。界面方式适合随时打一个包给同事测命令行方式适合后续接入自动化构建。先看命令行方式在项目根目录执行./gradlew assembleRelease # Windows下用 gradlew.bat assembleRelease这条命令会用Module里的release构建类型完成编译、资源合并、代码混淆和打包产物在app/build/outputs/apk/release/目录下。第一次执行时Gradle会下载依赖并做全量编译耗时较长之后增量构建会快很多。如果项目里配了应用签名信息这一步产出的就是可直接上架的签名包如果没配产出的是未签名的release包安装时会提示应用未签名。5.3 三个打包失败场景排查混淆、内存与版本号打包阶段遇到问题不要慌大多数错误信息对应的是固定原因。下面三个是出现频率最高的踩坑点。现象一Release包安装后启动闪退Debug包一切正常。原因是Release默认开启了代码混淆某些通过反射调用的类比如Gson序列化的实体类、第三方SDK里的回调类被混淆后类名改变运行时找不到。解决方式是在proguard-rules.pro里添加保留规则比如-keep class com.example.model.** { *; }把实体类整包保留不让混淆器改动它们。现象二打包过程报“Execution failed for task :app:mergeReleaseResources”或内存溢出。原因是资源文件过大或配置的堆内存不够。解决方式有两种优先把项目里的大体积图片转成WebP或压缩到合理尺寸如果资源本身不大则在gradle.properties里调大构建堆内存org.gradle.jvmargs-Xmx2048m -XX:MaxMetaspaceSize512m现象三上传市场时提示版本号冲突。原因是你上一个线上包已经用了某个versionCode而当前构建包还是同一个值。解决方式是在模块的build.gradle里递增versionCodeversionName可以保持习惯的版本标签defaultConfig { versionCode 4 // 每次上架必须比上一包大 versionName 1.2.0 // 展示给用户的版本名 }在这里吃过亏的人都知道versionCode重复是最冤枉的驳回理由打产物之前检查一次这两个值比提交之后被驳回再改节省一整天。5.4 上架资料的四个准备项应用市场审核不只是APK文件这一件事。上传前把下面四样准备齐能明显减少来回修改的周期。第一是隐私政策应用内要能展示且在市场的隐私专区提交特别是涉及收集用户设备信息或读取存储权限的应用缺失隐私政策是常见驳回原因。第二是应用截图每个市场要求的数量和尺寸略有不同一套图打天下通常会被打回建议按目标市场的模板逐张适配。第三是软件著作权登记证书大部分国内应用市场要求提供且登记的主体名称要和开发者账号的主体一致。第四是应用内的用户协议入口若应用有账号体系未提供账号注销入口也会成为审核不通过的理由。这四项属于“做的时候烦、不做更烦”的部分宁可提前一周准备不要卡在提交前夜。6. Gradle构建变体与代码混淆上线前的最后一公里上线前最后要做的不是写业务代码而是把构建配置理顺不然等应用下载量上来、要迭代版本时每天都在手动改配置。Gradle的构建变体机制能让你一套代码同时产出开发版和正式版。buildTypes { release { // 开启混淆与资源压缩 minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile(proguard-android-optimize.txt), proguard-rules.pro } debug { // 开发包给包名加后缀与正式包区分安装 applicationIdSuffix .debug versionNameSuffix -dev } }这里minifyEnabled true会移除无用代码并重命名类和方法shrinkResources true会删除未被引用的资源文件两者配合能明显缩小安装包体积。applicationIdSuffix .debug让debug包的applicationId变成“正式包名.debug”因此模拟器里和手机上可以同时安装正式包和开发包互不覆盖这个习惯能避免很多测试时的卸载冲突。混淆开启后如果线上包崩溃报错堆栈里的类名和方法名都是混淆过的无法直接定位。这时要看构建产物里的mapping.txt文件它记录了原始名称与混淆后名称的对应关系路径在app/build/outputs/mapping/release/下。用Android Studio内置的Retrace工具把混淆后的堆栈反解回原始堆栈一行命令就可以处理retrace.bat -m mapping.txt obfuscated_stack.txt # 得到反解后的原始方法名和行号我做过不少项目最后悔的一次是把正式签名文件放在项目临时目录里一次磁盘清理后整个线上包无法更新只能全员引导卸载重装。现在我的习惯是签名独立备份、Gradle配置走版本控制、混淆映射文件随每个Release包归档。这些习惯看起来琐碎但都是上线之后才能体会到的价值。希望这些路径和踩坑记录能帮到你让你第一次上线就少走这些弯路。本文还有配套的精品资源点击获取

相关新闻

多智能体系统实战:从强化学习到LLM协作的架构与调优指南

多智能体系统实战:从强化学习到LLM协作的架构与调优指南

简介:《强化学习(多)智能体 和 大语言模型(多)智能体》PDF是一份聚焦强化学习智能体与大语言模型智能体两大主题的专题资料,适合算法工程师、科研人员、研究生以及关注Agent技术演进的学习者,帮…

2026/10/14 5:35:15 阅读更多 →
贝叶斯判别分析:面向工业场景的概率化分类方法

贝叶斯判别分析:面向工业场景的概率化分类方法

1. 什么是贝叶斯判别分析:不是高深公式,而是“带概率的分类直觉”你有没有遇到过这样的场景:医生看一张CT影像,说“有70%可能是早期肺癌”;银行风控系统在你提交贷款申请后,弹出提示“该客户违约概率为12.3…

2026/10/14 5:34:15 阅读更多 →
日常刷题记录方法论:从模板设计到复盘闭环的完整指南

日常刷题记录方法论:从模板设计到复盘闭环的完整指南

1. 刷题这件事,为什么值得好好记一笔"日常刷题记录"这六个字,看起来像是某个代码仓库里随手建的一个文件夹名字,但真正坚持刷题超过三个月的人会明白,这个标题背后藏着一整套方法论。我在接触过大量开发者之后发现一个规…

2026/10/14 5:34:15 阅读更多 →

最新新闻

Hive文件存储格式深度解析:从TextFile到ORC的选型与优化

Hive文件存储格式深度解析:从TextFile到ORC的选型与优化

1. 为什么文件存储格式值得单独拎出来讲做数据仓库这行的人,绕不开Hive。而一旦你开始认真用Hive处理稍微上点规模的数据,迟早会撞上一个问题:同样的SQL,为什么别人跑几分钟,我跑半小时?排除掉数据倾斜、资…

2026/10/14 6:18:25 阅读更多 →
转行Web3的1个月冲刺:从传统开发到3个Offer的完整策略

转行Web3的1个月冲刺:从传统开发到3个Offer的完整策略

32岁转行Web3,用1个月拿到3个Offer——这句话刚说出来的时候,身边没几个人信。我也是把整个求职过程从头到尾复盘了一遍,才确定这不是段子,也不是小概率事件。它背后有一套可以复用的转行策略:先把自己的原有技能翻译成…

2026/10/14 6:18:25 阅读更多 →
32岁后端转行Web3:一个月拿下智能合约开发Offer的完整路径

32岁后端转行Web3:一个月拿下智能合约开发Offer的完整路径

我32岁转行Web3,用1个月时间拿到了3个Offer。这个标题听起来像“速成学渣翻身记”,但真相没有标题那么轻松。拿到第三个Offer的那个下午,我坐在茶餐厅里喝了一口冰水,心里没有狂喜,只有一种“总算没白熬夜”的释然。这…

2026/10/14 6:18:25 阅读更多 →
Istio流量治理实战:金丝雀发布与全链路熔断配置解析

Istio流量治理实战:金丝雀发布与全链路熔断配置解析

上个月帮一个电商团队处理线上故障,现象很有意思:网关层一切正常,入口的限流和超时配置都在正常工作,但订单服务的调用链还是被下游的商品库存服务拖垮了。根因很简单——服务A调用服务B,服务B响应变慢,服务…

2026/10/14 6:18:25 阅读更多 →
后端限流算法详解:从固定窗口到分布式全局限流实战

后端限流算法详解:从固定窗口到分布式全局限流实战

做后端这几年,几乎每个上点规模的项目都会碰到同一个问题:流量一上来,系统响应变慢,紧接着超时、重试、雪崩,最后整个服务被打挂。很多人第一反应是加机器,但机器堆得再多,也架不住突刺流量瞬间…

2026/10/14 6:18:25 阅读更多 →
C++23新特性全解析:从语言核心到标准库实战

C++23新特性全解析:从语言核心到标准库实战

说句实话,C23这批新特性刚进入交付讨论时,我并没有特别兴奋。毕竟C20才塞进了协程、模块、概念和范围库这四座大山,很多团队的代码还停驻在C17甚至C14,再往前赶似乎有些透支。但当我真正把C23草案和提案列表翻过一遍后&#xff0c…

2026/10/14 6:17:25 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →