【Android】検証端末の選び方 ７つのポイント


# はじめに
みんな違ってみんないい、がAndroidの長所です。

サイズ、スペック、色、形、色んな機種があって選ぶのが楽しくなるAndroid。
選択肢が豊富でどれを買おうか悩みます。

しかし、開発者としては困ってしまう問題があります。機種依存問題です！

機種依存問題の解決のためには少しでも多くの機種でテストするしかありません。 :cry: 

そこで、この記事ではAndroidの検証端末の選び方を７つのポイントに絞って解説してみました。

# ７つの選定ポイント 

| No. | ポイント | 説明 |
|:--|:--|:--|
| 1  | 素のAndroid | Android標準の動きを知る  |
| 2  | OSバージョン | バージョン毎の動作の違い   |
| 3  | 端末シェア  | 使っている人が多い端末かどうか？  |
| 4  | 形状  | スマホ、タブレット、TV、Wear、車載 |
| 5  | 画面サイズ  | スマホの主流は5~6インチ台  |
| 6  | 価格帯  | ハイエンド、ミッドレンジ、ローエンド  |
| 7  | チップセット  | Qualcomm、MediaTekなど  |

では、１つずつ見ていきます。

# １．素のAndroid
カスタマイズしていない素のAndroidです。
Pure Android、Stock Androidとも呼ばれています。
Android標準の動作を把握するために必ず1台は検証端末として確保したいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102273/cf78f7ca-806c-d4a4-f328-692787eba265.png)

* Google Pixelシリーズ
* Android one(SHARP、京セラ、LGなど)

# ２．OSバージョン
OSバージョンによって動作が違うケースがあるので、複数バージョンでテストしておくと安心です。とはいえ、すべてのバージョンを確認するのは大変なのでシェアが高いバージョンを優先しましょう。

OSバージョンのシェアはAndroid studioで新規プロジェクトを作成するWizardで確認できます。各バージョンの主要な変更点もこの画面に表示されて便利です。
![スクリーンショット 2021-11-10 16.52.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102273/479e79c5-921f-b301-c5fd-dc91e7309019.png)
例えばこの表を見ると、4.4(kitkat)までサポートすれば98.1%の方に使ってもらえることになります。
しかし、kikatがリリースされたのは2013年とかなり昔です。さすがに使っている人も少なくなってますよね :thinking: なので、6.0(Marshmallow)か7.0(Nougat)あたりを下限として端末を用意すればよさそうです(2020年12月時点)

# ３．端末シェア
実際に使っている人が多い機種でテストすると効率的です。
2020年12月現在、国内で主要なAndroidのメーカーは以下のような感じ。

* Google
* Sony
* Samsung
* SHARP
* OPPO
* Xiaomi

