見えないところは塗りつぶすな - 不要なオーバードロー削除で高速化

「アプリを作ったけど なぜか表示が遅い」

そのようなレンダリング時間の改善するための方法のひとつとして GPUオーバードローツールを利用しましょう.

「オーバードロー」とは?

アプリがシステムに他の何かの上に描画することを「オーバードロー」といいます.「GPUオーバードロー」ツールを使うとそのピクセルが何回再描画されたか画面上に色をかぶせて表示させることができます.

GPUオーバードローツールを有効化する

以下ので順で有効化します.

1.「設定」
2.「開発者向けオプション」
3.「GPUオーバードローをデバッグ」
4.「オーバードロー領域の表示」

20160221-134639

画面の色が変化したと思います.

20160221-134651

あなたのアプリを開いてレイアウトの改善を行ってみましょう.

Screenshot_2016-02-01-11-08-40

変化した色の違いは何を表しているのか?

画面上のピクセルに対してオーバードローを行った回数を表しています.

オリジナル色
– オーバードローなし
– そのピクセルは一度だけ塗りつぶされた

- 1回 オーバードロー
- そのピクセルは2回塗りつぶされた

...
ピンク
...

...

Debug_GPU_Overdraw_Walkthrough___Android_Developers

どのようにオーバードローを改善するか?

たとえば, RelativeLayout のbackground color を削除して テーマのみにbackground color を描画させる.

<RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#FFFFFF">

<RelativeLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent">

これにより, オリジナル色と青色のオーバードローが少しに改善させることができました. いくつかのオーバードローは避けることができません.

オーバードローがすべて背景色に関連しているわけではありません. 非常に複雑なレイアウト階層構造の多すぎるビューの中にたくさん存在すると思われます。

オーバードローが発生している理由は, Hierarchy Viewer や GL Tracer などのツールで確認することができます.

Hierarchy_Viewer_Walkthrough___Android_Developers

Hierarchy Viewer Walkthrough | Android Developers

Tracer for OpenGL ES | Android Developers

まずは, 最大で2回のオーバードロー(緑)を目指してみましょう.

Debug_GPU_Overdraw_Walkthrough___Android_Developers 2

Optimizing Layouts in Android - Reducing Overdraw - Riggaroo

Debug GPU Overdraw Walkthrough | Android Developers


【AndroidStudio 不要】サンプルアプリは「dryrun」で試してすぐ捨てよう

参考にしたいサンプルアプリをGiHubで見つけて試してみる場合は以下のような手順

1. サンプルアプリのリポジトリを探す.
2. zip をダウンロードする.
3. それを展開する.
4. AndroidStudio などIDEを開く.
5. インポートする.
6. Gradle が sync する.
7. プロジェクトを run.
8. 実行するデバイスを選択する.
9. 実際に動かしてみる.
10. zipファイルとプロジェクトフォルダを捨てる.

となりますが,「dryrun」をインストールすると

$ gem install dryrun
...
$ dryrun -h
Usage: dryrun GITHUB_URL [OPTIONS]

Options
    -m, --module MODULE_NAME         Custom module to run
    -p, --path PATH                  Custom path to android project
    -h, --help                       Displays help
    -v, --version                    Displays version

dryrun: Try the demo project of any Android Library

リポジトリのURLのみでターミナルからの一行で起動までが可能になります. AndroidStudioなどIDEは起動しなくてよいです.

プロジェクトディレクトリは残りません.

$ dryrun https://github.com/cesarferreira/android-helloworld

usage_v2

cesarferreira_dryrun__Try_the_demo_project_of_any_Android_Library

アプリ起動後, 動かしてみて, いらなくなったらターミナル出力の最終行に表示されているadbコマンドでアンインストール.

...
> If you want to remove the app you just installed, execute:
adb uninstall github.cesarferreira.helloworld

あなたのマシンには試したテストアプリの不要なプロジェクトディレクトリがたくさんありませんか?

man は長すぎるので「tldr」


2016年5月からの「TOEIC®テスト公式問題集 新形式問題対応編」登場!!

150415472505_TP_V-1

2016年5月29日からテスト形式が変わるのはすでにアナウンスされています.

TOEIC|インフォメーション|2015年度|TOEICテスト 出題形式一部変更について

リスニングセクションの変更点

写真描写問題(Part 1)と応答問題(Part 2)の設問数が減ります。
会話問題(Part 3)の設問数が増えます。
会話問題の中に、発言が短くやり取りの多いものが加わります。
3名で会話する設問があります。
Elisions(省略形: going toが gonnaなど)、 Fragments(文の一部分: Yes, in a minute; Down the hall; Could you?など)を含む会話が流れます。
会話やトークの中で聞いたことと、問題用紙に印刷された図などで見た情報を関連づけて解答する設問が加わります。
会話やトークの中で話し手が暗示している意図を問う設問が加わります。

リーディングセクションの変更点

短文穴埋め問題(Part 5)の設問数が減ります。
長文穴埋め問題(Part 6)の一つの文章に含まれる設問が 3問から4問に増えます。
文書の全体的な構成を理解しているか問う設問が加わります。具体的には、
長文穴埋め問題で、文書内の空欄に最も適切な一文を選ぶ問題
Part 7(1つの文書)で、文書内に新たな一文を挿入するのに最も適切な箇所を選ぶ問題
テキストメッセージやインスタントメッセージ(チャット)、オンラインチャット形式で複数名がやり取りを行う設問が加わります。
Part 7(1つの文書、複数の文書)の設問数が増えます。
Part 7(複数の文書)で 3つの関連する文書を読んで理解する設問が加わります。
文書中で書き手が暗示している意図を問う設問が加わります。

TOEIC|プレスリリース|2015年度|「TOEICテスト公式問題集 新形式問題対応編」

必須の参考書となるでしょうね.