【Flutter】手机应用类型 ( Android | iOS | Native 应用 | Web 应用 | Hybrid 应用 | ReactNative 应用 | Flutter 应用 )
文章目錄
- 一、Native 應用
- 二、Web 應用
- 三、Hybrid 應用
- 四、ReactNative 應用
- 五、Flutter 應用
一、Native 應用
原生應用開發 : Android / iOS , 各自開發本平臺的應用 ;
Android 使用 Android Studio 開發環境 , Java / Kotlin / C / C++ 語言 , 開發 Android 平臺的應用 ;
iOS 使用 Xcode 開發環境 , Objective-C , Swift 語言 , 開發 iOS 平臺應用 ;
每個平臺開發出的應用只能在特定平臺上運行 ;
原生應用的外觀渲染 , 運行性能是最好的 , 用戶體驗最好 , 不差錢的話 , 一般開發原生應用 ;
優點 :
- 性能流暢
- 可訪問本地資源 , 如數據庫 , SP
- 可訪問硬件 , 如 藍牙 , 攝像頭 , 傳感器
缺點 :
- 成本高 , 需要 Android / iOS 兩個團隊開發
- 版本發布慢 , 更新版本成本高 , 用戶可能會拒絕更新版本
- 上架需要審核 , Google Play , App Store
二、Web 應用
Web 應用使用的是 WebView / 瀏覽器 在 Android / iOS 手機中展示網頁 , 如 PhoneGap 技術 , 該技術屬于網頁的前端開發 , 會繪制渲染效率受 WebView 或 瀏覽器內核 限制 ;
開發使用的技術就是網頁前端相關技術 , JavaScript + HTML5 + CSS ;
寫出移動端的頁面在瀏覽器 / WebView 上運行 ;
瀏覽器 與 WebView 性能不是很高 , 優化到極限 , 也比不上 Native 開發的運行速度 ; Web 應用沒有運行在操作系統上 , 而是運行在瀏覽器上 , 性能會很低 , 用戶體驗很差 ;
Web 應用無法訪問原生資源 , 如 藍牙 , 攝像頭 , 傳感器 , 日歷 , GPS , NFC 等等 , 也無法調用 JNI 層的 C / C++ 相關高性能功能 , 如高性能音頻 AAudio , OpenGL , OpenSL 等 ; 功能上有很大的局限性 ;
優點 :
- 成本低 , 只需要一個前端團隊
- 更新快 , 更新應用 , 只需要在后臺服務器 ( Tomcat ) 部署最新程序即可 , 與發布網站原理一樣 , 不需要經過用戶手動安裝
- 跨平臺 , 開發后可以在 Android , iOS , Windows , Linux , Mac , 嵌入式設備 , 等有瀏覽器的設備上運行
缺點 :
- 性能低 , 受瀏覽器 / WebView 性能限制
- 資源在服務器 , 受網絡限制
- 無法訪問原生設備 , 如攝像頭 , 藍牙 , 傳感器 等
- 無法訪問本地文件 , 如數據庫 , SD 卡 , SP 等
三、Hybrid 應用
混合應用 , Hybrid App , 一部分是原生應用 , 一部分是 Web 應用 ;
綜合 Web 應用 和 原生應用的優點 ,
- Web 應用容易開發 , 跨平臺 ,
- 原生應用性能高 , 可以調用 藍牙 , 攝像頭等 原生設備 ;
可以綜合 原生應用 與 Web 應用的優點 ;
四、ReactNative 應用
React Native 可以調用系統的原生控件 , 這種性能就比調用 WebView 或 瀏覽器性能高 ; 使用 JavaScript 寫出代碼 , 編譯時 , 編譯成 Android / iOS 的原生組件 , 不同平臺的原生組件表現出來是有差異的 , 有差異就需要進行兼容處理 ;
Native 原生組件需要與 JS 進行通信 , 如果通信非常頻繁 , 對性能消耗很大 ;
貌似快涼了 ; 先掛著 , 有時間學一下 ;
五、Flutter 應用
Flutter 特點 : 使用了跨平臺的繪制引擎 Skia , 可以在不同的平臺 , 生成表現相同的程序 , 各個平臺展示效果基本沒有差異 , 不需要進行兼容處理 ;
Flutter 的渲染性能很高 , 同時 Flutter 不用進行跨層通信 , 可以直接操作 UI 層 ;
Dart 語言既操作程序的代碼邏輯 , 又操作 UI 渲染顯示 , 不涉及到跨層通信 , 因此沒有通信上的資源消耗 ;
盡快刷完 ;
總結
以上是生活随笔為你收集整理的【Flutter】手机应用类型 ( Android | iOS | Native 应用 | Web 应用 | Hybrid 应用 | ReactNative 应用 | Flutter 应用 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Flutter】Hero 动画 ( H
- 下一篇: 【Flutter】Hero 动画 ( H