最新资讯

  • 安卓消息推送通知栏功能实现与服务器集成Demo项目

安卓消息推送通知栏功能实现与服务器集成Demo项目

2026-02-02 08:53:22 栏目:最新资讯 2 阅读

本文还有配套的精品资源,点击获取

简介:在安卓应用开发中,消息推送是实现实时通知的关键功能,广泛用于系统提醒、社交消息和运营活动等场景。本资源“安卓消息推送通知栏相关-消息推送最新demo服务器.rar”提供了一套完整的消息推送实现示例,涵盖客户端通知栏展示与服务器端消息发送逻辑。项目基于Android平台的NotificationManager、NotificationChannel(适配Android O+)、NotificationCompat构建通知,并结合PendingIntent实现点击响应。同时支持与主流推送服务(如FCM)集成,涉及HTTP/HTTPS、MQTT等通信协议,帮助开发者快速搭建稳定的消息推送系统。附带的源码说明文件和扩展资源链接进一步提升了学习效率,适合有一定基础的开发者进行二次开发与优化。

Android消息推送系统深度解析:从底层机制到全链路实战

在智能家居设备日益复杂的今天,确保无线连接的稳定性已成为一大设计挑战。而当我们把目光转向移动应用生态时,会发现另一个更微妙却同样关键的技术战场—— 消息推送系统 。这看似简单的“叮咚”一声提醒背后,隐藏着一套精密协作的工程体系,它不仅关乎用户体验的流畅度,更是维系用户活跃度的生命线。

你有没有想过,为什么有些App即便被杀掉后台,依然能准时弹出通知?而另一些应用却总是在关键时刻“失联”?这其中的秘密,就藏在安卓系统的推送架构里。让我们从一个真实场景切入:小明正在地铁上刷短视频,突然收到一条银行交易提醒,“您尾号8888的账户支出299元”。这条信息是如何穿越重重网络屏障,在毫秒级时间内精准抵达他的手机,并以特定样式呈现出来的呢?

答案是: 这不是单一技术的胜利,而是云通道、系统服务、权限模型与交互设计共同编织的一张实时通信网 。本文将带你深入这场“数字快递”的幕后运作,彻底拆解Android消息推送的每一个齿轮如何咬合转动。


想象一下,如果你是一个刚接手推送模块的开发者,面对的第一个问题可能就是:“我该用轮询还是长连接?”
传统轮询就像个勤快但低效的邮差,每隔几分钟就跑去服务器问一句:“有我的信吗?”虽然实现简单,但它每小时唤醒CPU数十次,电量消耗惊人,用户体验自然大打折扣。

而现代方案选择了另一种哲学—— 统一通道 + 智能分发 。以FCM(Firebase Cloud Messaging)为代表的云推送服务,本质上是一个“国家级邮政枢纽”。所有App不再各自建站招人,而是统一接入这个高效中枢。Google通过预置在系统层的常驻连接,为全球数亿设备维持一条轻量级心跳通道。当你的服务器想要发送消息时,只需把包裹交给FCM,剩下的路由、投递、签收都由这套成熟基础设施完成。

但这套理想化的全球体系到了国内却遇到了“水土不服”——由于GMS缺失,华为、小米、OPPO等厂商纷纷自建推送通道。于是开发者被迫进入“多端适配地狱”:既要对接FCM,又要集成HMS Push、MiPush、OPPO Push……仿佛每个品牌都在修自己的铁路,轨距还不一样 😅。

幸运的是,我们手头有一个名为 消息推送最新demo服务器.rar 的实验包,里面藏着通往真相的钥匙。打开它的配置文件,你会发现一段典型的HTTP POST请求:

{
  "to": "device_token",
  "notification": {
    "title": "新消息",
    "body": "您有一条未读通知"
  }
}

别小看这几行JSON,它们正是整个推送链条的起点。当你调用这个接口后,数据会先到达FCM网关,经过身份验证和格式校验,再通过那条神秘的TCP长连接,最终触发客户端的 onMessageReceived() 回调。紧接着,系统调用 NotificationManager 构建可视化提醒,形成完整的端到端闭环。

🎯 一句话总结当前状态 :我们已经站在了通知展示的最后一公里,前方就是 NotificationManager 这座控制中心的大门。


NotificationManager:安卓通知系统的神经中枢

如果说FCM是快递干线物流,那么 NotificationManager 就是你家门口的智能信箱管理员。它不仅要决定信件是否放进箱子,还要控制灯亮不亮、响铃不响铃、能不能被孩子偷偷翻出来……这一切的背后,是一套高度结构化的权限与行为管理体系。

它到底是谁?在哪里工作?

NotificationManager 并非普通类那么简单。它是Android系统服务的一员,运行于独立的 system_server 进程中,由名为 NotificationManagerService 的核心组件驱动。这意味着每一次通知操作,其实都是跨进程通信(IPC)的结果。

来看这张揭示其真实身份的流程图:

graph TD
    A[App Process] -->|getSystemService| B(NotificationManager)
    B -->|Binder IPC| C[system_server]
    C --> D[NotificationManagerService]
    D --> E[StatusBarManagerService]
    D --> F[Notification Ranker]
    D --> G[Notification Listener Manager]
    E --> H[Status Bar UI]
    G --> I[Third-party Monitoring Apps]

看到了吗?你调用的 notify() 方法,最终会流转到 StatusBarManagerService 去绘制UI;系统还会根据用户设置、设备状态和优先级算法(Ranker),动态调整通知排序;而对于像“微信自动回复助手”这类第三方工具,则需要通过 NotificationListenerService 申请监听权限才能获取内容。

特别值得注意的是,从 Android 13(API 33)开始,Google 引入了运行时权限 POST_NOTIFICATIONS 。也就是说,即使你在Manifest里声明了权限,也必须主动向用户申请授权才能发通知!此举进一步强化了用户的控制权,但也给开发者带来了新的合规挑战。

如何正确获取这个“管理员”?

标准方式只有一个:通过上下文获取系统服务实例。

// Java 示例
NotificationManager notificationManager = (NotificationManager) context
        .getSystemService(Context.NOTIFICATION_SERVICE);

if (notificationManager == null) {
    Log.e("Notification", "Failed to get NotificationManager instance");
    return;
}
// Kotlin 示例
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) 
        as NotificationManager

notificationManager ?: run {
    Log.e("Notification", "Unable to retrieve NotificationManager")
    return
}

虽然 getSystemService() 几乎不会返回null(因为NOTIFICATION_SERVICE是必选服务),但在某些定制ROM或测试环境中仍建议做空值判断,增强健壮性。

不过,仅仅拿到实例还不够。真正的挑战在于—— 如何让它听话地按照你的意图行事而不翻车?

这就引出了下一个关键点:初始化必须前置处理通知渠道(Channel)。因为在 Android 8.0 之后,没有渠道的通知就像没有邮编的信件,直接被退回。

下面是一个推荐的封装模式:

public class NotificationHelper {

    private static final String CHANNEL_ID = "default_channel";
    private NotificationManager manager;
    private Context context;

    public NotificationHelper(Context context) {
        this.context = context.getApplicationContext(); // 防止内存泄漏
        this.manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        createDefaultChannel(); // 确保渠道存在
    }

    @TargetApi(Build.VERSION_CODES.O)
    private void createDefaultChannel() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            CharSequence name = "Default Channel";
            String description = "Used for general notifications";
            int importance = NotificationManager.IMPORTANCE_DEFAULT;

            NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance);
            channel.setDescription(description);
            channel.enableLights(true);
            channel.setLightColor(Color.BLUE);
            channel.enableVibration(true);

            manager.createNotificationChannel(channel);
        }
    }
}

亮点解析
- 使用 getApplicationContext() 避免Activity引用导致的内存泄露;
- 渠道创建放在构造函数中,确保早于任何通知发送;
- 所有API调用都有版本判断保护,兼容旧系统;
- 推荐封装为单例工具类,供全局复用。

