APK包含100MB以上大资源文件时OpenMP在部分Android设备上崩溃的问题求助
APK包含100MB以上大资源文件时OpenMP在部分Android设备上崩溃的问题求助
大家好,我最近碰到个特别费解的问题,想过来请教下各位大佬:
我的Android项目里用OpenMP做并行计算,代码逻辑本身是没问题的——在大部分设备上运行都很稳定。但只要我把100MB以上的大文件放进APK的assets或者res/raw目录里,部分特定的Android设备就会直接崩溃,而且崩溃就出在OpenMP并行代码执行的环节。
更奇怪的是,只要我把这些大资源文件从APK里移除,再重启一下出问题的设备,之前的崩溃现象就完全消失了,OpenMP代码又能正常跑起来。
我已经做了一些初步排查:
- 确认OpenMP的编译配置是正确的(NDK的OpenMP编译flag都已添加,目标架构和设备完全匹配)
- 单独运行不带大资源文件的APK,在出问题的设备上OpenMP模块运行完全正常
- 大资源文件本身没有损坏,单独读取、使用也没有任何问题
有没有人遇到过类似的场景?会不会是大资源文件占用了过多的内存或虚拟内存,导致OpenMP的运行时环境无法正常创建线程池?或者是APK安装时的资源解压、加载机制和OpenMP的运行时产生了某种冲突?
内容来源于stack exchange
相关产品推荐
相关产品推荐

