配置android:isolatedProcess="true"的Android Service与Intune SDK不兼容问题咨询
问题解答
1. 集成Intune SDK后能否正常运行隔离进程
目前7.6.0及更早版本的Intune Android SDK不支持运行配置了android:isolatedProcess="true"的隔离进程Service。
底层原因是Intune SDK的初始化逻辑会默认注入到应用所有进程的启动生命周期中,而隔离进程的系统限制为:无应用本身的权限、无法访问应用私有数据目录。Intune SDK初始化时需要读取应用内的配置、身份凭证等私有数据,这些操作在隔离进程中会被系统直接拦截,导致SDK初始化卡住,进而阻塞了隔离进程Service的启动流程,最终只会出现绑定无响应、无回调也无崩溃的现象。
2. 兼容解决方案与替代方案
可以根据业务场景选择以下可行方案:
- 方案一:排除Intune SDK对隔离进程的注入
给Manifest中的隔离Service配置属性时,新增tools:node="remove"配置,移除Intune SDK自动注入的进程初始化拦截器。需要注意:该方案下隔离进程内部不能调用任何Intune SDK的接口,否则会触发类找不到的崩溃。 - 方案二:调整root检测的运行载体
把root检测逻辑从隔离进程迁移到主进程的独立工作线程,或者改用普通非隔离进程的Service运行检测逻辑,普通进程可以正常兼容Intune SDK的初始化流程,做好内存隔离即可避免影响主进程稳定性。 - 方案三:等待官方版本迭代
当前该兼容性问题已经被Intune Android SDK官方收录到待修复列表,后续版本会优化初始化逻辑,自动跳过对隔离进程的注入操作,届时可直接升级SDK版本解决问题。
内容的提问来源于stack exchange,提问作者Pradip Tilala
相关产品推荐
相关产品推荐

