天天看點

Android API在不同版本系統上的相容性

随着安卓版本的不斷更新,新的API不斷湧出,有時候高版本的API會在低版本crash的。

如果minSdkVersion設定過低,在build的時候,就會報錯(Call requires API level 17 (current min is 9));

這時候為了編譯可以通過,可以添加 <code>@SuppressLint("NewApi")</code> 或者 <code>@TargeApi(9)注解。</code>

這樣隻是編譯通過,運作時依然會crash的。

為了運作時不報錯, 需要:

判斷運作時版本,在低版本系統不調用此方法

同時為了保證功能的完整性,需要提供低版本功能實作

小結:在使用高于<code>minSdkVersion</code> API level的方法需要:

如果用<code>@TargeApi($API_LEVEL)</code> 可以編譯通過, 那就不使用<code>@SuppressLint("NewApi")</code>;

運作時判斷API level; 僅在足夠高,有此方法的API level系統中,才調用此方法;

保證功能完整性,保證低API版本通過其他方法提供功能實作。

容易忽略的API小細節,好在,ide開發工具,會自動提醒你的。

繼續閱讀