主頁 > 移動端開發 > Flutter 2.5 發布啦,快來看看新特性

Flutter 2.5 發布啦,快來看看新特性

2021-09-10 11:23:01 移動端開發

原文鏈接 https://medium.com/flutter/whats-new-in-flutter-2-5-6f080c3f3dc

Flutter 2.5 是 Flutter 版本歷史上排名第二的大版本更新,該版本:

  • 關閉了 4600 個 issues;
  • 合并了 252 contributors 和 216 reviewers 的 3932 個 PR;

回顧過去一年,可以看到有 1337 位 contributors 創建了 21,072 個 PR 這樣龐大的資料,其中有15,172 個被合并,

事實上該版本依然是對性能和開發工具進行了改進,同時還有增加許多新功能,包括:

  • 對 Android 的全屏支持、更多 Material You(也稱為 v3)支持;
  • 更新文本編輯功能以支持可切換的鍵盤快捷鍵;
  • Widget Inspector 可查閱更多詳細資訊;
  • Visual Studio Code 專案中對添加依賴項增加新的支持;
  • IntelliJ/Android Studio 中新增測驗運行獲取覆寫率資訊;
  • 一個全新的應用程式模板,為 Flutter 應用程式提供更好的開發基礎;

性能:iOS 著色器預熱、異步任務、GC 和訊息傳遞

#25644 中的第一個 PR 就是用于離線訓練運行 Metal 著色器預編譯,如基準測驗所示,它將最壞情況的幀光柵化時間減少了 2/3 秒,將第 99 個百分位幀減少了一半,

然而著色器預熱只是卡頓的來源之一,在之前的版本處理來自網路、檔案系統、插件或其他 isolate 的異步事件都可能會中斷影片,這是另一個卡頓的來源,

所以 #25789 改進了調度策略,在此版本 isolate 的 UI 事件回圈里,幀處理現在優先于處理其他異步事件,從而在測驗中消除了此類的卡頓,

另一個導致卡頓的原因是垃圾收集器 (GC) 暫停 UI 執行緒以回收記憶體

以前某些影像的記憶體在回應 Dart VM 的 GC 執行時會延遲回收,作為早期版本中的解決方法,Flutter 引擎會通過 Dart VM 的 GC 回收暗示影像記憶體可以回收,這在理論上可以實作了更及時的記憶體回收,

