Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >解锁 Flutter_exit_app 库鸿蒙适配:离一键退出鸿蒙应用仅一步之遥

解锁 Flutter_exit_app 库鸿蒙适配:离一键退出鸿蒙应用仅一步之遥

作者头像
徐建国
发布于 2025-04-30 06:21:50
发布于 2025-04-30 06:21:50
10400
代码可运行
举报
文章被收录于专栏:个人路线个人路线
运行总次数:0
代码可运行

flutter_exit_app 库的鸿蒙适配解读,你离使用 Flutter 退出鸿蒙 app 只有一步之遥

适配仓库地址[1]

#鸿蒙坚果派 #鸿蒙版Flutter #鸿蒙开发者 #Flutter三方库

在数字化浪潮的推动下,跨平台开发框架如 Flutter 凭借其高效、便捷的特性,成为了开发者们的宠儿。而鸿蒙系统的崛起,更是为跨平台开发注入了新的活力。为了助力开发者在鸿蒙生态中快速实现 flutter_exit_app 退出应用程序功能,本文将深入浅出地为大家解析如何适配 flutter_exit_app 三方库至鸿蒙平台。

一、适配鸿蒙版 flutter_exit_app 三方库

(一)版本选择与仓库简介

我们先去 pub 上查看最新版本,发现目前 pub 上最新是 1.1.4,我们选择以 1.1.4 版本为基础进行适配。flutter_exit_app 是一个用于在 Flutter 应用中退出应用程序功能的插件,其 GitHub 仓库为 https://github.com/xang555/flutter_exit_app ,我们的目标是将这个插件适配到鸿蒙平台。

(二)引入背景与使用场景

在 OpenHarmony 北向生态的发展过程中,许多已经适配了 Flutter 的厂商在接入 OpenHarmony 时,都希望能够继续使用 FlutterToast 来实现通知功能。因此,我们提供了这个适配方案,采用插件化的适配器模式,帮助生态伙伴快速实现产品化。

本方案适用于已经支持 Flutter 框架的设备在移植到 OpenHarmony 系统过程中,作为一个备选方案。

(三)使用文档与插件库使用

适配 OpenHarmony 平台的详细使用指导可以参考:Flutter 使用指导文档[2]

在项目中使用该插件库时,只需在 pubspec.yaml 文件的 dependencies 中新增如下配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dependencies:
  flutter_exit_app:
    git:
      url: "https://gitcode.com/nutpi/flutter_exit_app.git"
      path: ""

然后在项目根目录运行 flutter pub get,即可完成依赖添加

接下来是具体的适配过程。

二、适配过程详解

(一)准备工作

确保已经配置好了 Flutter 开发环境,具体可参考 Flutter 配置指南[3]。同时,从 官方插件库[4] 下载待适配的三方插件。本指导书, 以适配 fflutter_exit_app[5] 为例

image-20250417200546042
image-20250417200546042

image-20250417200546042

(二)插件目录结构

下载并解压插件后,我们会看到以下目录结构:

  • lib :对接 Dart 端代码的入口,由此文件接收到参数后,通过 channel 将数据发送到原生端。
  • android :安卓端代码实现目录。
  • ios :iOS 原生端实现目录。
  • example :一个依赖于该插件的 Flutter 应用程序,用于说明如何使用它。
  • README.md :介绍包的文件。
  • CHANGELOG.md :记录每个版本中的更改。
  • LICENSE :包含软件包许可条款的文件。

(三)创建插件的鸿蒙模块

在插件目录下,打开 Terminal,执行以下命令来创建一个鸿蒙平台的 Flutter 模块:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
flutter create . --template=plugin --platforms=ohos

步骤:

  1. 用 vscode/trae 打开刚刚下载好的插件。
  2. 打开 Terminal,cd 到插件目录下。
  3. 执行命令flutter create . --template=plugin --platforms=ohos 创建一个 ohos 平台的 flutter 模块。

(四)在根目录下添加鸿蒙平台配置

在项目根目录的 pubspec.yaml 文件中,添加鸿蒙平台的相关配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name: flutter_exit_app
description:Aflutterpluginprovidesthebestwaytoexittheappdoesn'tcallexit(0)indartcode.
version:1.1.4
homepage:https://github.com/xang555/flutter_exit_app

