Android14 OTA升级

因Vendor Freeze的缘故,若开启Non-AB OTA, 则会遇到交叉编译vendor和system的增量升级包时需要检查fingerprint而导致编译失败,从而无法做到增量升级包升级。高版本一般都是打开AB模式。

AB 和 non AB 切换相关宏

  • /vendor_ap_s0/device/mediatek/system/mssi_64_cn/SystemConfig.mk
MTK_AB_OTA_UPDATER = yes
  • /vendor_ap_s0/device/mediateksample/k62v1_64_bsp/ProjectConfig.mk
MTK_AB_OTA_UPDATER = yes
  • /vendor_ap_s0/vendor/mediatek/proprietary/bootable/bootloader/lk/project/k62v1_64_bsp.mk
MTK_AB_OTA_UPDATER = yes
  • /vendor_ap_s0/vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/k62v1_64_bsp/k62v1_64_bsp.mk
MTK_AB_OTA_UPDATER=yes
  • /vendor_ap_s0/kernel-4.19/arch/arm64/configs/k62v1_64_bsp_debug_defconfig
// 非必要
CONFIG_MTK_AB_OTA_UPDATER=yes

编译

  • 编译system(在system_mssi_u0目录下)
source build/envsetup.sh && export OUT_DIR=out_sys && lunch sys_mssi_64_cn-userdebug && make sys_images
  • 编译vendor(在vendor_ap_s0目录下)
source build/envsetup.sh && export OUT_DIR=out && lunch vnd_k62v1_64_bsp-userdebug && make vnd_images krn_images
  • 编译load、target包和全量包(在system_mssi_u0目录下)
python out_sys/target
在Unity中,AB(Asset Bundle)是一种资源管理技术,它允许开发者将游戏资产打包成单独的小文件,然后在Android平台上动态地按需加载。以下是加载AB包的基本步骤: 1. **创建Asset Bundle**: 在Unity编辑器中,右键点击Assets目录,选择Create > Asset Bundle,为你的资源创建一个新的AB包。 2. **包含内容**: 将需要打包的内容添加到Asset Bundle,在Inspector窗口中选择要打包的项目资源,并点击"Save". 3. **导出AB包**: 在Project设置 -> Build Settings -> Player 设置,找到Other Settings部分,勾选"Export Asset Bundles for Android"。配置好路径和压缩选项,点击"Export". 4. **加载AB包**: 在Android平台的C#代码中,使用`UnityEngine.ResourceManager.LoadSceneAsync`或`UnityEngine.Object.Instantiate`配合`UnityEditor.AssetBundle.LoadFromFileAsync`函数加载AB包。例如: ```csharp IEnumerator LoadAssetBundle(string path) { UnityWebRequest assetBundleRequest = UnityWebRequest AssetBundle.LoadFromFileAsync(path); yield return assetBundleRequest.SendWebRequest(); if (assetBundleRequest.result == UnityWebRequest.Result.Success) { using (UnityMemoryStream memoryStream = new UnityMemoryStream(assetBundleRequest.downloadHandler.data)) { // 使用Unity's AssetBundle class 解压并加载内容 UnityEngine.AssetBundle bundle = UnityEngine.AssetBundle.LoadFromMemoryStream(memoryStream); // 然后你可以从bundle中加载所需的GameObject或其他资源 GameObject obj = bundle.LoadAsset<GameObject>("MyObject"); bundle.Unload(false); // 关闭不再需要的bundle } } else { Debug.LogError("Failed to load asset bundle: " + assetBundleRequest.error); } } ``` 5. **异步处理**: 加载过程通常是异步的,所以记得处理请求结果并在成功时操作资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值