权限检查不能少:POST_NOTIFICATIONS的现实影响

很多开发者第一次在 Android 13 设备上调试时都会懵:“我都配置好了,为什么通知不出?” 答案往往就在权限上。

首先,在 AndroidManifest.xml 中声明:


然后在代码中动态申请:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    when {
        ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) 
                == PackageManager.PERMISSION_GRANTED -> {
            sendNotification()
        }
        shouldShowRequestPermissionRationale(Manifest.permission.POST_NOTIFICATIONS) -> {
            showExplanationDialog { requestPermission() }
        }
        else -> {
            requestPermission()
        }
    }
} else {
    sendNotification()
}

private fun requestPermission() {
    ActivityCompat.requestPermissions(
        this,
        arrayOf(Manifest.permission.POST_NOTIFICATIONS),
        REQUEST_CODE_POST_NOTIFICATIONS
    )
}

这里有几个细节值得玩味:
- shouldShowRequestPermissionRationale() 可以判断用户是否曾拒绝过权限,从而决定是否弹窗解释用途;
- 即使获得了 POST_NOTIFICATIONS ,仍需调用 areNotificationsEnabled() 检查用户是否在系统设置中完全关闭了通知开关;
- 如果发现被禁用,可以引导用户跳转至设置页:

if (!manager.areNotificationsEnabled()) {
    Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
    intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName());
    context.startActivity(intent);
}

🔔 经验之谈 :我在某电商项目中就遇到过这种情况——测试机一切正常,上线后大量用户反馈“收不到订单提醒”。排查才发现,他们在安装时直接点了“不允许”,后续也没有手动开启。后来我们在冷启动时增加了友好提示,转化率提升了近40%!


发送与取消通知:不只是调个API那么简单

现在我们终于拿到了“信箱管理员”的钥匙,接下来要做的就是投递第一封信。但别急,这里面也有不少门道。

notify(id, notification):你以为只是显示,其实暗藏更新逻辑

核心方法很简单:

public void sendSimpleNotification(int id) {
    Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID)
            .setSmallIcon(R.drawable.ic_notification)
            .setContentTitle("新消息")
            .setContentText("您有一条未读消息")
            .setPriority(NotificationCompat.PRIORITY_DEFAULT)
            .build();

    notificationManager.notify(id, notification);
}

但注意那个 id 参数!它不仅是标识符,更是去重的关键。系统依据ID进行管理:如果相同ID的通知已存在,则更新其内容;否则新建一条。

所以聪明的做法是按业务类型划分ID区间:

ID 范围 用途
0 – 999 即时消息通知
1000 – 1999 系统提醒(订单、支付)
2000 – 2999 下载任务进度
3000 – 3999 定位与导航事件

这样既能避免冲突,又能快速定位问题。

另外, notify() 是非阻塞的,调用后立即返回,实际渲染由系统异步处理。适合用于频繁更新的场景,比如下载进度条。

取消通知:cancel vs cancelAll,选择的艺术

有两种主要方式:

// 取消特定通知
notificationManager.cancel(NOTIFICATION_ID_MESSAGE);

// 清空所有通知
notificationManager.cancelAll();

选择哪个取决于业务逻辑:
- 用户点击通知进入聊天界面 → 应 cancel() 清除该条;
- “清除所有通知”按钮 → 调用 cancelAll()
- 正在录音或播放音乐 → 即使清空也不能消失,要用 setOngoing(true) 标记为常驻通知。

⚠️ 特别提醒: cancelAll() 不会影响标记为 setOngoing(true) 的通知,这类只能通过再次调用 cancel() 显式移除。

ID管理进阶:类型+主键哈希,打造永不重复的唯一ID

对于复杂应用,简单的数字ID不够用了。我们需要一种更具语义性的生成策略:

public int generateNotificationId(String type, long businessId) {
    int typeId = type.hashCode() % 1000; // 类型标识
    int bizId = (int) (businessId % 1_000_000); // 业务主键截断
    return typeId * 1_000_000 + bizId;
}

// 示例:消息来自用户ID=123456789
int id = generateNotificationId("message", 123456789); // 得到唯一ID

这个算法保证了同一实体始终使用相同ID,从而实现内容更新而非新增。支持最大约 1000 种类型 × 百万级主键的映射空间,足够大多数场景使用。

配合SharedPreferences还能实现防抖机制:

private void updateLastNotificationTime(int id, long time) {
    SharedPreferences sp = context.getSharedPreferences("notifs", Context.MODE_PRIVATE);
    sp.edit().putLong("last_notify_" + id, time).apply();
}

private boolean shouldSuppressDuplicate(int id, long thresholdMs) {
    long last = context.getSharedPreferences("notifs", Context.MODE_PRIVATE)
            .getLong("last_notify_" + id, 0);
    return SystemClock.elapsedRealtime() - last < thresholdMs;
}

比如设定阈值为3秒,防止短时间内重复推送相同内容,简直是防“轰炸式营销”的利器 🛡️。


通知渠道(NotificationChannel):用户主权时代的到来

还记得以前那些动不动就弹窗、响铃、震动的应用吗?它们的时代已经结束了。自 Android 8.0 起,Google 推行“用户主导通知体验”的理念,引入了 通知渠道(NotificationChannel) 机制。

这意味着什么?意味着你不能再“一揽子”开启所有通知行为。每一个通知类别都必须单独注册渠道,并接受用户的最终裁决。

为什么要这么麻烦?

因为在过去,用户只有两个选项:允许所有通知 or 完全禁止。一旦某个App滥用通知,用户往往会选择极端措施——关闭全部通知,结果连重要提醒也错过了。

而现在,他们可以做到:
- 允许“好友消息”播放声音并弹出横幅;
- 将“系统公告”设为静音但保留在通知栏;
- 完全屏蔽“促销活动”类通知。

这种精细化控制极大提升了自主性,也倒逼开发者必须认真分类设计。

来看看这个决策流程:

flowchart TD
    A[用户安装应用] --> B{是否允许通知?}
    B -->|否| C[无任何通知]
    B -->|是| D[系统列出所有通知渠道]
    D --> E[用户逐个配置每个渠道]
    E --> F[应用只能按用户设定发送对应通知]
    F --> G[用户可随时返回设置修改]

看到了吗?整个链条中, 用户才是最终决策者 。这也意味着我们必须做好降级处理与反馈提示。

渠道的重要性等级:决定命运的核心参数

在 Android 8.0 之前,优先级由 setPriority() 控制;现在取而代之的是 importance 级别,它直接影响以下行为:
- 是否发出声音;
- 是否启用震动;
- 是否点亮屏幕;
- 是否在锁屏上可见;
- 是否以横幅形式弹出;
- 是否绕过免打扰模式。

以下是各等级对比表:

Importance Level 行为特征 适用场景
IMPORTANCE_NONE 0 无声音、无震动、不弹出 后台同步、统计上报
IMPORTANCE_MIN 1 静默通知,仅出现在折叠面板 文件下载完成
IMPORTANCE_LOW 2 可选震动,无声音,小图标展示 日程提醒、普通更新
IMPORTANCE_DEFAULT 3 默认铃声 + 可选震动,支持横幅 普通消息提醒
IMPORTANCE_HIGH 4 强提醒:声音、震动、横幅弹出 即时通讯、来电提醒
IMPORTANCE_CRITICAL 5 最高优先级,可打断免打扰模式 紧急报警、安全警告

⚠️ 注意: 一旦渠道创建完成,其 importance 值不可更改 。若需调整,必须删除原渠道并重建(ID相同视为同一渠道)。因此首次创建时必须谨慎评估!

举个例子:社交App应为“私聊消息”创建 HIGH 级别渠道,而“群组@全体成员”则设为 DEFAULT ,避免过度打扰。

创建渠道的最佳实践

