12年以上と長らく愛用しているAndroid用の画像ビューアアプリ「Perfect Viewer」
だが、最近、タブレット上で見開き表示にて使用することが増えたのに伴い、頻繁に動作が不安定になる不具合が発生して困っていた。
現象と、私的に調査・対策(?)した内容について、備忘のために記事にして残しておく。
どんな不具合か?
最新版のPerfect Viewer(2026/03/14現在ではVersion 5.0.4.4)で、電子書籍ファイル(PDFや画像をまとめたZIPファイル)を閲覧しているとき、数百ページくらいめくった所で、突然動作が極端に重くなり*1、そのうちフリーズしたり異常終了しまう。
これは見開きで表示している状態で発生するようで*2、単ページ表示の場合には(少なくとも自分のところでは)問題ない。
なお、現象が発生時してアプリの動作が重くなったときにはシステム全体の動作も重くなっていた(例えば電源ボタンにすぐには反応しない、など)。
調査
アプリの動作が重くなったときにシステム全体に影響していることから、メモリリークが発生して空きメモリが無くなっているのではないかと推測した。
そこで、一連のページめくり前後のPerfect Viewerの使用メモリ(システム情報に記載されているので確認可能)を調査してみた。
環境
- OPPO Pad Air(メモリ4G(+拡張4G)*3)
- ColorOS 13(Android 13)
- Perfect Viewer Version 5.0.4.4(※最大キャッシュファイルの容量:128GB)
テスト内容
- 280ページ(約50GB)の電子書籍ファイル(画像ZIPファイル)を最初から最後までページを手動でめくり(これを1周とする)、前後の使用メモリを確認
画面の向きは縦で、ページのレイアウトのみ
- 単ページ表示されるように「デフォルト」にした場合
- 見開き表示されるように「自動見開き表示」にした場合
を切り替え
結果
単ページ表示




| 周目 | 開始時 | 終了時 |
|---|---|---|
| 1 | 213.1M | 404.1M |
| 2 | 401.3M | 420.4M |
見開き表示




| 周目 | 開始時 | 終了時 |
|---|---|---|
| 1 | 222.2M | 329.0M |
| 2 | 343.6M | 852.8M |
考察
1周目はむしろ単ページ表示の方が見開き表示よりも使用メモリが増している(画面の向きが縦のため、単ページは画像が画面いっぱいになるのに対して見開きだと小さくなるので、前者は後者より実メモリ使用量が大きくなると考えられるため、その差ではないかと推測)。
ただ、単ページ表示の方はキャッシュ等を考慮すれば、妥当な範囲に収まっていると考えられるし、2周目での増加分もそれほどではない。
ところが、2周目になると、見開き表示の使用メモリが極端に増加している*4ことから、あるタイミングからメモリリークが発生している可能性があるものと考える。
なお、Android 16スマートフォン(SHARP AQUOS sense9)で同様のテストを試みた結果
ついでにスマホ(AQUOS sense9)でもやってみた
— 風柳 (@furyutei) 2026年3月13日
────────────────────
■環境
- AQUOS sense9/Android 16/メモリ8G(+6G) ※PV上では7.3Gとして認識
・Perfect Viewer(PV) 5.0.4.4・最大キャッシュファイルの容量100GB
■テスト内容
同上
■結果
◇単ページ表示の場合
1周目:… pic.twitter.com/HsdrOG9EVq
こちらでも同様の傾向があった。
対策
開発者は「Perfect Viewer X」の使用を推奨
不具合の内容をまとめて、開発者のRookie Studio様にメールで報告したところ、
- Android版Perfect Viewerは開発を終了しており、今後のアップデートや不具合修正の予定はない
- 新しいクロスプラットフォーム版である「Perfect Viewer X」の使用を推奨(こちらでは見開き表示でのメモリリークは発生していない)
旨のご返答があった。
というわけで、
こちらに移行するというのが、公式な対策となる。
Version 5.0.2.1へのダウングレード(非公式)
とはいえ、Perfect Viewer Xの方は、無印(Android版)にあった機能が搭載されていなかったり、動作が安定していないなどの不具合があったりと、私的にはまだ移行できるレベルにないという認識。
なので、ダメ元でAndroid版の旧版を順次入れて試してみたところ*5、見開き時のメモリリークが発生しなかったもののうちで最も新しいものは「Version 5.0.2.1」だった。
ちなみにhttps://t.co/I6AP6MrUhj
— 風柳 (@furyutei) 2026年3月14日
これと同様のテストを見開き表示のみ行ってみると…
■Version 5.0.2.2
1周目: 220.5M→943.6M
2周目: 569.3M→1.3G
■Version 5.0.2.1
1周目: 239.6M→339.9M
2周目: 335.8M→335.9M…
このことから、Version 5.0.2.1→5.0.2.2の更新時に不具合が入り込んだものと推測できる(最新版に至るまで同様の不具合が確認できること、更新履歴を見ていると最近のものでは頻繁に強制終了が発生していたことが垣間見られること、また比較的新しいAndroid(Android 13以降)でのクラッシュや強制終了への対応履歴も散見されるが、5.0.2.1にダウングレードしてからはAndroid 13・14・16でも手元では強制終了は今のところ発生せず安定して動作していることから、Version 5.0.2.1→5.0.2.2の更新時に入り込んだと思われる不具合は、潜在的に今回の見開き表示での不具合以外にも影響しているのではないか、と憶測している)。
よって、まだPerfect Viewer Xには移行できず、どうしても無印の方を使いたい方のうち、ダウングレードの方法をご自分で調べて適用できるという方は、自己責任の範囲でVersion 5.0.2.1(もしくはそれ以前)のapkを探し、ダウングレードして使ってみる、というのも手かも知れない。
なお、Version 5.0.2.1のリリースは2021/11/23となっており、4年以上前のバージョンであることに留意すること。
ちなみにVersion 5.0.2.1は2021/11/23のバージョン
— 風柳 (@furyutei) 2026年3月14日
新しいAndroidだと動かない可能性はあるけど…まぁ、OPPO Pad AirはColorOS 13(Android 13)だし
当然以降に追加された機能は使えないし、ほかの問題もあるだろうからおすすめはできないが… pic.twitter.com/ly7Wq8NNCz
当然ながら、それ以降に追加された機能については使えず、またそれ以降のバージョンで修正された不具合等も残ったままになるので、それらが許容できるなら……という話になる。
追記(2026/03/16)
残念ながら、Version 5.0.2.1でも特定のファイルを開くとクラッシュすることがある模様。
Perfect Viewer、Version 5.0.2.1にダウングレードしたあと、特定のファイルでだけクラッシュする様になってしまったのだが…https://t.co/eYrGuWezpq
— 風柳 (@furyutei) 2026年3月16日
「空白ページ内表紙として差し込む」を無効にすると、クラッシュしなくなった…
ちょっと不便だけどやむを得ないかな…
設定によって改善したり、単ページでも発生したり(発生しなかったり)と、表題の件とは別要因かも知れないが。
参考
関連ツイート(ポスト)
この件に関する自分のツイート(ポスト)については、おおよそ、ここ
最近、タブレットで使用しているPerfect Viewer(最新:5.0.4.4)がやたらとフリーズする(ビューアでページをめくっていると突然動作が極端に重くなる→そのうち固まる/落ちる)ので困っていたんだけど、どうも見開きで使っているのが原因っぽい…単ページ表示にしたら安定している感じ…
— 風柳 (@furyutei) 2026年3月13日
から辿れるようにぶら下げてある(つもり)。