dmap/dmap-android-skills at main · didi/dmap · GitHub
Skip to content

Latest commit

 

History

History

dmap-android-skills

Folders and files

README.md

DMap · Android SDK Skill

iOS Skills   Android Skill

← 返回 DMap 首页

滴图出行技术开放平台(DiMap)Android SDK 的 AI Agent 技能包与开发参考文档。

platform minSdk language license

滴滴地图 Android SDK 覆盖 地图(Map)、定位(Location)、WebService、导航(Navigation) 四大模块。本目录不是 SDK 本身,而是围绕它整理的开发辅助资源,帮助 AI 编程助手和开发者少踩坑、快接入。

AI 技能包

本 Skill 遵循 Agent Skills 规范,可让兼容的 AI 编程助手在编写、审查或调试滴滴地图 Android SDK 代码时,按需加载权威的 API 用法与示例,从而:

  • 生成符合官方规范的代码,覆盖鉴权、隐私合规和生命周期管理等易错点。
  • 减少对不存在 API 的猜测。
  • 按任务渐进式加载模块文档,避免一次性占用过多上下文。

技能包本身也是一份可直接阅读的开发手册。references/ 下的文档包含包名与 import 路径、功能说明、代码示例、API 参数表和注意事项。

覆盖模块

模块 目录 核心能力 主要入口类 文档数
🗺️ 地图 Map references/map/ 地图视图与生命周期、覆盖物、相机控制、事件、UI 设置 MapView · DiMap 25
📍 定位 Location references/location/ 单次 / 连续 / 导航模式定位、结果与错误处理 DMapLocationClient 7
🌐 WebService references/webservice/ POI 搜索、地理编码、驾车/步行/骑行/公交路线规划 MapServiceClient 11
🧭 导航 Navigation references/navigation/ 组件导航与自定义导航、诱导信息、TTS、主辅路切换 DMapNaviPage · DMapNavi 6

完整索引见 SKILL.md。

安装与使用

作为项目级 Skill

mkdir -p .claude/skills
cp -r dmap-android-skills .claude/skills/

作为用户级 Skill

cp -r dmap-android-skills ~/.claude/skills/

安装后可以直接提出相关开发需求,例如“用 DiMap 在地图上添加标记”或“集成滴滴导航”。技能核心为 SKILL.md 与 references/,同样适用于其他兼容 Agent Skills 的工具。

安全提示:仅使用来自可信来源的技能。采用前请审阅 Skill 内容和引用的脚本。

SDK 快速开始

以下代码用于建立整体印象;完整配置、生命周期和错误处理请查阅对应参考文档。

1. 全局初始化

在 Application.onCreate() 中、调用任何 SDK 接口前完成隐私合规授权与鉴权:

public class DemoApp extends Application {
    @Override public void onCreate() {
        super.onCreate();
        DMapMapViewClientPrivacy.updatePrivacyShow(this, true, true);
        DMapMapViewClientPrivacy.updatePrivacyAgree(this, true);
        DiDiAuth.init(this, "申请的Key");
    }
}

2. 显示地图

<com.dmap.api.maps.MapView
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
MapView mapView = findViewById(R.id.map);
mapView.getMap(diMap -> { /* 地图就绪 */ });

需在 Activity 或 Fragment 中转发 onStart、onResume、onPause、onStop 和 onDestroy 等生命周期。

3. 定位一次

DMapLocationClient client = new DMapLocationClient(context);
client.setLocationListener(location -> {
    if (location.getErrorCode() == DMapLocation.ErrorCode.SUCCESS) {
        double lat = location.getLatitude();
        double lng = location.getLongitude();
    }
});
DMapLocationClientOption option = new DMapLocationClientOption();
option.setOnceLocation(true);
client.setLocationOption(option);
client.startLocation();

4. 启动组件导航

Poi start = new Poi("起点名称", new LatLng(40.04809, 116.28115), "起点POI_ID");
Poi end = new Poi("终点名称", new LatLng(39.89591, 116.32130), "终点POI_ID");
DMapNaviParams params = new DMapNaviParams(start, null, end);
params.setRouteStrategy(PathPlanningStrategy.DRIVING_DEFAULT);
params.setUseInnerVoice(true);
DMapNaviPage.getInstance().showRouteActivity(context, params, callback);

环境要求

配置项 要求
Android SDK(minSdk) API 24(Android 7.0)
CPU 架构 armeabi-v7a、arm64-v8a
语言 Java / Kotlin
导航模块额外要求 targetSdk 26+、compileSdk 30、Kotlin 1.3.72、NDK 21

Android 6.0+ 需动态申请位置权限;Android 10+ 如需后台定位还需 ACCESS_BACKGROUND_LOCATION。各模块的权限、依赖与混淆规则详见对应的 *-setup.md。

接入前置

  1. 登录官网控制台,使用应用包名与签名 SHA1 申请 Key。
  2. 使用 ./gradlew :app:signingReport 或 keytool 获取 SHA1。
  3. 确保 build.gradle 的 applicationId 与 AndroidManifest.xml 中的包名一致。
  4. 下载export-sdk AAR,放入工程 libs/ 并在 build.gradle 中引入。

Roadmap

后续计划新增覆盖地图、定位、WebService 和导航四大模块的可运行 Demo App,与 Skill 中的参考文档相互印证。

相关资源

License

MIT