PR

 sonameを取り扱えるようになることで、ライブラリーのバージョン管理が容易になる。ライブラリーのバージョンは例えば「libsample-1.1.so」や「libsample-2.2.so」といったファイル名で示すのが一般的である。プログラムとのリンクの際にこうしたファイル名を直接使うと、バージョンが少し変わっただけでも再度プログラムをビルドし直す必要が出てくる。特定のABI(Application Binary Interface)を備えるライブラリー群に対して「libsample.so.1」や「libsample.so.2」といった総称となる別名(soname)を用意し、その別名を使ってプログラムとリンクするようにすれば、細かなバージョン変更についてはsonameと実ライブラリーとのリンクの張り替えだけで対応できるようになる。

既に130以上の問題箇所を修正

 メモリーリーク問題を解消するため、グーグルではAddress Sanitizerをはじめとする複数の検査ツールを使ってAndroidを構成するプログラムのチェックを進めている。使用している検査ツールには、OSSツール「Valgrind」に含まれるメモリーチェック用ツールのほか、米IBMの商用ツール「BEAM」などがある。

表1●AOSPのソースコードの変更ログで見たメモリーリーク修正箇所数
表1●AOSPのソースコードの変更ログで見たメモリーリーク修正箇所数
変更ログに「memory leak」と記載されているものをカウントした。Android 5.1.1 r4と比較すると、Android M Preview 1までに130以上のメモリーリークが修正されていることが分かる。
[画像のクリックで拡大表示]

 動的リンカーの改良で動的検査ツールを利用しやすくしたことなどが功を奏したのか、2015年7月下旬の時点で、Android 5.1.1に存在していた130以上のメモリーリーク問題が既に修正されている(表1)。Android Mでは、メモリーリーク問題の大幅な解消が期待できそうである。