文档管理中心
我的

HMS开发指导

1. HMS简介

华为移动服务(Huawei Mobile Services,缩写HMS)是华为云服务开放能力的合集,开发者只需集成HMS SDK即可使用华为的多个开放能力,包括华为帐号、应用内支付、消息推送、好友关系等。这些能力或者服务将会帮助您的应用获得更多的用户、更高的活跃度、以及更可观的收入。

HUAWEI DevEco Studio为开发者集成HMS开放能力提供一站式支撑:

  • G2H:DevEco Studio的G2H功能可以实现GMS(Google Mobile Services)和HMS的高效转化,帮助开发者将基于GMS的应用框架转换为基于HMS的应用框架,快速集成HMS开放能力。

  • AGC:DevEco Studio集成华为应用市场统一开放平台AGC(AppGallery Connect),为应用的开发、分发和运营等环节提供全生命周期的一站式服务。

2. 前提条件

  • 已完成DevEco Studio的安装和配置。

  • 已准备好需要由GMS转换为HMS的项目。

3. G2H

3.1 界面说明

3.1.1 工具栏

说明:

  • HMS Convertor:G2H转换入口

  • Inspect:执行G2H扫描和转换

  • Settings:G2H基本设置

  • Copyright:版权

3.1.2 设置

说明:

  • Inspect Path:工程本地存储路径

  • Exclude Path:排除路径,即执行G2H扫描时,可以通过“Add”和“Remove”自定义屏蔽指定目录。

3.1.3 扫描结果

说明:

  • Total:当前扫描的记录总数

  • File:完成扫描的文件,可用于筛选扫描记录。选择特定文件,则结果栏仅显示该文件的扫描记录;选择All…,则结果栏显示所有文件的记录。

  • Convert Type:转换类型,可用于筛选扫描记录。选择“AUTO”,则结果栏仅显示可以一键转换的扫描记录;选择“MANUAL”,则结果栏仅显示无法一键转换,需要人工修改的扫描记录;“选择All…”,则显示所有类型的扫描记录。

  • Show Converted:是否显示已经执行G2H自动转换或人工修改的扫描记录,勾选则显示;不勾选则不显示。

  • Confirmed:当前选中的“AUTO”类型记录的条目数

  • Converted:已经执行过自动转换或者人工修改的记录的条目数

  • Convert:对选中的“AUTO”类型记录执行自动转换

  • Revert:对选中的已经执行自动转换的记录进行回退

  • No.:扫描记录的序号。默认为正序排列,点击“No.”进行正序、逆序排列切换。

  • File:扫描记录在工程中的相对路径。点击“File”,则扫描记录按照路径进行排序。

  • Start Line:该扫描记录在文件中的起始行。点击“Start Line”,则扫描记录按照起始行进行排序。

  • End Line:扫描记录在文件中的结束行。点击“End Line”,则扫描记录按照结束行进行排序。

  • Convert Type:扫描记录所属的转换类型

  • Content:扫描记录的扫描内容

  • Description:扫描记录执行转换的提示性描述

3.1.4 提示页面

(1)单击“AUTO”类型记录的提示页面

说明:

  • Apply HMS Convertor Auto-Convert:点击将执行此处代码的自动转换。

  • com…将被替换为com…:执行自动转换的描述性内容。描述内容各扫描记录不同,此处仅为示例。

(2)单击“MANUAL”类型记录的提示页面

说明:

  • com… is inapplicable to HMS. Please delete codes of this class:进行人工修改的描述性提示。提示内容各扫描记录不同,此处仅为示例。

(3)双击“AUTO”类型记录的提示页面

该页面显示源文件和执行自动转换后文件的差异对比

(4)右键单击“AUTO”类型记录的提示页面

说明:

  • Confirm:选中该记录

  • Unconfirm:不选中该记录

  • Set to converted:标记为已转换状态

  • Set to unconverted:标记为未转换状态

(5)右键单击“MANUAL”类型记录的提示页面

