Androidのアプリの動作が重くなったので起動時にメモリを消費しているアプリを確認してみた

ヨメレバCSS
オリジナルCSS

 Androidで常駐してメモリを食っているアプリをいろいろと調査してみました。

スポンサーリンク
GoogleAdSence レクタングル(大)

再起動するとアプリの動作が軽くなるとは

 そもそもの発端はFGOをプレイしていて妙に反応が悪くなったときに再起動したら治ったみたいなところからです。

 一時対処としてはこれで良いのですが、しばらくするとやっぱりだんだん反応が悪くなるのでどうしたものかと思っていました。

メモリとswapを調査してみる

 経験上、メモリが足りなくてswapが発生してるときに似てるな…と思い、確認してみると見事にswapに突入していました。

> adb shell free
                total        used        free      shared     buffers
Mem:       3790626816  3405090816   385536000           0     9011200
-/+ buffers/cache:     3396079616   394547200
Swap:       536866816   506179584    30687232

 しかも500MBとかやばくないですか。

 一応、freeが385MB、cacheも394MBあるようなので動作に問題は無いと思いたいですが。

 swap領域がSDカードに作られてたら完全にアウトだなと思って確認しましたが、zRAMみたいなのでそこは大丈夫でした。

 swapは自分で設定したわけではないです。4.4からzRAMが使用できるみたいで、Phab2 Proはこれをswapに設定している感じでしょうか。

>adb shell cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/block/zram0                        partition       524284  524184  -1

メモリを消費しているプロセスを特定する

 どのようなプロセスがメモリを消費しているかを特定していきます。

> adb shell ps

とするとプロセス(パッケージ名)と消費メモリが分かるので、それをテキストファイルに保存して表計算ソフトに貼り付け、RSSでソートして調査しました。

 そのパッケージ名と使用メモリ量を元に、起動直後にメモリを食っているアプリを取捨選択していきました。

 主に削除したのは次のようなアプリ。といっても今あまり使ってないってだけで、困ったらまたインストールすればいいかなと思ってます。

 ただ、常駐する必要を感じないアプリがいつのまにか起動してきてるのはちょっともにょっとしましたね。そういうのはやめてほしい。メモリやCPUを使わないんであればまだ良いんですが。

・Booking (153MB)

 ホテル予約サービスのアプリ。常に使うものじゃないので削除。その割に一番メモリ食ってたなあ…

・ジョルテ (108MB)

 カレンダーアプリ。カレンダーの表示に使っていてデザイン的にも割とお気に入りだったけど、108MBはつらい。

 どのみち入ってるGoogleカレンダーに置き換えてしまいました。

・Facebook (74MB)、Facebookメッセンジャー(88MB)

 使わないこともないけどアプリじゃなくてブラウザでもいいかな(中身一緒っぽいし)と思って、ブラウザのショートカットをホームに置いてアプリは削除。

Amazon公式アプリ (81MB)、com.amazon.avod.thirdpartyclient (111MB)、com.amazon.venezia (74MB)

 これも買い物するときにブラウザでいいかなと思ってショートカットを作って削除。

 com.amazon.avod.thirdpartyclientはプライムビデオの、com.amazon.veneziaはアプリストアのパッケージ名のようだけどアプリ一覧からは見当たらなくて、adb uninstallで直接削除しました。

 AmazonMusicは入っているし、どこかで追加インストールしてるのかもしれない。

AnTuTuベンチマーク (66MB)、push (61MB)

 ベンチマーク取ったまま放置してたら何故か起動してきていた。必要になったら入れれば良いと思って削除。

・DMMぱちタウン (45MB)

 スマホで検索すると回数制限が掛かって有料プランに誘導されるクソ仕様のp-worldの代わりにと思ったんですけど全然使いづらくて結局使ってなかったから削除。

・Simple Stopwatch (37MB)

 ストップウォッチアプリです。それ自体は悪くないのですが常時起動している必要は無いので削除。

結果

・PSで集計したメモリ使用量

before after
4466MB 3534MB

・free

befoer:

                total        used        free      shared     buffers
Mem:       3790626816  3405090816   385536000           0     9011200
-/+ buffers/cache:     3396079616   394547200
Swap:       536866816   506179584    30687232

after:

                total        used        free      shared     buffers
Mem:       3790626816  3720249344    70377472           0   290414592
-/+ buffers/cache:     3429834752   360792064
Swap:       536866816   102256640   434610176

 PSで見ると1GBくらいは節約できた感じ。そもそもAndroidとQualcommのプロセスが食い過ぎです…(3GBくらいあるんじゃないか)

 端末のOSバージョンが6なので、7や8だともっとよくなっているのでしょうか。

 freeのほうはswapが明らかに減って、本体メモリのほうはより使ってる感じがあります。swapに逃げるぶんが減った感じなのかなと思いますがなんかメモリがどう使われてるかについてはもうふわっとしかわからん。

 ともかくこれで様子を見ていきたいと思います。

 (8/24追記)

 とりあえず1日過ごしてみましたが全体的にさくさく動くようになってめっさ快適。

簡単な確認方法

 今回はadbから調査してしまいましたが、おおまかに確認するのであれば「設定 > メモリ > アプリのメモリ使用状況」でも良いかもしれません。

 ただしこちらは、たとえば3時間ごとの平均だったりするようなので、目安程度に捉えておくのがよいと思います。(普段使いしてないアプリがメモリを使ってないかなあ程度)

 またメモリクリーナーなどお使いの方は、起動直後にそれらで確認してもよいかもですね。私は使っていないので分からないのですが。

 この問題はメモリを使ったアプリが起動直後から常駐しているみたいなところなので、タスクキルだけではなくアンインストールまで行う必要があるところがポイントです。そのようなアプリを見つけたらアンインストールしてみると改善するかもしれません。

スポンサーリンク
GoogleAdSence レクタングル(大)

シェアする

スポンサーリンク
GoogleAdSence レクタングル(大)