gpt4 book ai didi

android - AndroidManifest.xml 中的 Activity 名称是否需要以点开头?

转载 作者:IT老高 更新时间:2023-10-28 21:51:19 26 4
gpt4 key购买 nike

是否需要在 list 文件中以点('.')开头的 Activity 名称。?例如 Activity ContactManager 以“.”开头

<activity android:name=".ContactManager" android:label="@string/app_name">

ContactAdder Activity 在哪里没有点

<activity android:name="ContactAdder" android:label="@string/addContactTitle">

在 ContactManager 示例的 list 文件中 http://developer.android.com/resources/samples/ContactManager/AndroidManifest.html

更新:如果 Activity 名称以 .它被附加到包名成为完全限定名,但如果它不以'.'开头会发生什么

最佳答案

我也很好奇,去安卓源代码里找。

我在 tools/aapt/Resource.cpp 文件中的 platform/frameworks/base 存储库中找到了相关代码。相关函数是fullyQualifyClassName,由massageManifest调用。

它应用的规则在 fullyQualifyClassName 函数内的注释 block 中解释:

// asdf     --> package.asdf
// .asdf .a.b --> package.asdf package.a.b
// asdf.adsf --> asdf.asdf

解释这条规则,我们有:

  1. 如果名称以点开头,请始终以包为前缀。
  2. 如果名称在其他任何地方都有点,请不要添加前缀。
  3. 如果名称根本没有点,也可以在其前面加上包。

所以,回答你的问题:只要其他地方没有点,两种书写 Activity 名称的方式应该具有相同的效果。


另外,massageManifest 函数显示了此规则的应用位置:

  • application 元素中,在 namebackupAgent 属性上。
  • activityservicereceiverprovideractivity-alias 元素,在 name 属性上。
  • activity-alias 元素中,在 targetActivity 属性上。

关于android - AndroidManifest.xml 中的 Activity 名称是否需要以点开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3608017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com