Manifest.xml 中uses-feature屬性 詳解

來源:互聯網
上載者:User

如果你是一個Android使用者,而且你有一個老舊的安裝有android 1.5 的android裝置,你可能會注意到一些高版本的應用沒有在手機上的Android Market 中顯示。這必定是應用使用了<uses-feature>的結果。

Android Market會根據uses-feature過濾所有你裝置不支援的應用。通過使用<uses-feature>元素,一個應用可以指定它所支援的硬體型號,舉個例子,有些裝置不支援多點觸控或者OpenGL ES 2.0,那麼過濾器就會過濾需要這些硬體支援(多點觸控或者OpenGL ES 2.0)的應用,使用者就不會在android market上看到這些應用。

一個<uses-feature>元素包含以下屬性:
<uses-feature android:name="string" android:required=["true" | "false"] android:glEsVersion="integer" />

name屬性指定了應用的特徵,required屬性告訴過濾器我們是否在任何情況下必須要需要這個裝置的支援,或者僅僅只是“nice to have”。

最後一個屬性是可選擇的,只是用在需要指定一個OpenGL ES版本的時候。

接下來的幾個硬體特徵對於遊戲開發是非常有用的。

android.hardware.touchscreen.multitouch:它要求裝置有一個多點觸控的螢幕以支援基本的多點觸控互動,就如收縮(放大)映像比例。這些類型的螢幕跟蹤多個手指的能力都有所不同,所以你必須確保這個螢幕的效能是能夠支援的遊戲進行。

android.hardware.touchscreen.multitouch.distinct: 這是一個多點觸控的兄弟屬性,它要求提裝置供完整的多點觸控功能。

我們將會在接下來的章節片段中看到多點觸控。現在只要記住在當你的遊戲需要一個支援多點觸控的螢幕的時候,我們可以使用 <uses-feature>元素來剔除所有不支援多點觸控的裝置,就像下面這樣:

<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="true"/>

另外一個在遊戲開發中非常有用的是去指定需要的OpenGL ES版本。在本書中,我們只關心OpenGL ES1.0和OpenGL ES1.1就可以了。由於這2者基本上沒有什麼不同,所以我們也不用去指定<uses-feature>了。然而,有些裝置支援更強大的OpenGL ES2.0

如果你的遊戲需要更強大的圖形處理能力,我們可以指定OpenGL ES 2.0,然後我們的遊戲只會被支援OpenGL ES 2.0的裝置所看見。注意,在本書中不會使用OPenGL ES 2.0, 我們只是過濾那些不能提供足夠圖形處理能力的裝置。下面顯示了我們怎麼去實現它。

<uses-feature android:glEsVersion="0x00020000" required="true"/>

它將使我們的遊戲只被支援OPenGL ES 2.0 和 假裝有相當的圖形處理能力的裝置所看到。

NOTE: 有些裝置所反映的效能特徵是不正確的,所以開發你的應用的時候盡量去支援各種不同的裝置。要謹慎使用<uses-feature>。

現在就以硬體而言,你的應用已經直接地減少了許多安裝量,這將直接影響到你應用的銷量。所以當你定義<uses-feature>之前請謹慎考慮。舉個例子,如果你的遊戲需要有多點觸控的支援,但是我們也可以思考另外一種方法,是遊戲能夠在支援單點觸控的裝置上運行良好,我們就可以寫2個路徑的代碼,分別在兩種裝置上運行。

在此基礎上,增加一個NFC的屬性:

<uses-feature
        android:name="android.hardware.nfc"
        android:required="true" />

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.