Rk-内置应用作为系统Launcher-内置APK-拷贝文件-替换开机动画

这里通过RK平台内置HOME 程序来讲解RK平台内置应用相关知识点


前言

  • 以RK576 Android15 平台为例,来实现内置第三方应用作为系统HOME 程序;
  • 这里面涉及到RK平台内置相关的几个知识点,整理出来,方便后续开发;

一、需求-场景

客户有自己的LAUNCHER,现在要用客户的LAUNCHER 作为HOME要应用启动程序。

场景:
大量的定制产品,本身有自己的LAUNCHER 程序的,现在要用客户的HOME 程序来作为系统默认的HOEM 程序。

二、参考资料

MTK平台-内置应用作为系统Launcher 这是之前MTK为例,详细说明了第三方作为系统LAUNCHER 的一个案例。

可以参考:

  • 一些思想、方法,比如都需要将系统默认的Launcher3 去HOME属性
  • 既然是内置,那么如何内置,RK平台和MTK 两个完全不一样的,需要对比看看

以下提供其它部分参考资料,方便在不明白的时候可以查阅资料,在实现需求过程中,每一步要怎么实现。

三、内置应用作为系统LAUNCHER-HOME程序

这里以RK3576 为例,来说明内置步骤

1、默认Launcher去掉HOME属性

就是把系统默认的Launcher3 的HOME属性去掉。 这个根据实际项目情况,配置的Launcher 不一样,源码去掉的位置也不一样了。
路径:\packages\apps\Launcher3\quickstep\AndroidManifest-launcher.xml
<category android:name="android.intent.category.HOME" /> 配置拿出来,去掉。
在这里插入图片描述

2、内置应用到不可卸载区

在RK 源码目录中:\device\rockchip\rk3576\rk3576_u\preinstall\ 放置自己的HOME 应用程序,如下:

放置内置的应用apk 软件

在这里插入图片描述

配置编译脚本-Android.mk

