目录

1. 开发流程

如果开发者已有集成第三方移动服务的应用程序,可以使用华为提供的Convertor工具将第三方移动服务相关的API接口自动转换为HMS相对应的API接口,实现快速转换和集成HMS的能力。点击这里了解Convertor工具详细介绍。

2. 注册成为开发者

在开发应用前需要在华为开发者联盟上注册成为开发者并完成实名认证,具体方法可参考帐号注册认证。

3. 创建应用

参见创建项目和在项目中添加应用完成应用的创建,游戏应用的特殊配置如下:

4. 配置签名证书指纹

4.1 生成签名证书指纹

签名证书指纹用于在通过华为HMS SDK访问HMS Core的能力时,校验应用的真实性。开发者在使用HMS SDK服务前必须将签名证书指纹配置到华为开发者联盟,在配置前需要根据签名证书在本地生成签名证书指纹。

 在申请前需要满足以下2个条件:

● 已创建应用程序的签名文件,签名证书创建属于通用技术,此处不详细描述。

● 当前开发的PC已经安装JDK。

操作步骤如下:

1. 打开命令行工具(使用CMD命令),执行cd命令进入keytool.exe所在的目录(图中样例为PC上java程序安装在C盘的Program Files (x86)目录)。

 

2. 执行命令keytool -genkey -alias android_test_key -keyalg RSA -keystore <keystore-file>,按命令提示进行生成签名文件。

-alias android_test_key,这里"android_test_key"为别名,可以是任意字符,只要不提示错误即可。

-keyalg RSA,这里"RSA"为密钥的算法。

-keystore <keystore-file>,这里<keystore-file>为应用签名文件的完整路径。

  1. keytool -list -v –keystore E:\Android.keystore

3. 根据结果获取对应的SHA256指纹。

4.2 配置签名证书指纹

1、登录AppGallery Connect网站,选择“我的应用”。

2、点击需要配置的应用。

3、选择“开发”页签,在“项目设置”页面的“应用”区域,将“SHA256证书指纹”配置为生成签名证书指纹中生成的SHA256指纹。

4. 配置完成后点击√。

5. 打开服务开关

需要使用SafetyDetect的功能,需要打开SafetyDetect的服务。具体操作步骤请参见开通服务。

6. 集成 HMS SDK

6.1 在Android Studio项目集成HMS SDK

针对AndroidStudio开发环境,华为提供了maven仓集成方式的HMS SDK包。在开始开发前,您需要将HMS SDK集成到您的AndroidStudio开发环境中。

1. 在AndroidStudio开发环境中添加当前应用的AppGallery Connect配置文件。

a. 登录AppGallery Connect 网站,选择“我的项目”。

b. 在项目列表中找到您的项目,在项目中点击需要集成HMS SDK的应用。

c. 在“项目设置”页面中,单击“应用”栏下的“agconnect-services.json”下载配置文件。

d. 将“agconnect-services.json”文件拷贝到应用级根目录下。


2. 配置HMS SDK的maven仓地址。

    (1). 打开AndroidStudio项目级build.gradle文件。

    (2). 在allprojects ->repositories 里面配置HMS SDK的maven仓地址。

  1. allprojects {
  2.    repositories {
  3.        google()
  4.        jcenter()
  5.        maven {url 'https://developer.huawei.com/repo/'}
  6.    }
  7. }

说明:
maven仓地址直接在浏览器中打开无法访问,只能在IDE中配置。

    (3). 在buildscript->repositories中配置HMS SDK的maven仓地址。

  1. buildscript {
  2.    repositories {
  3.        google()
  4.        jcenter()
  5.        maven {url 'https://developer.huawei.com/repo/'}
  6.    }
  7. }

    (4). 在buildscript->dependencies中配置AppGallery Connect插件地址。 

  1. buildscript {
  2.    dependencies {
  3.        classpath 'com.android.tools.build:gradle:3.3.0'
  4.        classpath 'com.huawei.agconnect:agcp:1.2.1.301'
  5.    }
  6. }

3. 添加编译依赖和AppGallery Connect插件地址。

    (1). 打开应用级的build.gradle文件。

    (2). 在文件头添加AppGallery Connect插件依赖。

  1. apply plugin: 'com.huawei.agconnect'

    (3). 在“dependencies”中添加如下编译依赖。

  1. dependencies {
  2.    implementation 'com.huawei.hms:safetydetect:4.0.3.300'
  3. }

4. 重新打开修改完的build.gradle文件,右上方出现“Sync Now”链接。点击“Sync Now”等待同步完成。 

说明:
如果出现错误,请检查网络连接是否正常,以及检查gradle文件是否正确。

5. 多语言设置。

打开项目工程下app目录的build.gradle文件。

在“android”->“defaultConfig”中新增resConfigs配置,“en”(英语) 和 “zh-rCN”(简体中文)为必须配置的语种,配置格式如下:

  1. android {
  2.    defaultConfig {
  3.        ...
  4.        resConfigs "en","zh-rCN", "需要支持的其他语言"
  5.    }
  6. }

HMS SDK支持的语言列表请参考HMS SDK支持的语言。 

6.2 在Eclipse项目中集成HMS SDK

针对Eclipse开发环境,华为提供了下载HMS SDK包本地集成的方式。在开始开发前,您需要将HMS SDK集成到您的Eclipse开发环境中。

6.2.1 下载SDK

1. 下载HMS Base SDK和要集成的服务SDK,并解压zip包。

下载地址请参见:Eclipse SDK下载。

2. 选择菜单“File > Import”,将所有SDK工程导入到您的工作空间。

    (1) 选择“Android > Existing Android Code Into Workspace”,单击“Next”。

    (2) 单击“Browse”,选择工程所在的文件夹目录。在“Projects”下显示待导入的工程,默认全部勾选,单击“Finish”。

