本章內容主要是講關於android大方向上的相容
Android 相容性
Android被設計運行於許多不同類型的裝置上。對於我們開發人員,有巨大的潛在使用者(在目前的中國來說,android使用者是最多的):在更多裝置執行App,更多訪問你App的使用者。
幸運的是,android有內建的工具支援,使之更容易維護。你App中manifest檔案的一些小改變都會讓某個使用者在Android Market找不到你的App,並且下載起來很麻煩。本節告訴你
怎麼樣控制裝置訪問你的App。
相容的意思是什嗎?
1個裝置如果它能在android執行環境中正確的執行那麼就說明這個App是相容Android系統的。android執行環境有專門的Android相容性文檔參考(以後會說的),一個最重要的特
征就是能正確的執行.apk檔案。
當然,如果一個指定的裝置缺乏匹配的硬體和功能,那麼一些API就不會正確的工作。但這不是一個問題:android會幫你搞定它,你不用操心。並且還有一些SDK工具可以使用,讓你
更方便的專註於開發。作為一個開發人員,你完全有能力控制你的App,Android提供一流的工具管理你的App。你只要控制你程式的有效性。這些工具會幫你搞定其他問題
我們通過簡單的3個步驟管理App的有效性:
- 在manifest 中的<uses-feature>節點聲明你App的需求
- 在Android Market 上裝置要求聲明它的功能
- Android Market用你App的指定的需求來過濾它.(其實就是manifest設定一些屬性)
這樣,只要App裝上去了就絕對能用(一些極端的例子除外)。只要你準確的描述你APP的需求,你不需要擔心使用者為相容問題責備你
技術上過濾某些App
1.在Android Market 上過濾(國內基本上很少會把App傳到Android Market,但瞭解一下總是好的 )
在Android Market上,使用者能看到並下載那些僅僅相容他們裝置的App。Market過濾App的方法之一就是通過feature 來相容,所以Market會在每個app的manifest中檢查
<uses-feature>節點來建立App的feature 需求。Market會根據使用者的裝置可用的feature來比較,然後對每個使用者顯示或者隱藏app。
Android支援許多硬體和軟體的features 。例如指南針,加速感應器,像網路攝影機,動態壁紙等。但不是每一個裝置都支援所有的features
為了方便管理,android定義了feature IDs 。每一個功能有一個匹配的feature ID並且是Android 已經定義好的。比如指南針的在“android.hardware.sensor.compass”中,
動態壁紙的在“android.software.live_wallpapers”中每一個feature ID都有一個匹配的java 常量。你能在運行時使用PackageManager類查詢這個feature 是否支援你的裝置。
將來的版本中Android 還會添加更多的feature ID。
商業過濾某些App
基於商業或者合法理由你可能需要和限制你app的可用性。例如倫敦地鐵顯示火車時刻表的一個APP,不需要被英國以外的使用者使用。其他的程式可能在某些國家由於商業或合法性目
的不允許被使用。Android Market 能提供開發人員由於商業或合法性的原因來過濾你的App。就是不通過manifest來控制App的訪問。
開發人員能在Market出版UI上(以後會有專門的關於Market的詳細描述)來控制存取權限:
步驟1:列出App能使用的國家
步驟2:選擇能訪問App的使用者群
技術上的相容(比如軟硬體支援)是基於.apk檔案中(manifest)的資訊。非技術上的相容(比如地理限制)是基於Market 上使用者介面的處理
結論
Android的目標就是最大化使用者數量並讓我們開發人員受益(但理想和現實還是有差距的)。
轉載請註明出處:http://www.cnblogs.com/tianjian/category/354587.html
歡迎有疑問的同學或者對於寫作風格和便於閱讀有更好的建議請 加群213821767 參與討論。