完整示例如下:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    String channelId = "chat_message_channel";
    String channelName = "聊天消息";
    String description = "接收来自好友的实时文字消息";
    NotificationChannel channel = new NotificationChannel(
        channelId,
        channelName,
        NotificationManager.IMPORTANCE_HIGH
    );

    channel.setDescription(description);
    Uri soundUri = Uri.parse("android.resource://" + context.getPackageName() + "/" + R.raw.message_tone);
    AudioAttributes audioAttributes = new AudioAttributes.Builder()
        .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
        .setUsage(AudioAttributes.USAGE_NOTIFICATION)
        .build();
    channel.setSound(soundUri, audioAttributes);

    channel.enableVibration(true);
    channel.setVibrationPattern(new long[]{0, 100, 200, 300});

    channel.enableLights(true);
    channel.setLightColor(Color.BLUE);

    channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);

    NotificationManager manager = getSystemService(NotificationManager.class);
    manager.createNotificationChannel(channel);
}

🔍 逐行解读
- 必须加版本判断,防止低版本崩溃;
- setSound() 一定要绑定 AudioAttributes ,否则可能无声;
- setVibrationPattern() 数组表示 [延迟, 第一次震动, 延迟, 第二次震动…];
- setLockscreenVisibility() 控制锁屏时是否显示敏感内容;
- 推荐在 Application.onCreate() 中批量注册所有渠道,确保早于任何通知发送。

渠道ID命名规范:让维护变得轻松

渠道ID是系统识别的唯一依据,必须满足:
- 全局唯一;
- 不可变(发布后不能改);
- 语义清晰;
- 支持国际化。

推荐格式: [功能域]_[子类型]_[行为特征]

示例:
- message_direct_high
- update_app_reminder_low
- alarm_emergency_critical

避免中文、空格或特殊字符。建议定义常量类集中管理:

public class NotificationChannelIds {
    public static final String CHAT_MESSAGE = "chat_message";
    public static final String GROUP_ANNOUNCEMENT = "group_announce";
    public static final String DOWNLOAD_COMPLETE = "download_done";
    public static final String PROMOTIONAL = "promo_marketing";
}

这样既便于引用,也有利于后期维护与多语言适配。


NotificationBuilder:打造专业级通知体验

有了渠道,接下来就要精心设计通知本身了。 NotificationCompat.Builder 是构建通知的核心类,它提供了丰富的API来定义外观、行为与交互。

基础属性设置:标题、内容、图标

Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_notification)
    .setContentTitle("新消息提醒")
    .setContentText("您有一条未读的系统通知,请及时查看。")
    .setSubText("来自系统服务")
    .setPriority(NotificationCompat.PRIORITY_DEFAULT)
    .build();

📌 注意事项:
- smallIcon 必须为纯白alpha图层,否则深色主题下看不见;
- contentTitle 不超过两行, contentText 控制在200字符内;
- subText 添加辅助信息,如发送人或时间;
- 从 Android 12 起, setPriority() 已被废弃,应完全依赖渠道重要性。

图标加载优化:避免OOM的小技巧

largeIcon(Bitmap) 接收位图对象,但直接传大图易引发内存溢出。应采用压缩策略:

Bitmap largeBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.avatar_user);
Bitmap scaledBitmap = Bitmap.createScaledBitmap(largeBitmap, 64, 64, true);

new NotificationCompat.Builder(context, CHANNEL_ID)
    .setLargeIcon(scaledBitmap)
    .build();

如果是网络图片,推荐用 Glide/Picasso 异步加载转换。

还可以制作圆形头像提升视觉一致性:

Resources res = context.getResources();
Bitmap srcBitmap = BitmapFactory.decodeResource(res, R.drawable.avatar);
RoundedBitmapDrawable roundDrawable = RoundedBitmapDrawableFactory.create(res, srcBitmap);
roundDrawable.setCircular(true);

高级样式扩展:BigTextStyle、InboxStyle、MediaStyle

BigTextStyle:长文本展开效果

适用于新闻摘要、邮件预览:

String longMessage = "这是一段非常长的消息内容……最多支持约500个字符。";

new NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_mail)
    .setContentTitle("收到一封新邮件")
    .setContentText("点击查看完整内容")
    .setStyle(new NotificationCompat.BigTextStyle()
        .bigText(longMessage)
        .setSummaryText("from: service@example.com"))
    .build();
InboxStyle:多条目汇总展示

适合聚合多个事件:

NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle()
    .addLine("• 支付宝账单已出,请查收")
    .addLine("• 会议邀请:明天上午10点")
    .addLine("• 密码即将过期,请尽快修改")
    .setSummaryText("+3 条未读");

new NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_inbox)
    .setContentTitle("今日提醒汇总")
    .setStyle(inboxStyle)
    .build();
MediaStyle:音频播放控制集成

音乐类App必备:

Intent playIntent = new Intent(context, MediaPlayerService.class);
playIntent.setAction(ACTION_PLAY);
PendingIntent pendingPlay = PendingIntent.getService(context, 0, playIntent, FLAG_IMMUTABLE);

new NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_music)
    .setContentTitle("夜曲")
    .setContentText("周杰伦 · 专辑《十一月的萧邦》")
    .setStyle(new NotificationCompat.MediaStyle()
        .setMediaSession(sessionToken)
        .setShowActionsInCompactView(0, 1))
    .addAction(createAction(R.drawable.ic_prev, "上一曲", ACTION_PREV))
    .addAction(createAction(R.drawable.ic_play, "播放", ACTION_PLAY))
    .addAction(createAction(R.drawable.ic_next, "下一曲", ACTION_NEXT))
    .build();

🔐 自 Android 12 起,所有 PendingIntent 必须显式声明是否可变(mutable),否则抛异常。


PendingIntent:打通通知交互的最后一环

通知不仅仅是看的,更是用来操作的。 PendingIntent 就是实现点击跳转、快捷回复等功能的核心机制。

它是什么?怎么工作?

简单说, PendingIntent 是一个“未来可执行的意图句柄”。你可以把它理解为一张支票:你现在开出,别人(系统)在未来某个时刻兑现。

它有三种类型:
| 类型 | 方法 | 用途 |
|------|------|------|
| Activity | getActivity() | 跳转页面 |
| BroadcastReceiver | getBroadcast() | 触发本地逻辑 |
| Service | getService() | 启动后台任务 |

示例:

// 跳转主页面
Intent activityIntent = new Intent(context, MainActivity.class);
activityIntent.putExtra("from_notification", true);
PendingIntent pi = PendingIntent.getActivity(
    context,
    0,
    activityIntent,
    PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
);

⚠️ Android 12+ 必须显式声明 FLAG_IMMUTABLE FLAG_MUTABLE ,否则报错。

安全防护:防止Intent注入攻击

常见风险包括:
- 使用隐式Intent导致任意应用响应;
- Extras中传入可执行代码;
- 请求码重复导致覆盖。

应对策略:

// ✅ 正确做法:显式Intent + ComponentName
Intent intent = new Intent();
intent.setComponent(new ComponentName(context, NotificationReceiver.class));
intent.putExtra("data", safeValue);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, FLAG_IMMUTABLE);

目标组件也应做二次校验:

if ("notification".equals(intent.getStringExtra("source"))) {
    long msgId = intent.getLongExtra("message_id", -1);
    if (msgId > 0) {
        loadMessage(msgId);
        nm.cancel(intent.getIntExtra("notify_id", 0));
    } else {
        finish();
    }
} else {
    finish();
}

FCM集成:构建全球化推送能力

最后回到开头提到的FCM。它是目前最稳定高效的跨平台推送方案。

架构原理

三方模型:

[App Server] --HTTPS--> [FCM Server] --TCP--> [Client App]

每个设备都有唯一的 registration token ,用于精准投递。

客户端集成步骤

  1. 下载 google-services.json 放入 app/ 目录;
  2. 添加Gradle插件;
  3. 继承 FirebaseMessagingService 重写回调;