この中からシェアの多そうな機種を検証端末として選びます。
シェアを確認する際は、[スマホのシェア率を見れるサイトのまとめ](https://qiita.com/marumo3/items/bf277525789565d8b3d7) が参考になります。
機種ごとのシェア率をググるのは結構な労力なのですが、@marumo3さんの記事で大変助かっています、感謝 :pray: 

たとえば `スマタブinfo`  というサイトでは端末のシェアがランクで確認できます。
![スクリーンショット 2020-12-31 16.14.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102273/081bbc40-6aa4-29b4-0752-f32713ad7457.png)

# ４．形状
Androidアプリが動作するハードウェアはスマホ以外にも色々あります。
WearやTV、車載向けなど、アプリがターゲットとするハードウェアによって検証端末も変わってきます。
![スクリーンショット 2020-12-30 16.45.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102273/2ca37428-14a9-3ed1-24d0-c76e3a6e8bee.png)
![スクリーンショット 2020-12-30 16.45.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102273/480869ff-82f7-1162-74c8-235ba73b6310.png)

# ５．画面サイズ
3インチ台から6インチオーバーまで幅広いサイズの端末が販売されています。
最近(2020年)では、小さいもではRakuten Miniの3.6インチ、大きいとXiaomi Redmi note 9sは6.67インチ！他には、２画面だったりフォルダブルだったりと色々。

自宅に転がっているAndroid端末の写真を取ってみました。左がPixel 4aで右端がRedmi note 9sです。6インチを超えるとかなり大きくて、アプリの見え方も変わってくる印象です。

![phones.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102273/b92c5ef4-1491-396a-10ea-64e8cc4d9178.png)

画面サイズの違う端末でテストすることによって、レイアウトの崩れやフロントカメラのノッチでアプリのUIに影響がないかを確認することができます。

# ６．価格帯
ざっくり分けて4種類の価格帯があります。
![スクリーンショット 2020-12-30 17.46.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102273/91ac04a0-78b9-95bf-c25b-ef00b807a80e.png)
価格が違うとCPUの処理速度やメモリの容量も異なります。基本的なアプリの動作に違いはありませんが、処理速度等によってアプリの動作に影響がでることもあるため幅広い価格帯のAndroidでテストを行うことが望ましいと思います。国内ではハイエンドからミッドレンジあたりが主流なので、その価格帯から検証端末を選定すると良さそうです。

#### ローエンド端末について
ローエンド端末はキャリアでの取り扱いが少ないため、現時点で国内のユーザー数も多くありません。国内向けのアプリの場合、ローエンド端末の優先度は下げても問題ないと考えています。ただし、海外からのインバウンドをターゲットにする場合は、海外で販売されているローエンド端末を使っているユーザーが国内に来ることが想定されるためローエンド端末の動作も確認しておきたいところです。

# ７．チップセット(SoC)
メジャーなチップセットのベンダーは4社あります。
![スクリーンショット 2020-12-30 21.47.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102273/006c6a40-8a31-afbe-7fd2-da8bf9152084.png)

ハイエンドからミッドレンジ端末ではQualcommのSoCの採用が多い印象です。
ミッドレンジからローエンドではMediaTek製SoCが一部で使われています。SoCが異なるとそれを動かすためのドライバーもそれぞれ異なったものやカスタマイズされたものが使用されますのでAndroid端末の機種依存の原因の１つになります。検証端末のチップセットが1種類にならずいろんなチップセットの端末を取り揃えておくと安心です。

| No. | SoC | 説明 |
|:--|:--|:--|
| 1  | Qualcomm Snapdragon | Androidでは一番メジャーなSoC。ハイエンドからローエンドまで幅広い展開。  |
| 2  | MediaTek Helio | 低価格端末で採用が多いが、最近ではハイエンド用SoCも出している。  |
| 3  | Samsung Exynos  | 主にGalaxy用のSoC。  |
| 4  | HiSilicon Kirin  | 主にHuawei用のSoC。 |
| 5  | UNISOC | 低価格端末で採用されることが多い。 |

#### チップセットの価格帯

スマホのスペック表を見ると、どのチップセットを使っているか記載されています。

たとえばPixel5の場合...
![スクリーンショット 2020-12-30 22.02.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102273/eeaf55df-1dae-e8d4-da22-900e18d41184.png)
QualcommのSnapdragon 765Gというチップセットを使っていることがわかります。

* 800/700系：ハイエンド
* 600系：ミッドレンジ
* 400系：エントリー

Snapdragonはプロセッサ名の数字の部分でグレード分けされていて、これによると765Gはハイエンド向けSoCということになります。他のチップセットベンダーでも同様にグレードが分かれています。

このような感じでチップセットのバリエーションを洗い出してみると、
検証端末として`チップセットベンダー x グレード(4社 x 3)` の12機種を選定することが理想
ということなってしまうのですが、あまりにも数が多いので予算に応じて割愛してください :money_with_wings: 

# その他のポイント
アプリの用途によっては以下のようなことも検討が必要です。

* ハードウェア
   * 位置情報、カメラ、Bluetooth、USB、センサー等を使ったアプリでは、接続性や精度に機種依存があります。
* 用途
   * ゲーミング、キッズ、シニア、現場系タフ端末、ハンディターミナル、車載など。
* GMS認証あり・なし(Google Play Serviceが使える端末かどうか)
  * 中国本土向けの端末やHuaweiの一部の機種ではGoogle Play Serviceが使えないので注意。
* 仕向け
  * 同一の機種でも国内向けと海外向けで仕様が異なる場合があります。
* Android Go
  * 低スペック向けのAndroid。国内で販売されている機種はごくわずか。
* CPUアーキテクチャ(ARM, RISC-V, MIPS, x86)
  * ARM系CPUがほとんどです。今後はRISC-VのCPUが増えてくる可能性があります。
* 省電力機能
  * メーカー独自の省電力機能があるため、バックグラウンドで動作するアプリは要確認。

# 実機の入手
一昔前までは実機は中古で購入したり借りたりしていましたが、最近はクラウド上の実機でテストできるサービスがありとても便利です。ただし、BluetoothやUSBなど外部機器と接続するようなアプリではクラウドは使えないので実機を購入するか、検証サイトでレンタルします。


#### クラウド上で実機検証ができるサービス
* [Firebase Test Lab](https://firebase.google.com/docs/test-lab?hl=ja)
* [AWS Device Farm](https://aws.amazon.com/jp/device-farm/)
* [Samsung Remote Test Lab](https://developer.samsung.com/remote-test-lab)

#### 実機検証サイト
* [ケータイラボ](https://www.ktai-labo.com/)

# 参考
* [Androidの実機試験をするときの端末の選び方](https://qiita.com/intel_au/items/86450aab53d072d3848f)
* [Droidkaigi.fm 「4. 大調達！検証端末ブラザーズ for 2020 秋冬」](https://droidkaigi.jp/fm/episode/4)
* [自宅に STF (Smartphone Test Farm) を立てて検証端末を管理する](https://blog.keithyokoma.dev/entry/2020/11/20/185133)
* [スマホのシェア率を見れるサイトのまとめ](https://qiita.com/marumo3/items/bf277525789565d8b3d7) 
* [GSMArena.com](https://www.gsmarena.com/)
* [スマタブinfo](http://smatabinfo.jp/)