blogsoftware開発に関することを書いていきますこの広告は、90日以上更新していないブログに表示しています。bundleやナビゲーションエディタなど。3.3がリリースされた。プロジェクト作成ウィザードの刷新や、単一variantのsyncなど。3.4がリリースされた。リソースマネージャーの登場や、R8(Proguardの新しい版)がデフォルトになるなど。IDEの体験を向上させよう。Studio起動時に「統計情報をGoogleに送っていい?」と聞かれるが、その情報が使われてるのがここらしい。Studioがクラッシュすると、クラッシュレポートがGoogleに送信される。UIのフリーズは注意しておきたい分野。UIスレッドが数秒とまった場合、すべてのスレッドダンプをとってGoogleに送信している。ダッシュボードによると、平均14秒止まり、発生回数が5万件というのがあったりする。この統計をもとにバグを直したところ、例としてデータバインディングを使っているXMLの編集がとてもはやくなった。スポットで直してるだけではない。リグレッションテストもやってる。UIスレッドがネットワークリクエスト投げていたりしたらテストがFailするようにしてる(Javadoc出したりするときに発生しそう)。IDEがOOMに遭遇したとき、ヒープの統計とかを収集してGoogleに送信している。Studioをヒープ1.2GBで動かしていたという事実。1.2GBをデフォルトにしたか?デフォルトを大きくすると、ローエンドのマシンで起動すらできなくなってしまうから。いって小さくしすぎると、通常のプロジェクトを開くときに開けなくなってしまう。Studioが使用するヒープサイズは大きくしよう。Studioが使用するヒープサイズ大きくする?」のダイアログが出るように。その場で設定を変更して再起動もできる。Studioのメモリリークを調べるには、ヒープダンプを取るのが手っ取り早い。でかいし、個人情報が含まれるからそれは無理。そのため、OOMが近くと一旦ヒープダンプをとってローカルに保存し、次回起動時にメモリリークを解析してその結果だけを送信するようにしてある。送信後、保存したダンプファイルは消している。送信前にはどんな情報を送るか、プレーンテキストになっているものが確認できる。このメモリリークの情報から、有名なサードパーティプラグインのメモリリークを突き止めた(すげー)。プラグイン開発者にバグレポートしたところ、「数年前からなんかリークしてたっぽいんだけど、わかんなかったんだよねー」とともに、24時間以内に直してくれた。改善されたとはいえ、メモリリークのあるプロダクトを出荷しているという事実にかわりはない。特殊なテストランナーを用意し、テストでメモリリークを発見できるようにした。次にスピードに関して。1つの手は余計なプラグインをいれないこと。パフォーマンスのためにプラグイン使うのやめるのはおすすめしない。Studioのマジョリティは(Macではなく)Windows。ファイルのセパレータが違うといった、Windows特有の問題もあるけど、パフォーマンスに影響があったのがウィルスチェッカー。SDKやプロジェクトのフォルダを除外すると、速度が4倍になった。そのため、SDKやプロジェクトフォルダがウィルスチェッカーに除外されていない場合、ダイアログを出すようにしたよ。盲目的に除外するのではなく、セキュリティとのトレードオフを考えてね。エミュレーターもまたCPUをよく使う分野。Play入りのものだと、アップデートの確認やアプリの最適化などが走って結構CPU使っている。これをなんとかするために、エミュレーターのデフォルトを「バッテリー使用中」に変更したよ。1つの改善は、マイクでずっと待ち受けするのをやめたよ(ホームとかで「お〜け〜ぐ〜ぐる」と呼ぶと下からにょきっとでてくるあの機能)。マイクが必要な場合はその都度ONにして使ってね。changesを作ったよ。O以降に限定して変なhack使うのをやめてるよ。runの時はホットスワッピングのためのコードを差し込んでたりしたので、逆にクリーンビルドが遅くなってた。changesはOS側のホットスワップの機能を使ってるので、より安定してるよ。今までGradleはjarとか、ライブラリで使ってるのをどんどんホームディレクトリにキャッシュとして放り込んでたけど、それを自動で削除してくれる機能が入ったよ。Studio的にはキャッシュから読んだほうが早いので、この機能には困った。リポジトリをダウンロードしてオフラインでも使えるようにしたよ。zipを展開して、READMEに書かれているように設定してみてね。Studioをアップデートして、プロジェクトを開いた時に「いろいろアップデートしてね」のメッセージがこれまでは出ていたが、今後は出なくなる。3.5を使ってみてね。StudioのバージョンをあげるとGradleプラグインのバージョンもあわせてあげる必要があった。今後はその必要はなくなる(あげたほうがいいが)。Studioのstable版を使おうが、betaを使おうが、かまわない。他のセッションで紹介されたものがほとんど。3.5が正式サポート。In月別アーカイブはてなブログをはじめよう!fkmさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。