Android API在不同版本系统上的兼容性

随着安卓版本的不断更新,新的API不断涌出,有时候高版本的API会在低版本crash的。

如果minSdkVersion设置过低,在build的时候,就会报错(Call requires API level 17 (current min is 9));

这时候为了编译可以通过,可以添加 @SuppressLint("NewApi") 或者 @TargeApi(9)注解。

这样只是编译通过,运行时依然会crash的。

正确的做法

为了运行时不报错, 需要:

  1. 判断运行时版本,在低版本系统不调用此方法
  2. 同时为了保证功能的完整性,需要提供低版本功能实现

小结:在使用高于minSdkVersion API level的方法需要:

  1. 如果用@TargeApi($API_LEVEL) 可以编译通过, 那就不使用@SuppressLint("NewApi");
  2. 运行时判断API level; 仅在足够高,有此方法的API level系统中,才调用此方法;
  3. 保证功能完整性,保证低API版本通过其他方法提供功能实现。

容易忽略的API小细节,好在,ide开发工具,会自动提醒你的。


上一篇:web前端必须掌握的localStorage


下一篇:python——一些常用的方法类