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

一個APP如何適配多個Andiroid終端?

開發 開發工具
傳統的多終端適配方案,是為大尺寸Pad開發一個特定的HD版本。但是目前支持Android系統的設備類型越來越豐富,不同類型的設備尺寸也越來越多樣化,特定的HD版本并不能適配所有設備尺寸。

 [[345928]]

阿里妹導讀:傳統的多終端適配方案,是為大尺寸Pad開發一個特定的HD版本。但是目前支持Android系統的設備類型越來越豐富,不同類型的設備尺寸也越來越多樣化,特定的HD版本并不能適配所有設備尺寸。App如何在這么多尺寸的設備上,為用戶提供較為一致的瀏覽體驗?阿里巴巴文娛技術 叮東 將分享優酷APP響應式的技術實現和落地方法,希望對所有APP的開發同學有所啟發。

Android響應式方案

 

響應式的核心是拉通多終端的適配規則,開發一套界面,一個APP兼容多尺寸終端設備的顯示,能夠根據用戶的行為以及設備的環境(屏幕尺寸、屏幕方向、是否分屏等)進行相應的頁面布局以及容器尺寸的調整,為用戶提供更加舒適的界面和更好的用戶體驗。

[[345930]]

 

1 響應式SDK

App的每個頁面支持響應式,開發成本是很高的。

響應式SDK,就是為了解決App在不同尺寸設備下的適配問題,把設備的屏幕信息、容器布局規則(列數、尺寸)、業務數據二次加工等行為進行統一管理,以適應新的屏幕尺寸。

 

2 加載流程設計

 

通用的頁面加載流程,通常都是從數據返回開始,數據解析完成后,進行頁面布局渲染以及容器布局渲染。響應式在通用加載流程的基礎上,加入了響應式狀態變化通知、響應式數據剪裁、響應式頁面布局、響應式容器布局等流程。

具體加載的流程分為兩種情況:

  • 用戶請求數據
  • 屏幕尺寸發生變化

3 架構設計

優酷各個業務開發團隊,使用了統一的業務架構,我們在統一架構的基礎上進行響應式適配,提供了響應式SDK,拉通各個業務方不同頁面的適配規則,確保了適配效果的一致性,同時提供了基礎的響應式控件,降低業務方的接入成本,那么響應式架構具體是怎么實現的呢?

 

從結構上看,響應式由優酷統一架構、響應式SDK、響應式頁面布局、響應式容器布局四部分相互配合完成。在這些基礎上支撐了首頁、頻道頁、播放頁、會員頁、搜索、個人中心等眾多的業務場景。

優酷統一架構和響應式SDK,提供響應式架構能力。

響應式頁面布局、響應式容器布局,提供響應式參考實現。

4 數據二次加工

響應式并不是簡單的將現有Phone端的業務數據,投放到Pad、折疊屏上,單純的進行UI頁面適配。想要在不同尺寸設備上都能獲得良好的適配效果,需要對Phone端的業務數據二次加工,進行數據過濾、數據映射、數據合并、數據補全等操作,才能更好的適配Pad和折疊屏。

響應式SDK只是負責把數據二次加工的協議規則定下來,具體的數據二次加工邏輯需要業務方自己實現。優酷的統一架構提供了數據切面的能力,在切面上增加數據二次處理的邏輯,實現了統一的數據處理。

數據過濾

大尺寸設備上,總會遇到一些復雜的,適配不了的,也不重要的組件,這部分組件可以根據具體情況過濾處理,例如:下圖中的weex組件,在Pad上直接過濾掉,不顯示。

 

數據映射

存在一些帶交互的復雜組件或者Pad上適配效果較差的組件,可以直接映射成其他已適配的組件。例如:下圖中的帶視頻預覽的預約組件映射成普通的預約組件。

 

數據合并

相鄰的兩個組件,其中有一個組件無法很好的適配大尺寸Pad,可以嘗試將其數據合并到其他組件內。

例如:下圖中第1個組件寬度鋪滿頁面寬度,在大尺寸上無法適配,第2個組件通過修改列數、尺寸就可以適配。Pad豎屏下,將第一個組件插入到第二個組件的首位,進行數據合并,按照第二個組件的進行適配,顯示為3列2行,達到很好的適配效果。

 

