精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

構建高性能 React Native 跨端應用—圖片與內存

開發 前端
在瀏覽器構建的 web 中開發者可能不用花費太多精力關注圖像上,但是在移動應用中,對于圖像的關注顯得非常重要。因為在 RN 應用中,無論是圖片還是動圖,或者是視頻都是非常耗內存的,內存的暴漲就很容易造成應用的崩潰。

一 前言

在構建高性能 React Native 跨端應用—引擎與渲染章節中,我們從引擎與渲染角度介紹了 React Native 的優化手段,本文我們繼續從圖片和內存角度繼續討論一下如何構建高性能的 React Native 應用。

二 圖像層面

在瀏覽器構建的 web 中開發者可能不用花費太多精力關注圖像上,但是在移動應用中,對于圖像的關注顯得非常重要。因為在 RN  應用中,無論是圖片還是動圖,或者是視頻都是非常耗內存的,內存的暴漲就很容易造成應用的崩潰。

圖片合理應用

圖片的處理,占 RN 性能優化的大頭,在現在的移動端應用中,有很多應用大量圖片的場景,加載圖片的過程實際是很復雜的,并且圖片本身的大小,也不是最后加載到內存中的大小,也就是說最后落實在內存里面的大小,會大于圖片本身的大小。

圖片的處理在不同平臺上表現也不一致,在 iOS 平臺上對于圖像的加載,加密,到最后的展現,表現還算比較好。但是在安卓平臺,就時常會出現幺蛾子。

筆者在開發 RN 應用中,就遇到了這樣的場景:我們 RN 只運行在安卓端,一個 RN 頁面會加載大量的圖片,剛開始我們沒有對圖片進行任何處理,只是圖片的寬度和高度是寫死的,那么造成的現象是,所有的圖片都展現不出來,并且圖片是黑的,接下來就是安卓程序直接崩潰。

后來經過排查我們發現,原來我們給圖片的容器特別小,但是圖片資源卻非常大,由于為了在小容器中呈現大的圖片,就比如說一個 100 * 100 圖片容器,加載一個 1000 * 1000 圖片,安卓底層需要對圖片源數據進行算法壓縮,此時就會讓內存暴漲,幀率直接降為個位數,導致黑屏,閃退的情況。筆者還把這種小容器加載大圖片的情況,叫做小馬拉大車。

那么如何解決這個問題呢? RN 中的 Image 組件有個 resizeMethod 屬性,就是解決 Android 圖片內存暴漲的問題。當圖片實際尺寸和容器樣式尺寸不一致時,決定以怎樣的策略來調整圖片的尺寸。

<Image resizeMethod="resize" source={{ uri: imageUrl  }} />

resizeMethod 屬性有三個可選的值,默認為 auto .

resize:小容器加載大圖的場景就應該用這個屬性。原理是在圖片解碼之前,會用算法對其在內存中的數據進行修改,一般圖片大小大概會縮減為原圖的 1/8。 scale:不改變圖片字節大小,通過縮放來修改圖片寬高。因為有硬件加速,所以加載速度會更快一些。

auto:使用啟發式算法來在resize和scale中自動決定,,如果是本地圖片,就會用 resize,其他的一般都是 scale 屬性,由于項目運用的是網絡圖片,所以就按照 scale 處理邏輯。

實際最佳的方案就是,適當的大小的圖片容器,加載適當的圖片。但是對于一些圖片資源的大小是未知的,我們不能直接通過設置寬和高的方式草率的設置圖片容器大小,解決方案就是可以通過 api 的方式獲取遠程圖片的大小。如下:

import { Image } from 'react-native'

/* 使用 */
Image.getSize(imageUrl,(width,height)=>{ 
    console.log('寬度:',width,'高度:',height)
})

當然客戶端也可以把圖片壓縮的操作交給服務端去做,目前很多大公司都有自己的內建圖床和 CDN 服務,會提供一些自定制圖片的功能,在請求圖片資源的時候,就把圖片的寬和高拼接到 url 中,這樣服務器接受到圖片請求,會根據路徑獲取 width 和 height,然后自行的對圖片進行壓縮。返回給客戶端的就已經是處理好的能夠適配圖片容器大小的圖片了。

