一、原生框架介绍

在这里插入图片描述

根据 openvela 技术架构划分,原生框架整体属于服务框架层中,涉及模块有应用能力接口、应用管理框架等等

二、应用框架

基于 vela 系统,应用框架负责运营应用的引擎和环境,支持系统服务和能力,使应用正常运营在 IoT 设备上。

2.1 核心服务框架

核心服务框架属于 System Server 组件,它负责启动和管理多个系统服务,包含的系统服务有:

  1. 应用管理服务
  2. 包管理服务
  3. 窗口管理服务
  4. 亮度管理服务

2.1.1 应用管理服务

应用管理服务,即 Activiy Manager Service(AMS),也称为活动管理服务,该模块负责管理应用的生命周期、任务和活动的调度。
主要特性包括:

  • 活动生命周期管理:AMS 负责管理应用程序中活动的生命周期,包括创建、启动、暂停、恢复和销毁活动。
  • 任务管理:AMS 管理应用程序的任务和堆栈,包括任务的切换和调度,确保用户体验的流畅性。
  • 进程管理:AMS 负责应用程序进程的启动、停止和监控,确保系统资源的有效利用。
  • Intent 处理:AMS 处理应用程序之间的 Intent 通信,使得不同应用可以相互启动活动和服务。
  • 权限管理:AMS 参与权限检查,确保应用在启动活动时符合系统安全要求。
  • 应用程序状态跟踪:AMS 跟踪应用程序的状态,如前台、后台、停止等,并根据状态进行适当的资源分配。
  • 多窗口支持:AMS 提供多窗口模式下的活动管理,允许多个应用同时显示。
  • 后台任务限制:AMS 实施后台任务和服务的限制,优化系统性能和电池使用。
  • 服务和广播管理:AMS 还负责管理服务和广播接收器的生命周期,确保系统的响应性和稳定性。

例: 启动一个新的活动

Intent intent;
makeIntent(intent);
intent.setFlag(intent.mFlag | Intent::FLAG_ACTIVITY_NEW_TASK);
android::sp<android::IBinder> token = new android::BBinder();
ActivityManager am;
am.startActivity(token, intent, -1);

例:停止一个活动

Intent intent;
makeIntent(intent);
ActivityManager am;
am.stopActivity(intent, intent.mFlag);

2.1.2 包管理服务

包管理服务,即 Package Manager Service(PMS),主要提供包安装功能、提供包信息查询能力及提供包卸载能力。

例: 使用 pm 安装与卸载应用

#命令形式
pm install [packagename]

#源码实现
#安装
#include "pm/PackageManger.h"
PackageManager pm;
InstallParam parms;
pm.installPackage(parms);

#卸载
#include "pm/PackageManger.h"
PackageManager pm;
UninstallParam parms;
pm.uninstallPackage(parms);

例: 查找已安装的应用列表

#命令形式
pm list

#源码实现
#include "pm/PackageManger.h"
PackageManager pm;
std::vector<PackageInfo> pginfos;
pm.getAllPackageInfo(&pginfo);

2.1.3 窗口管理服务

窗口管理服务,即 Window Manager Service(WMS),主要提供应用的输入管理、输出管理和显示管理。
如应用侧窗口管理客户端,运行于应用用户空间,负责应用内的窗口管理和渲染,并将渲染画面传递给服务端。
主要功能包括:

  • 窗口属性和风格管理:包括窗口位置、大小和透明度等属性的调整
  • 窗口生命周期管理:包括窗口的创建、显示、隐藏和删除
  • 事件监听管理
  • 窗口过渡动效管理
Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