Android中JPMS的支持现状及模块规则适配情况咨询
Android对JPMS的支持状态及模块规则说明
一、JPMS整体支持状态
- Android从**Android 10(API 29)**开始提供有限的JPMS支持,并非完整实现Java平台模块系统的全部特性:
- 系统框架本身未模块化,仅针对应用层代码支持模块声明
- 不支持
requires transitive、服务绑定等部分JPMS核心指令 - API 29以下版本完全忽略
module-info.java文件
二、自定义模块的规则执行情况
- 在API 29及以上设备中:
- Android会部分遵循公共/内部代码分离规则:通过
exports声明的包允许被其他模块访问,未声明exports的包无法被外部模块直接引用 - 但反射机制可以绕过这种访问限制,系统并未完全强制执行JPMS的隔离策略
- 编译阶段(如Gradle构建)会解析
module-info中的依赖声明,但运行时的模块隔离力度较弱
- Android会部分遵循公共/内部代码分离规则:通过
- 在API 28及以下设备中:
- Android直接忽略
module-info.java,所有包默认处于公开可访问状态,不存在代码分离限制
- Android直接忽略
内容的提问来源于stack exchange,提问作者Marius K.
相关产品推荐
相关产品推荐

