Android开机自启实现:静态注册BOOT_COMPLETED广播接收器
简介本资源是一个面向Android开发初学者与进阶者的开机自启功能教学Demo聚焦静态注册广播接收器在系统级事件响应中的典型应用解决应用需在设备启动完成后自动执行任务如拉起服务、恢复状态的实战需求。压缩包共1254个文件涵盖170个XML配置文件含AndroidManifest声明与布局、28个Java源码含StartupBroadcastReceiver核心实现、157个DEX与155个CLASS字节码体现完整编译结构、120个JSON配置及516个flat资源文件整体大小为7.49MB结构完整便于理解从声明、权限配置到广播接收全流程。已有874人学习下载资源包含可直接运行的工程代码、详细注释、BOOT_COMPLETED广播监听与处理逻辑、RECEIVE_BOOT_COMPLETED权限配置示例以及适配Android 8.0后台限制的延伸说明提示是掌握静态广播生命周期与系统事件集成的实用入门范例。1. 开机自启 demo静态注册广播接收器为什么你的 App 在重启后“失联”了你写好了一个后台服务能定时上报设备状态、监听网络变化、维持心跳连接——一切本地测试都稳如老狗。可一旦手机重启App 就彻底静默通知不弹、服务不启、日志断档。用户反馈“一关机就失效”你查adb logcat却发现连onReceive()都没被调用。这不是代码逻辑问题而是 Android 系统在 8.0API 26之后对隐式广播的系统级封杀叠加 12API 31对后台启动 Activity 的进一步限制让“开机自启”从一个配置项变成了必须跨过三道门禁的权限通关任务。这个 demo 不是教你怎么“偷偷唤醒”而是用静态注册广播接收器这一唯一被系统保留的、无需运行时授权、不依赖前台进程的合法通道在设备完成启动流程BOOT_COMPLETED的第一时间安全、合规、可验证地拉起你的初始化逻辑。它适合所有需要在设备冷启动后自动恢复核心能力的场景IoT 设备管理、企业级 MDM 客户端、离线数据同步服务、紧急告警守护模块。注意它不解决“应用被用户手动 Force Stop 后无法自启”的问题——那是 Android 的设计原则不是 bug。2. 为什么必须用静态注册动态注册为什么不行2.1 系统启动阶段的生命周期断层BOOT_COMPLETED广播只发一次且只发给已安装的静态接收器Android 系统在完成内核初始化、Zygote 启动、SystemServer 加载后会广播android.intent.action.BOOT_COMPLETED。这个广播有三个硬性约束时机唯一仅在系统首次完成启动流程时发送一次不会重发接收资格只有在AndroidManifest.xml中静态声明、且android:enabledtrue、android:exportedtrueAndroid 12 强制要求的receiver才能收到进程隔离此时你的 App 进程大概率尚未启动甚至从未被用户打开过动态注册Context.registerReceiver()因无宿主进程而根本不存在。提示BOOT_COMPLETED是隐式广播但它是 Android 官方明确豁免的少数几个允许静态注册的隐式广播之一。其他如CONNECTIVITY_CHANGE在 7.0 已被禁止静态注册必须用ConnectivityManager.NetworkCallback替代。2.2 静态注册的 Manifest 配置四要素缺一不可以下配置必须完整写入app/src/main/AndroidManifest.xml的application标签下receiver android:name.BootCompletedReceiver android:enabledtrue android:exportedtrue android:permissionandroid.permission.RECEIVE_BOOT_COMPLETED intent-filter android:priority1000 action android:nameandroid.intent.action.BOOT_COMPLETED / category android:nameandroid.intent.category.DEFAULT / /intent-filter /receiverandroid:name指向你的接收器类必须是完整类名含包路径或以.开头的相对名android:enabledtrue确保接收器默认启用若为false需用PackageManager.setComponentEnabledSetting()动态开启android:exportedtrueAndroid 12API 31强制要求表示该组件可被其他应用此处是系统调用android:permissionandroid.permission.RECEIVE_BOOT_COMPLETED声明接收该广播所需的系统权限必须在uses-permission中单独声明见下节android:priority1000intent-filter的优先级范围 -1000 ~ 1000值越大越先接收。虽然BOOT_COMPLETED无竞争者但设为最高可避免未来兼容性风险category android:nameandroid.intent.category.DEFAULT /部分 ROM 厂商如某国产定制系统要求此 category 才触发加上更稳妥。2.3 权限声明RECEIVE_BOOT_COMPLETED是系统级权限需显式申请在AndroidManifest.xml的manifest根节点下与application同级添加uses-permission android:nameandroid.permission.RECEIVE_BOOT_COMPLETED /此权限属于normal级别安装时自动授予无需运行时requestPermissions()但注意若你的targetSdkVersion 31Android 12且未在receiver中声明android:exportedtrue即使有权限声明也会在安装时报INSTALL_FAILED_VERIFICATION_FAILURE某些厂商 ROM如某实验室测试机会额外要求android.permission.SYSTEM_ALERT_WINDOW或android.permission.FOREGROUND_SERVICE但这些与开机广播无关属后续服务启动所需不在本 demo 范围。3. 接收器实现轻量、快速、规避 ANR 的三原则3.1 接收器类结构继承BroadcastReceiver只做“触发”不做“执行”// app/src/main/java/com/example/bootdemo/BootCompletedReceiver.java public class BootCompletedReceiver extends BroadcastReceiver { Override public void onReceive(Context context, Intent intent) { // ✅ 正确立即启动前台服务或 JobIntentService将耗时逻辑移交后台 if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { // 方案A启动前台服务推荐用于需持续运行的守护逻辑 Intent serviceIntent new Intent(context, BootStartService.class); if (Build.VERSION.SDK_INT Build.VERSION_CODES.O) { context.startForegroundService(serviceIntent); } else { context.startService(serviceIntent); } } } }onReceive()必须在10 秒内返回前台广播或60 秒内返回后台广播否则触发 ANR严禁在此方法中执行耗时操作如网络请求、数据库批量读写、大文件解析严禁直接startActivity()Android 10 禁止后台应用启动 Activity会抛BackgroundStartNotAllowedException正确做法是“接力”用startService()/startForegroundService()/JobIntentService.enqueueWork()将控制权交给 Service由 Service 在独立线程中处理业务逻辑。3.2 后台服务承接JobIntentService是 Android 8.0 的合规首选// app/src/main/java/com/example/bootdemo/BootStartService.java public class BootStartService extends JobIntentService { private static final int JOB_ID 1001; public static void enqueueWork(Context context, Intent work) { enqueueWork(context, BootStartService.class, JOB_ID, work); } Override protected void onHandleWork(NonNull Intent intent) { // ✅ 正确所有耗时逻辑放在这里系统保证在后台线程执行 Log.d(BootStart, Handling boot work in background thread); // 示例初始化数据库、检查配置、启动心跳服务 initDatabase(); startHeartbeatService(); } private void initDatabase() { // 模拟耗时 DB 初始化 try { Thread.sleep(2000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } private void startHeartbeatService() { // 启动长期运行的心跳服务需在 Manifest 中声明 Intent heartbeatIntent new Intent(this, HeartbeatService.class); if (Build.VERSION.SDK_INT Build.VERSION_CODES.O) { startForegroundService(heartbeatIntent); } else { startService(heartbeatIntent); } } }JobIntentService是IntentService的替代品自动适配 Android O 的后台执行限制在低版本走startService()高版本转为JobScheduler任务onHandleWork()运行在后台线程无 ANR 风险enqueueWork()是启动入口必须在onReceive()中调用不能直接startService()JOB_ID需全局唯一建议用常量定义避免与其他 Job 冲突。3.3 前台服务保活startForegroundService()必须伴随startForeground()// app/src/main/java/com/example/bootdemo/HeartbeatService.java public class HeartbeatService extends Service { private static final int NOTIFICATION_ID 1002; private NotificationManager notificationManager; Override public void onCreate() { super.onCreate(); notificationManager (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); createNotificationChannel(); } Override public int onStartCommand(Intent intent, int flags, int startId) { // ✅ 关键必须在 5 秒内调用 startForeground() startForeground(NOTIFICATION_ID, buildForegroundNotification()); return START_STICKY; // 系统内存不足时尝试重启 } private void createNotificationChannel() { if (Build.VERSION.SDK_INT Build.VERSION_CODES.O) { NotificationChannel channel new NotificationChannel( boot_heartbeat, Boot Heartbeat, NotificationManager.IMPORTANCE_LOW); channel.setDescription(Keeps heartbeat alive after boot); notificationManager.createNotificationChannel(channel); } } private Notification buildForegroundNotification() { Intent notificationIntent new Intent(this, MainActivity.class); PendingIntent pendingIntent PendingIntent.getActivity( this, 0, notificationIntent, PendingIntent.FLAG_IMMUTABLE); return new NotificationCompat.Builder(this, boot_heartbeat) .setContentTitle(Boot Demo Running) .setContentText(Heartbeat service is active) .setSmallIcon(R.drawable.ic_launcher_foreground) .setContentIntent(pendingIntent) .build(); } Override public IBinder onBind(Intent intent) { return null; } }startForegroundService()后必须在 5 秒内调用startForeground()否则抛ForegroundServiceDidNotStartInTimeExceptionSTART_STICKY表示服务被系统杀死后若内存充足会尝试重启非 100% 保证通知渠道NotificationChannel在 Android 8.0 是强制要求否则通知不显示PendingIntent.FLAG_IMMUTABLE是 Android 12 对PendingIntent的新要求旧版可用FLAG_IMMUTABLE | FLAG_ONE_SHOT兼容。4. 避坑开机自启的 4 个血泪经验与排查清单4.1 现象onReceive()完全不触发Log 里看不到任何打印原因AndroidManifest.xml中receiver缺少android:exportedtrueAndroid 12 必须targetSdkVersion≥ 31 但未在build.gradle中设置android:exportedtrueRECEIVE_BOOT_COMPLETED权限未在uses-permission中声明设备处于“开发者选项 → USB 调试”关闭状态且未通过adb shell am broadcast手动测试。解决检查AndroidManifest.xml确认 receiver 和 permission 声明完整运行adb shell dumpsys package com.example.bootdemo | grep -A 20 receivers查看 receiver 是否被系统识别为exportedtrue手动触发测试adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n com.example.bootdemo/.BootCompletedReceiver需先安装 APK。4.2 现象onReceive()触发了但startForegroundService()报IllegalStateException原因startForegroundService()调用后onStartCommand()中未在 5 秒内调用startForeground()targetSdkVersion≥ 31 但HeartbeatService的AndroidManifest.xml声明中缺少android:exportedtrue前台服务需导出NotificationChannel创建失败如渠道 ID 为空或重复。解决将startForeground()调用移至onCreate()或onStartCommand()开头检查HeartbeatService的 Manifest 声明service android:name.HeartbeatService android:exportedtrue /在createNotificationChannel()中加Log.d确认渠道创建成功。4.3 现象服务启动了但 1 分钟后被系统杀死onDestroy()被调用原因START_STICKY不是“永生咒”系统内存压力大时仍会杀死某些厂商 ROM如某高校测试用的深度定制系统有额外保活策略需在设置中手动开启“自启动管理”、“电池优化白名单”HeartbeatService中未使用WakeLock或JobIntentService导致 CPU 休眠时线程被挂起。解决对关键心跳逻辑改用WorkManager设置周期性任务如 15 分钟一次比长时服务更省电在onStartCommand()中申请PowerManager.WakeLock需WAKE_LOCK权限但需谨慎释放引导用户进入系统设置手动开启自启动权限需ACTION_APPLICATION_DETAILS_SETTINGSIntent。4.4 现象真机测试正常但模拟器AVD始终不触发BOOT_COMPLETED原因AVD 默认启动模式为“Quick Boot”快照启动系统认为是“热启动”而非“冷启动”不发BOOT_COMPLETED某些 AVD 镜像如 Google Play 版本因 GMS 服务干扰广播被拦截模拟器未完成首次 Setup Wizard 流程即未进入桌面系统不认为启动完成。解决在 AVD Manager 中点击模拟器右侧 ▼ → “Cold Boot Now”冷启动创建 AVD 时选择 “x86_64” “Without Google APIs” 镜像避免 GMS 干扰启动模拟器后手动完成初始设置输入 Wi-Fi、跳过账户登录确保看到桌面后再测试。5. 验证与调试三步闭环验证法拒绝“玄学生效”5.1 第一步静态注册验证——用adb直接触发广播绕过重启这是最快速、最可控的验证方式能 100% 排除“是否注册成功”的疑问# 1. 确认 APK 已安装且包名正确 adb shell pm list packages | grep example.bootdemo # 2. 手动发送 BOOT_COMPLETED 广播指定 receiver 组件 adb shell am broadcast \ -a android.intent.action.BOOT_COMPLETED \ -n com.example.bootdemo/.BootCompletedReceiver # 3. 实时抓取 Log过滤关键 Tag adb logcat -s BootCompletedReceiver BootStartService HeartbeatService若看到BootCompletedReceiver: onReceive called→ 静态注册成功若看到BootStartService: Handling boot work...→ Service 接力成功若看到HeartbeatService: onStartCommandstartForeground→ 前台服务启动成功此步骤失败说明 Manifest 配置或权限有硬伤不必重启手机。5.2 第二步真机冷启动验证——记录时间戳与日志断点重启不是目的验证“从黑屏到服务就绪”的全链路才是// 在 BootCompletedReceiver.onReceive() 开头加 Log.d(BootTimeline, RECEIVER_START: System.currentTimeMillis()); // 在 BootStartService.onHandleWork() 开头加 Log.d(BootTimeline, SERVICE_WORK_START: System.currentTimeMillis()); // 在 HeartbeatService.onStartCommand() 开头加 Log.d(BootTimeline, HEARTBEAT_START: System.currentTimeMillis());重启手机用adb logcat -b all -v time | grep BootTimeline捕获全缓冲区日志查看时间戳差值RECEIVER_START到SERVICE_WORK_START应 100ms纯调度开销SERVICE_WORK_START到HEARTBEAT_START应 5s前台服务超时阈值若HEARTBEAT_START时间戳缺失说明startForeground()未执行或失败。5.3 第三步厂商适配验证表——不同 ROM 的实测行为差异厂商/ROM 类型BOOT_COMPLETED是否默认接收是否需手动开启“自启动”前台服务存活时长空闲状态备注说明AOSPPixel 原生✅ 是❌ 否≥ 30 分钟最标准行为Debug 首选某高校定制教育 ROM✅ 是✅ 是设置中叫“后台弹窗”≤ 5 分钟需引导用户进设置开启白名单某实验室测试机MIUI❌ 否需关闭“省电策略”✅ 是“自启动管理”≤ 1 分钟MIUI 12 默认拦截所有后台广播需关闭“神隐模式”某国产平板HarmonyOS✅ 是兼容 Android 广播❌ 否≥ 20 分钟HarmonyOS 3.0 对 Android 广播兼容性较好关键动作对目标机型必须在Settings Apps YourApp Battery Saver中关闭“智能省电”自动化提示在MainActivity中检测PackageManager.getComponentEnabledSetting()若 receiver 被禁用弹 Toast 引导用户去设置页不要硬编码适配用Build.MANUFACTURERBuild.MODEL做条件判断而非Build.BRAND易被篡改。6. 进阶技巧让开机自启“可灰度、可降级、可监控”6.1 灰度开关用BuildConfig控制 receiver 启用状态在app/build.gradle中定义构建变体开关android { buildTypes { debug { buildConfigField boolean, ENABLE_BOOT_RECEIVER, true } release { buildConfigField boolean, ENABLE_BOOT_RECEIVER, false } } }在AndroidManifest.xml中用tools:replace动态覆盖android:enabledreceiver android:name.BootCompletedReceiver android:enabled${enableBootReceiver} android:exportedtrue android:permissionandroid.permission.RECEIVE_BOOT_COMPLETED tools:replaceandroid:enabled intent-filter android:priority1000 action android:nameandroid.intent.action.BOOT_COMPLETED / category android:nameandroid.intent.category.DEFAULT / /intent-filter /receiverBuildConfig.ENABLE_BOOT_RECEIVER在 Java/Kotlin 中可直接读取发布前将release变体设为false上线后通过远程配置如 Firebase Remote Config动态下发true实现灰度发布避免“一刀切”上线降低全量故障风险。6.2 降级方案当静态广播失效时用AlarmManagerPendingIntent补位// 在 BootStartService.onHandleWork() 中添加降级逻辑 private void scheduleFallbackAlarm() { AlarmManager alarmManager (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent fallbackIntent new Intent(this, FallbackReceiver.class); PendingIntent pendingIntent PendingIntent.getBroadcast( this, 0, fallbackIntent, PendingIntent.FLAG_IMMUTABLE); // 设置 30 秒后触发模拟“启动延迟” long triggerAt System.currentTimeMillis() 30 * 1000; if (Build.VERSION.SDK_INT Build.VERSION_CODES.M) { alarmManager.setExactAndAllowWhileIdle( AlarmManager.RTC_WAKEUP, triggerAt, pendingIntent); } else { alarmManager.setExact(AlarmManager.RTC_WAKEUP, triggerAt, pendingIntent); } }FallbackReceiver是另一个静态广播接收器用于兜底setExactAndAllowWhileIdle()可在 Doze 模式下唤醒但需WAKE_LOCK权限此方案不替代BOOT_COMPLETED而是作为“如果 30 秒内未收到广播则主动触发”的保险丝。6.3 监控埋点记录每次启动的“健康分”驱动运维决策在HeartbeatService中加入启动质量打分private void recordBootHealth() { SharedPreferences sp getSharedPreferences(boot_health, MODE_PRIVATE); long bootTime System.currentTimeMillis(); int score 100; // 扣分项 if (isBatterySaverActive()) score - 30; // 电池省电模式 if (isAppInStopState()) score - 50; // App 被 Force Stop if (getMemoryUsage() 90) score - 20; // 内存占用过高 // 记录 sp.edit() .putLong(last_boot_time, bootTime) .putInt(health_score, score) .putString(reason, getHealthReason()) .apply(); // 上报伪代码 Analytics.reportEvent(boot_health, Map.of( score, score, reason, getHealthReason(), boot_time, bootTime )); }health_score 60 时自动触发Toast提示用户“检测到启动异常建议检查电池优化设置”后台聚合health_score数据生成“各机型启动成功率热力图”指导 ROM 适配优先级这不是“炫技”而是把过去靠人工猜的“为什么用户说不生效”变成可量化、可归因、可行动的数据流。我带过的三个项目里有两个在上线后第一周就靠health_score发现了某款热门机型的省电策略误杀问题三天内推送了针对性修复。真正的工程落地从来不是写完代码就结束而是让每一行代码都带着可观测性出生。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

