倉田奨励金研究報告書 第 52 集
2021 年度（第 53 回）助成

自然科学・工学－エネルギー・環境：1 年助成

奨励金№1482

Mobile App コードの進化を包容する
グリーンマイニング基盤の構築
亀井靖高

九州大学大学院

システム情報科学研究院

准教授

Development of Green Mining Infrastructure forEmbracing the Evolution of Mobile App code
Yasutaka Kamei,
Kyushu University, Faculty of Information Science and Electrical Engineering, Associate Professor

本研究課題では、頻繁に更新される Mobile App コードの進化を包容する、ロバストかつライトウェイトなグリーンマイニング基盤を開発する。その実現に向け、バージョン間における同一機能特定方法を提案した。また、自動実行される Mobile App コードからログを計測して、その計測ログから近似的に消費電力を推定する方法を開発した。本マイニング基盤を用いることで、よりソフトウェア開発の初期段階における消費電力削減ノウハウの発見・普及、さらにはひとつひとつの Mobile App の消費電力の削減に繋がることが期待できる。
The goal of this research project is to develop a robust and lightweight green mining platform that encompasses
the evolution of frequently updated mobile application code. To achieve this, we proposed an approach for identifying
identical functionality between versions. Additionally, we proposed an approach for estimating power consumption
by measuring logs of automatically executed mobile application code. By using this green mining platform, it isexpected that knowledge about power reduction can be discovered and disseminated at an earlier stage of softwaredevelopment, leading to a reduction in power consumption for each mobile application.

1．研究内容コードの進化を包容する、ロバストかつライト

1.1 はじめにウェイトなグリーンマイニング基盤の開発である。

昨今、Android や iOS の登場を皮切りに、モバその実現に向け、大きく 2 つのサブテーマを実施

イル端末が爆発的に普及し、今や我々の生活に欠した。サブテーマ 1 では、バージョン間におけるかせないものとなっている。例えば、Android OS同一機能特定方法の開発（よりロバストに）を目が搭載されたスマートフォンは、2021 年 5 月の時

指 す。具 体 的 に は、あ る 機 能 を 呼 び 出 す 手 順

点で、世界で 30 億人以上ものアクティブユーザに（例：どこのボタンを押すか）を、リビジョンごとよって利用されている。そのため、モバイルアプに自動で特定しトレースする方法を開発した。サリ（Mobile App: スマートフォン向けに開発されブテーマ 2 の消費電力計測方法の開発（よりライたアプリケーションソフトウェア）のひとつひとトウェイトに）では、サブテーマ 1 で自動実行さつが消費する電力は小さいものの、巨視的観点かれる Mobile App コードからログを計測し、そのら見ると、電力をわずかにでも浪費する処理が世計測ログから近似的に消費電力を推定する方法を界全体へ及ぼす影響は無視できない大きさである。

開発した。

本研究の目的は、頻繁に更新される Mobile App

倉田奨励金研究報告書 第 52 集
2021 年度（第 53 回）助成

自然科学・工学－エネルギー・環境：1 年助成

1.2 要素技術

らのメソッドの消費電力量を調査する。さらに、

1.2.1 Android 関連のツール

Instrumented Tests を経由して実行トレースとAndroid Profiler［1］と Systrace［2］、Batterystats

ソースコードを関連づけることで、ユースケース［3］を併用して、CPU、メモリ、ネットワーク、ごとの消費電力量を推定することも可能となる。

バッテリーリソースの使用状況に関するデータをリアルタイムで収集する。これらの Android ツー

1.3 グリーンマイニング基盤

ルは、アプリケーションの電力消費量を直接測定1.3.1 概要

するものではなく、サブテーマ 2 で行う消費電力を推定するモデルの入力として用いる。

本研究課題では、Instrumented Tests を用いて任意のコードを実行し、Android Profiler、Systrace、Batterystats を収集することで、サブテーマ 1、及1.2.2 Instrumented Tests

び、サブテーマ 2 の方法を実装したグリーンマイ

Instrumented Tests は、実行される Mobile Appニング基盤を開発した。本グリーンマイニング基のコンテキストや Android フレームワークの API盤では、任意のコードを指定することや、メソッにアクセスできるテスト実行環境を利用して、実ドレベルでの一貫した実行トレースの生成、さら機上やエミュレータ上で実行できるテストである。には計測ログから近似的に消費電力を推定するこ

開発者は、テストコードを記述することで、テスとで、Mobile App に対する消費電力の大規模分析

ト対象の Mobile App に対して任意の操作を実行を可能とする。

できる。

図 1 は、本研究課題で開発したグリーンマイニ

Instrumented Tests は操作をテストコードとしング基盤の全体図（アーキテクチャ）を示す。本て記述でき、常に同じイベントを発生させるた基盤は、3 つの主要なコンポーネントによって構め、Mobile App を実行した際の実行トレースを成される。1 つ目は APK 生成機構（APK：Android一貫して再現することが可能である。本研究課

Application Package の略称で、Android 上で動作

題では、Instrumented Tests を使用して、消費電するソフトウェアパッケージの形式）で、2 つ目

力の測定対象となるメソッドを呼び出し、これは実行トレース等のログ生成機構で、3 つ目は消図 1．グリーンマイニング基盤の全体図（Nourry2022ICSME より抜粋）

倉田奨励金研究報告書 第 52 集
2021 年度（第 53 回）助成

自然科学・工学－エネルギー・環境：1 年助成

費電力量の推定機構である。なお、各機構の詳細

1.4 実験結果な説明は、ICSME 2022 で発表した論文にて記載

1.4.1 スケーラビリティ

されている。

スケーラビリティに関する評価を行うため、オープンソースの Mobile App である KISS プロ

1.3.2 APK 生成機構

