android_system_font_weight 0.3.1 copy "android_system_font_weight: ^0.3.1" to clipboard
android_system_font_weight: ^0.3.1 copied to clipboard

启动期一次性读取安卓厂商(HyperOS/MIUI、ColorOS、OriginOS、MagicOS 等)的 系统全局可变字重设置,归一化为 wght 轴值。无监听、无刷新,读不到返回 null。

Changelog #

0.3.1 #

  • compileSdk 34 → 36(package:jni 要求 ≥35,34 会直接编译失败)。

0.3.0 #

  • 全同步 API(breaking):跟随 Flutter 3.29+ 平台/UI 线程合并的官方互操作 路径,Dart 经 package:jni 直呼原生静态方法,getAll/getWght/ getVendor 均改为同步——消费方(如 ElApp)首帧即可注入,无重排闪动。 MethodChannel 退役;原生拆为 SystemFontWeightCollector(@JvmStatic 哑 采集器,返回 U+001E/U+001F 编码字符串)+ 插件类(仅注册期缓存 Context)。
  • release 混淆保活:consumer-rules.pro 保留 JNI 按名查找的采集器类。

0.2.0 #

  • 架构重分层(breaking):原生只保留唯一 API getAll(哑采集器,返回全量 原始参数 Map),取值决策全部上移 Dart——getVendor()/vendorOf() 厂商 判定独立成 API,extractWght() 按厂商挑键 + normalize() 值域归一化, getWght() 保持一步到位入口不变。移除原生 getWght/debugDump 方法, Dart 侧 debugDump() 更名 getAll({refresh})(带缓存)。
  • 墨水探针返回值取整(wght 轴按整数消费)。

0.1.2 #

  • 新增墨水覆盖率探针并设为最高优先级:用系统默认字体绘样张、显式 'wght' N 二分对齐覆盖率,直接量出厂商钩子在本进程 Paint 层实际生效 的字重,与键值编码完全解耦。
  • ColorOS 关键发现(OPPO PLJ110 真机):settings 低 12 位只是滑杆刻度, framework 应用时另有压缩曲线——存储 800(拉满)实际生效 ≈650。键值 解码降级为探针不可用(探回 ≈400 无法与"钩子未生效"区分)时的兜底。

0.1.1 #

  • ColorOS 编码实锤并全链路真机验证(OPPO PLJ110 / Android 16): Settings.System/font_variation_settings 为位打包整数——bit12(0x1000)= 已自定义标志、低 12 位=wght(4896=0x1320→800 拉满、4862=0x12FE→766), Configuration 扩展字段 mFontVariationSettings 同编码(dumpsys 以十六进制 呈现)。>1000 的 variation/wght 键优先位解码,低 12 位出值域退回 ÷10 定点;-1 视为未设置哨兵。
  • 新增探测层:反射读 Configuration OEM 扩展字段(mOplusExtraConfiguration 等载体,优先级最高);getprop 系统属性扫描。
  • 扫描过滤补上 variation 关键词;debugDump 增加 configExtra / 载体字段 清单 / prop 三组输出。

0.1.0 #

  • 首版:启动期一次性读取安卓厂商系统全局可变字重(候选键直读 → settings 三表扫描 + 启发式归一化 → AOSP fontWeightAdjustment 兜底),getWght() 返回归一化 wght 或 null;debugDump() 输出真机原始键值用于定位厂商私有键。
  • Built-in Kotlin:不显式 apply KGP,最低支持 Flutter 3.44 / Dart 3.12。
0
likes
0
points
141
downloads

Publisher

unverified uploader

Weekly Downloads

启动期一次性读取安卓厂商(HyperOS/MIUI、ColorOS、OriginOS、MagicOS 等)的 系统全局可变字重设置,归一化为 wght 轴值。无监听、无刷新,读不到返回 null。

License

unknown (license)

Dependencies

flutter, jni

More

Packages that depend on android_system_font_weight

Packages that implement android_system_font_weight