精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

黄色a级片在线观看| 日本在线一二三区| 深夜福利视频网站| 亚洲精品社区| 伊人激情综合网| 午夜天堂在线视频| 成年人视频免费在线播放| 91亚洲资源网| 91久久久久久久久久| 国产在线免费视频| 欧美日韩老妇| 精品av综合导航| www亚洲成人| 爱情岛亚洲播放路线| 国产精品久久久久久久第一福利 | 精品乱码一区内射人妻无码| 亚洲一级毛片| 国产亚洲人成网站在线观看| 成人一区二区三区仙踪林| 国产日韩另类视频一区| 一区二区免费视频| 视频一区视频二区视频三区高| 国产超碰人人模人人爽人人添| 国产精品美女久久久浪潮软件| 日韩在线欧美在线国产在线| 五月开心播播网| 麻豆一二三区精品蜜桃| 欧美性感一类影片在线播放| 日本www在线视频| 黄色在线视频网站| 久久精品一区蜜桃臀影院| 国产精品国产精品国产专区蜜臀ah| 中文字幕日本视频| 中文欧美日韩| 欧美极品欧美精品欧美视频| 成人免费视频国产免费观看| 成人三级视频| 亚洲视屏在线播放| 大黑人交xxx极品hd| 99久久香蕉| 日韩一区二区在线观看视频播放| 午夜dv内射一区二区| 黄色在线网站噜噜噜| 亚洲一区二区综合| 亚洲区成人777777精品| 黄在线免费看| 中文字幕永久在线不卡| 亚洲精品日韩在线观看| 青青青草原在线| 久久丝袜美腿综合| 欧美二区三区在线| 无套内谢的新婚少妇国语播放| 成人一级片网址| 91嫩草免费看| 亚洲AV无码精品自拍| 国产美女精品人人做人人爽| 川上优av一区二区线观看 | 日韩欧美在线观看一区二区三区| 思思久久精品视频| 欧美亚洲福利| 91精品黄色片免费大全| www.成人黄色| 麻豆国产一区| 精品国产伦一区二区三区观看体验| 伦伦影院午夜理论片| 久久久久毛片免费观看| 欧美zozo另类异族| 欲求不满的岳中文字幕| 婷婷五月色综合香五月| 亚洲欧美日韩网| 在线观看国产精品一区| 热久久天天拍国产| 日韩在线免费视频观看| 欧美成人精品激情在线视频| 欧美日韩福利| 456亚洲影院| 免费污污视频在线观看| 美女视频黄 久久| 91日本在线观看| 亚洲欧美另类日韩| 26uuuu精品一区二区| 日本精品一区二区三区不卡无字幕| 国产大片在线免费观看| 日韩美女久久久| www精品久久| 日韩免费福利视频| 欧美蜜桃一区二区三区| 亚洲午夜久久久久久久久| 偷拍精品福利视频导航| 色噜噜国产精品视频一区二区 | 成人免费观看a| 开心激情综合网| 久久婷婷久久一区二区三区| 老司机av福利| 国产黄大片在线观看| 欧美亚洲免费在线一区| 欧美熟妇另类久久久久久多毛| 久久午夜影院| 日韩视频在线免费观看| 懂色av.com| 人人超碰91尤物精品国产| 91成人伦理在线电影| 青青青草原在线| 亚洲日本在线天堂| 日韩久久一级片| 欧美另类中文字幕| 亚洲免费伊人电影在线观看av| 我要看黄色一级片| 国产欧美日韩一级| 91一区二区三区| 国产日本在线观看| 午夜久久福利影院| 亚洲精品成人在线播放| 伊人久久大香线蕉综合网站| 欧美成人免费播放| 中文字幕一区2区3区| 91偷拍与自偷拍精品| 欧美一级黄色录像片| 伊人久久高清| 精品爽片免费看久久| 成年人一级黄色片| 日产欧产美韩系列久久99| 国内不卡一区二区三区| 成人av福利| 欧美视频一区二区三区四区 | 久久久在线免费观看| 国内成+人亚洲| 午夜老司机福利| 亚洲娇小娇小娇小| 视频一区中文字幕精品| 上原亚衣av一区二区三区| 日韩av在线播| 国产成人午夜电影网| 一区国产精品| 在线成人视屏| 亚洲欧洲一区二区三区久久| 日本三级片在线观看| 国产精品影音先锋| 中文字幕一区综合| 成人午夜在线| 在线播放日韩专区| 波多野结衣理论片| 国产三区在线成人av| 国产成人精品视频免费看| 成人盗摄视频| 久久久久国产精品免费| 精品免费久久久| 亚洲黄一区二区三区| 欧美一级特黄aaa| 亚洲色图插插| 亚洲a在线观看| 2024最新电影免费在线观看| 91精品国产手机| 日韩激情综合网| 国产一区二区三区免费观看| 美国av在线播放| 国产精品欧美一区二区三区不卡| 久久精品一区中文字幕| 99久久99久久久精品棕色圆| 亚洲欧美日韩久久精品| 秋霞午夜鲁丝一区二区| 国一区二区在线观看| 国产精品日韩欧美一区二区| 国产传媒av在线| 亚洲精品综合精品自拍| 日日夜夜操视频| 中文成人综合网| 日本黄色福利视频| 欧美激情综合色综合啪啪| 国产精品久久久久久久久婷婷 | 91视频这里只有精品| 久久久国产精品| 99re视频| 亚洲妇女成熟| 有码中文亚洲精品| 精品久久久中文字幕人妻| 午夜av区久久| 国产精成人品免费观看| 国内一区二区在线| 黄色a级片免费看| 色婷婷久久久| 国产精品三级久久久久久电影| 国产欧美黑人| 亚洲韩国青草视频| 自拍偷拍第八页| 亚洲欧洲综合另类| free性中国hd国语露脸| 蜜臀av一区二区在线观看| 91免费版看片| 国产成人ay| 91网站在线看| 综合日韩av| 久久精品中文字幕| 五月婷婷在线播放| 欧美喷潮久久久xxxxx| 久久高清免费视频| 欧美国产欧美综合| 99免费观看视频| 美洲天堂一区二卡三卡四卡视频 | 人妻精品久久久久中文| 国产一区二区三区国产| 国产成人黄色片| 91精品国产福利在线观看麻豆| 狠狠干一区二区| 不卡的国产精品| 欧美最顶级丰满的aⅴ艳星| 麻豆网站在线看| 亚洲欧美国产日韩天堂区| 国产普通话bbwbbwbbw| 日韩欧美中文第一页| 日本aⅴ在线观看| 国产欧美日韩综合精品一区二区 | 欧美激情一区在线| 中国黄色片视频| 国模一区二区三区白浆| av免费网站观看| 夜夜精品视频| 国产成人生活片| 欧美一区二区三区高清视频| 国内精品国语自产拍在线观看| 不卡精品视频| 国产日韩欧美视频| 婷婷激情一区| 欧美尤物巨大精品爽| 暧暧视频在线免费观看| 欧美大码xxxx| 麻豆免费在线观看| 中文字幕日韩免费视频| 国产有码在线| 亚洲欧美精品suv| 天堂在线视频免费| 精品乱码亚洲一区二区不卡| 国产熟女一区二区三区五月婷| 欧美私人免费视频| 91黑人精品一区二区三区| 日韩欧美高清视频| 青草视频在线观看免费| 精品国产精品三级精品av网址| 国产一级视频在线播放| 一区二区三区影院| 丁香花五月激情| 亚洲精品国产第一综合99久久| 午夜激情福利网| 亚洲美女免费在线| caoporn91| 亚洲色图第一区| 在线免费观看亚洲视频| 亚洲男人的天堂在线观看| 粉嫩av性色av蜜臀av网站| 又紧又大又爽精品一区二区| 欧美色图亚洲视频| 一区二区三区精品视频在线| 欧美成人综合色| 亚洲一区二区三区国产| 久久久91视频| 亚洲国产欧美在线| 成人精品在线看| 色综合欧美在线视频区| 无码人妻熟妇av又粗又大| 在线免费亚洲电影| 中文字幕一区二区三区免费看 | 日韩国产综合| 中文字幕久久一区| 狠狠色狠狠色综合日日tαg| 日本wwwcom| 亚洲资源av| 天天影视综合色| 国内精品国产三级国产a久久| 中文字幕一二三区| 99久久99久久久精品齐齐| a毛片毛片av永久免费| 亚洲国产精品av| 紧身裙女教师波多野结衣| 亚洲国产成人91porn| 在线能看的av| 欧美视频第二页| 国内精品久久久久久久久久久| 亚洲电影av在线| 国产精品四虎| 欧美日韩国产成人在线| 色一区二区三区| 国产日本欧美一区| 久久97久久97精品免视看秋霞| 清纯唯美一区二区三区| 91精品国产视频| 欧美日韩黄色一级片| 美女视频黄 久久| 99久久久无码国产精品性波多 | 亚洲欧美国产日韩中文字幕| 日本在线人成| 久久久久一本一区二区青青蜜月| 不卡一二三区| 亚洲在线免费视频| 在线亚洲a色| 中国女人做爰视频| 石原莉奈在线亚洲三区| 爱情岛论坛亚洲自拍| 久久久天堂av| 清纯粉嫩极品夜夜嗨av| 色婷婷久久一区二区三区麻豆| 国产农村妇女毛片精品久久| 亚洲精品自拍偷拍| 宅男在线观看免费高清网站| 国产精品99导航| 57pao国产一区二区| 亚洲乱码一区二区三区| 中文亚洲免费| 国产成人av片| 国产精品理伦片| 亚洲va在线观看| 欧美精品一区二区三| 久做在线视频免费观看| 国产精品va在线| 啪啪激情综合网| 成人短视频在线观看免费| 人人狠狠综合久久亚洲| 亚洲熟妇无码av| 亚洲一区二区三区四区在线| 国产一区二区三区三州| 亚洲午夜av电影| 一级毛片久久久| 国产二区不卡| 你懂的网址国产 欧美| www.com黄色片| 欧美国产乱子伦| 天天干天天操天天操| 亚洲精品视频在线播放| 国内在线视频| 动漫一区二区在线| 中文字幕一区二区三区在线视频| 日本不卡一区在线| 欧美国产乱子伦| 伊人精品在线视频| 一区二区三区视频免费| 在线观看精品| 欧美亚洲国产免费| 先锋影音久久| 久久久久久久久久久国产精品| 亚洲福利电影网| 天堂网在线中文| 欧美中文在线视频| 亚洲精品进入| 国产成人无码av在线播放dvd| 91免费观看视频| 五月天婷婷久久| 国产婷婷97碰碰久久人人蜜臀| 密臀av在线播放| 欧美另类网站| 久久久夜精品| 中文字幕黄色网址| 欧美吻胸吃奶大尺度电影 | 国产精品久久看| 在线观看国产精品视频| 久久精品一本久久99精品| 久久久久毛片免费观看| 国产aaa免费视频| 26uuu国产在线精品一区二区| 国产一级淫片a视频免费观看| 亚洲欧美日韩精品久久奇米色影视| 欧美大片高清| 视频一区二区在线| 精品一区二区三区免费观看 | 欧美日韩亚洲系列| 国产主播福利在线| 国产精品亚洲网站| 91精品国产91久久久久久密臀| 国产精品一级无码| 欧美日韩国产精品一区二区三区四区| 天堂在线观看av| 国产精品久久久久久久久久久久久久 | 在线日韩av永久免费观看| 国产在线播放一区三区四| 久草免费在线视频观看| 亚洲激情久久久| 成人开心激情| 手机成人av在线| 大桥未久av一区二区三区中文| 五月婷婷色丁香| 日韩在线观看成人| 成人性生交大片免费看96| 无码人妻精品一区二区三区66| 国产精品网曝门| 黄色片一区二区| 日本一区二区三区在线播放| 久久中文字幕av| 人妻av一区二区| 欧美日韩性生活| 宅男在线观看免费高清网站| 欧美日韩国产精品一区二区| 激情五月激情综合网| 亚洲精品1区2区3区| 久久黄色av网站| 久久综合社区| 国产福利精品一区二区三区| 午夜精彩视频在线观看不卡| 18视频免费网址在线观看| 国产精品一区二区av| 蜜桃视频一区二区三区| 日韩av免费网址| 久久久99久久精品女同性|