"android:" 和 "attr" 之间的真正区别是什么?

what is the real difference between "android:" and "attr"?

当我尝试使用 activity_main.xml 中的某些资源时

    android:minHeight="?android:actionBarSize"
    android:background="?attr/colorPrimary"

我发现了一些我无法 understand.I 知道 "android:" 意味着 系统级属性 当 XML 解析器读取文档时, "attr" 表示我的主题中的属性(对吗?),但是为什么某些属性要添加包名称 "android:",虽然有相同的属性?比如我可以在 styles.xml 中这样定义属性

    <item name="colorPrimaryDark">@color/purple</item>

但我也可以定义像

这样的属性
    <item name="android:colorPrimaryDark">@color/purple</item>

我的英语很差,所以我还没解释我想弄清楚的东西。

(来自 this 回答)

在 ID 前加上问号表示您想要访问在样式主题中定义的样式属性,而不是对该属性进行硬编码,如引用样式属性中所述。

更具体地说,?意味着额外的间接级别。将其视为取消引用主题属性以获取它指向的资源,而不是引用属性本身。您会看到 ?android:attr/foo