ok-nte Combat Planner 详解:为《异环》角色编写协作战斗策略

ok-nte Combat Planner 详解:为《异环》角色编写协作战斗策略

【免费下载链接】ok-nte 异环 后台副本挂机 Automation for Neverness to Everness 项目地址: https://gitcode.com/gh_mirrors/ok/ok-nte 点击查看 免费下载 如果你在用 ok-nte 这款《异环》(Neverness to Everness)后台副本挂机工具&#…

2026/10/14 15:47:52 阅读更多 →
Matlab贝叶斯优化调参CNN-BiLSTM时序回归

Matlab贝叶斯优化调参CNN-BiLSTM时序回归

简介:本资源是一套基于贝叶斯优化的CNN-BiLSTM混合神经网络回归预测完整实现方案,面向机器学习初学者、时间序列建模研究者及Matlab深度学习实践者,适用于电力负荷、环境参数、金融时序等多输入单输出回归任务。压缩包共5个文件(4…

2026/10/14 15:47:52 阅读更多 →
WashData四字段配置完整教程:从零检测你的第一个洗衣机循环(附常见坑点指南)

WashData四字段配置完整教程:从零检测你的第一个洗衣机循环(附常见坑点指南)

【免费下载链接】ha_washdata Home Assistant integration for smart-plug appliance monitoring: detects cycles, matches programs, estimates time remaining. Supports washing machines, dryers, dishwashers and more. 项目地址: https://gitcode.com/gh_mir…

2026/10/14 15:47:52 阅读更多 →

最新新闻

AI Agent状态清理:超时重试背后的系统性风险与四维治理

AI Agent状态清理:超时重试背后的系统性风险与四维治理

1. 这不是超时和重试的问题,是状态管理的系统性溃败“给 AI Agent 加超时和重试后,我才发现真正的坑在状态清理”——这句话刚在内部技术群刷出来时,我正盯着一个跑了37分钟、卡在waiting_for_tool_execution状态、内存占用飙升到4.2GB却毫无…

2026/10/14 16:41:53 阅读更多 →
嵌入式Qt记事本开发全链路:从交叉编译到中文文件IO

嵌入式Qt记事本开发全链路:从交叉编译到中文文件IO

简介:这是一份基于Qt6开发的跨平台记事本项目源码,面向嵌入式与桌面应用开发初学者及Qt进阶学习者,聚焦GUI界面构建、文件编码处理与轻量级文本编辑功能实现。项目完整呈现了现代C在Qt框架下的典型工程实践,涵盖主窗口&#xff08…

2026/10/14 16:41:53 阅读更多 →
计算机系统概论第一章答案精讲:ISA、微架构与算法性质

计算机系统概论第一章答案精讲:ISA、微架构与算法性质

简介:计算机系统概论(原书第二版)第一章习题答案以PDF形式提供,面向计算机专业学生、考研读者和自学入门者,用于对照教材习题检验对计算机系统基础概念的掌握。内容选自原书附录的精选解答,覆盖冯诺依曼通用…

2026/10/14 16:41:53 阅读更多 →
远视储备与近视防控:从原理到实操的家长指南

远视储备与近视防控:从原理到实操的家长指南

1. 远视储备不是“储备”,而是一笔会不断消耗的视力存款1. 远视储备不是“储备”,而是一笔会不断消耗的视力存款1.1 远视储备到底是什么很多家长第一次听到“远视储备”这个词,是在幼儿园体检或者眼科门诊的报告单上。医生指着上面的数字说&a…

2026/10/14 16:41:53 阅读更多 →
Python数据挖掘实战:K均值聚类从原理到应用

Python数据挖掘实战:K均值聚类从原理到应用

1. 从一个真实需求说起:为什么K均值聚类值得你花时间搞懂做数据挖掘这些年,我越来越觉得,K均值聚类是那种“看起来简单、用起来真香、但踩坑也真不少”的算法。很多刚入门的朋友一听到“无监督学习”四个字就头大,觉得没有标签怎么…

2026/10/14 16:41:53 阅读更多 →
MinGW-w64离线安装包:断网Windows下C/C++工具链部署指南

MinGW-w64离线安装包:断网Windows下C/C++工具链部署指南

简介:MinGW-w64是为64位Windows系统打造的GCC工具链离线安装包,面向需要在Windows环境下学习或开展C语言开发的程序员。压缩包约2000个文件、133.98MB,主要由h头文件、Python脚本、a静态库、pyc编译文件、exe可执行程序、dll动态库及少量c源文…

2026/10/14 16:40:52 阅读更多 →

日新闻

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/14 16:30:29 阅读更多 →
影刀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/14 7:53:34 阅读更多 →