public class MyFirebaseMessagingService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
        if (remoteMessage.getNotification() != null) {
            showNotification(remoteMessage.getNotification());
        }
        if (remoteMessage.getData().size() > 0) {
            handleDataMessage(remoteMessage.getData());
        }
    }

    @Override
    public void onNewToken(@NonNull String token) {
        sendTokenToServer(token);
    }
}

服务端发送消息

使用 HTTP v1 API:

curl -H "Authorization: Bearer ya29.c.ElqGB..." 
     -H "Content-Type: application/json" 
     -d @message.json 
     https://fcm.googleapis.com/v1/projects/YOUR_PROJECT_ID/messages:send

payload 示例:

{
  "message": {
    "token": "fcm_token_here",
    "notification": {
      "title": "订单已发货",
      "body": "您的商品正在派送途中"
    },
    "data": {
      "order_id": "ORD123456",
      "action": "open_order_detail"
    }
  }
}

总结与展望

这种高度集成的设计思路,正引领着智能应用向更可靠、更高效的方向演进。无论是从底层的 NotificationManager 控制,还是上层的 FCM 全链路打通,每一个环节都在追求极致的用户体验与资源利用率平衡。

未来的推送系统可能会更加智能化:基于用户行为预测最佳发送时机,结合AI生成个性化文案,甚至利用边缘计算实现毫秒级本地化响应。但无论如何演变, 以用户为中心、尊重选择权、保障安全性 这三大原则永远不会改变。

而我们作为开发者,要做的就是在这条不断进化的技术轨道上,持续打磨每一行代码,让每一次“叮咚”都成为有价值的信息传递,而不是恼人的噪音污染 💡🚀。

本文还有配套的精品资源,点击获取

简介:在安卓应用开发中,消息推送是实现实时通知的关键功能,广泛用于系统提醒、社交消息和运营活动等场景。本资源“安卓消息推送通知栏相关-消息推送最新demo服务器.rar”提供了一套完整的消息推送实现示例,涵盖客户端通知栏展示与服务器端消息发送逻辑。项目基于Android平台的NotificationManager、NotificationChannel(适配Android O+)、NotificationCompat构建通知,并结合PendingIntent实现点击响应。同时支持与主流推送服务(如FCM)集成,涉及HTTP/HTTPS、MQTT等通信协议,帮助开发者快速搭建稳定的消息推送系统。附带的源码说明文件和扩展资源链接进一步提升了学习效率,适合有一定基础的开发者进行二次开发与优化。


本文还有配套的精品资源,点击获取

本文地址:https://www.yitenyun.com/4926.html

搜索文章

Tags

