Android的APP运行后台,集成了uni-push,进行消息推送,在后台出现多个APP进程
- 发布:2024-05-25 09:51
- 更新:2024-09-23 14:37
- 阅读:227
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: window11
HBuilderX类型: 正式
HBuilderX版本号: 4.15
手机系统: Android
手机系统版本号: Android 10
手机厂商: 小米
手机机型: xiaomi 12
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
App下载地址或H5⽹址: http://file.jiustech.cn/uploads/soft/cxy3/jsy1.7.0-3_20240518162511.apk
操作步骤:
预期结果:
后台Android的APP只出现一个进程
后台Android的APP只出现一个进程
实际结果:
后台Android的APP只出现多个进程
后台Android的APP只出现多个进程
bug描述:
Android的APP在后台显示多进程,iOS版APP正常
吾逍遥 (作者) - 北京九思自然科技
因为多进程上架vivo已被拒,官方没回复,没办法只能自己排查了,类似问题安卓、鸿蒙打开uni一键登录后,后台出现多个进程,下面问题解决只是我的项目,可以参考
1、使用uni-push,按上面文章中怀疑是推送导致,移除uni-push和mainfest中push模块,重新打包,仍然多进程
2、从百度上查询Android多进程,说组件中android:process可另开进程,使用jadx反编译apk,查询只有个推打包中才有,移除个推后没有了,又怀疑问题出现在引用原生组件上,移除所有原生组件,再重新打包,仍然多进程
3、没办法了,怀疑uniapp本身的问题,使用官方hello示例打包,发现没有多进程,说明问题不在uniapp,肯定是我配置问题了
4、现在mainfest基本都是默认了,唯一就是设置启动图,那恢复为通用启动界面,打包,没有多进程了,最后原因出在我设置自定义启动图。
5、项目又想使用自定义启动图怎么办呢?从uniapp某个文章看到对于启动图存放位置放在unpackage目录,否则可能出现意外情况,我把启动图放到unpackage/res下打包,现在没有多进程了,程序终于恢复正常了
吾逍遥 (作者) - 北京九思自然科技
因为多进程一直未能通过荣耀上架审核,正好利用中秋假期再次测试了下,应该就是hasTaskAffinity导致,已经测试了一天了,移除这个打包目前运行平板、小米、华为未再出现多进程,后来查看了官方文档中说明
Strandhogg漏洞
风险描述 StrandHogg之所以独特,是因为它无需进行植根即可启用复杂的攻击,它利用Android的多任务系统中的一个弱点来实施强大的攻击,使恶意应用程序可以伪装成该设备上的任何其他应用程序。此漏洞利用基于一个称为“ taskAffinity”的Android控件设置,该控件允许任何应用程序(包括恶意应用程序)自由地采用其所需的多任务处理系统中的任何身份。
修复方案 该漏洞已于2020.4.1的安全补丁中修复(涵盖Android 8.0 / 8.1 / 9.0+)。由于已经通过系统补丁封堵。理论上该漏洞不会对高版本系统的手机设备构成威胁。 而app客户端开发并没有彻底规避该漏洞的方案。各检测平台推荐配置android:taskAffinity=“”,但仅是临时方案。但该方案会导致应用运行到android11+系统设备时任务堆栈窗口变成两个的问题。 由于android:taskAffinity=“”配置存在bug!所以我们并不会默认这样配置。但为开发者提供的云打包配置选项。由开发者决定是否配置临时封堵该漏洞
当时未注意其中两个窗口的说明,主要为安全加上官方所有说的安全防范措施,结果导致软件在后台总是有两个以上窗口,其中有一个窗口一直显示资源同步中....
目前算是暂时解决了,已经移除这个设置,目前未发现多窗口的问题了