一、Android版本比例测试:(数据来源:腾讯优测)
较主流的系统版本:部分旗舰机可以适配android7.0;目前大部分手机为6.0,比如各大厂商的旗舰机,其余大部分为android5.0,一般可以满足5.0后推出的material design风格控件;小部分机型为Android4.4或以下,不满足material design风格控件;
一般开发的话,推荐适配版本为4.4.2----最高。部分控件,部分第三方library,api不支持较低水平的android版本;
特殊要求可以适配4.0.2--最高,但是会出现UI问题,比如material design里面的cardview会显示怪异,拉缩控件会出现不流畅现象,不影响使用,但是UI效果会不好;
如要求适配低版本手机,如2.2,3.0等,会出现部分UI控件不支持,可用library减少,低版本手机的分辨率会更低,相应会出现低分辨率屏幕适配问题。不单只android API版本不一定导致运行异常,有些机型还使用Java 1.5进行编译,使用某些Java 1.6的函数会Crash的。
二、 Android考虑的分辨率:
较主流的屏幕分辨率:(占比90%以上)
2560x1440 (比如摩托罗拉Z,华为Nexus 6p)
1920x1152 (比如魅族mx4)
1920x1200 (比如华为荣耀X2)
1920x1080 (比如华为mate9)
1800x1080 (比如魅族mx3)
1776x1080 (比如比如Sony L39U)
1280x800 (比如三星GT-I9220)
1280x720 (比如华为畅享5s)
1280x768 (比如魅族魅蓝)
较少见的屏幕分辨率:(占比10%左右)
960x540 (比如酷派8729)
854x480 (比如oppo1107)
800x480 (比如三星Nexus S)
480x320 (比如天语T621)
一般做法:
权重分屏:
多使用权重分屏,基本可以适配大部分屏幕
百分比布局:
可以使用google提供的百分比布局控件,整个页面百分比布局,类似html页面做适配
三、平板适配:
多layout布局
解决方案,设计师提供一套设计图,部分图标只切一套图,推荐切为xxHdpi,部分图标,比如桌面icon,提供5套切图:hdpi,mdpi,xhdpi,xxhxpi,xxxhdpi;开发人员本地做代码适配,建立多个layout文件夹,即可满足平板适配。
优点:设计师只需设计一套图。
缺点:开发人员要画4套界面;部分UI显示不好看,手机一般为上下结构,平板多为左右结构。
2个apk
解决方案:设计师提供2套设计稿(手机端,pad端),切图如上;
开发人员做2套layout,(缺点是apk体积会更大,多了一套冗余布局)
开发人员做2个app,java逻辑代码可以通用,布局xml文件不同。
优点:屏幕可以适配。
缺点:设计师要设计2套图,开发要开发2个布局文件,修改bug要修改2份代码,更新需要更新2个版本。
fragment和FrameLayout 配合
类似b方案,开发人员写2个布局文件,通用部分用fragment抽离出来,主体框架写在2个布局文件(手机版,pad版)里面,控件用fragment替入,根据不同的屏幕加载不同的框架布局文件,框架布局文件通过碎片引入抽离出来的布局文件。
优点:屏幕适配。
确定:设计师要设计2套图,开发要开发2个布局文件,抽离xml代码需要耗费额外的时间