environment:
sdk:">=2.14.0 <4.0.0"
flutter:">=2.5.0"

dependencies:
flutter:
    sdk:flutter

dev_dependencies:
flutter_test:
    sdk:flutter
lints:^3.0.0
test:
mockito:
build_runner:

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:
# This section identifies this Flutter project as a plugin project.
# The 'pluginClass' and Android 'package' identifiers should not ordinarily
# be modified. They are used by the tooling to maintain consistency when
# adding or updating assets for this project.
plugin:
    platforms:
      android:
        package:com.laoitdev.lib.exit.app.flutter_exit_app
        pluginClass:FlutterExitAppPlugin
      ios:
        pluginClass:FlutterExitAppPlugin
      ohos:
        package:com.laoitdev.lib.exit.app.flutter_exit_app
        pluginClass:FlutterExitAppPlugin

# To add assets to your plugin package, add an assets section, like this:
# assets:
#   - images/a_dot_burr.jpeg
#   - images/a_dot_ham.jpeg
#
# For details regarding assets in packages, see
# https://flutter.dev/assets-and-images/#from-packages
#
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware.

# To add custom fonts to your plugin package, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a
# "family" key with the font family name, and a "fonts" key with a
# list giving the asset and other descriptors for the font. For
# example:
# fonts:
#   - family: Schyler
#     fonts:
#       - asset: fonts/Schyler-Regular.ttf
#       - asset: fonts/Schyler-Italic.ttf
#         style: italic
#   - family: Trajan Pro
#     fonts:
#       - asset: fonts/TrajanPro.ttf
#       - asset: fonts/TrajanPro_Bold.ttf
#         weight: 700
#
# For details regarding fonts in packages, see
# https://flutter.dev/custom-fonts/#from-packages

(五)编写鸿蒙插件的原生 ArkTS 模块

1. 创建鸿蒙插件模块

使用 DevEco Studio 打开鸿蒙项目。

2. 修改相关配置文件

ohos 目录内的 oh-package.json5 文件中添加 libs/flutter.har 依赖,并创建 .gitignore 文件,添加以下内容以忽略 libs 目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/node_modules
/oh_modules
/local.properties
/.preview
/.idea
/build
/libs
*.har
/.cxx
/.test
/BuildProfile.ets
/oh-package-lock.json5

oh-package.json5 文件内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "flutter_exit_app",
"version": "1.0.0",
"description": "flutter plugin provides the best way to exit the app doesn't call exit(0) in dart code.",
"main": "index.ets",
"author": "nutpi",
"license": "Apache-2.0",
"dependencies": {
    "@ohos/flutter_ohos": "file:./har/flutter.har"
  },
"modelVersion": "5.0.4"
}

ohos 目录下创建 index.ets 文件,导出配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

import FlutterExitAppPlugin from './src/main/ets/components/plugin/FlutterExitAppPlugin';
export default FlutterExitAppPlugin;

3. 编写 ETS 代码

文件结构和代码逻辑可以参考安卓或 iOS 的实现,鸿蒙的 API 文档可以参考 :https://gitcode.com/openharmony-sig/flutter_packages/tree/master/packages/path_provider/path_provider_android

ohos 的 api 可以参考:https://gitcode.com/openharmony/docs

