Android:Widget、AppWidget、Fragment、Activity 和 App - 有什么区别?

Android: Widget, AppWidget, Fragment, Activity and App - What's the difference?

我在 Java 和 C# 方面有很多经验,但我是 Android 的新手。我主要使用 C#,因为我迷恋 Control 层次结构。我喜欢 ontology 的即插即用功能。我正在尝试理解这个新范例中的 ontology,我可能得到了一些错误信息。

关于App,那应该是最大的组成部分。在 App 中,可能有多个 Activity。一个activity可以显示多个Fragments。 AppWidgets 似乎是一种特殊情况,因为它们作为 App 的一个组件存在,但会单独显示。我被告知您可以扩展 Buttons 或 ProgressBar 来创建您自己的组件,这些组件又被称为 Widgets。

正如我所说,我可能完全错了。理想情况下,我想创建自己的小部件,我可以将其放在 Fragment、AppWidget 或 Activity 上;我可能会将其中的任何一个组成一个应用程序。我发现的所有在线资源都只在 AppWidget 的意义上讨论 Widget?我得到的信息不正确吗?任何人都可以澄清 ontology 吗? 谢谢

"Widget" 是一个有点重载的术语。如果您改为在 "custom Views" 上搜索教程,您的运气可能会更好。我将在底部简要列出各种术语及其含义。

自定义视图几乎是扩展 View class(或其任何子classes)的任何东西,而不是框架的一部分。自定义视图可以用于任何需要典型视图的地方,例如在布局文件中或直接在 Java 中构建。需要注意的一件事:只有某些视图可以在 AppWidget 中使用,因为它们 运行 在您的应用程序之外的另一个进程中。这意味着您的自定义视图不能在 AppWidget 中使用。根据我的经验,这往往不太重要。


App:一个应用程序。包含在 <application> 标签内的清单中定义的组件。

Activity:四个应用程序组件之一。几乎总是有一个关联的 UI,由 View 的层次结构组成。

Fragment:一个框架 class,有助于模块化您的应用程序代码和 UI。片段可以附加到 Activity 并且可以为 Activity 的 View 层次结构贡献一些 UI。它们完全是可选的;您不必在您的应用程序中使用 Fragments,并且您可以附加 Fragment 而无需它向 Activity.

贡献任何 UI

视图:UI 组件,例如文本 (TextView) 或图像 (ImageView)。这些也称为 "widgets",您可能会注意到框架 classes 位于 android.widget 包中。一些视图包含其他视图,因此您可以构建一个 UI 层次结构;这些将扩展 ViewGroup 并被称为 "view groups" 或 "layouts" 或多或少可以互换。

AppWidget:用户可以添加到他或她的主屏幕的东西。这是由应用程序提供的,但不是前面提到的 4 个应用程序组件之一(它是由应用程序组件管理,即[=18 的特殊子class =]).大多数人通俗地称这些为 "widgets",因为它更短,启动器也使用该术语,从而使用户适应它。