ShadowJoker
ShadowJoker
  • 发布:2025-09-28 14:23
  • 更新:2025-09-28 14:23
  • 阅读:68

[Android] Android 端 Weex 框架适配 16KB PageSize,经验分享

分类:uni-app

Google Play 要求以 Android 15 及更高版本为目标平台的应用支持 16 KB 内存页面大小。

目前阿里开源的 Weex 跨端开发框架没有做适配,会导致 GooglePlay 上架和更新时报警告。Uniapp 也使用了 Weex,所以理论上应该也需要做适配。所以发到这里分享一下,欢迎大家沟通交流。

之前有人在 Weex 项目里提过 issue,但都没有得到回复,目前阿里那边应该是没人跟进这个项目了。本着自己动手丰衣足食的原则,我自己克隆源码搞了一下。现在已经跑通,准备把这个东西开源分享出来,也给社区做点贡献😁 如果能帮到 Uniapp 社区的大家解决技术问题,那就更好了😁(开源精神,源神,启动!😂)

目前已经给 Weex 开源库提交了 pull request (https://github.com/alibaba/weex/pull/3365)
也可以直接克隆我 Fork 出来的仓库(https://github.com/ShadowJoker/weex-16kb)

本项目是基于原版 Weex 项目 Fork 出来的。仅做了编译配置修改,和极少的 C++ 语法适配性修改。没有修改 Weex 的代码逻辑,理论上不会影响 Weex 的功能。

主要改动点

  • 升级 NDK 27,适配 16KB PageSize
  • 更新 ReactNative 发布的最新 JSCore,适配 16KB PageSize
  • 配套工具链升级,Gradle配置修改
  • C++ 代码修改,由于升级 NDK 27,部分老代码需要做调整

编译环境需求

  • Java 17
  • NDK 27.1.12297006
  • CMake 3.22.1
  • Gradle 8.10.2
  • APG 8.7.2

编译步骤

  1. 首先确保环境正确,各工具的版本严格符合编译环境说明
  2. 进入到工程中 android 路径下(可以直接使用 AndroidStudio 打开这个路径,这是一个标准的Android工程)
  3. 执行 ./gradlew assembleRelease 编译项目
  4. 编译完成后,在 android/sdk/build/outputs/aar 目录下会生成 aar 文件。
  5. 在自己的项目中使用这个 AAR 作为 Weex SDK。

注意事项

如果集成 AAR 包以后,启动闪退,可能是由于 libc++shared.so 版本不一致问题。Weex AAR 包中包含了 libc++shared.so,需要确保 App 使用相同的版本和这个相同。

1 关注 分享
DCloud_UNI_OttoJi

要回复文章请先登录注册