鸿蒙综合讨论/C/C++ 库移植评估表

C/C++ 库移植评估表

C/C++ 库移植评估表:一个库能不能上鸿蒙、要多少工作量——评估的 checklist。这是移植工程立项前的第一课。

▍评估的七个维度
一,构建体系(meson、CMake、autotools、waf——各体系都有交叉编译的对策:构建体系决定第一步的坡度,全四系的要点在 eng 系列有专篇);二,依赖树(直接与间接依赖的全清单——依赖的依赖才是深水区:树越深评估越细);三,系统服务依赖(桌面服务的假设——dbus、桌面集成、系统路径:每项都要定桩化或裁剪的处置:依赖篇的方法);四,平台假设(硬件与系统的假设——字节序对齐、内存模型、路径结构、locale:假设越少越顺);五,可执行代码的生成(JIT、运行时生成、动态加载——可执行内存的权限面与 dlopen 的纪律:JIT 篇与插件篇的专题);六,API 面的禁用项(有没有用了鸿蒙没有的接口—— socket 的某些族、进程操作的边界:逐项对照);七,测试的可移植性(库的测试套件能不能跑——测试可跑则验证有据:跑不了要自建验证)。

▍工作量的分档
绿档(构建体系标准加依赖浅加假设少——改配置就能编:天级);黄档(有桌面依赖要桩化或构建体系要补丁——配置加补丁加探测驯服:周级);红档(深度系统耦合或 JIT 或巨型依赖树——架构级改造或替代方案评估:月级或放弃)。

▍评估的产出
评估表(七维度的逐项结论加证据——每项的证据:试编译的输出、依赖树的导出、假设的清单);结论(绿黄红的定档加工作量的估算——立项建议的依据);风险登记(评估不确定的项——试了才知道的边界:留待立项验证)。

▍常见的高估与低估
高估了难度的(纯计算库——算法密集无界面无服务依赖:绝大多数是绿档,别被代码量吓到);低估了难度的(看着简单的工具库——带着桌面小依赖(通知、托盘、配置路径):桩化的工作量在依赖不在本体)。

▍Air 系列的经验参数
90 个工程跑下来的体感参数(绿档库占大多数——桌面生态的库多数构建友好;黄档集中在集成类库;红档集中在图形与运行时类)——评估表用起来,参数会越来越准。

▍一句话
先评估再动手——七维度过一遍,工作量从拍脑袋变拍数据。

有具体库的评估问题欢迎在本板块发帖讨论。
楼主 7 天前
想参与讨论?登录 或 30 秒注册。