圖片管理優化

上面介紹了圖片的合理使用,接下來我們看一下圖片的管理優化,在 RN 中有多種多樣的類型的圖片,比如 png/jpg/base64/gif ,對于 gif 在安卓 build.gradle 中需要添加相關依賴。對于一些動圖的處理,比如 svg 和 svga ,RN 也提供了相關的生態去處理這些圖像。

對圖片的管理可以通過不同的場景,運用更為合理的方案。比如對于一些大量 gif 圖片的場景,內存就是一個棘手問題,圖片的管理工具就需要均衡好內存緩存和磁盤緩存的策略,一般都會采用三級緩存策略。

對于一些網絡加載的圖片,在一些網絡差或者特殊網絡的情況下,可以出現加載慢,丟包的現象,這樣就會導致圖片一致加載失敗。慶幸的是,還有專門的圖片管理庫來來解決這個問題。那就是 react-native-fast-image。

react-native-fast-image 這個庫比較受歡迎的,它對圖片的加載和內存優化上都有著不錯的表現。這個庫在 iOS 和安卓平臺上,底層用原理也各不相同。

三 內存層面

清除資源

對于清楚資源,談不上具體的主流優化手段,確切的說,應該是一個值得關注的細節。

比如當 A 頁面中有視頻播放的模塊,而 B 頁面是 A 的二級頁面,在融合模式下,進入 A 頁面之后會開始播放視頻流,但是當從 A 頁面進入到 B 頁面之后,本質上 A 頁面并沒有被回收,但是這個時候,還在加載著視頻資源。那么這樣下去,會讓內存越來越大。

那么如何解決這個問題呢? 當 A 跳轉到 B 頁面之后,應該停止 A 頁面加載資源,或者清空視頻資源,讓內存維護一個健康的水平。

對于一些超多 gif 圖片的頁面,并還有列表加載功能,這樣在向下加載數據的過程中,會渲染更多的 gif 組件,這樣就會讓內存越來越大,并且不容易下來,或者一些低端的機型,根本無法渲染太多的 gif 圖片,那么此時應該如何解決呢?

這個時候可以做一個優化,就是只有在視圖范圍內的元素才渲染真正的 gif 圖片,而其他看不見的直接渲染圖片或者是占位圖。如下所示:

圖片圖片

WechatIMG2339.png

清除狀態

對于一些全局的狀態,比如存在 Redux 中的數據源,或者是全局綁定的監聽事件,setTimeout 延時器

四 總結

本文從圖像與內存兩個方面介紹了 RN 優化手段,希望這篇文章的能給 React Native 開發同學一個性能優化上啟發。

參考

  • React Native 性能優化指南
  • 大前端跨端開發指南
責任編輯:武曉燕 來源: 前端Sharing
相關推薦

2022-12-09 08:40:56

高性能內存隊列

2009-06-03 14:24:12

ibmdwWebSphere

2011-12-15 13:28:57

2023-02-09 07:15:52

開發FlutterReact

2023-01-11 18:08:25

平臺reactweb

2023-12-26 00:58:53

Web應用Go語言

2017-01-04 10:18:00

React NativScrollViewAndroid

2021-09-18 09:00:00

區塊鏈應用JavaScript

2016-08-12 08:49:46

React NativFacebookNative

2023-10-26 08:35:53

2025-04-29 07:28:31

2017-04-17 06:07:01

React Nativ開發性能

2016-06-06 17:26:22

平臺開發

2025-01-24 08:34:28

CSSWebAndroid

2016-05-20 14:20:31

ASP.NET建議

2023-09-04 14:52:48

2016-08-15 13:34:37

React NativiOSjs入口

2025-04-27 01:47:00

React數據集優化

2011-10-21 14:20:59

高性能計算HPC虛擬化

2011-10-25 13:13:35

HPC高性能計算Platform
點贊
收藏

51CTO技術棧公眾號

