2014-01-23 112 views
0

如果我的目標API是19,而且我的最小值是8,那麼這些函數會聲明它們是在API 11中引入的,並強制我在該方法上添加此類屬性:@TargetApi(Build .VERSION_CODES.GINGERBREAD)minSdk,targetSDK,已棄用 - Android

此方法不適用於API 8手機嗎?

但是,如果該方法表示棄用,它將適用於所有電話?所以如果我在API 11中選擇棄用和引入,我應該選擇棄用嗎?但是如果我願意做更多的工作,我可以檢查手機API並運行適合該手機的方法?要麼,要麼將我的最低API從8改爲11?要查看我的minSDK應該是什麼,我應該測試我的代碼與目標API設置爲低,並且如果它導致錯誤,請將我的minSdk設置爲高於(或解決錯誤..或/或)?

Android手機用戶可以更新其API級別嗎?我沒有安卓系統,Google也沒有透露這一點。

「從Android 3.2(API級別13)開始,上面的大小組已被棄用,您應該使用swdp配置限定符來定義佈局資源所需的最小可用寬度。」 - 這是否意味着您應該使用swdp IF你要麼先檢查他們的手機是否在API12之上,要麼你將你的minSDK設置爲13?

謝謝。

回答

2

此方法不適用於API 8手機嗎?

如果「這種方法」你的意思是「在你打電話,這是在API級別11增加的方法,觸發需要@TargetApi」,那麼,是的,這個方法不會對API等級8的工作, 9或10.它在API級別11中添加,並且在此之前不存在。

但是,如果方法說不推薦使用,它將適用於所有手機?

一般來說,是的。大多數已棄用的方法被標記爲已棄用,因爲有更好的解決方案。有些方法已被棄用,並且由於安全原因或因爲他們不再支持它們而被更改爲無所事事。這些在JavaDocs中通常會被記錄下來。

因此,如果我在API 11中棄用和引入,我應該選擇棄用嗎?

理想情況下,您選擇使用兩者,使用Build.VERSION.SDK_INT來確定您正在運行的API級別。根據用戶的期望,API Level 11+方法通常更加豐富,更符合其不推薦使用的方法。因此,儘可能使用較新的API,並在必要時適度降級到較舊的API(不建議使用或不使用)。

但是,如果我願意做更多的工作,我可以檢查手機API並運行適合該手機的方法?

是的,通過Build.VERSION.SDK_INT。見http://developer.android.com/guide/practices/compatibility.html#Versions

要麼,要麼將我的最小API從8更改爲11?

這將是另一種可能性。

要看到我minSDK應該是什麼,我應該測試我的目標API設置低的代碼,如果它導致的錯誤,把我minSdk高於(或解決errors..either /或)?

一般來說,您可以根據市場選擇您的最低SDK級別。現在,very few devices run API Level 8 or 9, and not that many run API Level 10。您可能會認爲測試舊設備可能不值得。

Android手機用戶可以更新其API級別嗎?

設備製造商有時會發布更新,並且一些用戶可能會轉向使用ROM mods(例如Cyangenmod)來升級超出製造商的範圍。

我沒有一個Android

我不會走得太遠在Android開發,而不需要購買的設備。仿真器雖然很好,但只是仿真器。

0

@TargetAPI註解並沒有做什麼比隱藏的錯誤越多,你使用需要具有較低API級別的設備上高於X的API方法時,得到:

表示林特應該把這種類型的目標一個給定的API級別,不管項目的目標是什麼。

過時的方法,因爲他們是更好的解決方案在新的API級別通常已經過時。這些新方法在舊版本中尚不存在,因此您必須使用這些設備的棄用方法。使用簡單的if語句來檢查用戶正在使用的API級別,可以選擇適當的方法。

最後,一些設備太老,不會再得到更新。因此,他們的API級別不會改變。