<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Android 設(shè)備兼容性詳解

          共 2501字,需瀏覽 6分鐘

           ·

          2020-11-18 16:04

          和你一起終身學(xué)習(xí),這里是程序員Android

          經(jīng)典好文推薦,通過(guò)閱讀本文,您將收獲以下知識(shí)點(diǎn):

          一、設(shè)備兼容性分類
          二、硬件設(shè)備兼容
          三、軟件 APP 兼容
          四、兼容不同語(yǔ)言
          五、兼容不同分辨率
          六、兼容不同屏幕方向布局
          七、兼容不同硬件 Feature
          八、兼容不同SDK平臺(tái)

          一、設(shè)備兼容性分類

          Android設(shè)計(jì)用于運(yùn)行在許多不同類型的設(shè)備上,從手機(jī)到平板電腦和電視機(jī)。作為開(kāi)發(fā)人員,各種設(shè)備為您的應(yīng)用程序提供了巨大的潛在受眾。為了使您的應(yīng)用程序在所有這些設(shè)備上取得成功,APP應(yīng)該容忍一些功能變化,并提供適應(yīng)不同屏幕配置的靈活的用戶界面。

          兼容性分類主要分:硬件兼容性,軟件兼容性兩大類。

          二、硬件設(shè)備兼容

          不同廠商(比如:手機(jī)廠商)生產(chǎn)不同尺寸的設(shè)備,此時(shí),設(shè)備要兼容不同類型的APPGoogle也對(duì)此有強(qiáng)烈的要求,國(guó)外手機(jī),必須通過(guò)CTS?(兼容性測(cè)試)才可以上市售賣。國(guó)內(nèi)手機(jī)由于沒(méi)有預(yù)制GMS包,不用測(cè)試兼容性,故,有時(shí)候小廠商生產(chǎn)的手機(jī)在兼容性上可能不太完美。

          三、軟件 APP 兼容

          作為?APP開(kāi)發(fā)者,APP兼容性是必須的。兼容不同Feature,兼容不同語(yǔ)言、兼容不同屏幕尺寸、兼容不同分辨率,兼容不同SDK版本等

          四、兼容不同語(yǔ)言

          為了更加國(guó)際化,APP通常會(huì)兼容不同國(guó)家語(yǔ)言,最基本的是兼容英文,簡(jiǎn)體中文,繁體中文等

          1. 文件名稱命名規(guī)則如下:

          values-ISO語(yǔ)言代碼

          2 .使用語(yǔ)法:

          • java :
            R.string. 引用字符串資源

          • XML :
            @string/

          • 常用語(yǔ)言如下:
            簡(jiǎn)體中文 values-zh-rCN
            繁體中文 values-zh-rTW 、values-zh-rHK
            美式英文 values
            英文 values-en-rGB

          3. 兼容不同語(yǔ)言舉例

          Android手機(jī)兼容不同國(guó)家的語(yǔ)言,進(jìn)而更方便用戶使用。

          Android兼容不同國(guó)家語(yǔ)言

          五、兼容不同分辨率

          Android 運(yùn)行在不同的設(shè)備上,比如手機(jī)、TV、Car等設(shè)備載體。為了分類這些載體,Android設(shè)備分兩大類:

          1. 屏幕大小

          物理尺寸上的大小 區(qū)分如下:
          small, normal, large, and xlarge

          2. 屏幕密度(DPI)

          屏幕像素的物理密度,區(qū)分如下:
          mdpi (medium), hdpi (hdpi), xhdpi (extra high), xxhdpi (extra-extra high), and others

          3. UI 標(biāo)準(zhǔn)化,常用圖片兼容性總結(jié)

          開(kāi)發(fā)過(guò)程中適應(yīng)不同圖片時(shí)候的參考總結(jié)

          密度建議尺寸手機(jī)屏幕密度DPI圖片分辨率基準(zhǔn)圖縮放倍數(shù)
          drawable-mdpi48 * 48120dpi ~ 160dpi320x4801.0
          drawable-hdpi72 * 72160dpi ~ 240dpi480x800、480x8541.5
          drawable-xhdpi96 * 96240dpi ~ 320dpi960*7202.0
          drawable-xxhdpi144 * 144320dpi ~ 480dpi1280×7203.0
          drawable-xxxhdpi192 * 192480dpi ~ 640dpi1920*10804.0

          4.手機(jī)屏幕密度DPI獲取方法

          float xdpi = getResources().getDisplayMetrics().xdpi;
          float ydpi = getResources().getDisplayMetrics().ydpi;

          5. 兼容屏幕分辨率舉例

          兼容不同屏幕分辨率

          Android Studio推薦方法

          六、 兼容不同屏幕方向布局(橫向 landscape 、縱向 portrait)

          雖然Android?在橫豎屏切換的時(shí)候可以自適應(yīng),但是,效果經(jīng)常不是太好,為了更好適應(yīng)手機(jī)屏幕的旋轉(zhuǎn),橫屏、豎屏需要不同的布局,進(jìn)一步提升UI交互體驗(yàn)。

          1. 兼容不同屏幕方向布局舉例:

          布局適應(yīng)屏幕
          layout默認(rèn)縱向
          layout-land橫向布局
          layout-large大屏縱向
          layout-large-land大屏橫向
          layout-sw600dp雙窗口布局,常用平板
          layout-sw600dp-land雙窗口布局,常用橫向 平板
          layout-sw720dp雙窗口布局,常用平板

          兼容不同屏幕大小

          七、兼容不同硬件 Feature

          為了兼顧不同的手機(jī)版本,在應(yīng)用使用不同的Feature時(shí)候進(jìn)行判斷是否支持,這樣會(huì)更好的提升用戶體驗(yàn)。
          比如有些低配手機(jī)會(huì)沒(méi)有陀螺儀等Feature,此時(shí)APK要兼容不容的硬件Feature

          兼容 Feature 的使用方法

          例如:在AndroidManifest文件中聲明使用Feature

          <manifest ... >
          <uses-feature android:name="android.hardware.sensor.compass"
          android:required="true" />

          ...
          manifest>

          然后在使用該Feature 功能時(shí)候進(jìn)行判斷取舍

          PackageManager pm = getPackageManager();
          if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
          // This device does not have a compass, turn off the compass feature
          disableCompassFeature();
          }

          八、 兼容不同SDK平臺(tái)

          不同的設(shè)備會(huì)運(yùn)行在不同的Android版本上,比如Android 2.*、Android 4.* 、Android 5.* 、Android6.* 、Android 7.* 、Android 8.*?。

          創(chuàng)建工程時(shí)候,在AndroidManifest.xml文件中可以選擇APP?要兼容的Android版本

          <manifest ... >
          <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
          ...
          manifest>

          當(dāng)然也可以在Java代碼中動(dòng)態(tài)判斷當(dāng)前設(shè)備版本,進(jìn)而執(zhí)行不同的代碼。

          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();
          }

          至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺(jué)得很優(yōu)秀,歡迎點(diǎn)擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請(qǐng)聯(lián)系小編刪除。同時(shí)感謝您的閱讀,期待您的關(guān)注。

          瀏覽 138
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日本韩国激情视频 | 中日韩欧美一级A片免费 | 370p日韩欧美亚洲精品 | 精品视频观看 | 久久免费成人 |