質問するログイン新規登録

Q&A

1回答

213閲覧

Android 16機にて、スペック上は勝る後継端末で画面遷移時のフリーズが悪化する(レイアウト計算自体は高速)

Reiji_kto

総合スコア0

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

パフォーマンス

コード効率の向上や計算に関する質問には、このタグを使ってください。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

1クリップ

投稿2026/04/22 07:24

編集2026/04/22 07:39

0

1

実現したいこと

現行機種(Android 12 / Helio G90T)から後継機種(Android 16 / Helio G99)へのリプレイスを検討しています。

スペック上は後継機の方が勝っているため、現行機と同等、もしくはそれ以上の画面遷移パフォーマンスを実現したいと考えています。

現在、特定の画面遷移で数秒のフリーズが発生しており、この原因を特定し、解消するための指針(OS設定の確認、またはアプリ側の改修方針など)を得ることが目的です。

発生している問題・分からないこと

後継機として選定中のAndroid端末(Android 16 / Helio G99)において、アプリの画面遷移時に、旧機種(Android 12 / Helio G90T)と比較して**2倍〜4倍程度の極端なフリーズ(メインスレッドの停止)**が発生しています。

Android Studioのプロファイラで詳細に計測したところ、非常に不可解な結果が出ています。

演算性能は向上している: レイアウト計算やGPU描画の時間は、新機種の方が10倍以上速くなっています。

「開始前」に時間がかかっている: 画面遷移の処理に入ってから、実際にレイアウト計算などの「作業」が始まるまでの**待機時間(指示待ち時間)**だけで、約1.8秒〜4.5秒も費やしています。

【ログからの推測】
この「指示待ち時間」の間、DB(SQLite)からのデータ取得などの同期処理が行われていますが、リソース(CPU/メモリ)が飽和している形跡はありません。

スペック上は勝っているはずの新機種で、なぜ「処理に着手するまでの時間」だけがこれほど悪化するのか、その原因がわからず困っております。OSのバージョンアップに伴うメインスレッドの挙動変化や、特定SoCにおけるI/Oの特性などが関係しているのではないかと推測しています。

エラーメッセージ

error

1明確なエラーログは出力されていませんが、Android Studioのプロファイラ(System Trace)にて、画面遷移時に以下の異常な待機時間を計測しています。 2 3【プロファイラ計測値(画面遷移時)】 4※後継候補機(Android 16)における数値 5 6Total Hang Time (99th Percentile): 1.9s 〜 4.6s(旧機は 0.9s 〜 1.25s) 7 8Wait time before Layout/Draw: 1.8s 〜 4.5s(旧機は 0.5s 〜 0.8s) 9 10【計測時の状況】 11上記「Wait time」の間、メインスレッドが完全にブロック(気絶)状態になっていますが、CPU Usageは低く、リソース不足によるエラー(ANR)の寸前で踏みとどまっているような挙動です。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

以下の手順で調査・検証を行いました。

① Android Studio Profilerによる詳細分析
画面遷移時のスレッドの動きを可視化したところ、以下の事実が判明しました。

新機種(Android 16 / Helio G99)は、旧機種(Android 12 / Helio G90T)に比べ、レイアウト計算やGPU描画自体の処理速度は10倍近く高速である。

しかし、描画処理が始まる直前の「指示待ち時間(空白時間)」が、旧機種(約0.5秒)に対し、新機種(約1.8秒〜4.5秒)と極端に長くなっている。

この待機時間中、メインスレッドはDB(SQLite)からのデータ取得などの同期処理でブロックされている。

② リソース使用状況の確認
待機時間中のCPUおよびメモリ負荷を確認しましたが、いずれも余裕があり、リソース飽和による遅延ではないことを確認済みです。

③ 外部相談および検索
社内のシニアエンジニアに相談したところ、「SoCの演算性能自体に問題はなく、特定のI/O処理(DBアクセス等)の開始にラグが発生している可能性がある」「ハードウェアの個体不良の可能性も捨てきれないが、OSのバージョン差による挙動の変化も疑わしい」との助言を得ました。
また、同様の事例(Android 16 × MediaTek製SoCでのI/O遅延)を検索しましたが、決定的な解決策は見つかっておりません。

④ 個体差の検証(進行中)
端末固有の不具合を疑い、現在、別個体(同機種)をもう1台手配して再現性を確認する準備をしています。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

jimbe

2026/04/23 04:16

エラーメッセージのところのコードのマークダウン内は、実際に表示されたもののコピペ先としてにご使用ください。 説明する文などはマークダウン外にお書きください。
guest

回答1

0

現在、特定の画面遷移で数秒のフリーズが発生しており、この原因を特定し、解消するための指針(OS設定の確認、またはアプリ側の改修方針など)を得ることが目的です。

この記載があって良かった。
言ってることが難しくて問の粒度が分からないのですが、予め感情を逆撫でする意図はないという前提でですが、
IOを同期処理ではなく、非同期処理にすればいいのでは無いかなというのが月並みな感想です

で、現実的な理由は分かりませんが、可能性として考えたらなんでもありなわけで、Androidのストレージ管理のAPIがセキュリティの都合上より上位のバージョンで重いなども考えとしては有り得ると思うので、ハック的な解決策を探すのは優先度としては低いのが普通な気がします。
(ようはUIの描画(やインタラクティブなもの)以外の処理を同期するのが非推奨なので、そこを守らずに何が起きても原因はなんでもありかなって言う...)

投稿2026/04/22 12:51

u2025

総合スコア245

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.25%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問