不幸的是這也導致了太多的主要 GC,并且有時仍然無法足夠快地回收記憶體,以避免記憶體受限設備上的低記憶體情況,而在這個版本中未使用的影像的記憶體被急切地回收(#26219、#82883、#84740),大大減少了 GC,

例如在一項測驗用例中,播放 20 秒影片 GIF 從需要 400 多次 GC 變為只需要 4 次,更少的主要 GC 意味著涉及影像出現和消失的影片將減少卡頓,并消耗更少的 CPU 和功率,

Flutter 2.5 的另一個性能改進是在 Dart 和 Objective-C/Swift (iOS) 或 Dart 和 Java/Kotlin (Android) 之間發送訊息時的延遲,

通常作為調整 訊息頻道的一部分,從訊息編解碼器中洗掉不必要的副本可將延遲減少高達 50% ,當然具體取決于訊息大小和設備(#25988,#26331),

你可以在此鏈接獲取到更多關于平臺通道性能的資訊: https://medium.com/flutter/improving-platform-channel-performance-in-flutter-e5b4e5df04af

Dart 2.14:格式、語言特性、發布和 linting 開箱即用

此版本的 Flutter 和 Dart 2.14 一起發布,

新版本的 Dart 帶有新的格式,使級聯 更加清晰,新的 pub 支持忽略檔案,以及新的語言功能,包括三重移位運算子的回歸

此外 Dart 2.14 創建了一組標準的 lint,在新的 Dart 和 Flutter 專案之間共享,開箱即用

開發者不僅會在創建新的 Dart 或 Flutter 專案時獲得這些 lint,而且只需幾個步驟就可以將相同的分析添加到現有應用程式中,

合并遷移lint:https://flutter.dev/docs/release/breaking-changes/flutter-lints-package#migration-guide

有關這些 lint 的詳細資訊、新語言功能等,請查看 https://medium.com/dartlang/announcing-dart-2-13-c6d547b57067

Framework:Android 全屏、Material You & 文本編輯快捷方式

從 #81303 開始, 我們修復了 Android 一系列與全屏模式相關的問題,此更改還添加了一種在其他模式下收聽全屏更改的方法,

例如用戶與應用互動時,當系統 UI 回傳時,開發人員現在可以撰寫代碼在回傳全屏時執行其他操作

新的 Android 全屏模式:普通模式(左)、邊到邊模式(中)、帶有自定義 SystemUIOverlayStyle 的邊到邊(右)

在此版本中,我們對新 Material You(又名 v3)的規范增加了支持,包括對浮動操作按鈕大小和主題的更新(#86441),在MaterialState.scrolledUnder 可以使用 Demo 中的示例代碼查看的新狀態 PR 式例 ( #79999 ),

新的 MaterialState.scrolledUnder 狀態在起作用

另一個改進是添加了 scroll metrics notifications(#85221、#85499),即使用戶沒有滾動,它也會提供可滾動區域的通知,例如下面顯示了 ListView 根據的基礎大小適當地出現或消失滾動條:

在這種情況下不必撰寫任何代碼,但如果想捕獲 ScrollMetricNotification 更改,則可以通過此監聽來完成,

特別感謝社區貢獻者xu-baoolin,他為此付出了努力并提出了一個很好的解決方案,

另一個出色的社區貢獻是為 ScaffoldMessenger , 你可能還記得 Flutter 2.0 開始 ScaffoldMessenger 作為一個更強大的方式來顯示 SnackBars , 在螢屏的底部為用戶提供通知,而在 Flutter 2.5 中,現在可以在 Scaffold 的頂部添加一個橫幅,該橫幅會一直保持到用戶關閉它為止,

應用程式可以通過呼叫以下 showMaterialBanner 方法來獲得此行為 ScaffoldMessenger

class HomePage extends StatelessWidget {
  const HomePage({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) => Scaffold(
        appBar: AppBar(
          title: const Text('The MaterialBanner is below'),
        ),
        body: Center(
          child: ElevatedButton(
            child: const Text('Show MaterialBanner'),
            onPressed: () => ScaffoldMessenger.of(context).showMaterialBanner(
              MaterialBanner(
                content: const Text('Hello, I am a Material Banner'),
                leading: const Icon(Icons.info),
                backgroundColor: Colors.yellow,
                actions: [
                  TextButton(
                    child: const Text('Dismiss'),
                    onPressed: () => ScaffoldMessenger.of(context)
                        .hideCurrentMaterialBanner(),
                  ),
                ],
              ),
            ),
          ),
        ),
      );
}

Material 指南規定 開發者的應用橫幅一次只能顯示一個,因此如果你呼叫多次 showMaterialBannerScaffoldMessenger 它將維護一個佇列,在前一個橫幅已被關閉之后,再顯示一個新橫幅,

感謝 Calamity210 對 Flutter 中的 Material 支持做出了如此出色的補充!

在此版本中,我們添加了文本編輯鍵盤快捷鍵可覆寫的功能 #85381,這是在 Flutter 2.0 及其新的文本編輯功能的基礎上進一步構建,例如文本選擇以及能夠在處理鍵盤事件后停止它的傳播,

如果您希望 Ctrl-A 執行一些自定義操作而不是選擇所有文本,

DefaultTextEditingShortcuts 類包含每個平臺上受支持的鍵盤快捷鍵串列,如果開發者想覆寫任何內容,可以使用 Flutter 的現有 Shortcuts 將任何快捷方式重新映射到現有或自定義意圖,

API 參考: https://api.flutter.dev/flutter/widgets/DefaultTextEditingShortcuts-class.html

插件:相機、影像選擇器和 plus 插件

另一個具有有很多改進的插件是相機插件:

  • #3795 [相機] android-rework 第 1 部分:支持 Android 相機功能的基類
  • #3796 [相機] android-rework 第 2 部分:Android 自動對焦功能
  • #3797 [camera] android-rework part 3:Android曝光相關功能
  • #3798 [相機] android-rework 第 4 部分:Android 閃光和變焦功能
  • #3799 [相機] android-rework 第 5 部分:Android FPS 范圍、解析度和傳感器方向功能
  • #4039 [相機] android-rework 第 6 部分:Android 曝光和焦點功能
  • #4052 [camera] android-rework part 7:Android降噪功能
  • #4054 [相機] android-rework 第 8 部分:最終實作的支持模塊
  • #4010 [camera] 在 iOS 上不觸發設備方向
  • #4158 [相機] 修復坐標旋轉以在 iOS 上設定焦點和曝光點
  • #4197 [相機] 修復相機預覽并不總是在方向改變時重建
  • #3992 [camera] 設定不受支持的 FocusMode 時防止崩潰
  • #4151 [camera] 引入camera_web包

image_picker 插件 也做了很多作業,專注于端到端的相機體驗:

  • #3898 [image_picker] 影像選擇器修復相機設備
  • #3956 [image_picker] 將相機捕獲的存盤位置更改為 Android 上的內部快取,以符合新的 Google Play 存盤要求
  • #4001 [image_picker] 洗掉了對相機權限的冗余請求
  • #4019 [image_picker] 當相機是 source 時修復旋轉

這項作業改進了 Android 的相機和 image_picker 插件的功能和穩健性,

此外你會注意到 攝像頭插件 的早期版本可用于網路支持 ( #4151 ),

此預覽為在 Web 上查看相機預覽、拍照、使用閃光燈和縮放控制元件提供基本支持,它目前還不是被認可的插件,因此您需要明確添加它以在才能在 web 中使用,

詳細內容: https://pub.dev/packages/camera_web/install

在此版本的 Flutter 中,Flutter 團隊的每個相應插件現在都帶有一個類似 電池 的建議:

此外,由于這些插件不再被積極維護,它們不再被標記為 Flutter 最喜歡的插件,我們建議使用以下插件的 plus 版本:

Flutter DevTools:性能、Widget 檢查器和 Polish

首先最重要的是 DevTools 中增加利用引擎更新的支持(#26205、#26233、#26237、#26970、#27074、#26617),

其中一組更新使 Flutter 能夠更好地將跟蹤事件與特定框架相關聯,這有助于開發人員確定框架可能超出預算的原因,

可以在 DevTools Frames 圖表中看到這一點,該圖表已被重建為“實時”,可以在應用程式呈現時填充在此圖表中,從此圖表中選擇一個幀導航到該幀的時間線事件:

Flutter 引擎現在還可以識別時間線中的著色器編譯事件,Flutter DevTools 使用這些事件來幫助診斷應用程式中的著色器編譯卡頓,

借助這項新功能,DevTools 會檢測何時因著色器編譯丟失幀,以便可以解決卡頓問題,

flutter run 時與 --purge-persistent-cache 標志一起使用,這會清除快取以確保重現用戶在 “首次運行” 或 “重新打開” (iOS) 體驗中看到的環境,

此功能仍在開發中,如果有任何問題,可以查閱:https://b.corp.google.com/issues/new?component=775375&template=1369639

此外跟蹤應用程式中的 CPU 性能問題時,可能會被來自 Dart 和 Flutter 庫或引擎本機代碼的分析資料淹沒,如果想關閉其中任何一個以專注于您自己的代碼,您可以使用新的 CPU Profiler 功能 #3236 來實作,該功能可以從這些來源中隱藏分析器資訊

對于沒有過濾掉的任何類別,它們現在已經進行了顏色編碼(#3310、#3324),以便可以輕松查看 CPU 幀圖表來自系統的哪些部分

彩色框架圖,用于識別應用中的應用、原生、Dart 和 Flutter 代碼活動

性能并不時除錯的唯一因素,此版本的 DevTools 附帶了對 Widget Inspector 的更新,允許將滑鼠懸停在 Widget 時評估物件、視圖屬性、小部件狀態等

而當選擇一個 Widget 時,它會自動填充在新的小部件檢查器控制臺中,這樣就可以在其中瀏覽 Widget 的屬性,

在斷點處暫停時還可以從控制臺計算運算式

除了新功能外 Widget Inspector 還進行了翻新,為了讓 DevTools 成為了解和除錯 Flutter 應用程式的更有用,我們與芬蘭的一家創意技識訓構Codemate合作進行了一些更新,

在此螢屏截圖中可以看到以下更改:

  • 更好地傳達除錯切換按鈕的作用——這些按鈕具有新圖示、面向任務的標簽,以及描述它們的作用和何時使用它們的豐富工具提示,每個工具提示進一步鏈接到該功能的詳細檔案,

  • 更容易掃描和定位感興趣的 Widgets——Flutter 框架中常用的 Widget 現在在檢查器左側的 Widget 樹視圖中顯示圖示,它們根據類別進一步進行顏色編碼,例如布局 Widget 顯示為藍色,而內容Widget 顯示為綠色,此外每個文本 Widget 現在顯示其內容的預覽,

  • 對齊布局資源管理器和小部件樹的配色方案- 現在可以更輕松地從布局資源管理器和 Widget 樹中識別相同的 Widget,例如螢屏截圖中的“列” Widget 位于布局瀏覽器中的藍色背景上,并且在 Widget 樹視圖中具有藍色圖示,

IntelliJ/Android Studio:集成測驗、測驗覆寫率和圖示預覽

Flutter 的 IntelliJ/Android Studio 插件在此版本中也進行了許多改進,首先是運行集成測驗的能力 ( #5459 ),

集成測驗是在設備上運行的整個應用程式測驗,位于 integration_test 目錄中,并使用與testWidgets() 單元測驗相同的功能,

要將集成測驗添加到專案,請 按照 flutter.dev 上的說明進行操作,要將測驗與 IntelliJ 或 Android Studio 連接,請添加啟動集成測驗的運行配置并連接設備以供測驗使用,運行配置可以讓開發者運行測驗,包括設定斷點、步進等,

此外,Flutter 最新的 IJ/AS 插件允許查看單元測驗和集成測驗運行的覆寫率資訊,可以從“除錯”按鈕旁邊的工具列按鈕訪問它:

覆寫資訊在編輯器的裝訂線中使用紅色和綠色條顯示,在這個例子中第 9-13 行被測驗,但第 3 和 4 行沒有被測驗,

最新版本還包括預覽來自 pub.dev 包中使用的圖示的新功能,這些包是圍繞 TrueType 字體檔案(#5504、#5595、#5677、#5704)構建的,就像 Material 和 Cupertino 圖示支持預覽一樣,

要啟用圖示預覽,您需要告訴插件您正在使用哪些軟體包,settings/preferences 中有一個新的文本欄位:

請注意,如螢屏截圖中的示例代碼所示,此設定僅適用于在類中定義為靜態常量的圖示,它不適用于運算式,例如 LineIcons.addressBook() or LineIcons.values['code']

Visual Studio Code:依賴項、Fix All 和 Test Runner

Flutter 的 Visual Studio Code 插件也在此版本中得到了改進,兩個新命令 “Dart: Add Dependency” and “Dart: Add Dev Dependency” (#3306, #3474),

這些命令提供的功能類似于Jeroen Meijer 的 Pubspec Assist 插件,新命令開箱即用,并提供定期從 pub.dev 獲取的包型別過濾串列,

開發者可能還對適用于 Dart 檔案的“Fix All”命令(#3445、#3469)感興趣,并且可以一步修復所有與dart fix相同的問題,

這也可以通過添加 source.fixAlleditor.codeActionsOnSave 的 VS Code 設定來設定為在保存時運行,或者想嘗試預覽功能,可以啟用該 dart.previewVsCodeTestRunner 設定并查看通過新的 Visual Studio Code 測驗運行程式運行的 Dart 和 Flutter 測驗,

Visual Studio Code 測驗運行器看起來與當前的 Dart 和 Flutter 測驗運行器略有不同,它將跨會話保留結果,Visual Studio Code 測驗運行器還添加了新的裝訂線圖示,顯示測驗的最后狀態,可以單擊以運行測驗(或右鍵單擊以獲取背景關系選單),

在即將發布的版本中,現有的 Dart 和 Flutter 測驗運行器將被移除,以支持新的 Visual Studio Code 測驗運行器,

工具:例外、新應用模板和 Pigeon 1.0

在此版本中,除錯器現在可以在未處理的例外上正確中斷,而這些例外以前時被 framework 捕獲 ( #17007 ),

這改善了除錯體驗,因為除錯器現在可以直接指向他們在代碼中的拋出行,而不是指向框架深處的隨機行,

一個相關的新功能使開發者能夠決定 FutureBuilder 是否應該重新拋出或吞下錯誤 (#84308),這應該會為開發者提供大量額外的例外情況,以幫助追蹤 Flutter 應用程式中的問題,

自 Flutter 誕生以來,就出現了 Counter 應用模板,它具有許多優點:

  • 它展示了 Dart 語言的許多特性;
  • 展示了幾個關鍵的 Flutter 概念,并且它足夠小;
  • 可以放入單個檔案中,即使有很多的解釋性評論;

然而它沒有為Flutter 應用程式提供一個特別好的起點,在此版本中,通過以下命令提供了一個新模板 ( #83530 ):

$ flutter create -t skeleton my_app

骨架模板生成一個遵循社區最佳實踐的兩頁串列視圖,它的開發經過大量內部和外部審查,為構建生產質量應用程式提供了更好的基礎,并支持以下功能:

  • 用于 ChangeNotifier 協調多個 Widget
  • 默認情況下使用 arb 檔案生成本地化
  • 包括示例影像并為影像資產建立 1x、2x 和 3x 檔案夾
  • 使用“功能優先”的檔案夾組織
  • 支持共享首選項
  • 支持明暗主題
  • 支持多頁面間導航

隨著時間的推移,隨著 Flutter 最佳實踐的發展預計這個新模板也會隨之發展,

另一方面,如果你正在開發插件而不是應用程式,那么可能會對 Pigeon 的 1.0 版本感興趣

Pigeon 是一個代碼生成工具,用于在 Flutter 及其主機平臺之間生成型別安全的互操作代碼,它允許定義插件 API 的描述,并為 Dart、Java 和 Objective-C(分別可用于 Kotlin 和 Swift)生成框架代碼,

Flutter 團隊的一些插件中已經使用了 Pigeon,在此版本中它提供了更多有用的錯誤訊息,增加了對泛型、原始資料型別作為引數和回傳型別以及多個引數的支持,預計開發者將來會更頻繁地使用它,

重大更改和棄用

以下是 Flutter 2.5 版本中的重大變化:

  • 默認拖動滾動設備
  • 在 v2.2 之后洗掉了棄用的 API
  • 引入包:flutter_lints
  • ThemeData 的 accent 屬性已被棄用
  • GestureRecognizer Cleanup
  • 用 collate 替換 AnimationSheetBuilder.display
  • 使用 HTML 插槽在 Web 中呈現平臺視圖
  • 將 LogicalKeySet 遷移到 SingleActivator

隨著繼續更新 Flutter Fix(在您的 IDE 中和通過dart fix命令可用),總共有 157 條規則來自動遷移受這些或過去的重大更改以及任何棄用影響的代碼,

此外隨著 Flutter 2.5 的發布,我們將棄用2020 年 9 月宣布的對 iOS 8 的支持,放棄對市場份額不到 1% 的 iOS 8 的支持,使 Flutter 團隊能夠專注于更廣泛使用的新平臺,棄用意味著這些平臺可以作業,但我們不會在這些平臺上測驗 Flutter 的新版本或插件,

您可以在 flutter.dev 上查看當前支持的 Flutter 平臺串列: https://flutter.dev/docs/development/tools/sdk/release-notes/supported-platforms

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/298995.html

標籤:其他

上一篇:Unity 之 接入IOS內購程序決議【文末原始碼】

下一篇:HDD成都站:HMS Core 6.0帶來新可能 多元服務驅動產品商業成功

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more