LoginSignup
7
3

More than 1 year has passed since last update.

Androidの「CDD」と「CTS」を理解する

Last updated at Posted at 2022-12-06

前回の記事では、「Android互換のOSを雑多に理解する」という記事を投稿させていただきました。
その記事の中で気になった「CTS」について掘り下げていきたいと思います。

(まだ見ていない方は良ければ下記URLより参照ください)
前回の記事>https://qiita.com/ydclab_0008/items/aa8687e4b74719627e38

という事で早速ですが
Androidが広く普及してきました。

今やスマートフォンだけでなく、
様々な製品に搭載されていますが、
その中にはAndroidの互換性の承認を受けている物と
そうでない物があります。

例)
 Amazon :Fire OS(互換性の承認なし)
 SAMSUNG:One UI(互換性の承認あり)

今回はAndroidの互換性を承認する「CDD」と「CTS」について記載したいと思います。

Android互換性の承認

Android互換性を承認されたデバイスを作成するには、
「CDD」に準拠し「CTS」に合格する必要があります。

それ以外のデバイスは「Fire OS」の様に非互換のOSという事になります。

CDD

「CDD」という言葉が出てきましたが、「CDD」とは何でしょう?

「CDD」(Compatibility Definition Document)
日本語で言うと「互換性定義ドキュメント」ですね。

Androidの互換性を証明する内容は「CDD」にて記載されています

「CDD」は、正規のAndroidと互換性を満たす為の要件を列挙しています。
また、新しいAndroidプラットフォームのリリースごとに、
新しく「CDD」が用意されます。

新規のデバイスをAndroid互換機としてリリースする際には、
その時の最新の「CDD」をGoogleGitからダウンロードして参照し、
要件を満たしている事を確認しなければいけないという事になります。

CTS

「CTS」という言葉が出てきましたが、「CTS」とは何でしょう?

「CTS」の正式名称は「Compatibility Test Suit」、
日本語で言うと「互換性テスト」という事になります。

GoogleによるAndroidとの互換性を承認するテスト群を「CTS」といいます。

この認証にパスすることでAndroidの互換性が証明され、
Androidの互換端末と名乗れるようになります。
(具体的にはGooglePlay等を利用することが可能になります)

注意)
ただし、「CTS」は「CDD」を完全には包括しない為、
デバイスの互換性の証明には「CDD」に準拠している事を
確認することが必要となります。

【テストケース】

「CTS」には以下の様なテストケースがあります。
 ・使用可能なAPIの署名をチェック
 ・プラットフォームAPIの正確性チェック
 ・Dalvik Executable Formatのチェック
 ・コアプラットフォームのデータモデルのチェック
 ・コアプラットフォームのインテントのチェック
 ・コアプラットフォームの権限のチェック
 ・コアプラットフォームのリソースタイプのチェック

互換性チェックのテストはテスト環境としてLinux環境を用意し、
GoogleGitよりテストケースをダウンロードして実施します。

【テスト環境】

テスト環境として使用するLinuxには、下記をインストールする必要があります。
 ・Android SDKツール
 ・ADB
 ・AAPT
 ・JDK
 ・Virtualenv(Python環境)
 ・Android 13 R2 CTS

【検証デバイス】

検証するデバイスにも準備が必要です。
 ・API レベルの設定
 ・CTS(シム パッケージ、メディア ストレス テスト用の動画等)
 ・ディスプレイ(ディスプレイの無いデバイスの場合)
 ・SIMカード(SIMカード スロットがある場合)
 ・UICC(Universal Integrated Circuit Card)
 ・デバイスのAndroid設定(データの初期化など)

最後に

今回の内容では「CTS」と「CDD」について書いてみました。

スマホを利用するだけの方にとっては
あまり関係のないお話に感じます。

ただ、アプリを開発する者としては、
「CTS」と「CDD」に合格しているデバイスの方が
Android互換に準拠して開発を進められる為、非常に助かります。

非互換の場合は、独自のアプリを開発しやすい面はあるのですが、
ライブラリが無いから作らないといけない・・・
ライブラリはあるけど仕様が違うといった問題があり注意が必要です。

個人的な感想ですが、互換性のあるデバイスの方が、
安心して開発できるので好きですね。

以上になります。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3