BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Jack & Jill: パフォーマンス向上のためのAndroid用の新コンパイラ

Jack & Jill: パフォーマンス向上のためのAndroid用の新コンパイラ

原文(投稿日:2014/12/04)へのリンク

Saikoaのテクニカルディレクタで,DexGuardを開発したEric Lafortune氏が,Android 5.0 Revision 1 (API 21.1)のSDKに新しいツールを見付けた。JackとJillという名の2つのコンパイラだ。いずれのツールも,Androidのコンパイルプロセスの合理化を目的にしている。

GoogleはART(Android Run Time)を,KitKatの試験的ユーティリティとして導入した。LollipopではこれがDalvikに代わり,デフォルトのランタイムとなっている。ARTはアプリケーションがデバイスにインストールされた時に,そのDEXバイトコードを読み取って,ネイティブコードに変換するという,アヘッド・オン・タイムのコンパイルを実行するが,この時にデバイスの特性を考慮している。Googleは今回,このコンパイルプロセスを,さらに強化しているようなのだ。

Lafortune氏によると,Jackは,EclipseのJavaコンパイラとProGuardをベースとしたツールである。ProGuardは,使用されないコードを取り除いてコードベースを縮小すると同時に,クラスやメソッド,フィールドの名前を変更して難読化するという,最適化ツールである。ProGuardはAndroidのビルドシステムに統合されているが,リリースバイナリ生成時には,開発者がその利用の有無を選択するように推奨されている。Jackが公式ツールになれば,それを使わざるを得なくなるが,コンフィギュレーションファイルの設定を通じてコントロールすることは可能だ。

もうひとつの新ツールであるJillは,Javaライブラリのバイトコードを,Jayceという中間バイトコードに変換するために使用される。JackはJavaソースコードとJayceバイトコードの両方をコンパイルして,最適化されたDEXバイトコードを生成する。いずれのコンパイラも"十分に機能するようだ"が,Jackは"(まだ),ログコードの削除など,ProGuardの高度な機能の一部を"サポートしていない,と氏は記している。

Java 8はまだサポートされていないが,"後方互換性と,将来的な拡張に向けての可能性"はある,と氏は付け加えている。これらのツールは,Androidプラグイン 1.0.0 RCを使用したGradleのビルドで試用できる。

従来よりも最適化され,サイズが小さく,おそらくは難読化されたコードを生成するJackとJillは,Googleのオペレーティングシステムのパフォーマンスを向上するための,Googleによるもうひとつの試みなのだ。

この記事に星をつける

おすすめ度
スタイル

BT