HMS
华为移动服务提供端、云开放能力,帮助开发者实现应用高效开发、快速增长、商业变现,使能开发者创新,为全球用户提供精品内容、服务及体验。应用于出行、电商、金融、游戏、影音娱乐等方面。
类别
HMS目前开放的服务:App Services、Media、Graphics、AI、Smart Device、Security、System。
App Services
华为帐号服务,广告服务,分析服务,App Linking,情景感知服务,服务号,云空间服务,动态标签管理器服务,游戏服务,运动健康服务,用户身份服务,应用内支付服务,定位服务,地图服务,推送服务,快应用,统一扫码服务,位置服务,UI Engine,钱包服务。
Media
音频能力,音频服务,相机能力,图像服务,全景服务,视频服务,数字版权服务。
Graphics
计算加速服务,AR Engine,图形计算服务,游戏加速能力,图形引擎服务,VR Engine。
AI
机器学习服务,HUAWEI HiAI Foundation,HUAWEI HiAI Engine,HUAWEI HiAI Service。
Smart Device
畅连能力,投屏能力,设备虚拟化能力,HUAWEI HiCar,HUAWEI HiLink,碰一碰能力,文件分享能力,Wear Engine (Beta)。
Security
线上快速身份验证服务,安全检测服务,本地认证能力,数据安全能力,设备安全能力。
System
线性马达能力,hQUIC Kit,双网聚合能力,MDM能力,近距离通信服务,无线传输服务。
开发流程
环境要求
- Android Studio开发环境:建议版本v3.0.1及以上,支持Windows、Linux、Mac操作系统。
- 手机开发环境:Android 7.0及以上。
- 使用NDK进行Native代码编译,需要Android API Level24及其以上版本。另外,可以使用CMake进行Native代码编译。
接入准备
- 注册成为开发者
- 创建应用
- 生成签名证书指纹
- 配置签名证书指纹
添加依赖(以广告服务为例)
1.在项目级build.gradle文件中配置Maven仓地址:
buildscript {
repositories {
google()
jcenter()
maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
classpath "com.android.tools.build:gradle:4.0.1"
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://developer.huawei.com/repo/' }
}
}
2.在应用级的build.gradle文件中添加编译依赖:
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
// ads
implementation 'com.huawei.hms:ads-lite:13.4.32.300'
implementation 'com.huawei.hms:ads-consent:3.4.32.300'
}
实际的版本号,请参见版本更新说明。
3.配置网络权限:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:usesCleartextTraffic="true">
</application>
</manifest>
4.配置混淆脚本:
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keep class com.huawei.openalliance.ad.** { *; }
-keep class com.huawei.hms.ads.** { *; }
5.初始化SDK:
建议在应用启动的时候调用HwAds.init()接口初始化HUAWEI Ads SDK,开发者需要自行实现AdSampleApplication类。
在AndroidManifest.xml添加Application名称:
<application
android:name=".AdSampleApplication"
...>
...
</application>
并在AdSampleApplication中完成初始化:
public class AdSampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 广告初始化
HwAds.init(this);
}
}
或者在调用之前进行初始化:
public class MainActivity extends AppCompatActivity{
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化HUAWEI Ads SDK
HwAds.init(this);
...
}
}