<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                > 編寫:[Lin-H](http://github.com/Lin-H) - 原文:[http://developer.android.com/training/basics/supporting-devices/platforms.html](http://developer.android.com/training/basics/supporting-devices/platforms.html) 新的Android版本會為我們的app提供更棒的APIs,但我們的app仍應支持舊版本的Android,直到更多的設備升級到新版本為止。這節課程將展示如何在利用新的APIs的同時仍支持舊版本Android。 [Platform Versions](http://developer.android.com/about/dashboards/index.html)的控制面板會定時更新,通過統計訪問Google Play Store的設備數量,來顯示運行每個版本的安卓設備的分布。一般情況下,在更新app至最新Android版本時,最好先保證新版的app可以支持90%的設備使用。 > **Tip**:為了能在幾個Android版本中都能提供最好的特性和功能,應該在我們的app中使用[Android Support Library](https://developer.android.com/tools/support-library/index.html),它能使我們的app能在舊平臺上使用最近的幾個平臺的APIs。 ### 指定最小和目標API級別 [AndroidManifest.xml](https://developer.android.com/guide/topics/manifest/manifest-intro.html)文件中描述了我們的app的細節及app支持哪些Android版本。具體來說,[`<uses-sdk>`](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html)元素中的`minSdkVersion`和`targetSdkVersion` 屬性,標明在設計和測試app時,最低兼容API的級別和最高適用的API級別(這個最高的級別是需要通過我們的測試的)。例如: ~~~ <manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest> ~~~ 隨著新版本Android的發布,一些風格和行為可能會改變,為了能使app能利用這些變化,而且能適配不同風格的用戶的設備,我們應該將`targetSdkVersion`的值盡量的設置與最新可用的Android版本匹配。 ### 運行時檢查系統版本 Android在[Build](https://developer.android.com/reference/android/os/Build.html)常量類中提供了對每一個版本的唯一代號,在我們的app中使用這些代號可以建立條件,保證依賴于高級別的API的代碼,只會在這些API在當前系統中可用時,才會執行。 ~~~ private void setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } } ~~~ > **Note**:當解析XML資源時,Android會忽略當前設備不支持的XML屬性。所以我們可以安全地使用較新版本的XML屬性,而不需要擔心舊版本Android遇到這些代碼時會崩潰。例如如果我們設置`targetSdkVersion="11"`,app會在Android 3.0或更高時默認包含[ActionBar](https://developer.android.com/reference/android/app/ActionBar.html)。然后添加menu items到action bar時,我們需要在自己的menu XML資源中設置`android:showAsAction="ifRoom"`。在跨版本的XML文件中這么做是安全的,因為舊版本的Android會簡單地忽略`showAsAction`屬性(就是這樣,你并不需要用到`res/menu-v11/`中單獨版本的文件)。 ### 使用平臺風格和主題 Android提供了用戶體驗主題,為app提供基礎操作系統的外觀和體驗。這些主題可以在manifest文件中被應用于app中。通過使用內置的風格和主題,我們的app自然地隨著Android新版本的發布,自動適配最新的外觀和體驗. 使[activity](# "An activity represents a single screen with a user interface.")看起來像對話框: ~~~ <activity android:theme="@android:style/Theme.Dialog"> ~~~ 使[activity](# "An activity represents a single screen with a user interface.")有一個透明背景: ~~~ <activity android:theme="@android:style/Theme.Translucent"> ~~~ 應用在`/res/values/styles.xml`中定義的自定義主題: ~~~ <activity android:theme="@style/CustomTheme"> ~~~ 使整個app應用一個主題(全部activities)在[](https://developer.android.com/guide/topics/manifest/application-element.html)元素中添加`android:theme`屬性: ~~~ <application android:theme="@style/CustomTheme"> ~~~ 更多關于創建和使用主題,詳見[Styles and Themes](https://developer.android.com/guide/topics/ui/themes.html)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看