ジェクト［5］を対象に実験を行った。本プロジェ

本グリーンマイニング基盤では、消費電力を推クトを採用した理由は、ビルドシステムとして定するためのデータ（計測ログ）を取得するためgradle を用いており、過去のリビジョンに遡ってに Android Profiler を使用する。しかしながら、ビルドを容易にできたためである。401 リビジョ

Android Profiler を Mobile App 上から直接実行すンに対して本グリーンマイニング基盤を用いた結ることができない。そのため、プロファイルプロ

果、1 つのリビジョンをプロファイルするためにセスを開始／停止するためには、外部（ローカル要した時間は平均で 7 分程度であった。また、再サーバ）から開始／停止の操作を呼び出す必要が現性を評価するために、ある 1 つのリビジョンにある。プロファイルプロセスの自動化を目指して、対して、10 回分のプロファイルを実施した。APK

本研究課題では、APK（主にテスト用 APK）を改に含まれる 16 つのテストそれぞれについてプロ良することで、ローカルサーバに操作の呼び出しファイルされたメソッドの数を調べたところ、いくを送るタイミングを通知する。そして、改良されつかの小さな不一致を伴うものの、実行全体としたテスト APK とメイン APK（Mobile App 本体）ては非常に類似した結果を生成することができた。

をモバイルデバイス等の実行環境に自動でインストールする。

1.4.2 従来手法との比較（ランダム実行との比較）
本グリーンマイニング基盤の特徴の 1 つが、特1.3.3 消費電力推定のためのログ生成機構

定の機能に狙いを絞った上での消費電力の測定でandroidTest フォルダ内の計測対象コードを含ある。従来の操作の呼び出し方法の 1 つである

むソースコードファイルに対して AST パーサを実Monkey を用いることでも、特定の機能が実行さ行し、すべての計測テストメソッドのシグニチャれることもある可能性がある。そのため、どの程を抽出する。ユースケース、及び、実行トレース度の割合で Monkey によって特定の機能が実行さやソースコードの関連づけを可能にするためであれるかの実験を行った。本実験では、Mobile Appる。そ の 後、trace logs、systrace、batter y dataとして、AnyMemo［6］を用いた。本 Mobile App（batterystats）を取得する。

では、ユーザが単語などを記憶するためにカードを作成できる。本実験では、この MobileApp の最1.3.4 消費電力の推定機構も一般的な使用例の 1 つである「新しいカードのbatterystats には、計測中のモバイルデバイス上作成」の消費電力量を測定する。Monkey によっのバッテリー使用量に関連する情報が含まれていて、カード作成メニューにアクセスし、新しいる。Trace logs と systerace の出力ファイルを組みカードを作成するために複数のユーザインタ合わせ、PETrA［4］の消費電力量推定のアルゴリフェースをナビゲートできるかどうかを確認した

ズムを用いて、メソッドレベルでの消費電力量のところ、3 万回以上のインタラクションを生成さ近似値を取得する。

せたとしても、Monkey では 1 枚も新しいカードを作成できないこと（つまり、特定機能を絞ることができないこと）がわかった。

倉田奨励金研究報告書 第 52 集
2021 年度（第 53 回）助成

1.5 おわりに

自然科学・工学－エネルギー・環境：1 年助成

2．発表（研究成果の発表）

近年、SDGs（持続可能な開発目標）が世界で謳Olivier Nourry, Yutaro Kashiwa, Bin Lin, Michele

われ、その目標の一つに地球温暖化を始めとする

Lanza, Gabriele Bavota, and Yasutaka Kamei “AIP:

気候変動に対する行動が求められている。我が国

Scalable and Reproducible Execution Traces in

でも 2030 年までの二酸化炭素排出量削減目標を

Energy Studies on Mobile Devices,” In Proceedings

2013 年度比 46％減とする目標を掲げており、省エof In Proceedings of the International Conference

ネルギーによる二酸化炭素削減は急務な課題のひon Software Maintenance and Evolution（ICSME）,

とつである。本研究が対象とする Mobile App は、Tool Demo Track, pp. 449-453, October 2022.

一般家庭のみならず、オフィスでも広く利用され（Limassol, Cyprus）.

る。ひとつひとつのアプリの電力消費は小さいものの、我が国および世界レベルで見た際に、消費招待講演、SES2022 にて : Olivier Nourr y, Yutaro

電力は膨大な量となりうる。本研究課題で開発しKashiwa, Yasutaka Kamei, and Naoyasu Ubayashi,

たグリーンマイニング基盤を活用することで、製“Does Shor tening the Release Cycle Af fect

品の内側（つまりソフトウェア）より社会課題のRefactoring Activities: A Case Study of the JDT

解決への貢献が期待できる。

Core, Platform SWT, and UI projects,” Informationand Software Technology, Vol. 139, Article number:

参考文献［1］Android Profiler. https://developer.android.
com/studio/profile/android-profiler.
［2］Capture a system trace on the command line;
android developers.［Online］. Available: https://developer.andr oid.com/topic/per for mance/
tracing/command-line［3］Profile batter y usage with batter ystats andbatter y historian, android developers.［Online］.
Available: https://developer.android.com/topic/performance/power/setup-battery-historian［4］D. Di Nucci, F. Palomba, A. Prota, A.
Panichella, A. Zaidman, and A. De Lucia, “Petra: A
software-based tool for estimating the energyprofile of android applications, in Proceedings ofthe 2017 IEEE/ACM 39th International Conference
on Software Engineering Companion （ICSE-C）,
2017, pp. 3 – 6.
［5］Kiss.［Online］. Available: https://github.com/
Neamar/KISS［6］Anymemo.［Online］. Available: https://github.
com/helloworld1/AnyMemo

106623.