Issue Tracker で Google へ問い合わせてみた

# 目的
- Androidアプリ開発において開発環境で不具合動作があったため、[Google Issue Tracker][link0] へ投稿しGoogleの中の人とやり取りしたので、投稿方法やその後の対応につきまとめる。


# 環境
- OS：Windows10 Professional 22H2
- Android Studio Dolphin 2021.3.1 Patch 1


# 概要
- [Google Issue Tracker][link1] はGoogle のバグトラッキングシステムであり、対象となるシステムは今回説明するAndroid開発に限らず、Google が Issue Tracker をツールとして使用することを認めた製品である。
- Issue Tracker は、Google製品一般のフィードバック収集用の汎用ツールではないため、Google製品であれば何でも問題点を投稿できるものではない。詳細は[こちら][link0]。
- 今回見つけた問題点は、Android Studio 内の AVD Manager からエミュレータ起動した際の不具合動作であったため、投稿手順等については AVD (Android Virtual Device) および Android Studio からの方法を説明する。

# AVD からの Issue Tracker への投稿方法
- Android エミュレータのツールバー右端の項目をクリックし、"Extended Controls"を選択する。
![avd0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/62567e3f-d2aa-6109-bc89-93abeb73981a.png)

- 表示されたダイアログで必要事項を入力し Issue Tracker へ報告する。
![avd1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/8182fe27-726a-b557-af64-ead754954bc0.png)


(1) 画面左のメニューから "Bug report" を選択。
(2) 画面右上の "Repro steps" から問題発生時の再現手順を入力。
    時系列で箇条書きで書くとわかりやすいかも。
    なお、この項目は後述の Issue Tracker ページへ転記されるが、投稿は英語のみが受け付けられるため、以降の入力はすべて英語で行うこと。
    英語が苦手なら翻訳サイトを使おう。
(3) 画面右下の "Save report" で上記の再現手順や環境がローカルに保存される。
    保存先のローカルフォルダを指定。このボタンを押さないと Issue Tracker へ報告できない。
(4) "Send to Google" をクリックして投稿する。

・投稿内容がブラウザへ入力された状態で Issue Tracker のページが開くので、必要事項を入力し報告する。
ChromeがデフォルトブラウザかつGoogleのアカウントでログインしていれば、そのままログイン画面無しでブラウザが起動する。そうでない場合はログイン操作が必要かもしれない。（未確認）
![IssueTracker0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/eb1d149e-a508-9703-cd3d-1c058e5e0abd.png)


 (1) Title：不具合内容を簡潔に1行で書く。
 (2) Description：入力欄の最初に開発環境が、最後に上記に記載した再現手順が入力されているので、必要事項があれば追加する。
 (3) ”私はロボットではありません” にチェックを入れる。
 (4) "Create" ボタンで確定する。
- 投稿の確認ダイアログが開くので、投稿してもよければ "Confirm" ボタンを押す。投稿すると、ログイン中のメールアドレスがIssue Tracker 内で公開されるので注意すること。
![IssueTracker1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/bac2c438-457d-e039-6032-aea878216ab3.png)



# AVD 以外の Android Studio に関する内容の投稿方法
- Android Studio のメニューから、"Help"..."Submit Feedback" をクリックし、Issue Tracker へ報告する。
![as0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/301a2dbc-09f3-5412-a9ec-0208d6914b41.png)

- 投稿内容がブラウザへ入力された状態で Issue Tracker のページが開くので、必要事項を入力し報告する。入力内容(1)～(4)については、上記 "AVD からの Issue Tracker への投稿方法" を参照。AVDからのダイアログと異なり、問題の再現手順を入力するステップは無いので、(2)Description欄へ書こう。
![as1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/aebcb724-c35b-a0aa-f25b-5007dec678fa.png)



# 投稿後の流れ
- 投稿が受け付けられると、投稿毎のIDが振られ、以下 "Status" 欄が "New" となる。
![it2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/f81cedce-b100-85de-4f8e-d376085dc7e7.png)

- "New" は単に投稿が受け付けられた、という意味で、まだ Google の担当者が割り当てられていない状態を示す。
- "New" の投稿を Google 側で確認し、担当者を決めた時点で Status が"Assigned" となる。
- Status が"Assigned" となる前に Google から質問される場合がある。この質問に答えない限り担当者は割り当てられず、問題が解決されることは無いので、質問の返信が来たら回答すること。
- 典型的な質問を以下に示す。（エミュレータに関する他の投稿を眺めていてもよく出てくるので、おそらく定型の質問と思われる。）
![it1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/78b387b2-b2fb-4541-9f90-e1a80f0abc22.png)

- 前述の通り、投稿は英語のみ受け付けられるため、日本語を使った投稿については、投稿した段階で "英語しか受け付けられない" 旨の返信を受けるため "Assigned"となることは無い。


# 今回の顛末
- 今回見つけた問題点は、Android Studio 内の AVD Manager からエミュレータ起動した際の不具合動作であり、回避策を検索したが同様の現象や対策など見つからなかった。
- 不具合は、AVDでデバイスの回転をエミュレートする "Rotate Left" / "Rotate Right" ボタンを押すとAVD の反応が無くなる、という内容。
- AVD 画面の Bug Report 機能を使って Issue Tracker で不具合報告を行い、Google の担当者とログ取得などのやり取りを行った。
- 担当者とのやり取りにより、AVD Manager からエミュレータ起動した場合の回避策は無いものの、以下で不具合動作は避けられることがわかった。

  (1) Android Studio の Terminal または Windows のコマンドプロンプトからエミュレータを起動する。
  (2) Windows のディスプレイ設定で "拡大縮小とレイアウト" から 100% 以外を選択する。
  (3) Android Studio の Canary Version (具体的には Flamingo Canary 8) を使う。
- Canary Version で正常動作した = 将来のバージョンで改良予定、ということで、本案件の Status は最終的に "Obsolete" となった。
ただし、一度は正常動作を確認したものの、次回 Windows 起動後の Android Stusio 起動以降はエミュレータ自体が正常起動せず、文字通り炭鉱のカナリアとなってしまったので、次回 Android Studio バージョンアップの際には再確認する必要がある。


# その他注意事項など
- Issue Tracker へ投稿する前に、他の手段で情報を集めて最善を尽くそう。
  Qiita・[stackoverflow][link2]・[Google Issue Tracker][link1] の他の記事等で検索しよう。
- Issue Tracker では、最初の投稿後にGoogle からの質問を受けた後、回答せずに放置された質問が多くある。
  後から同じ問題で躓く人が調べてたどり着いた場合に解決できるよう、できる限りの対応をしよう。
- Status が "Assigned" となり担当者が割り当てられると、Google側から各種ログの提供や設定変更等を要求される場合がある。Google で問題が再現しない場合、これらの要求に対しこちらが対応しない限り解決することは無いので協力しよう。
- Google 担当者からの質問や要求にも多くのヒントが含まれている。
  問題そのものの解決に至らなくても、質問者の思いつかなかった回避策が見つかることもあるので、諦めずに聞いてみよう。
- Issue Tracker には膨大な質問が寄せられており、担当者は貴重な時間を割いて対応している。お互いに敬意を持って対応しよう。


# 参考
- [Google Issue Tracker の説明][link0]
- [Google Issue Tracker][link1]
- [stackoverflow][link2]


# 変更履歴
- 2022/12/13 初版




[link0]:https://developers.google.com/issue-tracker
[link1]:https://issuetracker.google.com/
[link2]:https://stackoverflow.co/