Android app的启动流程 HarmonyOS 鸿蒙Next

Android app的启动流程 HarmonyOS 鸿蒙Next Android 应用(App)的执行流程可以大致分为启动流程、运行流程和关闭流程。

启动流程

1. 点击应用图标

当用户在主屏幕或应用列表中点击应用图标时,系统会接收到这个点击事件,并开始准备启动相应的应用。

2. 查找应用信息

系统通过应用的包名(Package Name)在系统的应用列表中查找该应用的相关信息,包括应用的入口 Activity、权限要求、资源文件等。

3. 创建应用进程

如果应用还没有对应的进程在运行,系统会为该应用创建一个新的 Linux 进程,并在该进程中加载 Dalvik 虚拟机(早期 Android 版本)或 ART(Android Runtime)运行时环境。

4. 加载应用资源

在新进程中,系统会加载应用的资源文件,如布局文件、图片、字符串等。这些资源文件通常存储在应用的res目录下。

5. 创建 Application 对象

系统会创建应用的Application类的实例。Application类是一个全局的单例类,在应用的整个生命周期中只会创建一次,开发者可以在这个类中进行一些全局的初始化操作,如初始化第三方库、设置全局变量等。

6. 启动入口 Activity

系统会启动应用的入口 Activity(在AndroidManifest.xml文件中通过<intent-filter>标签指定的带有android.intent.action.MAINandroid.intent.category.LAUNCHER的 Activity)。首先会调用 Activity 的onCreate()方法,在这个方法中通常会进行布局的加载和初始化操作;接着调用onStart()方法,使 Activity 可见;然后调用onResume()方法,使 Activity 进入前台并获取焦点,此时用户可以与应用进行交互。

运行流程

1. 处理用户交互

当用户与应用进行交互,如点击按钮、滑动屏幕等,系统会将这些事件传递给相应的 View 或 Activity。View 或 Activity 会通过事件监听器(如OnClickListenerOnTouchListener等)来处理这些事件,并执行相应的逻辑。

2. 数据处理和业务逻辑执行

应用在运行过程中会进行各种数据处理和业务逻辑的执行,如从网络获取数据、对数据进行本地存储、进行计算等。这些操作通常会在后台线程中进行,以避免阻塞主线程,保证应用的流畅性。

3. 界面更新

当数据发生变化或业务逻辑执行完成后,需要更新界面以反映最新的状态。可以通过调用 View 的invalidate()postInvalidate()方法来触发界面的重绘,系统会调用 View 的onDraw()方法来重新绘制界面。

4. 生命周期管理

Activity 在运行过程中会根据不同的情况经历不同的生命周期状态,如onPause()onStop()onRestart()等。例如,当用户打开另一个应用时,当前 Activity 会调用onPause()onStop()方法进入后台;当用户再次回到该应用时,Activity 会调用onRestart()onStart()onResume()方法重新回到前台。

关闭流程

1. 用户主动关闭

当用户按下返回键或在多任务管理器中关闭应用时,系统会开始关闭应用的流程。首先会调用当前 Activity 的onPause()方法,然后调用onStop()方法,最后调用onDestroy()方法销毁 Activity。如果应用中有多个 Activity,系统会依次销毁这些 Activity。

2. 系统回收资源

当系统资源不足时,会自动回收一些处于后台的应用进程以释放内存。在回收进程之前,系统会尝试调用 Activity 的onSaveInstanceState()方法保存 Activity 的状态,以便在下次启动应用时可以恢复到之前的状态。当应用进程被回收后,应用的所有对象和资源都会被释放。


更多关于Android app的启动流程 HarmonyOS 鸿蒙Next的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于Android app的启动流程 HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙Next)中,Android应用的启动流程与在Android系统中有一些不同,主要是由于HarmonyOS的架构和设计理念。以下是鸿蒙Next中Android应用启动的主要步骤:

  1. 应用安装:当用户在设备上安装Android应用时,HarmonyOS会解析APK文件,并生成相应的元数据和资源文件。这些文件会被存储在鸿蒙的文件系统中,以便后续启动时使用。

  2. 启动请求:用户点击应用图标或通过其他方式触发应用启动时,鸿蒙的Launcher会向系统发送启动请求。这个请求会被鸿蒙的应用管理服务(AMS)接收。

  3. 应用管理服务(AMS)处理:AMS会检查应用的权限、依赖关系以及其他启动条件。如果一切正常,AMS会为应用创建一个新的进程,并分配必要的资源。

  4. 进程创建与初始化:鸿蒙的进程管理器会为新进程分配内存、CPU等资源,并加载应用的主Activity。在这个过程中,鸿蒙的ART(Android Runtime)会负责解释和执行应用的字节码。

  5. Activity启动:应用的主Activity会被启动,并调用其onCreate()方法进行初始化。鸿蒙的WindowManager会创建应用的窗口,并将其显示在屏幕上。

  6. 应用运行:应用进入运行状态,用户可以与应用进行交互。鸿蒙的调度器会根据系统的资源情况,动态调整应用的运行优先级,以确保系统的流畅性。

  7. 生命周期管理:鸿蒙会监控应用的生命周期,并在必要时触发相应的回调方法(如onPause()onResume()等),以确保应用的状态与系统的状态保持一致。

总结来说,鸿蒙Next中Android应用的启动流程与Android系统类似,但在资源管理、进程调度和生命周期管理等方面,鸿蒙有其独特的实现方式。这主要是为了适应鸿蒙的分布式架构和多设备协同的设计理念。

回到顶部