Skip to main content

安卓开发

一、项目配置

运行的时候,要改下配置文件

build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.3"

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io" }
maven { url 'https://maven.aliyun.com/repository/public'}
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

X、Q&A

1.安卓app我看用的是java语言,为啥我听说还有用flutter写的,原生java又是什么概念

一、原生Java开发(Native Java)

  1. 本质
  • 使用Android SDK提供的API和工具进行开发
  • 传统安卓开发方式,直接调用系统底层功能
  • 现代开发已逐渐转向Kotlin(官方推荐),但Java仍被广泛支持
  1. 特点
  • 性能最优 :直接编译为机器码,无中间层损耗
  • 深度整合 :完美适配Android系统特性(如通知系统、硬件传感器)
  • 开发成本 :需单独维护Android/iOS两套代码(iOS用Swift/Objective-C)
  1. 典型场景
  • 对性能要求极高的应用(游戏、图像处理)
  • 需要深度调用系统级功能的场景(设备管理、底层网络)

二、Flutter框架开发

  1. 技术特性
  • 谷歌开源的跨平台框架(2017年发布)
  • 使用Dart语言开发,单代码库适配多平台
  • 自带渲染引擎,不依赖原生UI组件
  1. 核心优势
  • 开发效率 :一套代码同时生成Android/iOS/Web/Linux等版本
  • UI一致性 :像素级渲染控制,避免不同平台UI差异
  • 热重载 :实时查看代码修改效果(提升30-50%开发效率)
  1. 性能表现
  • 通过Skia引擎直接绘制UI,接近原生性能(约90%原生流畅度)
  • 复杂动画/计算密集型场景可能略逊于原生

三、技术选型对比

维度原生开发Flutter
开发效率低(需维护多平台)高(单代码库)
性能表现优异(接近硬件极限)优秀(轻微抽象层损耗)
UI一致性需适配各平台规范完全统一的视觉效果
社区生态成熟(10年以上积累)快速发展(200w+开发者)
适用场景高性能/系统级应用多平台通用型应用

四、行业趋势洞察

  1. 原生开发
  • 逐步转向Kotlin(Android)和Swift(iOS)
  • 重点应用于需要极致性能的垂直领域(如AR/VR、金融科技)
  1. 跨平台方案
  • Flutter已成为增长最快的框架(2023年Stack Overflow调查:46%开发者采用)
  • React Native仍占35%市场份额,但Flutter增速更快
  1. 混合模式
  • 头部应用(如微信、支付宝)采用「原生+跨平台」混合架构
  • 性能敏感模块用原生实现,业务功能用跨平台提升效率

建议根据项目需求选择:

  • 需要快速验证MVP或开发资源有限 → Flutter
  • 追求极致性能或深度系统集成 → 原生开发
  • 大型复杂项目 → 混合架构(如闲鱼App的Flutter+Native方案)

React Native 是 Facebook(现 Meta)于 2015 年推出的跨平台移动应用开发框架 ,它基于 React 的核心思想,但将目标从 Web 前端扩展到了移动端。以下是关键概念和对比分析:


2.React Native又是什么东西,我只知道react和vue都是web前端的框架

一、React Native 的核心特性

  1. 技术基础

    • 使用 JavaScript + React 语法 开发,但最终渲染的是原生 UI 组件 (非 WebView 或 HTML)
    • 通过 "桥接机制"(Bridge)调用原生模块(如摄像头、GPS)
  2. 与 Web React 的区别

    Web ReactReact Native
    渲染目标浏览器 DOM原生 iOS/Android 组件
    样式系统CSS类 CSS 的 JavaScript 对象
    组件库<div>,<span><View>,<Text>
  3. 开发体验

    • 支持热重载(Hot Reloading)
    • 可直接调用原生代码(通过 Native Modules)
    • 社区生态丰富(npm 包兼容性较好)

二、与 Flutter 的关键对比

维度React NativeFlutter
语言JavaScript/TypeScriptDart
渲染引擎依赖原生组件(通过 Bridge 通信)自绘引擎(Skia),不依赖原生 UI
性能接近原生(复杂场景可能卡顿)更接近原生(约 90% 原生性能)
UI 一致性需适配平台差异(如导航栏样式)完全统一的像素级控制
学习曲线熟悉 React 的开发者可快速上手需学习 Dart 和全新框架体系

三、典型应用场景

  1. 适合 React Native
    • 业务逻辑复杂但对图形性能要求不高的场景(如电商、社交、工具类 App)
    • 需要快速迭代且团队熟悉 JavaScript 生态
    • 需要动态更新能力(通过 CodePush 等热更新方案)
  2. 不适合 React Native
    • 高度依赖原生功能(如 AR/VR、复杂动画)
    • 对启动速度有极致要求(Bridge 通信存在延迟)

四、行业应用案例

  1. 成功案例
    • Facebook 主应用(部分模块)
    • Instagram(完全由 RN 重构)
    • Discord(逐步迁移到 Flutter,但早期使用 RN)
    • 特斯拉车载系统(部分界面)
  2. 局限性案例
    • Airbnb(2018 年弃用 RN,因性能和维护成本问题)
    • Udemy(从 RN 迁移回原生开发)

五、技术选型建议

需求场景推荐方案
团队已有 Web 前端经验React Native
需要最高性能和 UI 控制力原生开发(Swift/Kotlin)
需要同时覆盖移动端和桌面端Flutter
快速验证 MVP 产品React Native 或 Flutter

六、发展趋势(2023 年)

  1. React Native 的改进
    • 新架构(Fabric + TurboModules + JSI)大幅提升性能
    • 支持同步执行和直接内存访问
    • 微软等大厂持续贡献代码
  2. 与 Flutter 的竞争
    • Flutter 在性能和一致性上占优
    • React Native 在生态和灵活性上占优
  3. 混合开发模式
    • 头部应用(如美团、携程)采用「原生 + React Native」混合架构
    • 关键路径用原生,非核心功能用跨平台框架

关键总结

  • React Native 是 Web 技术栈向移动端的延伸,适合已有前端团队 的渐进式移动开发
  • Flutter 是更彻底的跨平台方案,适合追求完全一致体验 的全新项目
  • 原生开发 仍是性能敏感型场景的终极选择

如果团队熟悉 React 生态,React Native 可显著降低移动端开发门槛;若追求最佳性能和多平台覆盖,Flutter 是更现代的选择。