Android修行手册-几个适配方案【建议收藏】

简介: 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)

👉即将学会

了解到市面上Android适配的几种方案,并且从中选择合适的技术。

👉背景

网络异常,图片无法展示
|

👉实践过程

😜数据报告

网络异常,图片无法展示
|

从Android诞生后没多久,适配就一直跟随至今。Android适配最核心的问题有两个,其一,就是效率的问题,开发者根据设计图写布局代码是否快速,其二如何保证在不同尺寸和分辨率的手机中的一致性。所以就诞生了各种适配方案。

😜传统适配

此适配是Android自带的,利用DP单位来根据手机分辨率尺寸大小来计算出对应所占的像素。Dp作为Android最基本原始的适配方案我们不做过多讨论了,如果可行的话市面上也不会有各种适配方案了。

😜限定符适配

为了解决这个适配问题,就出现了限定符适配的方案。就是直接列出市面全部宽高像素或最小尺寸。

分为两个方案宽高限定符和sw限定符

网络异常,图片无法展示
|

然后以产品目标设备分辨率作为参考系,小于她的做减运算,大于的做加运算。至于计算方程式可以谷歌查查。

缺点:

  1. 需要增加不少文件,有形中增加了包体积
  2. 那么多文件里面的dimen等等都得计算好搞进去,有一定工作量
  3. 宽高限定符致命缺陷是容错机制差,需要精准击中分辨率才好适配,否则就用默认的,sw限定符有容错性,没有对应的会向下寻找。

原理:开发者会提前生成一系列的values文件(如上图),当App运行后系统会自己去寻找和当前手机分辨率对应的资源文件夹,如果没有,宽高限定符方案会找默认的,sw限定符会向下寻找。

如果使用限定符方案的话推荐sw限定符方案。

😜全面屏适配

全面屏刚出那会,真的是全网刷屏啊,没多久市场上就出现了大量新产品,各种奇葩的设计全出来了,立马各种APP连夜开始适配各种工作了,真是苦了程序员。因为刚出来那会全面屏手机造型很乱,适配方案也是奇招百出。经过一段时间沉淀现在基本不约而同的遵守着共同的设计原则。

和传统的屏幕显示相比,最大的区别就是宽高比的变化,设备的宽度没变多少,但是高度增加了不少,从原来的大多数16:9变为18:9。

首先映入眼帘的就是启动页的拉伸效果,这个做不好给人的第一印象就不舒服。(我就不截图了太长了)

有三种解决方案:

  1. 利用Android系统本身的自动加载不同分辨drawable的特性创建drawable-xxhdpi-2140x1080资源文件夹
  2. 利用.9的方案
  3. 利用布局+骚操作。怎么骚呢?大家留意一下,绝大部分的启动页最上方和最下方基本都是纯色的没有内容或者只有一边有内容的。我们的布局xml文件可以这样写:Layout嵌套Image,Image全屏居中,如果上下颜色一致给Layout增加相同颜色的背景,如果上下颜色,在Layout上下各加一个View设置对应的颜色,以此达到以假乱真的效果。那么至于有的设计图上下都有内容且不同咋办呢?要么和UI商量修改下互相凑活凑活,要么就用上面的方法。

网络异常,图片无法展示
|

😜刘海和水滴屏

详情可以参考这两篇文章:

www.jianshu.com/p/8ead0701d…

www.jianshu.com/p/62c6625db…

小空没做过这些适配,公司的产品也不需要。针对这个适配小空持开放态度,这东西都是占据在状态栏那,直接空出那不就行了。小空使用了上百款APP从没留意过有没有适配过这个,不在乎,更希望看到的是APP功能,除了公司的UI设计抓这些,大多数用户没人在意。

😜虚拟按键适配

界面效果如风景,按键一出糟心情。

当下大多数手机的虚拟按键还是很不错的,要么是半透明,还有隐藏,像Android默认的那傻帽式的大黑条子很少了。

可以在主题中添加设置项

<itemname="android:navigationBarColor">设置颜色值,比如半透明

这种方式高效的解决了UI设计图转换为布局代码的问题,因为两者已经都是像素单位,程序不再需要进行计算转化为DP单位。解决了设计图和代码之间的鸿沟,大大提升了效率,提高生产力。

😜今日头条适配

这是目前小空一直在项目中使用的方案,不过如果是老项目使用该方案,可能你的布局尺寸都得重干一遍。

Github地址:

github.com/JessYanCodi…

官方拥有良好且完善的文档,小空就不在这瞎搞了。

相比其他,目前的适配方案建议选择SW限定符和AutoSize方案,他们各有各的优点也同样有自己的缺点,开发者根据实际经验自行选择。

😜后续

大多数互联网产品都是手机端,DP其实基本能满足需求,小空在的行业比较另类,各种手机平板定制化设备层出不穷,所以适配需要搞来搞去。但方案是死的人是活的,不要限制住了自己。

适配方案没有最好的,只有最合适的。


作者:芝麻粒儿

链接:https://juejin.cn/post/7001301156760649765

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

