tuyoogame / YooAsset

unity3d resources management system
https://www.yooasset.com/
Apache License 2.0
2.41k stars 469 forks source link

安卓初始化缓慢问题 #281

Open slisten opened 5 months ago

slisten commented 5 months ago
image

安卓单机模式,初始化缓慢,每次启动都通过webRequest加载version和清单文件,查询内置版本号都需要两百多毫秒

gmhevinci commented 5 months ago

单机模式考虑将清单拷贝到沙盒内

slisten commented 5 months ago

单机模式考虑将清单拷贝到沙盒内

麻烦问下预计啥时候添加这个支持呢

gmhevinci commented 5 months ago

预计这周末

cylemonvip100 commented 5 months ago

请问该问题有进展了吗?等待更新

gmhevinci commented 5 months ago

单机模式考虑将清单拷贝到沙盒内

麻烦问下预计啥时候添加这个支持呢

我想确认下,你们安卓打包的选项是否设置了Bunlde文件不压缩。

android {
   ...
   aaptOptions {
       noCompress 'bundle' // or whatever extension you use
   }
}
gmhevinci commented 5 months ago

可以参考下面的链接:https://blog.csdn.net/qq_27831161/article/details/97128954

slisten commented 5 months ago

单机模式考虑将清单拷贝到沙盒内

麻烦问下预计啥时候添加这个支持呢

我想确认下,你们安卓打包的选项是否设置了Bunlde文件不压缩。

android {
   ...
   aaptOptions {
       noCompress 'bundle' // or whatever extension you use
   }
}

目前是使用的unity直接打包,默认是不压缩的,还有一点要同步的是,之前的测试查询内部版本号需要两百多毫秒,有部分的原因是在启动的时候去初始化的package,启动第一帧耗时比较长,可能第一帧包括其他库的逻辑。但是我觉得这部分应该还可以优化,毕竟对于一些轻量级游戏启动速度很重要

gmhevinci commented 5 months ago

单机模式考虑将清单拷贝到沙盒内

麻烦问下预计啥时候添加这个支持呢

我想确认下,你们安卓打包的选项是否设置了Bunlde文件不压缩。

android {
   ...
   aaptOptions {
       noCompress 'bundle' // or whatever extension you use
   }
}

目前是使用的unity直接打包,默认是不压缩的,还有一点要同步的是,之前的测试查询内部版本号需要两百多毫秒,有部分的原因是在启动的时候去初始化的package,启动第一帧耗时比较长,可能第一帧包括其他库的逻辑。但是我觉得这部分应该还可以优化,毕竟对于一些轻量级游戏启动速度很重要

你把 version bytes hash等格式添加进去。 image

slisten commented 5 months ago

单机模式考虑将清单拷贝到沙盒内

麻烦问下预计啥时候添加这个支持呢

我想确认下,你们安卓打包的选项是否设置了Bunlde文件不压缩。

android {
   ...
   aaptOptions {
       noCompress 'bundle' // or whatever extension you use
   }
}

目前是使用的unity直接打包,默认是不压缩的,还有一点要同步的是,之前的测试查询内部版本号需要两百多毫秒,有部分的原因是在启动的时候去初始化的package,启动第一帧耗时比较长,可能第一帧包括其他库的逻辑。但是我觉得这部分应该还可以优化,毕竟对于一些轻量级游戏启动速度很重要

你把 version bytes hash等格式添加进去。 image

添加到哪呢,目前这些文件都在包内的StreamingAssets

gmhevinci commented 5 months ago

单机模式考虑将清单拷贝到沙盒内

麻烦问下预计啥时候添加这个支持呢

我想确认下,你们安卓打包的选项是否设置了Bunlde文件不压缩。

android {
   ...
   aaptOptions {
       noCompress 'bundle' // or whatever extension you use
   }
}

目前是使用的unity直接打包,默认是不压缩的,还有一点要同步的是,之前的测试查询内部版本号需要两百多毫秒,有部分的原因是在启动的时候去初始化的package,启动第一帧耗时比较长,可能第一帧包括其他库的逻辑。但是我觉得这部分应该还可以优化,毕竟对于一些轻量级游戏启动速度很重要

你把 version bytes hash等格式添加进去。 image

添加到哪呢,目前这些文件都在包内的StreamingAssets

你看下链接里的教程:https://blog.csdn.net/qq_27831161/article/details/97128954

slisten commented 5 months ago

我们是直接使用unity出的apk,没有出gradle

cylemonvip100 commented 5 months ago

我们也是该问题,第一次初始化package需要较长的时间,1个需要接近1秒,而我们游戏在启动的时候,有3个package需要初始化,大概3秒左右的卡顿,明显的体验不好,麻烦尽快处理一下。

另外关于上述回复,我们直接使用Unity命令行进行打包,未导出Android工程,期待快速解决,谢谢。

gmhevinci commented 5 months ago

package初始化的耗时,主要是三分部。

  1. IO耗时(安卓平台StreamingAssets目录压缩,在读取的时候需要解压会增加耗时)
  2. 清单解析耗时(和清单大小有关,可以检测主资源列表是否合理,以及AB列表是否合理(打包粒度))
  3. 本地缓存系统初始化(和本地缓存文件数量有关以及校验级别,VerifyLevel设置为Low可以增加速度,但是文件损坏会增加运行时报错风险)
cylemonvip100 commented 4 months ago

关于:单机模式考虑将清单拷贝到沙盒内

请问该话题目前有进展吗?大概什么时候能使用到?谢谢