android 陀螺儀_Android 裝置相容性詳解
技術標籤:android 陀螺儀
和你一起終身學習,這裡是程式設計師Android
經典好文推薦,通過閱讀本文,您將收穫以下知識點:
一、裝置相容性分類
二、硬體裝置相容
三、軟體 APP 相容
四、相容不同語言
五、相容不同解析度
六、相容不同螢幕方向佈局
七、相容不同硬體 Feature
八、相容不同SDK平臺
一、裝置相容性分類
Android
設計用於執行在許多不同型別的裝置上,從手機到平板電腦和電視機。作為開發人員,各種裝置為您的應用程式提供了巨大的潛在受眾。為了使您的應用程式在所有這些裝置上取得成功,APP
應該容忍一些功能變化,並提供適應不同螢幕配置的靈活的使用者介面。
相容性分類主要分:硬體相容性,軟體相容性兩大類。
二、硬體裝置相容
不同廠商(比如:手機廠商)生產不同尺寸的裝置,此時,裝置要相容不同型別的APP
,Google
也對此有強烈的要求,國外手機,必須通過CTS
(相容性測試)才可以上市售賣。國內手機由於沒有預製GMS
包,不用測試相容性,故,有時候小廠商生產的手機在相容性上可能不太完美。
三、軟體 APP 相容
作為APP
開發者,APP
相容性是必須的。相容不同Feature
,相容不同語言、相容不同螢幕尺寸、相容不同解析度,相容不同SDK
版本等
四、相容不同語言
為了更加國際化,APP
通常會相容不同國家語言,最基本的是相容英文,簡體中文,繁體中文等
1. 檔名稱命名規則如下:
values-ISO語言程式碼
2 .使用語法:
java :
R.string. 引用字串資源XML :
@string/
常用語言如下:
簡體中文 values-zh-rCN
繁體中文 values-zh-rTW 、values-zh-rHK
美式英文 values
英文 values-en-rGB
3. 相容不同語言舉例
Android
手機相容不同國家的語言,進而更方便使用者使用。
Android相容不同國家語言
五、相容不同解析度
Android 執行在不同的裝置上,比如手機、TV、Car
等裝置載體。為了分類這些載體,Android
裝置分兩大類:
1. 螢幕大小
物理尺寸上的大小 區分如下:small, normal, large, and xlarge
2. 螢幕密度(DPI)
螢幕畫素的物理密度,區分如下:mdpi (medium), hdpi (hdpi), xhdpi (extra high), xxhdpi (extra-extra high), and others
3. UI 標準化,常用圖片相容性總結
開發過程中適應不同圖片時候的參考總結
密度 | 建議尺寸 | 手機螢幕密度DPI | 圖片解析度 | 基準圖縮放倍數 |
---|---|---|---|---|
drawable-mdpi | 48 * 48 | 120dpi ~ 160dpi | 320x480 | 1.0 |
drawable-hdpi | 72 * 72 | 160dpi ~ 240dpi | 480x800、480x854 | 1.5 |
drawable-xhdpi | 96 * 96 | 240dpi ~ 320dpi | 960*720 | 2.0 |
drawable-xxhdpi | 144 * 144 | 320dpi ~ 480dpi | 1280×720 | 3.0 |
drawable-xxxhdpi | 192 * 192 | 480dpi ~ 640dpi | 1920*1080 | 4.0 |
4.手機螢幕密度DPI獲取方法
float xdpi = getResources().getDisplayMetrics().xdpi;
float ydpi = getResources().getDisplayMetrics().ydpi;
5. 相容螢幕解析度舉例
相容不同螢幕解析度
Android Studio推薦方法
六、 相容不同螢幕方向佈局(橫向 landscape 、縱向 portrait)
雖然Android
在橫豎屏切換的時候可以自適應,但是,效果經常不是太好,為了更好適應手機螢幕的旋轉,橫屏、豎屏需要不同的佈局,進一步提升UI互動體驗。
1. 相容不同螢幕方向佈局舉例:
佈局 | 適應螢幕 |
---|---|
layout | 預設縱向 |
layout-land | 橫向佈局 |
layout-large | 大屏縱向 |
layout-large-land | 大屏橫向 |
layout-sw600dp | 雙窗口布局,常用平板 |
layout-sw600dp-land | 雙窗口布局,常用橫向 平板 |
layout-sw720dp | 雙窗口布局,常用平板 |
相容不同螢幕大小
七、相容不同硬體 Feature
為了兼顧不同的手機版本,在應用使用不同的Feature
時候進行判斷是否支援,這樣會更好的提升使用者體驗。
比如有些低配手機會沒有陀螺儀等Feature
,此時APK
要相容不容的硬體Feature
。
相容 Feature 的使用方法
例如:在AndroidManifest檔案中宣告使用Feature
<manifest ... >
然後在使用該Feature 功能時候進行判斷取捨
=
八、 相容不同SDK平臺
不同的裝置會執行在不同的Android版本上,比如Android 2.*、Android 4.* 、Android 5.* 、Android6.* 、Android 7.* 、Android 8.*
。
建立工程時候,在AndroidManifest.xml
檔案中可以選擇APP
要相容的Android
版本
<manifest ... >
當然也可以在Java
程式碼中動態判斷當前裝置版本,進而執行不同的程式碼。
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
// Running on something older than API level 11, so disable
// the drag/drop features that use ClipboardManager APIs
disableDragAndDrop();
}