👉其他

📢作者:小空和小芝中的小空

📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

相关文章
|
3月前
|
开发框架 Dart 前端开发
Android 跨平台方案对比之Flutter 和 React Native
本文对比了 Flutter 和 React Native 这两个跨平台移动应用开发框架。Flutter 使用 Dart 语言,提供接近原生的性能和丰富的组件库;React Native 则基于 JavaScript,具备庞大的社区支持和灵活性。两者各有优势,选择时需考虑团队技能和项目需求。
403 8
|
3月前
|
调度 Android开发 UED
Android经典实战之Android 14前台服务适配
本文介绍了在Android 14中适配前台服务的关键步骤与最佳实践,包括指定服务类型、请求权限、优化用户体验及使用WorkManager等。通过遵循这些指南,确保应用在新系统上顺畅运行并提升用户体验。
239 6
|
3月前
|
Web App开发 网络协议 Android开发
Android平台一对一音视频通话方案大比拼:WebRTC VS RTMP VS RTSP,谁才是王者?
【9月更文挑战第4天】本文详细对比了在Android平台上实现一对一音视频通话时常用的WebRTC、RTMP及RTSP三种技术方案。从技术原理、性能表现与开发难度等方面进行了深入分析,并提供了示例代码。WebRTC适合追求低延迟和高质量的场景,但开发成本较高;RTMP和RTSP则在简化开发流程的同时仍能保持较好的传输效果,适用于不同需求的应用场景。
178 1
|
4月前
|
存储 安全 API
Android经典实战之存储方案对比:SharedPreferences vs MMKV vs DataStore
本文介绍了 Android 开发中常用的键值对存储方案,包括 SharedPreferences、MMKV 和 DataStore,并对比了它们在性能、并发处理、易用性和稳定性上的特点。通过实际代码示例,帮助开发者根据项目需求选择最适合的存储方案,提升应用性能和用户体验。
123 1
|
4月前
|
Android开发 C++ 开发者
Android经典实战之跨平台开发方案:Kotlin Multiplatform vs Flutter
本文对比了Kotlin Multiplatform与Flutter两大跨平台开发框架,从技术特性、性能、开发效率、UI体验、可扩展性及适用场景等维度进行了详尽分析,帮助开发者根据项目需求和技术背景选择最优方案。
162 2
|
5月前
|
IDE API Android开发
安卓与iOS开发环境的差异及适配策略
在移动应用开发的广阔舞台上,Android和iOS两大操作系统各据一方,各自拥有独特的开发环境和工具集。本文旨在深入探讨这两个平台在开发环境上的关键差异,并提供有效的适配策略,帮助开发者优化跨平台开发流程。通过比较Android的Java/Kotlin和iOS的Swift/Objective-C语言特性、IDE的选择、以及API和系统服务的访问方式,本文揭示了两个操作系统在开发实践中的主要分歧点,并提出了一套实用的适配方法,以期为移动开发者提供指导和启示。
|
4月前
|
Web App开发 网络协议 Android开发
### 惊天对决!Android平台一对一音视频通话方案大比拼:WebRTC VS RTMP VS RTSP,谁才是王者?
【8月更文挑战第14天】随着移动互联网的发展,实时音视频通信已成为移动应用的关键部分。本文对比分析了Android平台上WebRTC、RTMP与RTSP三种主流技术方案。WebRTC提供端到端加密与直接数据传输,适于高质量低延迟通信;RTMP适用于直播场景,但需服务器中转;RTSP支持实时流播放,但在复杂网络下稳定性不及WebRTC。三种方案各有优劣,WebRTC功能强大但集成复杂,RTMP和RTSP实现较简单但需额外编码支持。本文还提供了示例代码以帮助开发者更好地理解和应用这些技术。
155 0
|
4月前
|
安全 Java Android开发
Android 14适配Google play截止时间临近,适配注意点和经验
本文介绍了Android 14带来的关键更新,包括性能优化、定制化体验、多语言支持、多媒体与图形增强等功能。此外,还强调了适配时的重要事项,如targetSdkVersion升级、前台服务类型声明、蓝牙权限变更等,以及安全性与用户体验方面的改进。开发者需按官方指南更新应用,以充分利用新特性并确保兼容性和安全性。
295 0
|
7月前
|
编解码 人工智能 测试技术
安卓适配性策略:确保应用在不同设备上的兼容性
【4月更文挑战第13天】本文探讨了提升安卓应用兼容性的策略,包括理解平台碎片化、设计响应式UI(使用dp单位,考虑横竖屏)、利用Android SDK的兼容工具(支持库、资源限定符)、编写兼容性代码(运行时权限、设备特性检查)以及优化性能以适应低端设备。适配性是安卓开发的关键,通过这些方法可确保应用在多样化设备上提供一致体验。未来,自动化测试和AI将助力应对设备碎片化挑战。
726 4
|
7月前
|
Android开发
Android保存图片到相册(适配android 10以下及以上)
Android保存图片到相册(适配android 10以下及以上)
153 1