Java 根据活动及其分类,AndroidManifest.xml的真正用途是什么?
Android清单是否负责在应用程序启动后立即实例化所有活动和其他组件?或者,当应用程序已经运行时,它们是否都按需要实例化 我的假设是,Android清单会在应用程序启动时获取所有组件声明并创建每个组件的实例,这样当最终使用Java 根据活动及其分类,AndroidManifest.xml的真正用途是什么?,java,android,Java,Android,Android清单是否负责在应用程序启动后立即实例化所有活动和其他组件?或者,当应用程序已经运行时,它们是否都按需要实例化 我的假设是,Android清单会在应用程序启动时获取所有组件声明并创建每个组件的实例,这样当最终使用startActivity(someIntent)调用它们时,它们就可以继续执行onCreate(),onStart()等。但是,组件的实例已经存在 无论如何,如果不是这样的话,它到底是如何工作的?组件及其透视类何时实例化?否,清单仅告诉系统您的应用程序有哪些可用组件以及它将
startActivity(someIntent)
调用它们时,它们就可以继续执行onCreate()
,onStart()
等。但是,组件的实例已经存在
无论如何,如果不是这样的话,它到底是如何工作的?组件及其透视类何时实例化?否,清单仅告诉系统您的应用程序有哪些可用组件以及它将响应的
Intent
对象的类型。组件(活动
、服务
、广播接收器
和内容提供者
)在需要时按需创建。这是Android处理应用程序组件和创建方式的一个更好的背景:
这里有一些关于它如何为应用程序创建流程的附加信息:感谢您的时间和评论。但是,我已经检查过了,它仍然没有回答我的问题。谢谢你的回答和你提供的信息。那么,根据您所说的,在组件(如活动)的实例化过程中,系统在什么时候检查android清单?它实际上获取清单内容并跟踪框架内运行的PackageManagerService中的信息。例如,当有东西调用
startActivity()
时,它实际上是在向框架内运行的ActivityManager服务发送请求。该服务与PackageManagerService一起查找匹配的应用程序(基于Intent
内容和安装的应用程序IntentFilter
s)它还检查安全参数,并假设找到了匹配项,那么AcitivityManager服务将启动必要的应用程序,并提供意图
。非常感谢,这正是我要建议的,作为我自己问题的答案。可以肯定的是,“查找匹配的应用程序”中的“应用程序”指的是任何组件及其名称,对吗?几乎是。它是包名+签名证书的组合,使它成为一个应用程序。这些组件只是应用程序的一部分。激活后,系统会自动创建每个组件,并在同一进程中运行。请注意,您也可以同时拥有同一组件的多个实例(通常与活动一起发生)。好的,我明白了,但它在什么时候检查AndroidManifest.xml中指定的单个组件的实际名称,以验证是否可以使用它?我假设在ActivityManagerService的帮助下,在同一个startActivity()方法中,您只提到它检查应用程序本身及其包含的包。很抱歉问了这么多问题,我只想尽可能把事情弄清楚,谢谢。