數據補全

在橫豎屏切換過程中,部分組件會遇到組件的數量,無法鋪滿屏幕的寬度,導致出現留白的問題。

例如:把手機上的6條數據,直接投放到Pad橫屏下,就會出現下圖的留白問題:

 

為了解決這一類數據缺失的問題,我們選擇的解法是服務端多下發一部分業務數據,客戶端根據具體的屏幕尺寸,動態調整顯示的個數,確保顯示效果。

例如:下圖中手機上顯示2列3行,共6條數據,到了Pad豎屏上顯示3列2行,共6條數據,到了Pad橫屏上會補全2條數據,顯示4列2行,共8條數據。

 

5 頁面響應式

響應式狀態

響應式狀態是頁面響應式最基礎也是最重要的一個能力,像橫豎屏切換、分屏模式、折疊屏折疊打開,都會導致頁面的寬高發生變化,產生不同的響應式狀態,頁面內的內容會進行重新布局以及組件尺寸調整,以適應頁面尺寸的變化,鋪滿屏幕,達到更好的顯示效果。

橫豎屏切換:

 

分屏模式:

 

折疊屏:

 

響應式狀態管理

響應式狀態與Activity頁面的生命周期保持一致,不同頁面響應式狀態可能不一致。響應式SDK提供了ResponsiveActivity、ResponsiveFragment兩個基類,ResponsiveActivity統一封裝了響應式的狀態變化。當屏幕尺寸發生改變時,ResponsiveActivity和ResponsiveFragment會回調onResponsiveLayout方法,業務方接到onResponsiveLayout的通知,主動遍歷當前頁面內的所有容器,根據響應式狀態,動態修改容器的布局、布局列數、尺寸等,重新渲染當前頁面。