LOCAL_PATH := $(my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := YuShi_D_OS_1.0_20251202
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT_ODM)/bundled_persist-app
LOCAL_SRC_FILES := $(LOCAL_MODULE)$(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_DEX_PREOPT := false
LOCAL_DONT_CHECK_MODULE := true
LOCAL_ENFORCE_USES_LIBRARIES := false
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_JNI_SHARED_LIBRARIES_ABI := arm64
LOCAL_PREBUILT_JNI_LIBS := \
	lib/arm64/libmmkv.so\
	lib/arm64/libBugly_Native.so\

include $(BUILD_PREBUILT)

配置库文件

在这里插入图片描述

3、默认授权-针对第三方应用无systemuid-自动授权

比如如下,第三方应用涉及到需要权限,作为系统Launcher后,需要自动给应用授权的 。比如如下,没有默认授权,应员工起来之后就是需要各种授权,影响体验了。
在这里插入图片描述

那么就默认授权一次吧:

/frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java

在这里插入图片描述

填写自己的包名,主动调用一次:对于 输入法一定是需要默认授权的。

四、相关知识点 - preinstall-preinstall_del_forever-preinstall_del

在定制客化产品中,对于RK平台,也都有预装apk的,有内置需求的不同要求,如下;

  • 应用可以卸载
  • 应用可以卸载 但是恢复出厂设置后要求可恢复
  • 应用不可卸载
    所以不同的应用类型和客户不同的需求类型有对应的预置方式。

不同预置方式 -对比说明

特性维度preinstallpreinstall_del_foreverpreinstall_del
中文含义不可卸载预装可卸载预装可卸载但可恢复预装
用户权限不可卸载(无卸载按钮)可正常卸载(如普通应用)可正常卸载
恢复机制恢复出厂设置依旧存在恢复出厂设置不再出现(已“永久删除”)恢复出厂设置会重新出现
应用性质系统核心应用、厂商关键服务纯粹的商业合作第三方应用重要的合作或推荐应用
存储位置通常安装在/system/app或/system/priv-app(系统分区)首次开机后安装到/data/app(用户数据分区),卸载后即删除。安装包在系统分区,首次安装到用户分区,卸载后包仍在,恢复出厂时重装。

不同预置方式-小结

文件夹对厂商/渠道的价值对用户的体验
preinstall固化核心服务与生态,保障基础体验和商业控制。负面为主(无法移除的累赘),但部分核心应用有必要。
preinstall_del_forever实现预装收入,同时遵守“可卸载”的合规要求,模式简单。相对友好,给予用户清理权限。
preinstall_del在获得预装收入的同时,确保该应用在设备生命周期内长期存在,最大化后续价值。较为反感,感觉应用“阴魂不散”,剥夺了完全清理设备的自由。

五、资源配置-配置文件的思考

    做过MTK 或者 阅读过我相关MTK 内置文章或者其它文章,对于 新增应用、新增属性 在哪个文件里面新增,之前都有相关介绍的。 其实换一个平台RK ,到底都是一样的,系统都有相关的部分参考。
这里把知识点总结出来,无外乎三个目的:

  • 方便更加高效的配置自己的 各种类型的应用apk
  • 添加、修改、新增 一个系统属性更加方便
  • 添加各种库文件、拷贝 更加高效、方便

1、 添加属性

/device/rockchip/rk3576/rk3576_u/rk3576_u.mk

如下:
在这里插入图片描述
在这里插入图片描述

2、内置应用配置

上面已经讲解了内置不同类型应用方式,创建不同的文件夹,放到不同文件夹下即可:如下:

在这里插入图片描述
现在有个问题,你的应用可能涉及到库文件、等,那么就需要配置文件

配置文件preinstall:preinstall.mk

在这里插入图片描述

配置文件preinstall_del:preinstall.mk

在这里插入图片描述

配置文件preinstall_del_forever:preinstall.mk

按照如上经验,按需配置即可
在这里插入图片描述

3、拷贝脚本配置

如开机动画、脚本、各种文件拷贝:
路径:\device\rockchip\common\device.mk

如下看部分内容配置:多么属性的脚本内容呀
在这里插入图片描述

4、开机动画-logo配置

开机动画bootanimation.zip 配置

如上已经说明了属性配置 ,里面就有开机动画的配置,如下:
所以看机动画路径:\device\rockchip\common\bootanimation.zip

在这里插入图片描述

uboot-kernel Logo 配置

这里直接给结论:/kernel-6.1/logo.bmp 和 /kernel-6.1/logo_kernel.bmp 如下所示: 在这里插入图片描述

总结

  • 这里以RK平台3576 Android15 为例,内置HOME程序涉及到的知识点,对比MTK 看看,项目中常见的一个需求,这里小结。
  • 内置应用,特别是第三方应用、输入法内置一定涉及到权限默认的,这也是一个特别重要的知识点
  • 对于RK平台不同的内置方案,按客户需求实际配置
  • 对于配置文件:拷贝、开机动画、开机LOGO 、属性配置 等常规的需求开发,这里也关联性进行了小结
  • 这里以RK3576-Android12 为例,其实RK 平台,其它Android版本 的配置方式、内置apk 方法 基本一直,路径不一致而已,具有一定的参考意义。
一种基于有效视角点方法的相机位姿估计MATLAB实现方案 该算法通过建立三维空间点与二维图像点之间的几何对应关系,实现相机外部参数的精确求解。其核心原理在于将三维控制点表示为四个虚拟基点的加权组合,从而将非线性优化问题转化为线性方程组的求解过程。 具体实现步骤包含以下关键环节:首先对输入的三维世界坐标点进行归一化预处理,以提升数值计算的稳定性。随后构建包含四个虚拟基点的参考坐标系,并通过奇异值分解确定各三维点在该基坐标系下的齐次坐标表示。接下来建立二维图像点与三维基坐标之间的投影方程,形成线性约束系统。通过求解该线性系统获得虚拟基点在相机坐标系下的初步坐标估计。 在获得基础解后,需执行高斯-牛顿迭代优化以进一步提高估计精度。该过程通过最小化重投影误差来优化相机旋转矩阵和平移向量。最终输出包含完整的相机外参矩阵,其中旋转部分采用正交化处理确保满足旋转矩阵的约束条件。 该实现方案特别注重数值稳定性处理,包括适当的坐标缩放、矩阵条件数检测以及迭代收敛判断机制。算法能够有效处理噪声干扰下的位姿估计问题,为计算机视觉中的三维重建、目标跟踪等应用提供可靠的技术基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野火少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值