Могу ли я пометить ресурс в своем проекте android как устаревший?


У меня есть библиотека android, для которой я хотел бы отметить некоторые ресурсы как устаревшие. Чертежи, размеры, длительность... Я где-то читал, что я мог бы добавить deprecated="deprecated" к определению ресурса, но это, похоже, ничего не дает.

В Android R вы можете видеть такие вещи, как

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

Я пытаюсь создать нечто подобное, редактируя длительность.значение XML.xml или даже public.XML...

Спасибо!

2 5

2 ответа:

Короткий ответ: Невозможно.

@deprecated теги используются источником Android внутри комментариев, как это можно увидеть в fw / base core / res / values/attrs.xml (см. строку 3427 для автотекста, как указано в исходном сообщении), в fw/base core/res/values/public.xml и в других местах по всему проекту, но похоже, что инструменты сборки, используемые для построения приложений, просто пропускают все комментарии, что означает, что теги аннотации также пропускаются в процессе заставить этот метод потерпеть неудачу.

Пример использования устаревших аннотаций на основе Android source:

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

То, что я делаю, - это просто добавляю утверждение TODO. Он не помечает ресурс, но ключевое слово doc TODO действительно отображается в Git и как метки в канаве. Надеюсь, этих предупреждений будет достаточно, чтобы удержать вас и других от его использования.

Но не всегда. Как мы знаем, @Deprecated по сути является стоп-гэпом, пока что-то не будетдействительно удалено навсегда и код не будет очищен должным образом.

Вот пример фигуры.xml-файл, который я больше не использую (и хочу @Возражать).

<?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>