说明:
待导入的工程必须和工作空间在相同的磁盘空间里,例如都在“D:\”。如果不在,您可以选择“Copy projects into workspace”,将工程文件复制到工作空间。


6.2.2 添加工程依赖关系

1. 右键单击您的工程,选择“Properties”。

2. 在左侧选择“Android”,单击“Add”,选择已导入空间的工程,单击“Apply and Close”。

3. 由于Eclipse的xml文件不支持$符号,将HMSSdkBase和Agconnect-core工程下AndroidManifest.xml文件中的“${applicationId}”替换成您的应用包名。

  1. <application>
  2.    <provider
  3.        android:name="com.huawei.agconnect.core.provider.AGConnectInitializeProvider"
  4.        android:authorities="${applicationId}.AGCInitializeProvider"
  5.        android:exported="false" />
  6.    <service
  7.        android:name="com.huawei.agconnect.core.ServiceDiscovery"
  8.        android:exported="false" />
  9. </application>

6.2.3 拷贝HMSSdkBase资源文件到您的工程目录

将HMSSdkBase工程中assets目录下的资源文件拷贝到您的工程中assets目录下。

说明:
如果依赖其他的kit资源,还需要复制对应kit的资源文件到您的工程目录下。

6.2.4 配置工程project.properties文件

打开您的工程的project.properties文件,添加如下代码,用于合并子工程中的Manifest文件。

  1. manifestmerger.enabled=true
说明:
ADT必须是17以上版本。

6.2.5 添加AppGallery Connect配置文件

1. 登录AppGallery Connect 网站 ,选择“我的应用”。

2. 在名称列表中找到应用所在的产品,点击对应手机设备的“Android应用”链接。

3. 选择“开发 > 概览”。

4. 单击“应用”栏下的“agconnect-services.json”下载配置文件。

5. 由于eclipse不支持agcp插件,您需要将agconnect-services.json文件放置到您的工程assets目录下,并且在工程的Application子类中添加如下代码。如果工程没有Application子类,则需要您新建一个从Application继承的子类,例如新建MyApplication类。

  1. public class MyApplication extends Application{
  2.    @Override
  3.    public void onCreate() {
  4.        super.onCreate();
  5.    }
  6.    // TODO: Add the following code:
  7.    @Override
  8.    protected void attachBaseContext(Context context) {
  9.        super.attachBaseContext(context);
  10.        AGConnectServicesConfig config = AGConnectServicesConfig.fromContext(context);
  11.        config.overlayWith(new LazyInputStream(context) {
  12.            public InputStream get(Context context) {
  13.                try {
  14.                    return context.getAssets().open("agconnect-services.json");
  15.                } catch (IOException e) {
  16.                    return null;
  17.                }
  18.            }
  19.        });
  20.    }
  21.    // TODO: End
  22. }

添加代码后需要导入以下类:

  1. import java.io.IOException;
  2. import java.io.InputStream;
  3. import com.huawei.agconnect.config.AGConnectServicesConfig;
  4. import com.huawei.agconnect.config.LazyInputStream;
  5. import android.app.Application;
  6. import android.content.Context;
  7. import android.util.Log;

6. 打开您的工程AndroidManifest.xml文件,在“application”模块中添加Application子类名称,如果已经添加,则跳过此步骤。例如,添加MyApplication类名称。

  1. <application
  2.    android:name=".MyApplication"
  3.    …
  4.    >
  5. </application>

7. 在eclipse菜单栏中点击“Project”,执行“Clean”操作,即完成SDK集成。


7. 配置混淆脚本

开发者编译APK前需要配置不要混淆HMS SDK,避免功能异常。

Android Studio开发环境里的配置文件是“proguard-rules.pro”,Eclipse开发环境里的配置文件是“proguard-project.txt”。

1.  打开工程的混淆配置文件,加入排除HMS SDK的混淆配置。

  1. -ignorewarnings
  2. -keepattributes *Annotation*
  3. -keepattributes Exceptions
  4. -keepattributes InnerClasses
  5. -keepattributes Signature
  6. -keepattributes SourceFile,LineNumberTable
  7. -keep class com.hianalytics.android.**{*;}
  8. -keep class com.huawei.updatesdk.**{*;}
  9. -keep class com.huawei.hms.**{*;}

 

2. 如果开发者使用了AndResGuard,需要在混淆配置文件中加入AndResGuard白名单。

  1. "R.string.hms*",
  2. "R.string.agc*",
  3. "R.string.connect_server_fail_prompt_toast",
  4. "R.string.getting_message_fail_prompt_toast",
  5. "R.string.no_available_network_prompt_toast",
  6. "R.string.third_app_*",
  7. "R.string.upsdk_*",
  8. "R.layout.hms*",
  9. "R.layout.upsdk_*",
  10. "R.drawable.upsdk*",
  11. "R.color.upsdk*",
  12. "R.dimen.upsdk*",
  13. "R.style.upsdk*

8. 开发应用

详情请见各API开发指南:

9. 开发后自检

华为提供对应用自动检查的能力。开发者只需填写应用相关信息、上传APK包,平台将自动扫描APK并输出自检报告。开发者可以根据自检报告改进应用,自检通过即可提交应用上架。

自检步骤请参考AppGallery Connect帮助中心的自检应用。

须知:目前新版自检工具需要在开发者联盟实名认证过的企业或者个人的帐号才可以使用。

10. 上架申请

10.1 了解上架规则

开发者完成集成服务,提交应用上架前,请先了解如下上架规则和审核常见问题:

● 华为应用市场审核指南

● 应用审核FAQ

10.2 提交上架申请

开发完成后需要在AppGallery Connect中将应用信息补充完整并提交上架申请,具体操作参见发布应用。