以下是 FlutterExitAppPlugin.ets 文件的代码示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import {
  FlutterPlugin,
  FlutterPluginBinding,
  MethodCall,
  MethodCallHandler,
  MethodChannel,
  MethodResult,

} from'@ohos/flutter_ohos';
import { AbilityAware, AbilityPluginBinding } from'@ohos/flutter_ohos';
import {common, UIAbility } from'@kit.AbilityKit';
import { BusinessError } from'@kit.BasicServicesKit';
/** FlutterExitAppPlugin **/
exportdefaultclass FlutterExitAppPlugin implements FlutterPlugin, MethodCallHandler , AbilityAware {
  private channel: MethodChannel | null = null;
  private static _context: Context | null = null;
  private static _uiContext: common.UIAbilityContext | null = null;
constructor() {
  }
staticget uiContext(): common.UIAbilityContext | null {
    return FlutterExitAppPlugin._uiContext;
  }

staticget context(): common.Context | null {
    return FlutterExitAppPlugin._context;
  }

get uiContext(): common.UIAbilityContext | null {
    return FlutterExitAppPlugin._uiContext;
  }
  getUniqueClassName(): string {
    return"FlutterExitAppPlugin"
  }

  onAttachedToAbility(binding: AbilityPluginBinding): void {
    FlutterExitAppPlugin._uiContext = binding.getAbility().context;
    // Called when the plugin is attached to an Ability.
  }

  onDetachedFromAbility(): void {
    // this._uiContext = null;
  }

  onAttachedToEngine(binding: FlutterPluginBinding): void {
    this.channel = new MethodChannel(binding.getBinaryMessenger(), "flutter_exit_app");
    this.channel.setMethodCallHandler(this)
  }

  onDetachedFromEngine(binding: FlutterPluginBinding): void {
    if (this.channel != null) {
      this.channel.setMethodCallHandler(null)
    }
  }

  onMethodCall(call: MethodCall, result: MethodResult): void {
    if (call.method == "getPlatformVersion") {
      result.success("OpenHarmony ^ ^ ")
    } elseif (call.method == "com.laoitdev.exit.app") {
      console.info("hhhhhhhhhh")

      if (FlutterExitAppPlugin._uiContext) { // Add null check here
        try {
          FlutterExitAppPlugin._uiContext.terminateSelf()
            .then(() => {
              // 执行正常业务
              console.info('terminateSelf succeed');
              result.success("Done"); // Inform Flutter about success
            })
            .catch((err: BusinessError) => {
              // 处理业务逻辑错误
              console.error(`terminateSelf failed, code is ${err.code}, message is ${err.message}`);
              result.error("TERMINATE_FAILED", `terminateSelf failed: ${err.message}`, null);
            });
        } catch (err) {
          // 捕获同步的参数错误
          let code = (err as BusinessError).code;
          let message = (err as BusinessError).message;
          console.error(`terminateSelf failed, code is ${code}, message is ${message}`);
          result.error("TERMINATE_ERROR", `terminateSelf error: ${message}`, null);
        }
      } else {
        console.error("UIContext is null, cannot terminate self.");
        result.error("CONTEXT_NULL", "UIContext is null", null); // Inform Flutter about the error
      }

    } else {
      result.notImplemented()
    }
  }
}

现在就可以正常使用啦。

这里我主要参考的是

4.UIAbilityContext.terminateSelf
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {
onForeground() {
    try {
      this.context.terminateSelf()
        .then(() => {
          // 执行正常业务
          console.info('terminateSelf succeed');
        })
        .catch((err: BusinessError) => {
          // 处理业务逻辑错误
          console.error(`terminateSelf failed, code is ${err.code}, message is ${err.message}`);
        });
    } catch (err) {
      // 捕获同步的参数错误
      let code = (err as BusinessError).code;
      let message = (err as BusinessError).message;
      console.error(`terminateSelf failed, code is ${code}, message is ${message}`);
    }
  }
}

参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-application-uiabilitycontext#uiabilitycontextterminateself-1

三、关于鸿蒙版 Flutter 的 context

这里我使用的是 UIAbilityContext

UIAbilityContext

插件继承 AbilityAware 并且在 onAttachedToAbility 方法中获取。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default class XXXPlugin implements FlutterPlugin, MethodCallHandler, AbilityAware {
  private _uiContext: common.UIAbilityContext | null = null;

  onAttachedToAbility(binding: AbilityPluginBinding): void {
    this.XXXPlugin = binding.getAbility().context;
  }

  onDetachedFromAbility(): void {
    this.XXXPlugin = null;
  }
}

uiContext 可以用于获取 applicationInfo 等属性。以及退出等操作。还有另外一种是

ApplicationContex

你可以直接从 onAttachedToEngine 方法中获取。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private context: Context | null = null;

  onAttachedToEngine(binding: FlutterPluginBinding): void {
    this.context = binding.getApplicationContext();
  }

  onDetachedFromEngine(binding: FlutterPluginBinding): void {
    this.context = null;
  }

