無料で配布されてます.
とりあえず, ebub や PDF すべての形式をダウンロード.
80ページくらいあるし, わーい.
無料で配布されてます.
とりあえず, ebub や PDF すべての形式をダウンロード.
80ページくらいあるし, わーい.
「アプリを作ったけど なぜか表示が遅い」
そのようなレンダリング時間の改善するための方法のひとつとして GPUオーバードローツールを利用しましょう.
アプリがシステムに他の何かの上に描画することを「オーバードロー」といいます.「GPUオーバードロー」ツールを使うとそのピクセルが何回再描画されたか画面上に色をかぶせて表示させることができます.
以下ので順で有効化します.
1.「設定」
2.「開発者向けオプション」
3.「GPUオーバードローをデバッグ」
4.「オーバードロー領域の表示」
画面の色が変化したと思います.
あなたのアプリを開いてレイアウトの改善を行ってみましょう.
画面上のピクセルに対してオーバードローを行った回数を表しています.
オリジナル色
– オーバードローなし
– そのピクセルは一度だけ塗りつぶされた
青
- 1回 オーバードロー
- そのピクセルは2回塗りつぶされた
緑
...
ピンク
...
赤
...
たとえば, 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
Tracer for OpenGL ES | Android Developers
まずは, 最大で2回のオーバードロー(緑)を目指してみましょう.
Optimizing Layouts in Android - Reducing Overdraw - Riggaroo
参考にしたいサンプルアプリを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
アプリ起動後, 動かしてみて, いらなくなったらターミナル出力の最終行に表示されているadbコマンドでアンインストール.
... > If you want to remove the app you just installed, execute: adb uninstall github.cesarferreira.helloworld
あなたのマシンには試したテストアプリの不要なプロジェクトディレクトリがたくさんありませんか?