响应式布局技术:App如何适配不同尺寸的设备
作者 | 阿里巴巴文娱技术 叮东
头图 | CSDN 下载自东方IC
背景
近年来,大屏手机、安卓Pad、iPad、折叠屏手机、车机大屏等大尺寸设备发展迅猛。尤其是2020年二季度中国平板市场出货量达到661万台,同比增长17.7%,其中苹果 iPad市场份额占比41.8%,华为平板市场份额占比37.1%。
安卓系统运行在越来越多尺寸的设备上,开发的手机App如何适配到不同尺寸上,是安卓开发者遇到的痛点。同时苹果也推荐开发适配手机和iPad的Universal版本,支持iPad的诸多新特性,例如侧拉、分屏使用等。基于以上背景,我们启动了优酷APP响应式,适配不同屏幕尺寸下的显示效果。
安卓Pad
折叠屏
iPad
什么是响应式
描述响应式最著名的一句话就是“Content is like water”,翻译成中文便是“如果将屏幕看作容器,那么内容就像水一样流淌”。
响应式就是基于同一套代码,开发一个APP能够兼容多尺寸、多终端设备的显示,能够动态调整页面的布局以及容器的布局,充分利用当前屏幕的尺寸,为用户显示更多的内容,提供更好的浏览体验,同时提升APP的开发效率,迭代速度更快,保障多终端业务同步发展。
响应式的优势
1、开发成本更低 —— 一套代码
想要在不同尺寸屏幕的终端上获取良好的显示效果,传统的应用适配方案是针对不同尺寸的终端设备开发多个APP,例如很多厂商都会针对Pad推出HD版本。而响应式的APP可以根据屏幕具体的物理尺寸自适应的显示,只需要开发一套代码,就可以兼容多种尺寸的终端,不需要开发单独的HD版本。
不同的终端的App,由不同的垂直团队开发,会带来不同的后台系统和客户端技术方案,前后端技术能力会走向分化。响应式是同一个APP运行在不同尺寸的设备上,使用统一的后台系统,一次开发,多端生效。
2、设计成本更低 —— 一套设计规则
响应式使用了一套界面自适应的布局方案,横向拉通页面以及容器布局的适配规则,提高了屏幕的显示效率,面对不同分辨率的设备适应性更强,最大化提升用户的操作体验。一套设计规则,适配不同的尺寸,做到以不变应万变,大大节约了设计的成本。
3、业务迭代更快 —— 多端业务同步发展,一次运营多端生效
响应式APP多端保持一致的版本发布节奏,业务方在迭代过程中,会考虑多端的不同使用场景,业务特性能快速在多端同步推进。
往往不同终端有不同的运营系统,可能存在多个垂直运营团队,一次运营动作需要操作多次。响应式基于同一个客户端、后台和运营系统,运营收敛到一个团队,一次运营多端同步生效。
响应式的设计思路
如何在不同尺寸不同分辨率的屏幕下,有效的利用屏幕的尺寸?最简单的理解就是在大屏幕上显示更多的内容。这就需要在设计侧通盘考虑所有尺寸的屏幕,拉通不同宽高比例的设计规则,动态调整可见元素的布局(元素的列数以及尺寸等),在不同尺寸的设备上都能达到最佳的显示效果。
1、基本原则
1) 内容自动伸缩,保证适配内容填满当前屏幕;
2) 坑位列数可灵活按照屏幕的宽高比例进行适当增加或减少进行排版布局;
3) 组件内的内容可根据页面的宽度自动隐藏或显示部分内容,进行整个屏幕的适配,减少留白;
4) 页面边距间距用物理尺寸dp表示。在不同的设备上保证左右边距、间距的物理尺寸不变,内容做自适应;
5) 在不同机型适配上,交互方式符合大部分用户的使用习惯,体验是连贯统一的;
6) 同一页面在不同大小和比例及分辨率下看起来都是舒适的、合理的;
7) 内容在多尺寸响应适配下如遇适配成本过高或适配不了的情况,设计&产品&开发需要基于体验、业务、实现成本考虑达成一致,以低成本无损体验方式来完成适配
2、适配规则
1) 拉伸布局,内容元素在相对宽度内通过结合内容的展示隐藏来进行进行相应的拉伸适配,比如顶导航底导航;
2) 等比缩放,界面中元素在相对位置内按照一定比例进行缩放;
3) 扩展布局,通过内容元素的增加或减少,扩展为多行或者多列重复排列;
4) 组合布局,模块与模块进行组合,去适配宽度;
5) 内容固定居左,横屏&竖屏下固定布局,大小尺寸不变居左展示;
6) 内容固定居中,在横屏竖屏下比例不变 保证内容居中展示;
7) 分栏布局,页面的结构发生变化,按照屏幕宽度左60%,右40%占比进行分两栏展示。在优酷视频中,分栏布局主要用于播放页的展示,左60%宽度提供良好的播放体验,右40%宽度方便用户操作,推荐相关视频内容和评论;
响应式的架构设计
响应式的核心是拉通多终端的适配规则,开发一套界面,一个APP兼容多尺寸终端设备的显示,能够根据用户的行为以及设备的环境(屏幕尺寸、屏幕方向、是否分屏等)进行相应的页面布局以及容器尺寸的调整。为此响应式SDK提供了响应式状态管理、横竖屏切换、容器列数换算规则、容器尺寸适配规则、页面宽高获取方法、响应式基础控件等基础能力。业务方只需要接入响应式SDK,就能够方便快捷的解决在不同尺寸下的适配问题。
从结构上看,响应式由响应式SDK、响应式页面布局、响应式容器布局三部分相互配合完成,在这些的基础上支撑了首页、频道页、播放页、会员页、搜索、个人中心等众多的业务场景。
在Android和iOS上,如何进行响应式状态的管理?如何解决分屏下页面宽高的获取?如何解决多尺寸多终端下的页面布局以及组件容器的布局?具体细节请看以下两篇文章:
《响应式技术架构(Android)》
《响应式技术架构(iOS)》
响应式的业务改造
经过前期的技术调研,确定了Android、iOS、Flutter、Weex、H5等技术栈的适配方案,并以首页、频道页、播放页三大业务场景为切入点,完成初期响应式适配,进行效果演示。验证适配方案可行性后,决定在优酷所有核心业务场景落地。为了推进项目的顺利进行,召集了相关核心业务场景的技术、产品、设计、测试同学,进行项目kick off,介绍项目背景以及价值,明确相关业务团队具体的工作和节奏,经过1个月所有同学的努力,顺利在所有核心场景上线。
具体参与改造的核心业务场景有:首页、频道页、播放页、搜索、会员、会员交易、动态、个人中心、二级页、互动、评论等,部分场景适配效果如下所示:
响应式业务改造涉及众多的业务场景以及技术栈,如何在实际的适配过程中,确保所有的业务场景和技术栈都能低成本高效的适配,是响应式落地的关键。那么业务方在适配过程中具体做了哪些工作?如何解决多技术栈的响应式改造?如何保障响应式适配后的用户体验?由于优酷的业务场景非常多,分发场景和消费场景是其中最典型也最重要的。
响应式的测试与上线
优酷响应式适配对测试来说面临着很大的挑战,既要保证不同尺寸上的适配效果,又要保证业务的完整。这就要求在测试过程中需要进行功能测试、稳定性测试、性能测试以及兼容性测试。
更多精彩推荐
☞1024程序员节重要议程曝光,开源技术英雄会聊开源“真心话”☞“我们的目标是取代物联网中的安卓” | 人物志
☞对话阿里云:开源与自研如何共处?
☞服!AI 让兵马俑“活”起来,颜值惊艳!
☞AI 还原康乾盛世三代皇帝的样貌,简直太太太好玩了!☞观点 | 回顾以太坊近期及中期扩容路线图,展望 rollup 作为中心的以太坊路线图
点分享点点赞点在看
响应式布局技术:App如何适配不同尺寸的设备相关推荐
- 谈谈响应式布局或移动端适配
前言 自适应.响应式.rem弹性布局曾经它们划分的界限还是比较明显的,但现在基本都是综合运用了 媒体查询 什么是媒体查询? 就是为不同尺寸的屏幕设定不同的CSS样式,一般用在移动端 <style ...
- h5响应式布局、PC和移动端适配方案
前言 春招真的是太卷了,让我怀疑春招到底在招谁(是我太菜惹qaq).总之还是不能松懈下来,总结一下在实习期间遇到的h5的响应式布局.PC和移动端适配方案的选择以及一些问题.本文部分文案由chat-gp ...
- 端开发技术—解密Flutter响应式布局
Flutter是一个跨平台的应用开发框架,支持各种屏幕大小的设备,它可以在智能手表这样的小设备上运行,也可以在电视这样的大设备上运行.使用相同的代码来适应不同的屏幕大小和像素密度是一个挑战. Flut ...
- flex布局和响应式布局
flex伸缩布局 一.是什么 Flexible Box 简称 flex,意为"弹性布局",可以简便.完整.响应式地实现各种页面布局,采用Flex布局的元素,称为flex容器cont ...
- 移动web开发 17-1 响应式布局 bootstrap首页 框架 阿里百秀项目
1 响应式开发原理 1.1 响应式开发原理 核心:使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的. 1.20媒体查询(重点) 媒体查询区间的写法 当屏幕宽度<=768 ...
- BootStrap之前奏响应式布局
BootStrap 简介 概念: 课程目标: 响应式布局技术 了解BootStrap前端框架 一.响应式布局 1.1 历史问题 回顾之前HTML+CSS的布局方式,都是使用像素(px)来布局网页的,可 ...
- 流体布局,响应式布局
适配布局类型 PC及移动端页面适配方法 设备屏幕有多种不同的分辨率,页面适配方案有如下几种: 1.全适配:响应式布局+流体布局 2.移动端适配: 流体布局+少量响应式 基于rem的布局 流体布局 流体 ...
- 在html中写响应式布局的代码,手机端自适应响应式框架,移动端响应式布局代码...
移动端自适应框架,响应式布局,如何实现移动端不同分辨率的手机?在本文能够详解,响应式布局是HTML5和css的结合是必然,但是很多朋友不知道怎么实现不同分辨率下的手机端,自适应框架在本站也有,但是具体 ...
- 手机端自适应响应式框架,移动端响应式布局代码
开拓眼界的方式有两种,一是读书,二是花钱.读书,花最少的钱买别人的财富,你把孙子兵法背下来,孙子便跟你一辈子.花钱,行万里路,阅人无数,毕竟对于人生来说,任何经验都是有用的. 那,既然没有钱,就好好读 ...
最新文章
- 华为深度学习新模型DeepShift:移位和求反代替乘法,神经网络成本大降
- hosts文件中同一个域名两个IP的解析顺序
- php中函数的默认值,参数的顺序
- 六大场景下,模型分数如何应用?
- 辗转相除求最大公约数,最大公倍数
- php filesize() 方法返回的文件大小异常
- 在PL/SQL中使用随机数和GUID
- 《Unix编程艺术》pdf
- SWFObject 2.0 官方文档二
- 高项_第一章信息化和信息系统
- 2016,我有些明白了
- UITextView 首行缩进
- 计算机二级考试vb试题,2016计算机二级考试《VB》真题练习
- QT报错:error: invalid use of incomplete type ‘class QDebug‘ qDebug()<<“gemo:“
- Python爬虫学习 6 —— 使用bs4库爬取大学排名
- 微信公众号平台-自定义菜单
- sort字母排序,数字排序,首字母排序
- 【Leetcode】1612. Check If Two Expression Trees are Equivalent
- 1.Understanding the Rasa NLU Pipeline
- 阿里云创业大学负责人范博佳:探索科技,洞见未来,阿里AI赛道明星班
热门文章
- idea快速搭建spring cloud-注册中心与注册
- 【监控】使用 Grafana、collectd 和 InfluxDB 打造现代监控系统
- 统计学习方法十:隐马尔科夫模型
- (转)mysql 无法设置外键的原因总结
- sql添加约束相关示例
- 利用ASP.NET一般处理程序动态生成Web图像
- 简单理解Pix2Pix
- Pytorch register_forward_hook()简单用法
- centos查看文件修改历史_Linux环境下查看历史操作命令及清除方法
- 电脑分屏设置主屏_华硕灵耀 X2 Pro 体验:两块屏幕的笔记本电脑,体验怎样?...