AOSP系统应用是否支持Jetpack Compose及Android.bp修改方案
AOSP系统应用使用Jetpack Compose的支持情况及Android.bp修改指南
AOSP从Android 12(API 31)版本开始原生支持系统应用集成Jetpack Compose,Compose相关核心库已被纳入AOSP的系统支持组件体系中,无需额外引入第三方包即可使用。
Android.bp文件需做的修改
1. 添加Compose核心依赖
在你的系统应用模块的android_app块中,补充Compose相关库的依赖:
deps = [ "//frameworks/support/compose/compose-runtime:runtime", "//frameworks/support/compose/compose-ui:ui", "//frameworks/support/compose/compose-material:material", // 按需添加其他Compose子库,比如动画、基础组件库等 "//frameworks/support/compose/compose-animation:animation", "//frameworks/support/compose/compose-foundation:foundation", ]
2. 启用Compose编译配置
开启模块的Compose支持,并指定符合要求的API版本:
android_app { name: "YourSystemApplication", // 保留原有配置(如srcs、resource_dirs等) srcs: ["src/**/*.kt"], // 启用Compose编译支持 compose: true, // 最低需指定API 31(Android 12) compile_api_version: "31", min_sdk_version: "31", target_sdk_version: "31", // 指定AOSP内置的Compose Compiler版本(以源码中实际版本为准) compose_compiler_version: "1.4.3", }
3. 资源配置适配
如果应用使用了自定义资源,确保resource_dirs正确声明,若需资源压缩可开启对应选项:
resource_dirs: ["res"], // 按需开启资源压缩 shrink_resources: true,
注意事项
- 仅Android 12及以上的AOSP版本支持该配置,低版本AOSP需自行移植Compose库,不推荐在系统应用中这么做。
- 系统应用的Compose代码需遵循AOSP的代码规范,避免与系统组件的类加载逻辑冲突。
内容的提问来源于stack exchange,提问作者franks
相关产品推荐
相关产品推荐

