举一个简单的例子{API}提供了String.isEmpty()。
如果我想在我的应用程序中使用此方法,该方法的目标API水平低于9,那我该如何处理呢?
是否像查找此方法的源代码并导入类/方法一样简单? - 也许用我自己的包名重命名以供参考?
我可以编译一个我希望使用的新API类的独立jar吗?
这是support library对所选API的作用吗?
我是否完全误解了Android框架的一些基本基础知识?如果我有,请好,也许给我一些阅读材料的链接!
This post提出了类似的问题,但答案并未解决上述所有问题。
我提前感谢你。
答案 0 :(得分:2)
是否像查找此方法的源代码并导入类/方法一样简单? - 也许用我自己的包名重命名以供参考?
对于像这样简单的事情,它就像将实现复制并粘贴到某个地方的某个静态方法一样简单。您无法在数百万台设备上更改String
的实施方式,因此您无法将isEmpty()
置于API级别8或更低级别的String
上。但是,您可以使用静态StringCompat
方法创建一个isEmpty()
类,该方法可以借鉴您在源代码中看到的实现。
我可以编译一个我希望使用的新API类的独立jar吗?
这取决于“新的API类”是什么。
这是支持库对选定API的作用吗?
排序。在某些情况下,Android支持包还有其他修改,以允许代码在旧设备上运行。例如,在片段的本机API Level 11实现中,片段可以与任何Activity
一起使用;在Android支持包中,片段与FragmentActivity
绑定。
Android支持包中的其他代码段可能是其原生对应代码的直接克隆,但包和/或类名更改除外。