← 返回

Android Native vs Flutter

Android NativeFlutter 有什么差异?
这里会对比它们的优劣势、支持平台和社区信息。

基本信息

  • 维护方

    Google
  • 首发时间

    2008 年 9 月 23 日
  • 维护方

    Google
  • 首发时间

    2017 年 5 月 12 日

社区

语言

  • Java
  • Kotlin
  • Dart

目标平台

  • Web
  • macOS
  • iOS
  • Android
  • Windows
  • 微信小程序
  • 其他平台
    iPadOS
    鸿蒙
    Linux
    Android Auto
    Android TV
    Tizen
    tvOS
    visionOS
    watchOS
    Wear OS
    QQ 小程序
    京东小程序
    快应用
    快手小程序
    抖音小程序
    支付宝小程序
    百度小程序
  • Web
  • macOS
  • iOS
  • Android
  • Windows
  • 已过时 · 不计入覆盖统计

    Flutter 官方不支持小程序。MPFlutter 等社区方案曾将 Flutter 编译到微信宿主,但项目已长期停更,无法跟上 Flutter 新架构与微信基础库更新,弃坑风险极高。

  • 其他平台
    iPadOS

    Flutter 官方 SDK 不支持 OpenHarmony。OpenHarmony SIG 维护适配版 Flutter SDK(flutter_flutter),需 DevEco Studio 与 HarmonyOS SDK,使用 flutter create --platforms ohos、flutter build hap 产出 HAP;常用插件需从 flutter_packages 以 Git 引入,版本与 pub.dev 不完全一致。华为 AppGallery Connect 提供 Flutter 应用接入文档。HarmonyOS NEXT 纯血设备不能依赖 Android 兼容层跑标准 Flutter APK;部分鸿蒙机上 Platform.isAndroid 仍为 true,需自行区分系统。

    感谢 fangqiu1992、Leon6868 提供的线索

    Linux
    Android Auto
    Android TV
    Tizen
    tvOS
    visionOS
    watchOS
    Wear OS
    QQ 小程序
    京东小程序
    快应用
    快手小程序
    抖音小程序
    支付宝小程序
    百度小程序

优势

  • 官方 SDK

    原生 Android 应用使用官方开发工具,能较早用到平台最新特性与能力。

  • 性能

    相比混合方案,原生应用可直接访问设备硬件与系统底层,性能通常更好。

  • 用户界面

    可使用系统内置 UI 组件,做出符合 Android 设计规范的一致界面。

  • 用户体验

    对 Android 用户来说,原生应用的交互与体验更熟悉。

  • 生态

    可面向手机、Wear OS、Android TV、Android Auto 等多种 Android 形态。

  • 社区活跃

    Android 开发者社区规模大、资料多,文档、教程与示例相对好找。

  • 跨平台

    一套代码可覆盖多种平台,缩短开发周期、降低维护成本。

  • 性能

    引擎与框架针对各平台硬件做了优化,整体性能在跨平台方案里较突出。

  • 用户界面

    内置面向 iOS 与 Android 的 UI 组件,便于做出符合两端设计规范的界面。

  • 原生 API

    提供与原生 API 的桥接,可访问相机、加速度计等设备能力。

  • 社区活跃

    社区规模大,文档、教程与示例丰富,遇到问题相对好查。

劣势

  • 跨平台

    若要同时覆盖 iOS、Windows、macOS 等,通常需要另选框架单独开发。

  • 学习曲线

    需要学习 Dart,对只熟悉 JavaScript/Type 的团队来说有一定门槛。

  • 安装包体积

    应用会打包 Flutter 引擎,安装包通常比纯原生应用更大一些。

  • 内存占用

    需随应用打包渲染引擎,内存占用在跨平台方案里通常偏高。

  • 文字排版

    自绘文字栈在复杂排版、与系统字体特性对齐等方面,往往不如各平台原生文本引擎。

  • Web 与热更新

    Web 端目前仅走 wasm 路线;无官方热更新方案,第三方(如 Shorebird)在国内稳定性一般。

  • 鸿蒙适配

    官方 SDK 不直接支持鸿蒙;需换用社区适配版工具链,三方库与 Google 版 Flutter 版本线可能滞后,分布式等鸿蒙特性需自行写 Platform Channel。

应用案例