gpt4 book ai didi

android - android 在启动应用程序时执行什么过程以及它在运行时如何与 R 类交互?

转载 作者:行者123 更新时间:2023-11-30 00:20:30 24 4
gpt4 key购买 nike

最近在学习Android的资源管理时,遇到了一些有趣的问题。

1)从Android运行时的内部角度来看,android操作系统启动一个已安装的应用程序需要经过哪些步骤?

2) R 类- R 类是资源静态数值的容器。但最后它是一个整数集合。 android 如何在内部将这些整数映射到资源?

setContentView(R.layout.activity_main); 

这里setContentView()传递的是一个int。但这映射到 activity_main.xml 文件。

字符串等资源也是如此。运行时资源文件、代码和 R 类之间的联系似乎有点困惑。

最佳答案

1) From the internal perspective of Android runtime, what steps are taken by android OS to start an installed application?

如果应用程序在安装后第一次启动,android 系统必须执行以下 3 个步骤
1.加载并启动应用程序
2.立即显示一个空白的启动窗口应用启动后&
3.为应用创建进程。
这些都是android系统的职责。

一旦 Android 运行时通过上述步骤创建了应用程序进程,那么控制权将由应用程序进程本身执行,以执行进一步的步骤以使应用程序及其组件完全可用于执行。这些包括以下内容,
1. 创建应用对象。
2.启动主线程或UI线程。
3. 创建主要 Activity 实例。此 Activity 通常具有用户在启动后看到的应用程序 UI
4. 夸大 Activity 中包含的观点。这包括 ViewGroup/view 层次结构中的所有 View
5. 布局屏幕。
6. 执行初始抽奖。

2) R class- R class is a container for static numeric values for resources. But at the end its a collection of integers. How android maps these integers to resources internally?

Android Build 系统有很多工具,其中 1 个叫做 aapt 工具,这个工具是第一个生成 R 类的工具,它包含 res/目录中所有资源的资源 ID。对于每种类型的资源,都有一个 R 子类(例如,所有可绘制资源的 R.drawable),对于该类型的每种资源,都有一个静态整数(例如,R.drawable.icon).

现在您应用程序的所有非代码内容都在 R.java 中。 Android 资源系统跟踪所有与应用程序关联的非代码 Assets ,这是管理所有资源 ID 映射的内部系统,除此之外,Android 框架还有一个名为 Resources 的类,您可以使用此类访问应用程序的资源,这些资源由 android 构建系统打包到 R.java 中。

您通常可以使用 getResources() 获取与您的应用程序关联的 Resources 实例。

关于android - android 在启动应用程序时执行什么过程以及它在运行时如何与 R 类交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46388865/

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