Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据活动及其分类,AndroidManifest.xml的真正用途是什么?_Java_Android - Fatal编程技术网

Java 根据活动及其分类,AndroidManifest.xml的真正用途是什么?

Java 根据活动及其分类,AndroidManifest.xml的真正用途是什么?,java,android,Java,Android,Android清单是否负责在应用程序启动后立即实例化所有活动和其他组件?或者,当应用程序已经运行时,它们是否都按需要实例化 我的假设是,Android清单会在应用程序启动时获取所有组件声明并创建每个组件的实例,这样当最终使用startActivity(someIntent)调用它们时,它们就可以继续执行onCreate(),onStart()等。但是,组件的实例已经存在 无论如何,如果不是这样的话,它到底是如何工作的?组件及其透视类何时实例化?否,清单仅告诉系统您的应用程序有哪些可用组件以及它将

Android清单是否负责在应用程序启动后立即实例化所有活动和其他组件?或者,当应用程序已经运行时,它们是否都按需要实例化

我的假设是,Android清单会在应用程序启动时获取所有组件声明并创建每个组件的实例,这样当最终使用
startActivity(someIntent)
调用它们时,它们就可以继续执行
onCreate()
onStart()
等。但是,组件的实例已经存在


无论如何,如果不是这样的话,它到底是如何工作的?组件及其透视类何时实例化?

否,清单仅告诉系统您的应用程序有哪些可用组件以及它将响应的
Intent
对象的类型。组件(
活动
服务
广播接收器
内容提供者
)在需要时按需创建。这是Android处理应用程序组件和创建方式的一个更好的背景:


这里有一些关于它如何为应用程序创建流程的附加信息:

感谢您的时间和评论。但是,我已经检查过了,它仍然没有回答我的问题。谢谢你的回答和你提供的信息。那么,根据您所说的,在组件(如活动)的实例化过程中,系统在什么时候检查android清单?它实际上获取清单内容并跟踪框架内运行的PackageManagerService中的信息。例如,当有东西调用
startActivity()
时,它实际上是在向框架内运行的ActivityManager服务发送请求。该服务与PackageManagerService一起查找匹配的应用程序(基于
Intent
内容和安装的应用程序
IntentFilter
s)它还检查安全参数,并假设找到了匹配项,那么AcitivityManager服务将启动必要的应用程序,并提供
意图
。非常感谢,这正是我要建议的,作为我自己问题的答案。可以肯定的是,“查找匹配的应用程序”中的“应用程序”指的是任何组件及其名称,对吗?几乎是。它是包名+签名证书的组合,使它成为一个应用程序。这些组件只是应用程序的一部分。激活后,系统会自动创建每个组件,并在同一进程中运行。请注意,您也可以同时拥有同一组件的多个实例(通常与活动一起发生)。好的,我明白了,但它在什么时候检查AndroidManifest.xml中指定的单个组件的实际名称,以验证是否可以使用它?我假设在ActivityManagerService的帮助下,在同一个startActivity()方法中,您只提到它检查应用程序本身及其包含的包。很抱歉问了这么多问题,我只想尽可能把事情弄清楚,谢谢。