本篇Codelab将实现的内容

HMS Toolkit是一个IDE工具插件,提供一套含应用创建、编码和转换、调测、测试和发布的开发工具。可以帮助开发者以更低的开发成本更高的开发效率集成HMS服务。

其中,Convertor工具是集成在HMS Toolkit工具中为开发者提供的代码转换工具,支持Java和Kotlin工程。能够帮助开发者基于已有的调用第三方API的Android应用代码,快速转换为集成HMS的应用代码。

您将会学到什么

硬件要求

软件要求

使用HMS Toolkit工具能力,需要完成以下准备工作

具体操作,请按照《HUAWEI HMS集成准备》中详细说明来完成。

通过Android Studio的Marketplace安装

打开Android Studio,进入"File > Settings > Plugins > Marketplace",在搜索框中输入"HMS Toolkit",然后点击"Install"进行安装。安装完成后,请重启Android Studio。

通过本地导入插件包进行安装

  1. 下载HMS Toolkit工具包
  2. 打开Android Studio,进入"File > Settings > Plugins",选择Install Plugin from Disk进行安装。安装完成后,请重启Android Studio。

升级HMS Toolkit

打开Android Studio,进入"File > Settings > Plugins > Installed",在搜索框中输入"HMS Toolkit",然后点击"Update"进行升级。升级完成后,请重启Android Studio。

Convertor工具提供了如下功能来帮助您完成转换:

Convertor工具菜单入口如图所示:

New Conversion

分析转换项目

1. 打开New Conversion,有以下四种方式:

2. "Project Type"选择"App",设置需要转换的Analysis directory、Excluded directory和Backup directory信息,然后点击"Next",等待分析完成。

3. 设置转换策略,可以根据需要选择To HMS API或者Add HMS API,然后点击"Analyze",执行转化分析。

4. 转换分析结果如下所示:

5. 查看每个转换条目的详细分析结果,有如下两种方式:

处理分析结果

1. Auto、Dummy类别支持如下两种方式进行转换修改。

方式一(推荐):勾选需要进行自动转换的条目,然后点击"Convert",自动完成转换工作。Auto和Dummy支持全选和单选。如果您想一键全选Auto或一键全选Dummy,请在"Conversion Type"中筛选类别后再点击一键全选按钮。

方式二:点击待转换的条目,定位到具体修改点,点击"Apply HMS Convertor Auto-Convert",确认修改。

2. Manual类型转换方法:
点击待修改条目定位到具体修改点,然后根据扫描结果中的Description描述进行手动修改。修改完成后,手动将改条目的复选框由修改为状态。

Add HMS API场景下,开发者需要根据业务上下文实现Add HMS API的代码逻辑转换。提供了以下API供开发者使用,具体的使用方法可以参见各个Kit的手工转换指导书(可通过手工修改条目中的Description链接获取)。

同步并编译项目

确认所有的记录都处理完成后,先进行同步工程,然后进行编译,编译通过则转换完成。

  1. 打开Android Studio工程的混淆配置文件proguard-rules.pro。
  2. 加入混淆配置。
    -ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.hianalytics.android.**{*;} -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;} -keep class org.xms.**{*;} -keep interface org.xms.**{*;}
  3. 如果开发者使用了AndResGuard,需要在混淆配置文件中加入AndResGuard允许清单。
    "R.string.agc*", "R.string.hms*", "R.string.connect_server_fail_prompt_toast", "R.string.getting_message_fail_prompt_toast", "R.string.no_available_network_prompt_toast", "R.string.third_app_*", "R.string.upsdk_*", "R.layout.hms*", "R.layout.upsdk_*", "R.drawable.upsdk*", "R.color.upsdk*", "R.dimen.upsdk*", "R.style.upsdk*"

转换后的App可以在装有HMS服务的华为手机上正常运行。

干得好,你已经成功完成了Codelab并学到了:

  1. 如需了解更多与HMS Toolkit相关的信息,请关注我们的官方指导文档
  2. 开发过程中如果遇见问题,请参考我们的常见问题解答
  3. 您可以联系我们的支持人员提供Demo工程源码。
已复制代码