標籤:android 策略
文章轉載禁止用於商業用途,且不能帶有虛擬貨幣、積分、註冊等附加條件。轉載須註明出處莫高雷草原以及作者@JiongBull。
Android螢幕適配方案
統計分析1. 2014Q1活躍Android裝置統計
參數表格:
| 機型 |
解析度 |
像素密度 |
螢幕寬度 |
| 三星Galaxy Note2 |
720 * 1280 |
xhdpi |
360dp |
| 三星Galaxy S3 |
720 * 1280 |
xhdpi |
360dp |
| 小米手機2S |
720 * 1280 |
xhdpi |
360dp |
| 三星Galaxy S4 |
1080 * 1920 |
xxhdpi |
360dp |
| 三星Galaxy S2 |
480 * 800 |
hdpi |
320dp |
| 三星Galaxy Note |
800 * 1280 |
xhdpi |
400dp |
| 三星Galaxy Note3 |
1080 * 1920 |
xxhdpi |
360dp |
| 紅米手機 |
720 * 1280 |
xhdpi |
360dp |
| 小米手機1S |
720 * 1280 |
xhdpi |
360dp |
| 三星Galaxy Ace |
480 * 800 |
hdpi |
320dp |
| 小米手機M2 |
720 * 1280 |
xhdpi |
360dp |
| 小米手機M3 |
1080 * 1920 |
xxhdpi |
360dp |
| 小米手機M1 |
480 * 854 |
hdpi |
320dp |
| 小米手機2A |
720 * 1280 |
xhdpi |
360dp |
| 三星GT-S7568 |
480 * 800 |
hdpi |
320dp |
| 華為G520 |
480 * 854 |
hdpi |
320dp |
| 三星Galaxy Mega 5.8 |
540 * 960 |
hdpi |
360dp |
| 三星GT-S7562 |
480 * 800 |
hdpi |
320dp |
| OPPO R821t |
480 * 800 |
hdpi |
320dp |
| 華為C8815 |
540 * 960 |
hdpi |
360dp |
結論:絕大部分機型的螢幕寬度是320dp和360dp。
2. 2014Android作業系統趨勢
結論:4.0版本以上的作業系統佔據了90%以上的市場份額。
方案1. 聲明用戶端支援的最小作業系統版本
- 過濾掉老舊版本作業系統,協助我們減少針對時機型適配帶來的工作量
- 可以使用Android 3.2(API等級13)版本提供的新特徵利用螢幕的寬度對不同的螢幕做適配
<uses-sdk android:minSdkVersion="15"/>
2. 聲明螢幕方向為豎屏
避免使用者橫屏時頁面配置錯亂。
android:screenOrientation="portrait"
3. 布局
針對手機裝置,使用一套布局資源,布局中裡用到的尺寸、顏色、文本等資源使用引用值。
res/layout/name.xml
4. 尺寸
參考統計分析裡的參數表格,values-w320dp目錄內屬性適配螢幕寬度為320dp的機型,values-w360dp目錄內的屬性適配螢幕寬度為360dp的機型。
res/values-w320dp/dimens.xml
res/values-w360dp/dimens.xml
5. 圖片
- 如果可以避免使用位元影像那就不要使用位元影像,這樣可以節省空間的資源,提高應用的效能
- 可以使用XML繪圖代替位元影像,比如圓角矩形,使用XML繪製的色圖比位元影像節省空間的資源,而且可以自動適配
- 使用9-patch,9-patch可以縮放,我們可以使用很小的9-patch填充很大的UI控制項,節省空間的資源,提高應用的效能
- 盡量減少XML的布局層次,減少布局層次可以減少系統解析代碼所做的工作,讓介面的渲染速度變快
- 使用merge而不是include,使用merge可以達到減少布局層次的效果
- 盡量使用RelativeLayout,使用RelativeLayout相比使用多個LinearLayout來說可以減少布局的層次
- 每種切圖都需要下面表格中的展示的三種規格
| 像素密度 |
係數 |
Logo解析度 |
| hdpi |
1.5 |
72 * 72 |
| xhdpi |
2.0 |
96 * 96 |
| xxhdpi |
3.0 |
144 * 144 |
Android螢幕適配方案