BT

Ready for InfoQ 3.0? Try the new design and let us know what you think!

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

| 作者: Abel Avram フォローする 12 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2014年12月31日. 推定読書時間: 2 分 |

原文(投稿日: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によるもうひとつの試みなのだ。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション
BT