HMS実機を持っていない場合のデバッグ方法

# HMSアプリを開発したいが、HMSの実機を持っていない
現在（2020年11月）、[ファーウェイ](https://consumer.huawei.com/jp/)のAndroidアプリストアである[AppGallery](https://consumer.huawei.com/jp/mobileservices/appgallery/)のMAU（月間アクティブユーザー数）はすでに4.9億人を超えました。この目覚ましい成長を目の当たりにした世界の開発者は続々とHMSアプリの開発に参入しています。日本も同じく、HMSアプリの開発に加わる開発者が増えています。HMSに興味があってHMSを触ってみようと思っている開発者も増えています。

HMSアプリを開発するのに、HMS端末が必要なのは当たり前です。HMS端末を持っていれば問題はありませんが、HMS端末を持っていない開発者はここで開発を断念するかもしれないので、それが非常にもったいないです。

そこで、HMS実機を持っていなくてもHMSアプリを開発できるデバッグ方法を紹介したいと思います。

# HMS ToolkitのCloud Debuggingを使う
Android StudioでHMSアプリを開発しやすくするために、[ファーウェイ](https://consumer.huawei.com/jp/)は[HMS Toolkit](https://developer.huawei.com/consumer/jp/huawei-toolkit/)を提供しています。[HMS Toolkit](https://developer.huawei.com/consumer/jp/huawei-toolkit/)に[Cloud Debugging](https://developer.huawei.com/consumer/en/doc/development/Tools-Guides/cloud-debugging-0000001051084360)という機能があります。それを使えば、HMSアプリをデバッグできます。

[Cloud Debugging](https://developer.huawei.com/consumer/en/doc/development/Tools-Guides/cloud-debugging-0000001051084360)の使い方は簡単です。まず、[HMS]->[Cloud Debugging]を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/f861f084-e01f-b319-830f-93d5b0a3dbd3.png)

そうしたら、デバイスの選択画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/12dc5c7e-ee94-6cfe-3692-3cdf68846d47.png)

試しにMate 30を選んでみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/f3c5fd07-da4c-5b09-6eb4-e107e9073529.png)

そうしたら、Android Studioの右側にCloud Debuggingの画面が出てきます。端末名、残りの使用時間、デバイス画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/e5426d29-fb37-b2c6-9d00-ba6f49c33628.png)

初期設定を終えたら、メイン画面が出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/c1387e9d-2ffe-2974-e1b9-d303824b9a58.png)

ここで、“[HMS対応におけるGoogle Play 開発者サービスをサポートしないというポップアップの問題点とその解決策](https://qiita.com/Rei_2020/items/e9058c45ae39c5774544)”に載せたソースコード（[https://github.com/Rei2020GitHub/MyPublicProject/tree/master/MobileServicesDetection](https://github.com/Rei2020GitHub/MyPublicProject/tree/master/MobileServicesDetection)）をビルドし、インストールし、デバッグしてみましょう。インストール先はもちろんCloud Debuggingの端末です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/fbed37e0-40e5-b668-6f69-079064e57cfe.png)

アプリはCloud Debugging端末で実行されます。HMSの端末なので、HMSが実装済みで、GMSが未実装という部分もちゃんと認識できています。LogcatでCloud Debugging端末のログも見られます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/653cf561-382b-b00c-38a0-8519b803bb4f.png)

ブレークポイントを張ったところもちゃんと止まります。Debug画面でスタックも変数の中身も見られるので、デバッグ機能もばっちりです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/87a02cd0-75cd-aa84-009a-36afa1cee04e.png)

# 最後
[Cloud Debugging](https://developer.huawei.com/consumer/en/doc/development/Tools-Guides/cloud-debugging-0000001051084360)は実機とほぼ同じ感覚でHMSアプリをデバッグしたり、使ったりできるので、HMS実機がなくてもHMSアプリの開発とデバッグを可能にしました。みなさんもぜひ[Cloud Debugging](https://developer.huawei.com/consumer/en/doc/development/Tools-Guides/cloud-debugging-0000001051084360)をお試しください。

# 参考
* HMS：[https://developer.huawei.com/consumer/jp/](https://developer.huawei.com/consumer/jp/)
* Cloud Debugging：[https://developer.huawei.com/consumer/jp/doc/development/AppGallery-connect-Guides/agc-clouddebug-introduction](https://developer.huawei.com/consumer/jp/doc/development/AppGallery-connect-Guides/agc-clouddebug-introduction)
* Huawei Developers：[https://forums.developer.huawei.com/forumPortal/en/home](https://forums.developer.huawei.com/forumPortal/en/home)
* Facebook Huawei Developersグループ：[https://www.facebook.com/Huaweidevs/](https://www.facebook.com/Huaweidevs/)