【问题标题】:Does the Android Support Library default to the native libraries on the latest Android Version?Android 支持库是否默认为最新 Android 版本上的本机库?
【发布时间】:2014-12-12 14:37:46
【问题描述】:

在启动任何 Android 项目时,开发人员必须在使用支持库或原生库之间做出选择。

在 Lollipop 上使用支持库时会发生什么?如果我使用 ToolBar support library object,并且它在 Lollipop 设备上运行,库是否会自动默认为 native implementation of the Toolbar

我假设原生库比支持库更高效。

编辑:现在以 Toolbar 为例,而不是 RecyclerView

【问题讨论】:

  • 我在 API 5 中没有看到 RecyclerView 还是我弄错了?
  • @pskink 以工具栏为例。
  • @DerGolem 谢谢!如果您将其发布为答案,我会接受它
  • @DerGolem 你的陈述很遗憾是错误的

标签: android android-support-library android-5.0-lollipop android-recyclerview


【解决方案1】:

在 Lollipop 上使用支持库时会发生什么?如果我使用 ToolBar 支持库对象,并且它在 Lollipop 设备上运行,那么库是否会自动默认为 Toolbar 的本机实现?

不,它没有,您可以通过查看the source code for the backported Toolbar 来判断。当前 appcompat-v7 工件中的任何内容都不会委托给本机实现。

Android 支持包非常庞大,不同的东西会有不同的表现。最好的经验法则是对于以 Compat 结尾的 Java 类(例如,NotificationCompat),该类将在可能的情况下根据 API 级别委托给本机实现,并且将实现反向移植或简单地“不- op" 不存在本机实现的请求。而且,尽管有这个名字,AppCompat 并不是一个 Java 类,这就是为什么它仍然符合这个经验法则。 :-)

我假设原生库比支持库更高效。

不适用于“高效”一词的大多数定义。它将节省 APK 大小。在速度和内存消耗方面,不太可能有任何显着差异。

在启动任何 Android 项目时,开发人员必须在使用支持库或原生库之间做出选择。

如前所述,“支持库”非常庞大,应用可能会混合使用 Android 支持包中的内容和其他内容。例如,应用可以在使用原生操作栏和片段时使用NotificationCompat(例如,改进对 Android Wear 和 Android 5.0 锁屏通知的支持)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多