说来惭愧,这个方案在微信公众号推出来的时候,我才去了解我司自己的适配方案。字节跳动屏幕适配方案
重点
- 为什么要做屏幕适配
- 从数据上告诉你安卓手机屏幕的碎片化
- 我司的适配方案
- 适配中出现的问题
- 实际演练
为什么要做屏幕适配
在Android开发中,由于Android的碎片化严重,屏幕分辨率千奇百怪,想要在各种分辨率的设备上显示一致的效果,适配成本越来越高。虽然Android官方提供了dp单位来适配,但是在各种奇怪分辨率的手机下表现的不近人意。
Android手机屏幕的碎片化
在大部分场景下我们是不需要关心屏幕适配,因为很多ui不会有太多元素,要不然就是RecyclerView来展示数据,但是也有不少的场景UI会比较复杂,我们需要关心手机适配,接下来,从Google和友盟的数据上看下当前手机屏幕的大小和分辨率
Google数据

可以看到Normal占比是最多的,Normal就是宽度为480dp的手机。而在Normal手机中dpi为320的手机又居多。
small -> 320dp
Normal -> 480dp
Large -> 600dp
XLarge -> 720dp
友盟数据


| 名次 | 屏幕分辨率 | 活跃占比 | 趋势 |
|---|---|---|---|
| 1 | 1920x1080 (16:9) | 28.9 | ↓ |
| 2 | 1280x720 (16:9) | 22.5 | ↓ |
| 3 | 1080x1821 (3:5) | 3.9 | ↓ |
| 4 | 960x540 (16:9) | 3.3 | ↓ |
| 5 | 854x480 (16:9) | 2.8 | ↓ |
| 6 | 720x1208 (9:16) | 2.6 | ↓ |
| 7 | 1184x720 (5:3) | 2.4 | ↓ |
| 8 | 1776x1080 (5:3) | 2.1 | ↑ |
| 9 | 2560x1440 (16:9) | 2 | ↑ |
| 10 | 2016x1080 (17:9) | 1.9 | ↑ |
| 11 | 1794x1080 (5:3) | 1.8 | ↑ |
| 12 | 2040x1080 (17:9) | 1.3 | ↑ |
| 13 | 2160x1080 (18:9) | 1.3 | ↑ |
从上面的数据可以看到安卓的手机市场,各种比例、分辨率、尺寸的手机层出不穷,如果我们按照Google官方的适配方案,那么我们基本上可以不用做其他需求了,ui改动一个像素点,你可能需要改动十几个layout的布局文件。
字节跳动屏幕适配方案
这节会从基础到新的适配方案,详细看下同事是怎样解决这个世纪难题。
传统dp适配方式
android中的dp在渲染前会将dp转换为px,计算公式为

最低0.47元/天 解锁文章
122





