Project Treble とは? どんな効果があった?

「Project Treble」を 3 行で解説!

  1. Android の再設計プロジェクトのひとつだよ
  2. バージョンの断片化を解消するためのプロジェクトだよ
  3. この成果を利用した Generic System Image というものがあるよ

Andorid の再設計プロジェクトのひとつである「Project (ぷろじぇくと) Treble (とれぶる) 」とはどのようなものか、どんな効果があったのかを解説します。

Project Treble 前の Android にある課題

まずは Project Treble が登場する前の Android にあった課題について、説明します。

ずばりそれは Android バージョンの断片化 (フラグメンテーション) です。Google が最新の Android バージョンをリリースしたのにもかかわらず、市場に流通しているデバイスで実行されている Android のバージョンに「ばらつき」が生まれてしまうという現象が発生していました。つまり、Android のあるバージョンがリリースされたとしても、市場のメジャーな端末は、そのリリースのひとつ前のバージョンですら、十分に普及していないということが起こっていました。

それはなぜでしょうか? それは、Android のソースコードが、チップメーカーやデバイスメーカーの固有の実装と密に結合されてしまうような設計になっていたからです。そのため、新しいリリースが公開されたとしても、それぞれのメーカーがデバイス独自の実装を行うために、莫大な労力が掛かっていました。それ故にバージョンの断片化が発生していました。

Project Treble の仕組み

それを解決するために、Android の再設計プロジェクトとして Project Treble が登場しました。Project Treble は、Android のフレームワークとデバイス固有の実装を分離することによって、実装に掛かる労力を軽減し、新しい Android バージョンのリリースを高速化することが目的です。

Project Treble は Android 8.0 から始まりました。

具体的には、それぞれの実装の部分を、異なるパーティションに配置することで、システム本体から切り離すことができます。チップの実装部分は vendor パーティションに、デバイス固有の実装部分は product パーティションに配置します。これにより、Android の純粋なフレームワーク部分は system パーティションに配置されることになります。

Project Treble の効果

では、実際に Project Treble が導入されたことによって、どのような効果があったのでしょうか?

結果としては、一定以上の効果があったと言うことができるでしょう。「効果があった」ということはつまり Android バージョンの断片化が改善されたということです。

まず効果のひとつとして、アップデートの高速化があります。これはデバイスメーカーによってまちまちではありますが、少なくとも Project Treble が導入される前よりも、アップデートの対応速度は向上したといえるでしょう。

そして、サポート期間の延長も効果のひとつと考えられます。OS のメジャーバージョンアップが今まで 1, 2 回であったものが、近年では 3 回が標準、デバイスメーカーやデバイスのグレードに応じてそれ以上、というものが増えてきたと思います。もちろんこれにはセキュリティ意識の向上といった要因もあるでしょうが、Project Treble の効果という側面が強いです。

Project Treble による Generic System Image (GSI)

Project Treble の導入によって、Android のフレームワーク部分をひとつのパーティションに配置できるようになりました。

この特性を利用したものが、Generic (じぇねりっく) System (しすてむ) Image (いめーじ) (GSI (じーえすあい) ) です。GSI は AOSP のシステムイメージです。Generic とあるように、このイメージファイルは、ひとつのファイルで Project Treble に完全に対応したデバイスに対応しています。

あくまでも GSI は、チップの実装が正しくできているかなどを調べるために使われるものですが、この GSI の仕組みを利用したカスタム ROM も存在します。

GSI であっても全ての機能が正常に使用できるかどうかは、それぞれのデバイスがちゃんと Treble に完全に対応しているかどうかに依存しています。また、カスタム ROM によっては GSI にそれぞれのデバイスに向けたパッチを含んでいるものもあります。