国产精品欧美一区喷水| 日本大胆欧美人术艺术动态| 亚洲第一二三四五区| 国产美女无遮挡网站| 97超碰国产一区二区三区| 国产做a爰片久久毛片| 97久久精品在线| 亚洲色图日韩精品| 精品精品国产毛片在线看| 欧美性极品少妇| 欧美日韩福利在线| 调教视频免费在线观看| 成人免费看的视频| 国产日韩欧美在线视频观看| 日韩人妻无码一区二区三区99| 日本不卡二三区| 亚洲大胆人体av| 四虎成人在线播放| 欧美大电影免费观看| 一区二区在线免费观看| 日本一区二区三区视频在线观看| av网站免费播放| 男女男精品网站| 欧美在线视频播放| 黄色一级片在线免费观看| 欧美一区二区性| 精品在线小视频| 亚洲欧洲国产视频| 久久九九精品视频| 欧美亚洲免费在线一区| 播放灌醉水嫩大学生国内精品| 91香蕉在线观看| 欧美极品aⅴ影院| 久久久久一区二区| 刘亦菲久久免费一区二区| 极品少妇xxxx精品少妇偷拍| 国产精品久久久91| 秋霞精品一区二区三区| 亚洲精品综合| 久久久免费av| 国产在线观看免费av| 亚洲一区二区日韩| 精品国偷自产在线视频99| 日本高清黄色片| 欧美理论在线播放| 亚洲大胆人体av| 在线观看国产网站| 日韩mv欧美mv国产网站| 欧美精品一区二区三区一线天视频| 午夜一区二区视频| 四虎国产精品成人免费影视| 欧美日韩一区国产| 91看片在线免费观看| 日本另类视频| 欧美色窝79yyyycom| 九九热免费精品视频| 亚洲精品一区三区三区在线观看| 日本久久一区二区| 一道本视频在线观看| 国产亚洲精彩久久| 欧美日韩国产bt| 亚洲五月激情网| 亚洲精品不卡在线观看| 精品国产乱码久久久久久久久| 亚洲精品无码一区二区| 老司机凹凸av亚洲导航| 亚洲乱码国产乱码精品精| 人妻少妇无码精品视频区| 日韩精品免费一区二区三区| 久久精彩免费视频| 欧美激情国产精品免费| 亚洲国产清纯| 日韩美女免费视频| 一级黄色大片网站| 国产不卡视频一区| 精品一区二区视频| 成人动漫在线免费观看| 自拍偷拍亚洲综合| 久久这里只有精品8| 天堂网在线最新版www中文网| 日韩欧美亚洲一二三区| 国产精品wwwww| av一级久久| 亚洲精品97久久| 女同久久另类69精品国产| 欧美精品97| 青草成人免费视频| 国产白浆在线观看| 久久人人爽爽爽人久久久| 一本一道久久久a久久久精品91| 18videosex性欧美麻豆| 欧美日韩性视频| 国内自拍第二页| 欧美成人专区| 久久亚洲影音av资源网| 国产九色在线播放九色| 精品无码三级在线观看视频 | 一二三四区在线| 风流少妇一区二区| 午夜视频久久久| 免费电影网站在线视频观看福利| 色综合天天综合| 中文字幕人妻无码系列第三区| 婷婷综合电影| 欧美激情乱人伦| 伊人免费在线观看| www国产成人| 久久久天堂国产精品| 成人看片网页| 精品国产凹凸成av人网站| 又色又爽的视频| 91久久在线| 91久久在线视频| 国产在线日本| 精品国产31久久久久久| 伊人av在线播放| 久久免费精品视频在这里| 91成人精品网站| 亚洲精品久久久蜜桃动漫| 国产精品欧美久久久久一区二区| 国产妇女馒头高清泬20p多| 电影91久久久| 最近中文字幕mv在线一区二区三区四区| 在线免费观看毛片| 国产成人亚洲综合a∨猫咪| 亚洲成色www久久网站| 午夜不卡影院| 亚洲精品电影网| 日本午夜小视频| 成人一区二区三区视频在线观看 | 久久精品视频18| 精品白丝av| **亚洲第一综合导航网站| 无遮挡动作视频在线观看免费入口| 欧美日韩亚洲天堂| 中文字幕免费在线播放| 亚洲国产激情| 国产美女99p| 色综合999| 欧美一区二区三区视频免费播放| 99久久精品久久亚洲精品| 日韩av电影天堂| 亚洲aⅴ天堂av在线电影软件| 在线免费日韩片| 亚洲精品一区在线观看香蕉 | 欧美日韩大陆一区二区| 人妻av无码一区二区三区| 先锋亚洲精品| 日韩精品欧美在线| 亚洲国产尤物| 按摩亚洲人久久| 99国产精品99| 亚洲一区二区视频| 亚洲国产精品自拍视频| 午夜亚洲性色视频| 亚洲国产激情一区二区三区| 国产成人免费精品| 久久精品中文字幕免费mv| 一区二区国产欧美| 亚洲精品高清视频在线观看| 韩国一区二区三区四区| 亚洲激情另类| 欧美三级网色| 91麻豆精品一二三区在线| 免费99精品国产自在在线| 免费观看a视频| 精品日本高清在线播放| 国产男男chinese网站| 日本不卡123| av动漫免费观看| 91嫩草精品| 日本欧美精品在线| 麻豆视频在线观看免费| 日韩欧美国产电影| 国产成人无码精品亚洲| 国产欧美综合在线观看第十页| 在线免费视频一区| 欧美午夜不卡| 欧美日韩高清在线一区| 亚洲日本免费电影| 久久久久久18| avtt在线播放| 精品av久久707| 中文字幕天堂在线| 亚洲精品大片www| 亚洲v国产v欧美v久久久久久| 久久99久久精品| 国产无限制自拍| 日韩在线观看| 国产伦精品一区二区| 成人一级视频| 国内免费久久久久久久久久久| 国产日韩精品在线看| 欧美一级欧美三级在线观看| 欧美特黄aaaaaa| 亚洲天堂2014| 国产三级av在线播放| 国产成人在线视频网址| 成年人在线看片| 精品91视频| www.亚洲一区二区| 精品视频亚洲| 国产精品v欧美精品v日韩精品| 色综合天天色| 欧美在线亚洲一区| 天天色天天射天天综合网| 国产一区二区三区在线视频| 男人天堂手机在线观看| 欧美日韩1234| 91丝袜一区二区三区| 亚洲综合自拍偷拍| 日本裸体美女视频| 国产日韩一级二级三级| 水蜜桃av无码| 国产91丝袜在线播放九色| 午夜宅男在线视频| 久久只有精品| 免费毛片小视频| 亚洲国产日韩欧美一区二区三区| 日本黄色a视频| 日韩免费视频| 日本免费高清一区二区| 日韩精选在线| 国产乱人伦精品一区二区| 亚洲国产欧美国产第一区| 国产在线精品成人一区二区三区| 国产超碰精品| 97精品国产91久久久久久| 主播国产精品| 欧美成人激情视频| 欧美激情二区| 久久精品久久久久久国产 免费| 国产视频精品久久| 亚洲视频在线观看免费| 毛片网站在线观看| 亚洲人成电影网| 蜜桃视频在线观看视频| 亚洲欧美日韩高清| 你懂的在线网址| 亚洲欧美制服第一页| 飘雪影院手机免费高清版在线观看| 亚洲国产高清自拍| 欧美一级淫片aaaaaa| 亚洲福利视频网站| 日本高清视频在线| 亚洲精品久久久久中文字幕欢迎你 | 国产成人一区二区精品非洲| 4438x全国最大成人| 国产一区二区三区免费在线观看| 日本中文字幕在线不卡| 国产成人99久久亚洲综合精品| 巨乳女教师的诱惑| 豆国产96在线|亚洲| 在线观看一区二区三区四区| 成人小视频免费观看| 国产女人18毛片水真多18| av一区二区不卡| 人人妻人人澡人人爽人人精品| 久久亚洲二区三区| 欧美激情久久久久久久| 日韩一区在线看| 久操免费在线视频| 亚洲福利视频三区| av大片在线免费观看| 日本精品视频一区二区| 又色又爽又黄无遮挡的免费视频| 欧美喷潮久久久xxxxx| 精品人妻伦一二三区久久| 精品国产第一区二区三区观看体验| 日本人妻丰满熟妇久久久久久| 精品香蕉在线观看视频一| а天堂8中文最新版在线官网| 视频直播国产精品| 欧美日韩经典丝袜| 欧美中文在线观看| 国产精品美女久久久久人| 国产精品久久久久久久久婷婷 | 色av中文字幕一区| 中文国产字幕在线观看| 2019中文字幕全在线观看| 欧美123区| 国产精品久久国产精品| 成人羞羞视频播放网站| 国产精品一二三在线观看| 国产精品久久久免费 | 久久久久在线视频| 欧美一级黄色片| 久久久资源网| 欧美成人四级hd版| 亚洲承认视频| www.久久久| 精品国产一级毛片| 女人被男人躁得好爽免费视频 | 成人综合影院| 欧美高清视频免费观看| 惠美惠精品网| http;//www.99re视频| 精品99久久| 黄色三级中文字幕| 精品一区二区三区在线播放 | 在线观看国产精品入口| 免费毛片小视频| 国产a区久久久| 在线观看日本黄色| 狠狠躁夜夜躁久久躁别揉| 国产婷婷在线视频| 尤物tv国产一区| 新版的欧美在线视频| 99热国产免费| 91精品国产视频| 五月天婷婷激情视频| 99re在线视频这里只有精品| 国产少妇在线观看| 欧美日韩一区二区三区四区五区| 午夜成人免费影院| 久久国产精品视频| 免费一级欧美在线观看视频| 欧美日韩精品免费看| 妖精视频成人观看www| 下面一进一出好爽视频| 国产精品美女久久久久久久久| 天天干在线播放| 亚洲缚视频在线观看| 在线免费av导航| 91精品视频大全| 欧美电影免费| www.com黄色片| 欧美国产精品v| 国产午夜麻豆影院在线观看| 亚洲国产精品大全| caoporn视频在线| 国产精品theporn88| 欧美激情精品久久久六区热门| 亚洲精品手机在线观看| 中文幕一区二区三区久久蜜桃| 无码人妻丰满熟妇区bbbbxxxx| 亚洲黄色av网站| 白浆在线视频| 久久99久久99精品蜜柚传媒| 在线看片成人| 黑丝av在线播放| 日韩欧美中文在线| 国产精品久久一区二区三区不卡| 日韩av电影在线免费播放| 亚洲宅男一区| 国产一区视频免费观看| 欧美激情一区二区在线| 在线观看国产黄| 久久福利网址导航| youjizz亚洲| 青青青青草视频| 91蜜桃视频在线| 亚洲av综合一区| 久久久国产精品x99av | 精品中文av资源站在线观看| 可以免费看av的网址| 欧美精三区欧美精三区| 2024最新电影免费在线观看| 肥熟一91porny丨九色丨| 影音先锋久久资源网| 一级做a爰片毛片| 91国模大尺度私拍在线视频| 午夜不卡视频| 国产66精品久久久久999小说| 91久久黄色| 美国美女黄色片| 日韩视频一区二区| 天堂中文在线播放| 亚洲精品国产精品久久| 国产一区二区日韩精品| 日韩精品在线免费看| 亚洲欧洲视频在线| 国产亚洲字幕| 北条麻妃在线视频观看| fc2在线中文字幕| 欧美日韩xxxxx| 窝窝社区一区二区| 天天综合网日韩| 亚洲国产视频直播| 国产高清视频免费最新在线| 91久久久久久| 亚洲综合丁香| 一本一本久久a久久| 亚洲成人动漫在线播放| 99只有精品| 国产精品一色哟哟| 国产精品五月天| 人妻少妇一区二区三区| 国产美女扒开尿口久久久| 1024成人| 免费黄色国产视频| 国产视频丨精品|在线观看| 色诱色偷偷久久综合| 国产超级av在线| 亚洲欧美激情一区二区| 日韩三级电影网| 成人在线看片| 麻豆专区一区二区三区四区五区| 日本污视频在线观看| 久久电影一区二区|