context 可以用于获取 applicationInfo 等属性。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let applicationInfo = this.context.applicationInfo;

四、编写 Example

1. 创建 Example 应用

在插件根目录下创建一个名为 example 的文件夹,用于存放示例应用。在 example 文件夹中,创建一个鸿蒙平台的 Flutter 应用,用于验证插件功能。

2. 签名与运行

使用 Deveco Studio 打开 example > ohos 目录,单击 File > Project Structure > Project > Signing Configs,勾选 Automatically generate signature,等待自动签名完成。然后运行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
flutter pub get

 flutter build hap --debug

如果应用正常启动,说明插件适配成功。如果没有,欢迎大家联系坚果派一起支持。

五、总结

通过以上步骤,我们成功地将 flutter_exit_app 三方库适配到了鸿蒙平台。这个过程涉及到了解插件的基本信息、配置开发环境、创建鸿蒙模块、编写原生代码以及测试验证等多个环节。希望这篇博客能够帮助到需要进行 flutter_exit_app 鸿蒙适配的开发者们,让大家在鸿蒙生态的开发中更加得心应手。

六、参考

  • [如何使用 Flutter 与 OpenHarmony 通信 FlutterChannel](https://gitcode.com/openharmony-sig/flutter_samples/blob/master/ohos/docs/04_development/如何使用Flutter与OpenHarmony通信 FlutterChannel.md "如何使用 Flutter 与 OpenHarmony 通信 FlutterChannel")
  • [开发 module](https://gitcode.com/openharmony-sig/flutter_samples/blob/master/ohos/docs/04_development/如何使用混合开发 module.md "开发 module")
  • 开发 package[6]
  • 开发 plugin[7]
  • [开发 FFI plugin](https://gitcode.com/openharmony-sig/flutter_samples/blob/master/ohos/docs/04_development/开发FFI plugin.md "开发 FFI plugin")
  • developing-packages[8]
  • 适配仓库地址[9]

参考资料

[1]

适配仓库地址: https://gitcode.com/nutpi/flutter_exit_app

[2]

Flutter 使用指导文档: https://gitcode.com/openharmony-sig/flutter_samples/blob/master/ohos/docs/07_plugin/ohos%E5%B9%B3%E5%8F%B0%E9%80%82%E9%85%8Dflutter%E4%B8%89%E6%96%B9%E5%BA%93%E6%8C%87%E5%AF%BC.md

[3]

Flutter 配置指南: https://gitcode.com/openharmony-sig/flutter_flutter/blob/master/README.md

[4]

官方插件库: https://pub.dev/

[5]

fflutter_exit_app: https://pub-web.flutter-io.cn/packages/flutter_exit_app/versions/1.1.4

[6]

开发 package: https://gitcode.com/openharmony-sig/flutter_samples/blob/master/ohos/docs/04_development/开发package.md

[7]

开发 plugin: https://gitcode.com/openharmony-sig/flutter_samples/blob/master/ohos/docs/04_development/开发plugin.md

[8]

developing-packages: https://docs.flutter.cn/packages-and-plugins/developing-packages

[9]

适配仓库地址: https://gitcode.com/nutpi/flutter_exit_app

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大前端之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关注腾讯云数据库官方微信,移动端轻松一键管理数据库,立享10元云代金券!
数据库可在移动端一键管理了,关注腾讯云数据库官方微信即可体验。这也就意味着,你不用随时随地带电脑,揣着一块手机就能放心出去嗨~~不论在何时何地,都可快速进行管理操作,提高管理效率!
腾讯云数据库 TencentDB
2019/02/21
5.6K0
关注腾讯云数据库官方微信,移动端轻松一键管理数据库,立享10元云代金券!
直播预告 | DBbrain诊断日:数据库出现数据异常截断?
为更好的帮助DBA运维数据库,腾讯云将在每月12日开展DBbrain诊断日,腾讯云高级产品经理迪B哥直播解析经典数据库运维难题,结合腾讯云数据库智能管家DBbrain的能力,为大家提供问题优化思路和方法,玩转数据库!
腾讯云数据库 TencentDB
2020/01/10
8220
有奖征文丨腾讯云+社区【玩转腾讯云】征文大赛来啦!
为活跃腾讯云+社区的技术氛围,同时鼓励广大程序员们更好的学习和分享腾讯云技术,云+社区联合腾讯云免费体验馆及各产品团队举办【玩转腾讯云】征文活动。只要是与「腾讯云」产品相关的原创干货技术内容,都可以参加这次活动。腾讯云全产品体验季,赶快整理并分享你的经验和文字,将有机会获得大奖哟~ 分享有礼 分享奖: 分享活动海报到微信朋友圈集赞并保留至活动截稿日5月5日,截图发送给云+社区小编(微信号:haloikea222)即可获得。 50 - 99 个赞:腾讯鼠年生肖公仔 *1个 ≥100个赞:腾讯视频 V
腾讯即时通信IM
2020/06/19
1.8K0
【迪B课堂】数据库修炼青铜篇のMySQL概览
点击上方蓝字每天学习数据库 【迪B课堂】为腾讯云数据库产品经理迪B哥开设的面向数据库开发者、数据库运维人员、云端运维人员的系列培训课程,旨在帮助大家从入门到精通学习和使用数据库。历史课程请翻至文末查看。 【迪B课堂】数据库修炼系列第一讲:MySQL架构与引擎。30分钟带你了解MySQL的整体架构,为你构建一个完整的MySQL知识体系基础。 不方便看视频的朋友,视频图解奉上: 学习MySQL注意事项:语法大全可以帮助进行开发项目,但是学懂MySQL,只靠语句学习是片面的;学习源码在初期无法帮助把握精髓,不推
腾讯云数据库 TencentDB
2019/05/16
8200
【迪B课堂】数据库修炼青铜篇のMySQL概览
酷炫!在手机上能随时随地一键管理数据库啦
听说很多程序猿在“名义放假实际值班”的假期(这真的叫假期吗)里,呼朋唤友出去体验被异性包围感受的时候,经常会这样:
腾讯云数据库 TencentDB
2019/03/26
2.6K0
酷炫!在手机上能随时随地一键管理数据库啦
盘点2019 | 腾讯云,国产数据库的风向标
关于腾讯云数据库提供的服务,他们这样说:  重磅   数据库智能管家DBbrain面向所有用户开放体验啦! 有朋友问了,我能在哪里进入DBbrain呢? 现有六大入口见下: 1 一、DBbrain产品页 DBbrain产品介绍页(https://cloud.tencent.com/product/dbbrain),点击【立即体验】即可开启数据库无人值守全新运维时代。 1 二、DBbrain控制台 打开腾讯云官网首页,点击右上角【控制台】,依次点击云产品-数据库-数据库智能管家DBbrain(h
腾讯云数据库 TencentDB
2020/01/02
3.1K0
盘点2019 | 腾讯云,国产数据库的风向标
江湖急诏令:腾讯数据库王者挑战赛赏金万两募英豪!
腾讯云数据库王者挑战赛开始了 可以花几分钟参加比赛免费将☟☟抱回家! MacBook/iPhone 11/AirPods 25台Kindle 8万元腾讯云创业基金 MySQL之父 Michael Widenius 面对面交流 拥有与殿堂级大神的合影和亲笔签名书籍的你, 能让隔壁码农羡慕到流泪! 腾讯云数据库诊断大赛 报名时间:2019.09.27~2019.10.31 参赛福利:报名就送腾讯云数据库代金券(指定产品)、参赛证书/T恤 疯狂奖池:8万元腾讯云创业基金,MacBook/iPhone
腾讯技术工程官方号
2019/10/11
6390
江湖急诏令:腾讯数据库王者挑战赛赏金万两募英豪!
5分钟学会如何玩转云数据库组件
点击上方蓝字每天学习数据库 现在经常会有各式各样的“删库到跑路”事件发生。不管是传统数据库还是云数据库,总会遇到一些问题,与数据迁移、数据风险安全、数据订阅等相关。今天,我们来谈谈云数据库的优势和腾讯云在这方面的努力。看看腾讯云怎么通过技术手段来确保数据库安全稳定,和快捷迁移,以及推动数据商业分析的。 传统数据库与云数据库 传统数据库 传统企业在建设数据库初期,不仅建设服务器,还要保证数据库能够稳定和可靠的运行。当业务数据增长到一定大小的时候,就需要增加服务器CPU及内存以及磁盘相关资源。为了保证服务器
腾讯云数据库 TencentDB
2019/05/16
1.1K0
5分钟学会如何玩转云数据库组件
江湖急诏令:腾讯数据库王者挑战赛赏金万两募英豪!
导语 | 由腾讯云、腾讯云+社区、云+创业主办的腾讯数据库王者挑战赛开始啦!只需要花几分钟参加比赛免费将☟☟抱回家! MacBook/iPhone 11/AirPods 25台Kindle 8万元腾讯云创业基金 MySQL之父 Michael Widenius 面对面交流 拥有与殿堂级大神的合影和亲笔签名书籍的你, 能让隔壁码农羡慕到流泪! 腾讯云数据库诊断大赛 报名时间:2019.09.27~2019.10.31 参赛福利:报名就送腾讯云数据库代金券(指定产品)、参赛证书/T恤 疯狂奖池:8万
腾讯数据库技术
2019/10/21
7200
江湖急诏令:腾讯数据库王者挑战赛赏金万两募英豪!
号外号外!腾讯云数据库网红迪B哥也来带货啦
数据君一般不带货,除非太实惠 腾讯云一年一度的双11盛典已全面开启! 今年各大电商平台的“双节棍”让你心累了吗?定金立减、尾款、品类券、购物券、店铺券、专享券、满减券……不仅让人算得心累,可能到头来还没平时买的便宜省心。 但是,我们的双11不一样,没有花里胡哨的玩法,也没有心机满满的算法,简单直接的降价带给您更加直观的新“云”体验!上云就上腾讯云,双十一全网年度最低价来袭:MySQL高可用版1C2G低至99元/年!更有价值11000元代金券大礼包等你来领取,玩法简单直接,错过又要等一年! 11月1
腾讯云数据库 TencentDB
2020/11/03
9.6K0
腾讯云代金券如何领取及使用?
腾讯云代金券是腾讯云专用的一种代金券,也可以称为腾讯云优惠券。在购买腾讯云的时候,可获得相应的优惠折扣。一般购买腾讯云的时候,建议使用腾讯云代金券,这样可以节省购买腾讯云的费用。
主机精选@主机点评
2019/07/23
5.6K0
关注这些腾讯公众号,学技术还能领价值万元的福利
来了?鹅厂小编们等你很久了!咱们闲话少叙,今天,10位小编携手为你奉上10份超级大礼: 书籍、技术教程、鹅厂公仔、腾讯云代金券……每位朋友都可以免!费!参与抽奖! 01 技术书籍 本次奖池书单涵盖小程序开发、数据分析、人工智能、编程等多个领域。一份技术人获益的典藏书单,强烈推荐,借助书籍希望大家能够由浅入深、循序渐进的学习新知,事半功倍,少走弯路。赠送书单明细请翻至文末查看哦~ 02 实战教程 鹅厂资深数据库专家录制的数据库实战视频课程,教你从青铜到王者学习数据库;小程序云开发教程,含源码,教你7天打造流
腾讯技术工程官方号
2019/06/19
4.3K0
关注这些腾讯公众号,学技术还能领价值万元的福利
首届腾讯云数据库王者挑战赛落幕,决赛选手无一超越AI
关注↑↑腾讯云数据库↑↑官方微信,回复“赛题复现”,即可进行比赛场景复现。 11月6日,由腾讯云主办的首届“DB王者—数据库诊断大赛”决赛在腾讯Techo开发者大会活动现场圆满落幕,此前800多名选手经过初赛的激烈角逐后,共有30位进入本次决赛。经过腾讯云智能数据库管家DBbrain的智能打分,最终雷孝龙以78分的成绩摘得本次冠军奖杯,亚军和季军则分别由赵文新和王加雷获得。 腾讯云数据库负责人林晓斌(丁奇)为获奖者颁奖 (一等奖得主远程参赛,所以很遗憾没有颁奖照片) 以下是本次比赛全部获奖名单:
腾讯云数据库 TencentDB
2019/11/18
1.5K0
首届腾讯云数据库王者挑战赛落幕,决赛选手无一超越AI
一键订阅数据库健康日报教程
腾讯云数据库智能管家DBbrain在移动端小程序上提供的数据库健康日报功能支持在线查看和微信推送,可以根据个人需要设置微信推送提醒,任意时间均可接收,数据库的健康状况随时掌握,哪个实例的指标有问题一目了然。如果不幸出现了故障,可以第一时间看到DBbrain给出的实时诊断信息和从鹅厂专家级工程师数十年数据库运维经验演变而来的优化建议。
腾讯云数据库 TencentDB
2019/10/17
1.8K1
一键订阅数据库健康日报教程
3个DBA和1个不可能完成的任务
一、一个时代的崛起 1. 腾讯新闻:资讯行业擎旗者的突破超越   2012年9月,腾讯新闻客户端安卓版正式发布。彼时,几大传统门户衍生的移动端资讯类APP早已上线推广,新闻客户端领域的用户争夺战,一触即发。2014年底,腾讯新闻在移动端的日活跃用户已达2.5亿,仅在第三方应用商店,腾讯新闻的下载量就达5亿次,是第二名的两倍。不久后,腾讯新闻客户端日活跃用户量已超过行业第二名的两倍,牢固确立领军者地位。 通过和微信进行合作,形成立体联动效应,腾讯新闻一路崛起。微信和手Q双插件渠道成为腾讯新闻客户端独有,其他
腾讯云数据库 TencentDB
2019/10/24
2.7K0
3个DBA和1个不可能完成的任务
前沿探索:腾讯云数据库自治服务最佳实现
业内普遍定义的石器时代大概是在十几、二十年前,刚刚进入数据库发展的快速轨道,当时的技术方案和对于数据库的认知都处于一个初级的阶段。
腾讯云开发者
2020/08/17
4.3K0
江湖急诏令:腾讯数据库王者挑战赛赏金万两募英豪!
由腾讯云、腾讯云+社区主办的腾讯数据库王者挑战赛开始啦!只需要花几分钟参加比赛免费将☟☟抱回家!
腾讯云数据库 TencentDB
2019/09/30
3.7K0
江湖急诏令:腾讯数据库王者挑战赛赏金万两募英豪!
重点解读:用小程序给公众号涨粉10w的7大行业案例
2017年1月9日,张小龙宣布小程序上线,到今天、刚好一周年; 期间陆陆续续出现了拼多多、摩拜单车、语音红包、头脑王者、心理测试等爆款小程序。今天来和大家聊聊如何利用好这巨大的流量洼地来给公众号涨粉。
疯狂的小程序
2018/01/23
5.5K1
关注这些腾讯公号,助你走上人生巅峰(送价值万元的福利)
来了?鹅厂小编们等你很久了!咱们闲话少叙,今天,10位小编携手为你奉上10份超级大礼:
腾讯云数据库 TencentDB
2019/06/19
3.7K0
关注这些腾讯公号,助你走上人生巅峰(送价值万元的福利)
直播预告|腾讯云国产数据库系列直播火热进行中
在各行业爆发式增长的云时代,传统IT架构已无法满足企业需求。国内移动互联网的崛起为国产数据库创造了得天独厚的成长沃土,相比较于传统数据库,国产数据库技术取得了长足进步,也更适用于企业的生产环境和IT系统。 数据库作为数字经济发展的底层核心技术,未来是上云。腾讯云始终致力于实现数据库技术的自主可控,帮助企业降低上云成本,目前已为微信支付、微众银行、张家港行、猎豹、搜狐畅游、蘑菇街、猫眼等全行业用户提供服务。 为帮助开发者更好地了解和学习国产数据库技术,腾讯云数据库特推出为期3个月的国产数据库专题线上技术沙龙
腾讯云数据库 TencentDB
2020/03/12
6450
推荐阅读
相关推荐
关注腾讯云数据库官方微信,移动端轻松一键管理数据库,立享10元云代金券!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验