作者:互联网 时间: 2026-07-13 07:50:06
如何用AI技能包解决跨平台迁移的“知识断层”?本文通过定位服务迁移案例,揭示“AI+Skills”模式如何将隐性知识结构化,实现高效零错误的代码转换。核心内容:1. AI辅助开发中通用智能与领域知识的根本矛盾2. “AI + Skills”解决方案的设计与验证过程3. 该模式的实际效能与未来知识中台发展路径

引言:AI 辅助开发的根本矛盾又双叒叕经历从0到1翻译一个安卓应用到鸿蒙的需求,并且近期Skill的概念很火,想着能通过Skill真正的解决一些实际业务遇到的一些问题,所以开始着手维护一个鸿蒙依赖分析的Skill,为了协助Curosr更好的理解端侧的二方包,最后我得出了两个暴论:
1、目前很多知识库是冗余的,随着模型能力越来越强,需要提供的业务知识库是需要减负的
2、未来我们各种二方包的接入方式都会以Skill的形式提供,从面向人转到面向AI
// 你向 AI 提问:"帮我将 Android 定位服务迁移到鸿蒙"// AI 生成的代码(看起来很专业)LocationExpires.ONE_MINUTE // ❌ 这个枚举值不存在params.onSuccess = (result) => { ... } // ❌ 回调位置错误// 编译器提示:13 个错误Property 'ONE_MINUTE' does not exist on type 'LocationExpires'


重新定义问题


AI + Skills 方法论


实战案例 安卓定位服务 - 鸿蒙代码迁移
// AI 基于"常识"猜测的枚举值LocationExpires.ONE_MINUTE // ❌ 实际是 ONE_MINLocationExpires.FIVE_MINUTE // ❌ 实际是 FIR_MINLocationAccuracy.MID_MODE // ❌ 这个枚举不存在// AI 推测的回调方式const params = new LocationRequestLocationParams();params.onSuccess = (result) => { ... }; // ❌ 回调不在这里
操作流程:
// ✅ 实际的枚举定义(非常反直觉)export enum LocationExpires {ONE_MIN = "ONE_MIN", // 不是 ONE_MINUTESEC_MIN = "SEC_MIN", // 不是 TWO_MINUTE (SEC = SECOND)THR_MIN = "THR_MIN", // 不是 THREE_MINUTE (THR = THREE)FOR_MIN = "FOR_MIN", // 不是 FOUR_MINUTE (FOR = FOUR)FIR_MIN = "FIR_MIN" // 不是 FIVE_MINUTE (FIR = FIVE)}// ✅ 实际的回调方式const options: Location.LocationRequestOptions = {onSuccess: (result: LocationData) => { ... } // 回调在 options 内};

## 4. API 对比### 4.1 LocationExpires 枚举值映射| Android 常量 | 鸿蒙枚举 | 说明 ||-------------|---------|------|| "1m" | LocationExpires.ONE_MIN | ⚠️ 不是 ONE_MINUTE || "2m" | LocationExpires.SEC_MIN | SEC = SECOND,不是 TWO_MIN || "3m" | LocationExpires.THR_MIN | THR = THREE,不是 THREE_MIN || "4m" | LocationExpires.FOR_MIN | FOR = FOUR,不是 FOUR_MIN || "5m" | LocationExpires.FIR_MIN | FIR = FIVE,不是 FIVE_MIN |⚠️ **不存在的枚举值**(AI 经常错误生成):- ❌ `ONE_MINUTE`, `TWO_MINUTE`, `FIVE_MINUTE`- ❌ `TEN_MINUTE`, `MID_MODE`### 4.2 定位请求方法对比| Android | 鸿蒙 | 差异说明 ||---------|------|---------|| `LocationServiceBridge.requestLocation()` | `Location.requestLocation()` | 回调方式不同 |#### 关键差异:回调设置方式**Android**(回调作为独立参数):```kotlinLocationServiceBridge.requestLocation(params,{ result -> ... }, // 成功回调{ error -> ... } // 失败回调)
const options: Location.LocationRequestOptions = {bizName: 'TB_SHOPPING_PROCESS',onSuccess: (result: LocationData) => { ... }, // ✅ 在 options 内onFail: (error: string) => { ... }};Location.requestLocation(params, options);




102 - 77 = 25 小时















本文作者开益,来自淘天集团-用户终端技术团队。我们服务于淘宝基础用户产品,是淘宝最重要的业务线之一。首页、信息流推荐、消息聊天、搜索、我淘、用增、互动、内容等亿级用户规模产品,为我们带来大量业务/技术挑战及机会。
团队在保证业务的同时,以先进的跨端框架和研发模式不断完善自己,打造最极致的体验和工程技术,保障多端设备的适配和稳定运行,并探索端智能等创新机会,通过技术高效驱动业务的良性发展。持续探索以AI为底座构建从需求到上线的端到端自动化与产品化能力,使亿级规模的交付更快、更稳、更可控。