说明:

  • Set to converted:标记为已转换状态,以便于开发者识别已修改的记录。

  • Set to unconverted:标记为未转换状态,以便于开发者识别未修改的记录。

3.2 操作指导

步骤 1:运行DevEco Studio后,点击“Open Project”。

步骤 2:在“Open File or Project”选择需要进行G2H转换的项目,点击“OK”。

步骤 3:等待项目导入完成后,选择“Tools>HMS Convertor>Settings”。

步骤 4:根据需要配置“Exclude Path”,点击“OK”。

步骤 5:选择“Tools>HMS Convertor>Inspect”,执行G2H转换的检查扫描。

步骤 6:在扫描结果中,勾选“Convert Type”为“AUTO”的记录,点击“Convert”执行自动转换。

说明:对于“Convert Type”为“AUTO”的记录,请使用自动转换方式,不要手动进行修改。

步骤 7:在扫描结果中,查看“Convert Type”为“MANUAL”的记录,进行人工修改。修改完成后,点击记录后面的,标记对已转换状态。

步骤 8:完成所有扫描记录的转换后,选择“Build>Build Project”,重新构建工程。

4. AGC

4.1 界面说明

4.1.1 工具栏

  • Register&Configure:AGC相关文件下载的界面入口。

  • APP Release:APK上载至AGC的界面入口。

4.1.2 Register&Configure

根据该界面向导,开发者可以完成AGC登录、APP ID获取、配置文件下载、AGC SDK添加等操作。

4.1.3 APP Release

通过该菜单,开发者可以将APK文件提交到AGC。“client id”和“secret key”为调用AppGallery Connect API的认证信息,获取方法详见获取密钥。

4.2 操作指导
4.2.1 Register&Configure
在应用开发前,通过如下步骤获取AGC相关配置文件和依赖包。

步骤 1:在主工具栏,点击“Register&Configure”图标。

说明:在主菜单栏选择“Tools>AG Connect>Register&Configure”,也可以进入“Register&Configure”窗口。

步骤 2:在“Register&Configure”中,展开“Please Login to AppGallery Connect”,点击“Please register a Huawei Developer Alliance account and sign in”,逐步完成“AppGallery Connect”登录。

(1)使用经过实名认证的华为账号登录。如果尚未获得华为账号,请先进行注册,并完成实名认证。

(2)允许DevEco Studio访问Vmall账号。

(3)登录“AppGallery Connect”成功。

步骤 3:在“Register&Configure”中,点击“Register APP”,逐步完成APP注册。

(1)点击“Click to register the application”。

(2)在AppGallery Connect网站 ,点击“我的应用”。

(3)点击“新建”。

(4)填写应用信息,点击“确定”。

(5)在应用信息界面,获取“APP ID”。

(6)填写获取的“APP ID”,点击“Apply”。

步骤 4:在“Register&Configure”中,点击“Download the configuration file”,下载配置文件。

(1)配置Module和Team信息。如果开发者联盟账号未加入任何团队,则“Choose the Team”自动填充为用户/企业名。

(2)点击Download “agcconnect-services.json”,等待文件下载完成。

步骤 5:在“Register&Configure”中,点击“Add AGC SDK”,逐步修改gradle文件,并完成依赖包的同步。

(1)依次点击右侧,修改项目级别和应用级别的build.gradle文件。

(2)在主工具栏,点击“Sync Project with Gradle Files”图标,同步依赖包。

4.2.2 APP Release

在应用开发和编译完成后,通过如下步骤将APK上传至AGC。

步骤 1:在主工具栏,点击“APP Release”图标。

说明:在主菜单栏选择“Tools>AG Connect>APP Release”,也可以进入“APP Release”窗口。

步骤 2:填写“client id”和“secret key”,获取方法详见获取密钥,点击“Ok”。

步骤 3:填写“App id”和“Apk path”,点击“Ok”。如果上传成功,会弹出上传成功提示框;如果上传失败,则会在“DevEco Output”窗口提示具体错误。