编译用于我的应用程序的新Android API

时间:2012-11-05 18:09:56

标签: android api

举一个简单的例子{API}提供了String.isEmpty()

如果我想在我的应用程序中使用此方法,该方法的目标API水平低于9,那我该如何处理呢?

是否像查找此方法的源代码并导入类/方法一样简单? - 也许用我自己的包名重命名以供参考?

我可以编译一个我希望使用的新API类的独立jar吗?

这是support library对所选API的作用吗?

我是否完全误解了Android框架的一些基本基础知识?如果我有,请好,也许给我一些阅读材料的链接!

This post提出了类似的问题,但答案并未解决上述所有问题。

我提前感谢你。

1 个答案:

答案 0 :(得分:2)

  

是否像查找此方法的源代码并导入类/方法一样简单? - 也许用我自己的包名重命名以供参考?

对于像这样简单的事情,它就像将实现复制并粘贴到某个地方的某个静态方法一样简单。您无法在数百万台设备上更改String的实施方式,因此您无法将isEmpty()置于API级别8或更低级别的String上。但是,您可以使用静态StringCompat方法创建一个isEmpty()类,该方法可以借鉴您在源代码中看到的实现。

  

我可以编译一个我希望使用的新API类的独立jar吗?

这取决于“新的API类”是什么。

  

这是支持库对选定API的作用吗?

排序。在某些情况下,Android支持包还有其他修改,以允许代码在旧设备上运行。例如,在片段的本机API Level 11实现中,片段可以与任何Activity一起使用;在Android支持包中,片段与FragmentActivity绑定。

Android支持包中的其他代码段可能是其原生对应代码的直接克隆,但包和/或类名更改除外。