#ios面试 #ios弱网 #断点续传 #ios开发 #objective-c #ios #ios缓存 #服务器 #python #pip #conda #远程工作 #kubernetes #笔记 #平面 #容器 #linux #学习方法 香港站群服务器 多IP服务器 香港站群 站群服务器 #Trae #IDE #AI 原生集成开发环境 #Trae AI #人工智能 #微信 #分阶段策略 #模型协议 #运维 #学习 #科技 #深度学习 #自然语言处理 #神经网络 #华为云 #部署上线 #动静分离 #Nginx #新人首发 #harmonyos #docker #鸿蒙PC #github #git #物联网 #websocket #fastapi #html #css #Conda # 私有索引 # 包管理 #进程控制 #开源 #kylin #低代码 #爬虫 #音视频 #开发语言 #云原生 #iventoy #VmWare #OpenEuler #hadoop #hbase #hive #zookeeper #spark #kafka #flink #银河麒麟高级服务器操作系统安装 #银河麒麟高级服务器V11配置 #设置基础软件仓库时出错 #银河麒高级服务器系统的实操教程 #生产级部署银河麒麟服务系统教程 #Linux系统的快速上手教程 #数信院生信服务器 #Rstudio #生信入门 #生信云服务器 #后端 #数据库 #langchain #内网穿透 #网络 #cpolar #vscode #mobaxterm #计算机视觉 #分布式 #华为 #FTP服务器 #node.js #缓存 #ubuntu #MobaXterm #sql #AIGC #agi #word #umeditor粘贴word #ueditor粘贴word #ueditor复制word #ueditor上传word图片 #tcp/ip #qt #C++ #Dell #PowerEdge620 #内存 #硬盘 #RAID5 #http #项目 #高并发 #ARM服务器 # GLM-4.6V # 多模态推理 #gemini #gemini国内访问 #gemini api #gemini中转搭建 #Cloudflare #RTP over RTSP #RTP over TCP #RTSP服务器 #RTP #TCP发送RTP #多个客户端访问 #IO多路复用 #回显服务器 #TCP相关API #pytorch #AI编程 #算法 #大数据 #pycharm #ssh #jmeter #功能测试 #软件测试 #自动化测试 #职场和发展 #Harbor #unity #c# #游戏引擎 #mcu #flask #企业开发 #ERP #项目实践 #.NET开发 #C#编程 #编程与数学 #内存治理 #django #c++ #性能优化 #前端 #nginx #serverless #diskinfo # TensorFlow # 磁盘健康 #android #腾讯云 #散列表 #哈希算法 #数据结构 #leetcode #golang #java #redis #mysql #经验分享 #安卓 #ci/cd #jenkins #gitlab #ide #区块链 #测试用例 #生活 #我的世界 #web安全 #安全 #Ansible # 自动化部署 # VibeThinker #Ubuntu服务器 #硬盘扩容 #命令行操作 #VMware #网络协议 #儿童书籍 #儿童诗歌 #童话故事 #经典好书 #儿童文学 #好书推荐 #经典文学作品 #uni-app #小程序 #notepad++ #自动化 #ansible #vllm #大模型 #Streamlit #Qwen #本地部署 #AI聊天机器人 #语音识别 #ai #spring boot #aws #云计算 #DisM++ # 系统维护 #京东云 #prometheus #udp #Android #Bluedroid #智能手机 #everything #需求分析 #jar #数学建模 #2026年美赛C题代码 #2026年美赛 #centos #架构 #java-ee #Ascend #MindIE #文心一言 #AI智能体 #ModelEngine #vue.js #jvm #mvp #个人开发 #设计模式 #编辑器 #金融 #mcp #金融投资Agent #Agent #课程设计 #gpu算力 #n8n #中间件 #阿里云 #研发管理 #禅道 #禅道云端部署 #windows #c语言 #stm32 #深度优先 #DFS #svn #RAID #RAID技术 #磁盘 #存储 #设备驱动 #芯片资料 #网卡 #信息与通信 #AI写作 #unity3d #游戏 #服务器框架 #Fantasy #elasticsearch #iphone #凤希AI伴侣 #transformer #spring #程序人生 #科研 #博士 #AI #大模型学习 #java大文件上传 #java大文件秒传 #java大文件上传下载 #java文件传输解决方案 #MC #json #链表 #链表的销毁 #链表的排序 #链表倒置 #判断链表是否有环 #journalctl #wordpress #雨云 #LobeChat #vLLM #GPU加速 #电脑 #grafana #SSH反向隧道 # Miniconda # Jupyter远程访问 #asp.net大文件上传 #asp.net大文件上传下载 #asp.net大文件上传源码 #ASP.NET断点续传 #asp.net上传文件夹 #web #webdav #ping通服务器 #读不了内网数据库 #bug菌问答团队 #网络安全 #MCP #MCP服务器 #风控模型 #决策盲区 #数据仓库 #php #VS Code调试配置 #javascript #AI论文写作工具 #学术论文创作 #论文效率提升 #MBA论文写作 #asp.net #epoll #高级IO #计算机网络 #1024程序员节 #面试 #牛客周赛 #LoRA # RTX 3090 # lora-scripts #信息可视化 #claude code #codex #code cli #ccusage #react.js #数据集 #ddos #fiddler #LLM #iBMC #UltraISO #flutter #银河麒麟 #系统升级 #信创 #国产化 #mmap #nio #azure #时序数据库 #版本控制 #Git入门 #开发工具 #代码托管 #制造 #个人博客 #里氏替换原则 #DeepSeek #蓝耘智算 #ida #nas #守护进程 #复用 #screen #YOLO #目标检测 #蓝桥杯 #es安装 #嵌入式编译 #ccache #distcc #ONLYOFFICE #MCP 服务器 #arm开发 #嵌入式 #嵌入式硬件 #arm #sizeof和strlen区别 #sizeof #strlen #计算数据类型字节数 #计算字符串长度 #毕设 #STUN # TURN # NAT穿透 #ssl #智能路由器 #进程 #操作系统 #进程创建与终止 #shell #oracle #SA-PEKS # 关键词猜测攻击 # 盲签名 # 限速机制 #模版 #函数 #类 #笔试 #企业微信 #树莓派4b安装系统 #ollama #llm #RustDesk #IndexTTS 2.0 #本地化部署 #信号处理 #tcpdump #机器学习 #embedding #WEB #我的世界服务器搭建 #minecraft #laravel #毕业设计 #车辆排放 #流量监控 #Playbook #AI服务器 #CPU利用率 #paddleocr #生信 #Spring AI #STDIO协议 #Streamable-HTTP #McpTool注解 #服务器能力 #pencil #pencil.dev #设计 #流媒体 #NAS #飞牛NAS #监控 #NVR #EasyNVR #sqlite #PyCharm # 远程调试 # YOLOFuse #Triton # PyTorch # CUDA #RAG #全链路优化 #实战教程 #openresty #lua #vuejs #eBPF #SSH保活 #Miniconda #远程开发 #单片机 #压力测试 #搜索引擎 #todesk #openlayers #bmap #tile #server #vue #openEuler #Hadoop #SSH Agent Forwarding # 容器化 #homelab #Lattepanda #Jellyfin #Plex #Emby #Kodi #chatgpt #wsl #鸿蒙 #nacos #银河麒麟aarch64 #uvicorn #uvloop #asgi #event #zabbix #信令服务器 #Janus #MediaSoup #MS #Materials #TensorRT # Triton # 推理优化 #microsoft #数码相机 #SSH #X11转发 #debian #改行学it #创业创新 #程序员创富 #建筑缺陷 #红外 #sqlserver #密码学 #tdengine #涛思数据 #vue上传解决方案 #vue断点续传 #vue分片上传下载 #vue分块上传下载 #tensorflow #agent #ai大模型 #apache #鸭科夫 #逃离鸭科夫 #鸭科夫联机 #鸭科夫异地联机 #开服 #claude #推荐算法 #ms-swift # 一锤定音 # 大模型微调 #deepseek #adb #log #risc-v #cpp #SSH公钥认证 # 安全加固 #PowerBI #企业 #dify #远程桌面 #远程控制 #测试工具 #opencv #数据挖掘 #screen 命令 #macos #bash #驱动开发 #ai编程 #UDP套接字编程 #UDP协议 #网络测试 #Linux #SRS #直播 #llama #语言模型 #ceph #ambari #milvus #springboot #知识库 #单元测试 #集成测试 #web server #请求处理流程 #Host #渗透测试 #SSRF #数据恢复 #视频恢复 #视频修复 #RAID5恢复 #流媒体服务器恢复 #chrome #muduo库 #uv #uvx #uv pip #npx #Ruff #pytest #政务 #910B #昇腾 #rocketmq #selenium #系统架构 #Anaconda配置云虚拟环境 #MQTT协议 #C语言 #ui #分类 #powerbi #RSO #机器人操作系统 #Clawdbot #个人助理 #数字员工 #glibc #可信计算技术 #winscp #openHiTLS #TLCP #DTLCP #商用密码算法 #tomcat #集成学习 #https #PyTorch #模型训练 #星图GPU #fabric #postgresql #服务器繁忙 #微信小程序 #源码 #闲置物品交易系统 #前端框架 #IPv6 #DNS #C# # REST API # GLM-4.6V-Flash-WEB # 双因素认证 #rustdesk #p2p #连接数据库报错 #Docker #cursor #视频去字幕 #jetty #YOLOFuse # Base64编码 # 多模态检测 #prompt #YOLOv8 # 目标检测 # Docker镜像 #esp32教程 #bootstrap #SPA #单页应用 #计算机 #web3.py #OPCUA #开源软件 #mamba #C #fpga开发 #麒麟OS #swagger #firefox #IndexTTS2 # 阿里云安骑士 # 木马查杀 #visual studio code #CMake #Make #C/C++ #Python #rust #vps #算力一体机 #ai算力服务器 #mariadb #青少年编程 # 高并发部署 #LangGraph #CLI #JavaScript #langgraph.json #simulink #matlab #JAVA #Java #webpack #学术写作辅助 #论文创作效率提升 #AI写论文实测 #Anything-LLM #IDC服务器 #私有化部署 #raid #raid阵列 #reactjs #web3 #maven #intellij-idea #几何学 #拓扑学 #AB包 #负载均衡 #电气工程 #PLC #Dify #ARM架构 #鲲鹏 #database #idea #海外服务器安装宝塔面板 #翻译 #开源工具 #1panel #vmware #rdp #微服务 #说话人验证 #声纹识别 #CAM++ #ComfyUI # 推理服务器 #select #libosinfo #酒店客房管理系统 #论文 #typescript #npm #PTP_1588 #gPTP #智慧校园解决方案 #智慧校园一体化平台 #智慧校园选型 #智慧校园采购 #智慧校园软件 #智慧校园专项资金 #智慧校园定制开发 #TCP #客户端 #DIY机器人工房 #模型上下文协议 #MultiServerMCPC #load_mcp_tools #load_mcp_prompt #机器人 #Windows #windows11 #系统修复 #.net #大模型入门 #AI大模型 #gitea #性能 #优化 #DDR #RAM #硬件工程 #结构体 #其他 #网站 #截图工具 #批量处理图片 #图片格式转换 #图片裁剪 #Android16 #音频性能实战 #音频进阶 #流程图 #论文阅读 #论文笔记 #Jetty # CosyVoice3 # 嵌入式服务器 #SMTP # 内容安全 # Qwen3Guard #scala #Coze工作流 #AI Agent指挥官 #多智能体系统 #webrtc #idm #扩展屏应用开发 #android runtime #SSE # AI翻译机 # 实时翻译 #万悟 #联通元景 #智能体 #镜像 #健身房预约系统 #健身房管理系统 #健身管理系统 #Reactor #无人机 #Deepoc #具身模型 #开发板 #未来 #r-tree #聊天小程序 #gateway #Comate #NFC #智能公交 #服务器计费 #FP-增长 #clickhouse #交互 #scrapy #eclipse #spring cloud #servlet #Proxmox VE #虚拟化 #北京百思可瑞教育 #百思可瑞教育 #北京百思教育 #wpf #GPU服务器 #8U #硬件架构 #NPU #CANN #UOS #海光K100 #统信 #Fun-ASR # 语音识别 # WebUI #浏览器自动化 #python #CUDA #cosmic #矩阵 #线性代数 #AI运算 #向量 #SSH免密登录 #部署 #H5 #跨域 #发布上线后跨域报错 #请求接口跨域问题解决 #跨域请求代理配置 #request浏览器跨域 #昇腾300I DUO #Qwen3-14B # 大模型部署 # 私有化AI #c++20 #游戏机 #JumpServer #堡垒机 #银河麒麟操作系统 #openssh #华为交换机 #信创终端 #处理器 #上下文工程 #langgraph #意图识别 #vim #gcc #yum #ESP32 #传感器 #MicroPython #运维开发 #RK3576 #瑞芯微 #硬件设计 #振镜 #振镜焊接 #teamviewer #opc ua #opc #vp9 #程序员 #飞牛nas #fnos #黑群晖 #虚拟机 #无U盘 #纯小白 #支付 #jupyter #Socket网络编程 #指针 #LVDS #高速ADC #东方仙盟 # GLM-TTS # 数据安全 #API限流 # 频率限制 # 令牌桶算法 #Gunicorn #WSGI #Flask #并发模型 #容器化 #性能调优 #蓝湖 #Axure原型发布 #管道Pipe #system V #postman #微PE # GLM # 服务连通性 #勒索病毒 #勒索软件 #加密算法 #.bixi勒索病毒 #数据加密 #超算服务器 #算力 #高性能计算 #仿真分析工作站 #LangFlow # 轻量化镜像 # 边缘计算 #源代码管理 #实时音视频 #业界资讯 #黑客技术 #网安应急响应 # 高并发 #数模美赛 #excel #copilot #硬盘克隆 #DiskGenius #媒体 #SAP #ebs #metaerp #oracle ebs #交通物流 #手机h5网页浏览器 #安卓app #苹果ios APP #手机电脑开启摄像头并排查 #SSH跳转 #音乐分类 #音频分析 #ViT模型 #Gradio应用 #IO #go # IndexTTS # GPU集群 #hibernate #ArkUI #ArkTS #鸿蒙开发 #国产化OS #Nacos #vivado license #CVE-2025-68143 #CVE-2025-68144 #CVE-2025-68145 #html5 #weston #x11 #x11显示服务器 #计算几何 #斜率 #方向归一化 #叉积 #samba # 批量管理 #连锁药店 #连锁店 #puppeteer #LabVIEW知识 #LabVIEW程序 #LabVIEW功能 #labview #KMS #slmgr #宝塔面板部署RustDesk #RustDesk远程控制手机 #手机远程控制 # keep-alive #JNI #CPU #POC #问答 #交付 #测评 #CCE #Dify-LLM #Flexus #xlwings #Excel #迁移重构 #数据安全 #漏洞 #代码迁移 #restful #ajax #nfs #iscsi #文件管理 #文件服务器 #mybatis #范式 #spine #ecmascript #elementui #智能家居 #移动端h5网页 #调用浏览器摄像头并拍照 #开启摄像头权限 #拍照后查看与上传服务器端 #摄像头黑屏打不开问题 #scanf #printf #getchar #putchar #cin #cout #系统安全 #ipmitool #BMC #大语言模型 #pandas #matplotlib #ET模式 #非阻塞 #高并发服务器 #kmeans #聚类 #多模态 #微调 #超参 #LLamafactory #文件IO #输入输出流 #OSS #duckdb #全能视频处理软件 #视频裁剪工具 #视频合并工具 #视频压缩工具 #视频字幕提取 #视频处理工具 #cesium #可视化 # 大模型 # 模型训练 #排序算法 #jdk #排序 #SMP(软件制作平台) #EOM(企业经营模型) #应用系统 #aiohttp #asyncio #异步 #企业级存储 #网络设备 #软件 #本地生活 #电商系统 #商城 #Smokeping #策略模式 #pve #.netcore #tornado # 模型微调 #数组 #zotero #WebDAV #同步失败 #代理模式 #工具集 #大模型应用 #API调用 #PyInstaller打包运行 #服务端部署 #数据分析 #Aluminium #Google #欧拉 #麒麟 # 水冷服务器 # 风冷服务器 # IndexTTS 2.0 # 自动化运维 #Go并发 #高并发架构 #Goroutine #系统设计 #VoxCPM-1.5-TTS # 云端GPU # PyCharm宕机 #Tracker 服务器 #响应最快 #torrent 下载 #2026年 #Aria2 可用 #迅雷可用 #BT工具通用 #net core #kestrel #web-server #asp.net-core #儿童AI #图像生成 #AI技术 #Shiro #反序列化漏洞 #CVE-2016-4437 #Zabbix #CosyVoice3 #语音合成 #产品运营 #联机教程 #局域网联机 #局域网联机教程 #局域网游戏 #EMC存储 #存储维护 #NetApp存储 #能源 #大模型开发 #elk #rabbitmq #esp32 arduino #HistoryServer #Spark #YARN #jobhistory #大模型部署 #mindie #大模型推理 #5G #汇编 #n8n解惑 #asp.net上传大文件 #模拟退火算法 #土地承包延包 #领码SPARK #aPaaS+iPaaS #数字化转型 #智能审核 #档案数字化 #简单数论 #埃氏筛法 #xss #Termux #Samba #SSH别名 #信创国产化 #达梦数据库 #yolov12 #研究生life #文件传输 #电脑文件传输 #电脑传输文件 #电脑怎么传输文件到另一台电脑 #电脑传输文件到另一台电脑 #ShaderGraph #图形 #eureka #mongodb #VMware Workstation16 #服务器操作系统 #x86_64 #数字人系统 #GPU #AutoDL ##租显卡 #HeyGem # 远程访问 # 服务器IP配置 #进程等待 #wait #waitpid #三维 #3D #三维重建 #边缘计算 #pdf #大模型教程 #全文检索 #rtsp #转发 #markdown #建站 #结构与算法 #log4j #游戏美术 #技术美术 #游戏策划 #游戏程序 #用户体验 #CVE-2025-61686 #路径遍历高危漏洞 #阻塞队列 #生产者消费者模型 #服务器崩坏原因 #可撤销IBE #服务器辅助 #私钥更新 #安全性证明 #双线性Diffie-Hellman #IntelliJ IDEA #Spring Boot #neo4j #NoSQL #SQL #Llama-Factory # 大模型推理 #平板 #零售 #智能硬件 # 代理转发 # 跳板机 #echarts #H5网页 #网页白屏 #H5页面空白 #资源加载问题 #打包部署后网页打不开 #HBuilderX #CTF #TLS协议 #HTTPS #漏洞修复 #运维安全 # 服务器IP # 端口7860 #VMWare Tool #ue5 #web服务器 #心理健康服务平台 #心理健康系统 #心理服务平台 #心理健康小程序 # 远程运维 # 公钥认证 # GPU租赁 # 自建服务器 #VibeVoice # 语音合成 # 云服务器 #autosar #插件 #遛狗 #MinIO服务器启动与配置详解 #代理 #DAG #服务器解析漏洞 #DHCP #arm64 #SSH复用 # 远程开发 #串口服务器 #Modbus #MOXA #GATT服务器 #蓝牙低功耗 #网路编程 #百万并发 #intellij idea #注入漏洞 #nvidia #WinDbg #Windows调试 #内存转储分析 #cnn #硬件 #计组 #数电 #safari #重构 # ControlMaster #Xshell #Finalshell #生物信息学 #组学 #memcache #大剑师 #nodejs面试题 #C2000 #TI #实时控制MCU #AI服务器电源 # 树莓派 # ARM架构 #memory mcp #Cursor #ranger #MySQL8.0 #统信UOS #win10 #qemu #vnstat # 远程连接 #UDP的API使用 #googlecloud #智能一卡通 #门禁一卡通 #梯控一卡通 #电梯一卡通 #消费一卡通 #一卡通 #考勤一卡通 #攻防演练 #Java web #红队 #视觉检测 #visual studio # Connection refused #智能体来了 #智能体对传统行业冲击 #行业转型 #AI赋能 #数据采集 #浏览器指纹 #iot #TTS私有化 # 音色克隆 #求职招聘 #gRPC #注册中心 #GB28181 #SIP信令 #SpringBoot #视频监控 #win11 #SSH跳板机 # Python3.11 #WT-2026-0001 #QVD-2026-4572 #smartermail #chat #edge #迭代器模式 #观察者模式 #Modbus-TCP #智慧城市 #screen命令 #系统管理 #服务 #c #YOLO26 #muduo #TcpServer #accept #贴图 #材质 #设计师 #CA证书 #门禁 #梯控 #智能梯控 #超时设置 #客户端/服务器 #网络编程 #挖矿 #Linux病毒 #turn #AI-native #知识 #量子计算 #WinSCP 下载安装教程 #SFTP #FTP工具 #服务器文件传输 # 批量部署 #JT/T808 #车联网 #车载终端 #模拟器 #仿真器 #开发测试 # TTS服务器 # 键鼠锁定 #agentic bi #论文复现 #opc模拟服务器 #远程连接 #工程设计 #预混 #扩散 #燃烧知识 #层流 #湍流 #node #华为od #华为机试 #protobuf #react native #报表制作 #职场 #数据可视化 #用数据讲故事 #语音生成 #TTS #Keycloak #Quarkus #AI编程需求分析 #Gateway #认证服务器集成详解 #uniapp #合法域名校验出错 #服务器域名配置不生效 #request域名配置 #已经配置好了但还是报错 #uniapp微信小程序 #框架搭建 #状态模式 #dba #Tokio #服务器线程 # SSL通信 # 动态结构体 #参数估计 #矩估计 #概率论 #lvs #canvas层级太高 #canvas遮挡问题 #盖住其他元素 #苹果ios手机 #安卓手机 #调整画布层级 #蓝牙 #LE Audio #BAP #AITechLab #cpp-python #CUDA版本 #ASR #SenseVoice #mtgsig #美团医药 #美团医药mtgsig #美团医药mtgsig1.2 #Ubuntu #ESP32编译服务器 #Ping #DNS域名解析 #麦克风权限 #访问麦克风并录制音频 #麦克风录制音频后在线播放 #用户拒绝访问麦克风权限怎么办 #uniapp 安卓 苹果ios #将音频保存本地或上传服务器 #YOLO11 #Node.js # child_process #后端框架 #证书 #安全威胁分析 #仙盟创梦IDE #GLM-4.6V-Flash-WEB # AI视觉 # 本地部署 #面向对象 #基础语法 #标识符 #常量与变量 #数据类型 #运算符与表达式 #动态规划 #dlms #dlms协议 #逻辑设备 #逻辑设置间权限 # 数字人系统 # 远程部署 #scikit-learn #随机森林 #MCP服务器注解 #异步支持 #方法筛选 #声明式编程 #自动筛选机制 #flume #3d #主板 #总体设计 #电源树 #框图 #Minecraft #Minecraft服务器 #PaperMC #我的世界服务器 #前端开发 #自由表达演说平台 #演说 #Claude #sentinel #Linly-Talker # 数字人 # 服务器稳定性 #Discord机器人 #云部署 #程序那些事 #国产开源制品管理工具 #Hadess #一文上手 #r语言 #kong #Kong Audio #Kong Audio3 #KongAudio3 #空音3 #空音 #中国民乐 #零代码平台 #AI开发 #UDP #运维工具 #网络攻击模型 #pyqt #传统行业 #gnu #STDIO传输 #SSE传输 #WebMVC #WebFlux #小艺 #搜索 #环境搭建 #服务器IO模型 #非阻塞轮询模型 #多任务并发模型 #异步信号模型 #多路复用模型 # 黑屏模式 #领域驱动 #双指针 #产品经理 #就业 #工业级串口服务器 #串口转以太网 #串口设备联网通讯模块 #串口服务器选型 #ipv6 #图像识别 #入侵 #日志排查 #ffmpeg #Java程序员 #Java面试 #后端开发 #Spring源码 #Spring #国产操作系统 #V11 #kylinos #KMS激活 #人大金仓 #Kingbase # 硬件配置 #Spring AOP #wps #Linux多线程 #coffeescript #CSDN #多进程 #python技巧 #软件工程 #composer #symfony #java-zookeeper #租显卡 #训练推理 #Langchain-Chatchat # 国产化服务器 # 信创 #实体经济 #商业模式 #软件开发 #数智红包 #商业变革 #创业干货 #numpy #blender #warp #FASTMCP #Syslog #系统日志 #日志分析 #日志监控 #Autodl私有云 #深度服务器配置 #pjsip #Prometheus #人脸识别sdk #视频编解码 #人脸识别 #交换机 #三层交换机 #AI生成 # outputs目录 # 自动化 #vue3 #人脸核身 #活体检测 #身份认证与人脸对比 #微信公众号 #高斯溅射 #React安全 #漏洞分析 #Next.js #Puppet # IndexTTS2 # TTS #ip #云开发 #云服务器 #个人电脑 #AI智能棋盘 #Rock Pi S #高仿永硕E盘的个人网盘系统源码 #MC群组服务器 #ZooKeeper #ZooKeeper面试题 #面试宝典 #深入解析 #VPS #搭建 # 显卡驱动备份 #递归 #线性dp #农产品物流管理 #物流管理系统 #农产品物流系统 #农产品物流 #unix #编程 #c++高并发 #支持向量机 #CS2 #debian13 #BoringSSL #内存接口 # 澜起科技 # 服务器主板 # 权限修复 #考研 # ARM服务器 # 鲲鹏 #ssm #http头信息 #uip #k8s #广播 #组播 #并发服务器 #音诺ai翻译机 #AI翻译机 # Ampere Altra Max #sklearn #树莓派 #温湿度监控 #WhatsApp通知 #IoT #MySQL #企业存储 #RustFS #对象存储 #高可用 #TCP服务器 #开发实战 #gpu #nvcc #cuda #国产PLM #瑞华丽PLM #瑞华丽 #PLM #多线程 #性能调优策略 #双锁实现细节 #动态分配节点内存 #nosql #模块 #汽车 #RXT4090显卡 #RTX4090 #深度学习服务器 #硬件选型 #文件上传漏洞 #群晖 #音乐 #SQL注入主机 #L2C #勒让德到切比雪夫 #Kylin-Server #服务器安装 #SMARC #ARM #大学生 #大作业 #电梯 #电梯运力 #电梯门禁 #vncdotool #链接VNC服务器 #如何隐藏光标 #A2A #GenAI #HBA卡 #RAID卡 #FHSS #bond #服务器链路聚合 #网卡绑定 #ThingsBoard MCP # 智能运维 # 性能瓶颈分析 #空间计算 #原型模式 #程序开发 #程序设计 #计算机毕业设计 #devops #戴尔服务器 #戴尔730 #装系统 #junit #TFTP #NSP #下一状态预测 #aigc #bug #outlook #错误代码2603 #无网络连接 #2603 #算力建设 #性能测试 #LoadRunner #智能制造 #供应链管理 #工业工程 #库存管理 #数据访问 # 服务器IP访问 # 端口映射 # ProxyJump #nodejs #自动化运维 #海外短剧 #海外短剧app开发 #海外短剧系统开发 #短剧APP #短剧APP开发 #短剧系统开发 #海外短剧项目 #C++ UA Server #SDK #跨平台开发 #RK3588 #RK3588J #评估板 #核心板 #嵌入式开发 #SSH密钥 #练习 #基础练习 #循环 #九九乘法表 #计算机实现 #数字孪生 #三维可视化 #dynadot #域名 #ETL管道 #向量存储 #数据预处理 #DocumentReader #工厂模式 #esb接口 #走处理类报异常 #N8N #经济学 #机器视觉 #6D位姿 #smtp #smtp服务器 #PHP #银河麒麟部署 #银河麒麟部署文档 #银河麒麟linux #银河麒麟linux部署教程 #mssql #声源定位 #MUSIC #b树 #PyTorch 特性 #动态计算图 #张量(Tensor) #自动求导Autograd #GPU 加速 #生态系统与社区支持 #与其他框架的对比 #AI视频创作系统 #AI视频创作 #AI创作系统 #AI视频生成 #AI工具 #文生视频 #AI创作工具 #AI 推理 #NV #npu #windbg分析蓝屏教程 #ServBay #le audio #低功耗音频 #通信 #连接 # 网络延迟 #远程软件 #Buck #NVIDIA #交错并联 #DGX # OTA升级 # 黄山派 #ansys #ansys问题解决办法 #安全架构 #ngrok #WRF #WRFDA #HarmonyOS #代理服务器 # IP配置 # 0.0.0.0 #雨云服务器 #教程 #MCSM面板 #Apple AI #Apple 人工智能 #FoundationModel #Summarize #SwiftUI #sql注入 #anaconda #虚拟环境 #机器人学习 #视频 #路由器 # 服务器配置 # GPU #跳槽 #galeweather.cn #高精度天气预报数据 #光伏功率预测 #风电功率预测 #高精度气象 #视觉理解 #Moondream2 #多模态AI #线性回归 #ftp #sftp #YOLO识别 #YOLO环境搭建Windows #YOLO环境搭建Ubuntu #OpenHarmony #图像处理 #目标跟踪 #CS336 #Assignment #Experiments #TinyStories #Ablation #Python办公自动化 #Python办公 #webgl #星际航行 #cpu #超算中心 #PBS #lsf #反向代理 #鼠大侠网络验证系统源码 #服务器开启 TLS v1.2 #IISCrypto 使用教程 #TLS 协议配置 #IIS 安全设置 #服务器运维工具 #AI部署 # ms-swift #PN 结 #RWK35xx #语音流 #实时传输 #ossinsight #cocos2d #图形渲染 #adobe #Socket #套接字 #I/O多路复用 #字节序 #数据迁移 #测速 #iperf #iperf3 #express #cherry studio #单例模式 #gmssh #宝塔 #漏洞挖掘 #Exchange #小智 #系统安装 #铁路桥梁 #DIC技术 #箱梁试验 #裂纹监测 #四点弯曲 #可再生能源 #绿色算力 #风电 #ARM64 # DDColor # ComfyUI #节日 #游戏服务器断线 #若依 #期刊 #SCI #地理 #遥感 #Fluentd #Sonic #日志采集 #pxe #taro #AI应用编程 #MinIO #EN4FE #Archcraft #free #vmstat #sar #AI Agent #开发者工具 #okhttp #计算机外设 #TRO #TRO侵权 #TRO和解 #Karalon #AI Test #图论 #remote-ssh #glances #电子电气架构 #系统工程与系统架构的内涵 #自动驾驶 #Routine #健康医疗 #高考 #工程实践 #强化学习 #策略梯度 #REINFORCE #蒙特卡洛 #AI应用 #百度 #ueditor导入word #Beidou #北斗 #SSR #gpt #API #阿里云RDS #寄存器 #信息安全 #信息收集 #Rust #poll #vrrp #脑裂 #keepalived主备 #高可用主备都持有VIP #bigtop #hdp #hue #kerberos #H3C #dubbo #轻量化 #低配服务器 #项目申报系统 #项目申报管理 #项目申报 #企业项目申报 # AI部署 #语义搜索 #嵌入模型 #Qwen3 #AI推理 #材料工程 #智能电视 #VMware创建虚拟机 #远程更新 #缓存更新 #多指令适配 #物料关联计划 #挖漏洞 #攻击溯源 #docker安装seata #DooTask #防毒面罩 #防尘面罩 #生产服务器问题查询 #日志过滤 #tcp/ip #网络 #m3u8 #HLS #移动端H5网页 #APP安卓苹果ios #监控画面 直播视频流 #stl #IIS Crypto #运营 #UEFI #BIOS #Legacy BIOS #身体实验室 #健康认知重构 #系统思维 #微行动 #NEAT效应 #亚健康自救 #ICT人 #KMS 激活 #决策树 #sglang #UDP服务器 #recvfrom函数 #编程助手 #高精度农业气象 #程序定制 #毕设代做 #课设 #云计算运维 # 服务器迁移 # 回滚方案 #ICE #文本生成 #CPU推理 #WAN2.2 #开关电源 #热敏电阻 #PTC热敏电阻 #VSCode # SSH #日志模块 #wireshark #dash #正则表达式 # HiChatBox # 离线AI #银河麒麟服务器系统 #Coturn #TURN #短剧 #短剧小程序 #短剧系统 #微剧 #统信操作系统 #人形机器人 #人机交互 #xml #区间dp #贪心算法 #二进制枚举 #DDD #tdd #题解 #图 #dijkstra #迪杰斯特拉 #CNAS #CMA #程序文件 #数据报系统 # GPU服务器 # tmux #网络安全大赛 #idc #云服务器选购 #Saas #线程 #I/O模型 #并发 #水平触发、边缘触发 #多路复用 #实时检测 #卷积神经网络 #磁盘配额 #存储管理 #形考作业 #国家开放大学 #系统运维 #具身智能 # Qwen3Guard-Gen-8B #HarmonyOS APP #旅游 #AI电商客服 #lucene #spring ai #oauth2 #Cpolar #国庆假期 #服务器告警 #rtmp #dreamweaver #晶振 #fs7TF #hdfs #华为od机试 #华为od机考 #华为od最新上机考试题库 #华为OD题库 #华为OD机试双机位C卷 #od机考题库 #AI+ #coze #AI入门 #密码 #ROS # 局域网访问 # 批量处理 #resnet50 #分类识别训练 #运维 #cascadeur # 高温监控 #OpenManage #隐私合规 #网络安全保险 #法律风险 #风险管理 #React #Next #CVE-2025-55182 #RSC #OBC #nmodbus4类库使用教程 #docker-compose #AI工具集成 #容器化部署 #分布式架构 #快递盒检测检测系统 #IFix #FL Studio #FLStudio #FL Studio2025 #FL Studio2026 #FL Studio25 #FL Studio26 #水果软件 #内网 #clawdbot #vertx #vert.x #vertx4 #runOnContext #CMC #分布式数据库 #集中式数据库 #业务需求 #选型误 #gerrit # 环境迁移 #Matrox MIL #二次开发 #rsync # 数据同步 #网络配置实战 #Web/FTP 服务访问 #计算机网络实验 #外网访问内网服务器 #Cisco 路由器配置 #静态端口映射 #网络运维 #防火墙 #claudeCode #content7 #工作 #懒汉式 #恶汉式 #odoo #xshell #host key # 串口服务器 # NPort5630 #appche #基金 #股票 #娱乐 #敏捷流程 #AE #rag #AI赋能盾构隧道巡检 #开启基建安全新篇章 #以注意力为核心 #YOLOv12 #AI隧道盾构场景 #盾构管壁缺陷病害异常检测预警 #隧道病害缺陷检测 #ARMv8 #内存模型 #内存屏障 #jquery #学术生涯规划 #CCF目录 #基金申请 #职称评定 #论文发表 #科研评价 #顶会顶刊 #fork函数 #进程创建 #进程终止 #分子动力学 #化工仿真 #静脉曲张 #腿部健康 #运动 #session #外卖配送 #JADX-AI 插件 #clamav #语义检索 #向量嵌入 #boltbot #命令模式 #边缘AI # Kontron # SMARC-sAMX8 #starrocks #人脸活体检测 #live-pusher #动作引导 #张嘴眨眼摇头 #苹果ios安卓完美兼容 #L6 #L10 #L9 #OpenAI #故障 #软件需求 #个性化推荐 #BERT模型 #二值化 #Canny边缘检测 #轮廓检测 #透视变换 #因果学习 #Qwen3-VL # 服务状态监控 # 视觉语言模型 #tekton #隐函数 #常微分方程 #偏微分方程 #线性微分方程 #线性方程组 #非线性方程组 #复变函数 #DuckDB #协议 #新浪微博 #传媒 #Ward #思爱普 #SAP S/4HANA #ABAP #NetWeaver #4U8卡 AI 服务器 ##AI 服务器选型指南 #GPU 互联 #GPU算力 #Arduino BLDC #核辐射区域探测机器人 #esp32 #mosquito #效率神器 #办公技巧 #自动化工具 #Windows技巧 #打工人必备 #Python3.11 #Spire.Office #2025年 #FRP #AI教程 # DIY主机 # 交叉编译 #自动化巡检 #0day漏洞 #DDoS攻击 #漏洞排查 #异步编程 #系统编程 #Pin #http服务器 #istio #服务发现