由于優酷使用了統一框架,根據響應式狀態動態修改頁面內所有容器的邏輯,統一在框架內部處理,避免了業務方的修改,降低了接入成本。

  1. /**   
  2.  *響應式狀態回調   
  3.  *   
  4.  * @param newConfig                   配置信息   
  5.  * @param responsiveLayoutState       當前響應式狀態   
  6.  * @param responsiveLayoutStateChanged響應式狀態是否已發生改變  
  7.  */ 
  8. protectedvoidonResponsiveLayout(ConfigurationnewConfig,intresponsiveLayoutState,booleanresponsiveLayoutStateChanged) { 
  9.  

獲取響應式狀態

響應式狀態的定義,需要有一個具體計算的規則,在所有尺寸的設備上都按照統一的規則進行狀態區分,那么不同的響應式狀態是如何區分的呢?

首先定義標準手機屏幕的物理寬度為400dp(經過大量手機設備調試采樣之后獲得的手機標準物理尺寸經驗值),那么響應式狀態的變化,由兩個比例閾值決定,一個是頁面物理寬度與標準物理寬度的比例閾值1.67倍(物理寬度 = 像素寬度÷屏幕密度),另一個是頁面高度與頁面寬度的比例閾值1.25倍。那么這兩個比例閾值是如何得來的呢?

(1)1.67倍是怎么來的呢?

 

在播放頁的適配過程中,需要適配左右分欄的顯示,我們認為左側播放器的寬度是標準物理寬度,那么整個頁面的寬度就是標準物理寬度的1.67倍,這樣左側播放器有足夠的空間保障視頻播放的體驗,右側的也有足夠的空間保障評論的顯示效果。 (2)1.25倍是怎么來的呢?

 

上圖列舉了豎屏華為Pad上,頁面高度是頁面寬度的1.6倍,播放器下方的視頻內容操作區,顯示的視頻內容是足夠多的。如果頁面高度小于頁面寬度的1.25倍,就會擠壓視頻內容操作區的高度,導致顯示出來的視頻內容過少,影響用戶體驗。

當頁面物理寬度大于標準物理寬度的1.67倍,同時頁面高度小于等于頁面寬度的1.25倍,即為大屏狀態,其他情況則為小屏狀態。 不同的響應式狀態

目前支持了小屏布局和大屏布局兩種狀態。 (1)小屏布局狀態

折疊屏折疊、折疊屏分屏、Pad豎屏:

 

(2)大屏布局狀態

折疊屏打開、Pad橫屏:

 

6 容器響應式

容器響應式,主要解決在頁面尺寸發生變化時,動態調整容器布局的列數以及坑位的尺寸,優酷統一架構提供了常用的響應式容器布局:輪播布局、網格布局、橫劃布局、瀑布流布局。業務方可以快速實現響應式的效果。

容器適配列數、尺寸的效果

 

列數適配

同一個容器,在不同的尺寸頁面下,會根據頁面的物理寬度動態適配,顯示為不同的列數。

網絡布局、橫劃布局、瀑布流布局都采用這一套列數適配的規則:

響應式適配后的列數 = 當前屏幕寬度÷(標準屏幕寬度÷標準屏幕寬度下的組件列數 )

響應式適配后的列數,并不能解決Pad橫屏上部分組件列數過多,顯示過密的問題,為了解決這類問題,提供了列數二次適配的能力。

如下圖所示,左側是直接根據規則算出來的Pad橫屏下的列數8列,過于密集,顯示效果不好,右側是列數二次調整后,顯示為6列。

 

適配效果:

 

控件尺寸適配

由于不同屏幕尺寸下,容器內部會動態調整顯示不同的列數,導致控件的尺寸也會發生變化,那么如何適配控件尺寸的動態變化呢,響應式基礎控件能夠很好的解決這一類問題。

響應式基礎控件,內部封裝了響應式容器尺寸的適配規則,通過ratioType來定義不同適配規則下控件寬高的計算邏輯,業務方只需要修改最外層的布局控件,通過設置ratioType就可以快速搞定寬高適配,降低業務方的適配成本。

提供了ResponsiveConstraintLayout、ResponsiveFrameLayout、ResponsiveLinearLayout、ResponsiveRelativeLayout、ResponsiveRecyclerView等基礎響應式容器。 ratioType的寬度計算規則示例(頁面左右邊距和橫間距不變):

響應式控件寬度 = (當前頁面的寬度 - 左右邊距 - 控件之間的間距總和)÷響應式適配后的列數

總結

隨著折疊屏技術的進一步發展,折疊屏手機會越來越普及,越來越多的App需要適配到折疊屏手機上,響應式可以很好的解決折疊屏的適配問題。希望未來更多的APP能夠適配響應式,做到一套代碼,運行到不同尺寸的設備上,節約開發成本,提升開發效能,為不同尺寸的設備帶來與手機版本一致的用戶體驗。

【本文為51CTO專欄作者“阿里巴巴官方技術”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2020-10-08 14:29:57

Kubernetes容器開發

2016-10-13 12:53:06

Linux終端仿真器

2021-09-14 12:34:33

LinuxLinux終端

2018-01-08 14:31:09

Electron桌面APP前端

2018-10-11 21:00:18

2021-10-13 19:39:26

鴻蒙HarmonyOS應用

2014-07-02 10:03:42

App推廣渠道

2013-11-18 14:00:09

2024-08-05 14:17:59

大型語言模型適配器LLM

2023-01-30 16:21:24

Linux外觀

2022-02-22 20:35:22

公鑰私鑰數據

2023-08-09 14:43:42

應用開發ArkTS

2021-03-09 11:42:08

GuakeFPS游戲Linux終端

2020-12-16 14:29:40

終端開發shell

2020-05-17 16:12:03

Linux終端命令

2020-03-02 14:25:17

Ubuntu終端Linux

2012-12-24 13:25:59

微信App

2017-02-24 10:30:51

iOS開源App Store

2018-01-02 16:08:00

AndroidiOSReact Nativ

2019-12-27 15:05:51

Python類方法裝飾器
點贊
收藏

51CTO技術棧公眾號

在线免费视频a| 日韩av第一页| 亚洲国产日韩在线一区| segui88久久综合9999| 92精品国产成人观看免费| 日韩美女免费线视频| 91成人伦理在线电影| 91青青草免费在线看| 久久久久久久久久久久国产| 要久久电视剧全集免费| 欧美精品国产精品| 日韩视频免费播放| 日本在线看片免费人成视1000| 国产精品77777竹菊影视小说| 91成品人片a无限观看| 91av手机在线| 欧美人体视频| 日韩一级大片在线观看| 欧美日韩黄色一级片| 欧美精品电影| 久久久久久久久久久久久久久99 | 免费网站在线高清观看| 久久wwww| 欧美日韩一区视频| www插插插无码视频网站| 日本激情在线观看| 国产亚洲综合在线| 国产一区二区在线网站| 国产免费一区二区三区最新不卡| 日日骚欧美日韩| 久久久免费在线观看| 日本不卡一二区| 成人亚洲一区二区| 日韩精品小视频| 精品人妻伦一二三区久| 日韩精品免费视频一区二区三区 | 国产免费黄色大片| 日日摸夜夜添夜夜添亚洲女人| 国内精品一区二区三区| 高h视频免费观看| 图片区亚洲欧美小说区| 中文字幕亚洲一区二区三区| 亚洲国产av一区| 亚欧洲精品视频在线观看| 精品国产亚洲在线| 久久av一区二区三| 久久国产精品免费一区二区三区| 欧美欧美午夜aⅴ在线观看| av免费观看网| 中文在线8资源库| 色综合夜色一区| 18禁免费无码无遮挡不卡网站| 成人福利电影| 午夜视频一区二区三区| 久久久久久人妻一区二区三区| 日本动漫理论片在线观看网站| 亚洲欧美一区二区不卡| 亚洲春色在线视频| 亚洲麻豆精品| 亚洲视频小说图片| 国产女人18毛片| 中文字幕在线播放网址| 亚洲自拍另类综合| 婷婷无套内射影院| 樱桃视频成人在线观看| 色婷婷综合在线| 韩国中文字幕av| 九七影院97影院理论片久久| 7777女厕盗摄久久久| 人妻体体内射精一区二区| 网站一区二区| 日韩av中文字幕在线免费观看| aa片在线观看视频在线播放| 国产欧美日韩精品一区二区免费 | 日韩成人免费视频| 怡红院一区二区三区| 97视频精品| 欧美激情中文字幕在线| 日韩精品手机在线| 日本女人一区二区三区| 91亚洲精华国产精华| 亚洲av综合色区无码一二三区| bt7086福利一区国产| 日本不卡久久| bt在线麻豆视频| 午夜精品一区二区三区免费视频| 国产裸体舞一区二区三区| 88xx成人网| 日韩欧美一区在线观看| 国产三级视频网站| 9191国语精品高清在线| 久久久久日韩精品久久久男男 | 五月婷婷视频在线观看| 黑人与娇小精品av专区| 午夜剧场高清版免费观看| 日韩一级淫片| 亚洲色图第一页| 免费日韩在线视频| 视频一区视频二区中文字幕| 114国产精品久久免费观看| 黄色一级大片在线免费看国产一| 久久嫩草精品久久久精品| 一区精品在线| 天堂网在线最新版www中文网| 在线成人av网站| 黄色在线观看av| 在线中文一区| 国产精品视频白浆免费视频| 天堂网2014av| 亚洲女同ⅹxx女同tv| 欧美日韩大尺度| 精品无人区一区二区| 日韩中文字幕免费看| 久久久久久久久久久久久av| 国产一区在线不卡| 日韩欧美精品在线不卡| av成人 com a| 日韩精品一区在线| 天堂av免费在线| 天堂影院一区二区| 国新精品乱码一区二区三区18| 欧美性猛交xxx乱大交3蜜桃| 欧美午夜性色大片在线观看| 国产日韩视频一区| 综合一区二区三区| 国产在线观看不卡| 国产小视频在线| 欧美日韩在线免费观看| 污污免费在线观看| 欧美激情91| 亚洲一区二区久久久久久久| 在线视频二区| 欧美在线高清视频| 97人妻人人揉人人躁人人| 国产精品日韩久久久| 国产精品久久久久久久小唯西川| 污污的视频在线观看| 6080日韩午夜伦伦午夜伦| 国精产品一区一区| 奇米影视在线99精品| 日韩精品不卡| 日本精品在线一区| 伊人伊人伊人久久| 中文区中文字幕免费看| 国产日韩欧美a| 波多野结衣作品集| 免费看av成人| 日本老师69xxx| 福利视频在线播放| 欧美性生活久久| 国产91丝袜美女在线播放| 日韩中文字幕av电影| 日韩中文字幕一区| 久久av影院| 久久天天躁狠狠躁夜夜躁2014 | 久久爱www久久做| 中文字幕日韩一区二区三区不卡| 91精品福利观看| 欧美成人精品在线视频| 国内精品国产成人国产三级| 尤物在线观看一区| 日韩综合第一页| 亚洲专区在线| 亚洲va韩国va欧美va精四季| 99er精品视频| 欧美激情一区二区三区久久久| 高清毛片aaaaaaaaa片| 黄色91在线观看| xxxx日本黄色| 国产呦精品一区二区三区网站| 久久久久久久久久久久久国产| 日韩成人久久| 午夜精品久久久久久久男人的天堂 | 精品成人自拍视频| 2019亚洲男人天堂| www.亚洲资源| 欧美一区二区三区啪啪| 日本少妇在线观看| 99热精品一区二区| 视频二区在线播放| 欧美精品啪啪| 欧美一二三区| 精品一区91| 26uuu国产精品视频| 日本高清中文字幕在线| 精品国产凹凸成av人导航| 欧美精品二区三区| 亚洲欧洲www| 星空大象在线观看免费播放| 日本伊人午夜精品| 日本熟妇人妻xxxx| 第九色区aⅴ天堂久久香| 国产精品国产一区二区| 精品裸体bbb| 爽爽窝窝午夜精品一区二区| 中国china体内裑精亚洲片| 国产特黄一级片| 天天影视色香欲综合网老头| 黄色片网站在线播放| 成人av网站在线| 九色porny自拍| 国产日韩欧美一区在线| 国产精品jizz在线观看老狼| 日韩成人一级| 999精品在线观看| 成人av集中营| 1769国产精品| 色网在线观看| 色播久久人人爽人人爽人人片视av| 精品毛片在线观看| 欧美午夜影院一区| 国产超碰人人爽人人做人人爱| 国产精品美女久久久久aⅴ国产馆| 日本50路肥熟bbw| 国产又黄又大久久| 日本新janpanese乱熟| 极品av少妇一区二区| 亚洲欧洲一区二区福利| 性欧美xxxx免费岛国不卡电影| aa成人免费视频| 精品国产鲁一鲁****| 国产精品美女在线观看| 欧美久久天堂| 国语自产精品视频在线看| 色呦呦在线播放| 欧美xxxx18性欧美| 欧美极品视频| 日韩在线视频二区| 在线免费观看黄色| 亚洲人成在线观看| 视频国产在线观看| 亚洲高清一区二| 亚洲精品一区二区三区蜜桃| 制服.丝袜.亚洲.中文.综合| 中文字幕免费高清在线观看| 色欧美88888久久久久久影院| 日本三级网站在线观看| 亚洲一卡二卡三卡四卡五卡| 国产盗摄x88av| 亚洲视频一区二区在线| 精品国产视频在线观看| 亚洲欧美在线另类| 青青操在线视频观看| 国产精品久久福利| 亚洲色图欧美色| 国产精品国产三级国产普通话99 | 日韩电影网址| 亚洲精品视频在线观看视频| 无码国产精品高潮久久99| 亚洲国产97在线精品一区| 秋霞欧美在线观看| 亚洲第一黄色网| 色香蕉在线视频| 日韩av在线高清| 毛片免费在线| 中文字幕久久精品| 精品视频在线一区二区| 不卡av在线网站| 中文字幕有码在线观看| 欧美激情精品久久久久久大尺度 | 亚洲午夜一区| 精品人妻少妇一区二区| 新67194成人永久网站| 黄色av免费在线播放| 青青草91视频| 伊人五月天婷婷| 国产传媒日韩欧美成人| 日韩av无码一区二区三区不卡| 95精品视频在线| 99在线视频免费| 亚洲精选视频在线| av大片免费在线观看| 在线观看网站黄不卡| 国产免费一区二区三区免费视频| 欧美不卡一区二区三区| 天堂成人在线| 日韩在线www| 欧美78videosex性欧美| 欧美综合国产精品久久丁香| 久久亚洲精品中文字幕| 国产成人精品日本亚洲11 | 日本韩国欧美中文字幕| 91国偷自产一区二区开放时间| 91成人在线免费| 亚洲第一av在线| chinese偷拍一区二区三区| 欧美成人精品三级在线观看| 超级碰碰久久| 97人人干人人| av中文一区| 国产xxxx振车| 麻豆国产精品官网| 人妻av一区二区| 中文字幕在线免费不卡| 日韩精品手机在线| 欧美一区二区三区爱爱| 九九在线视频| 欧美激情精品久久久久久免费印度 | 国产在线不卡一卡二卡三卡四卡| 佐佐木明希电影| 国产精品无遮挡| wwwxxx亚洲| 日韩一区二区三区视频| 你懂的视频在线播放| 久久99青青精品免费观看| 高清av一区二区三区| 国产精品一级久久久| 日韩av片子| 99久久久无码国产精品6| 国产一区二区三区免费在线观看| 国产成人av一区二区三区不卡| 一区二区三区在线播放| 中文字幕第2页| 亚洲开心激情网| 三级网站视频在在线播放| 国产日韩中文在线| 久久av导航| 五十路熟女丰满大屁股| 国产麻豆视频精品| 日本美女黄色一级片| 色婷婷综合久久久中文一区二区| www.中文字幕| 不卡毛片在线看| www.久久热| 亚洲欧美丝袜| 蜜桃在线一区二区三区| 91网站免费视频| 天天综合色天天综合色h| 亚洲国产精品一| 久久91亚洲精品中文字幕| 亚洲一区二区小说| 亚洲精品影院| 日本免费在线视频不卡一不卡二 | 国产精品大尺度| 亚洲高清视频免费观看| 亚洲欧美日韩高清| gay欧美网站| 欧美日韩日本网| 久久久777| 伊人网在线视频观看| 黑人巨大精品欧美一区二区| 亚洲av成人精品一区二区三区在线播放| 久久99视频精品| 伊人精品久久| 欧美午夜性视频| 9人人澡人人爽人人精品| 日韩成人高清视频| 亚洲第一精品久久忘忧草社区| 99热99re6国产在线播放| 国产偷久久久精品专区| 亚洲精品四区| 色噜噜在线观看| 色一情一伦一子一伦一区| 国产大学生校花援交在线播放| 国产成人综合亚洲| 99久久综合狠狠综合久久aⅴ| 欧美日韩精品区别| 一区二区三区四区亚洲| 国产 欧美 自拍| 91chinesevideo永久地址| 国产精品三级| gogogo高清免费观看在线视频| 亚洲欧洲一区二区三区| 午夜精品一区二区三| 午夜精品蜜臀一区二区三区免费 | 这里只有精品视频在线| 伦一区二区三区中文字幕v亚洲| 久久免费看毛片| 国产91丝袜在线播放| 成年人视频在线免费看| 在线播放国产一区中文字幕剧情欧美 | 91av视频在线观看| 欧美日韩一区二区三区在线电影| 男人操女人免费软件| 国产精品网站在线观看| 国产成年妇视频| 97色在线视频观看| 欧美色图在线播放| 国产男女无遮挡猛进猛出| 精品久久久久久久久久久| 国产午夜在线观看| 亚洲综合大片69999| 国产日韩一区| 久久久久亚洲av片无码| 亚洲国产精品美女| 日韩成人一区| 男人的天堂狠狠干| 国产精品嫩草99a| 天天操天天干天天插| 国产精品人成电影在线观看| 欧美日韩伊人| 亚洲精品91在线| 亚洲国产精彩中文乱码av在线播放 | 国产精品17p| av在线无限看| 亚洲国产你懂的| 日本高清中文字幕在线| 麻豆传媒一区| 国产成人精品1024| 波多野结衣毛片|