我可以将我的android项目中的资源标记为已弃用吗?

时间:2014-10-31 21:40:27

标签: android xml android-resources android-library

我有一个安卓库,我想将一些资源标记为已弃用。 Drawables,维度,持续时间......我在某处读到了我可以将deprecated =“deprecated”添加到资源定义但它似乎没有做任何事情。

在Android R中,您可以看到诸如

之类的内容

@java.lang.Deprecated
public static final int autoText = 16843114;

我正在尝试通过编辑durations.xml,values.xml甚至public.xml来生成类似内容......

谢谢!

2 个答案:

答案 0 :(得分:7)

简短回答:不可能。

Android来源注释中使用了

@deprecated标记,因为它可以在fw/base core/res/values/attrs.xml中看到fw/base core/res/values/public.xml(参见原始帖子中提到的自动文本的第3427行),在整个项目的其他地方,但似乎用于构建应用程序的构建工具只是跳过所有注释,这意味着在该过程失败的过程中也会跳过注释标记。

基于Android源的弃用注释的示例用法:

<!-- {@deprecated Use foobar instead.} -->
<string name="foo">abc</string>
<string name="foobar">abcd</string>

答案 1 :(得分:2)

我所做的只是添加一个TODO语句。它没有标记资源,但是doc关键字TODO确实显示在Git中,并作为阴沟中的标记。希望这些警告足以让你和其他人不再使用它。

但并非总是如此。我们知道,@ Deprecated本质上是一个止损,直到真正移除的东西,并且代码被正确清理。

这是我不再使用的shape.xml文件的示例(并且想要@Deprecate)。

<?xml version="1.0" encoding="utf-8"?>
<!--
    Border around card elements.  For now this is used only within the
    cards of the Questionnaire RecyclerView.

    TODO:  This file is obsolete. Use CardView instead.
-->
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <stroke
        android:width="@dimen/tiny_card_margin"
        android:color="@color/colorPrimaryDark" />
    <solid
        android:color="@android:color/white" />
    <corners
        android:radius="4dp" />
</shape>