GEMINI LABEN
SCALE — Gemini アプリの月間利用者が8月11日に10億人を超えました。個人向けアシスタントとしての普及は一段落し、開発者側の関心はどう組み込むかへ移っていますASSISTANT — 9月4日から Android の Google アシスタントが Gemini に置き換わります。残り15日で、App Actions や音声ショートカットを実装したアプリは挙動確認が必要ですAGENTS — Gemini API の Managed Agents がパブリックプレビューになりました。Google 側がホストする実行環境で、状態を持つ自律エージェントを構築できますENTERPRISE — Gemini Enterprise で A2UI エージェントと A2A エージェントの登録・管理が一般提供になり、エージェント同士を接続する枠組みがプレビュー段階を抜けましたSUNSET — gemini-robotics-er-1.6-preview は8月31日に停止します。残り11日で、移行先は7月30日にパブリックプレビューとなった Gemini Robotics ER 2 ですPRICING — 8月13日に一般提供となった Gemini 3.7 Flash の導入価格は100万トークンあたり入力0.75ドル・出力3.75ドルで、2026年12月31日までですSCALE — Gemini アプリの月間利用者が8月11日に10億人を超えました。個人向けアシスタントとしての普及は一段落し、開発者側の関心はどう組み込むかへ移っていますASSISTANT — 9月4日から Android の Google アシスタントが Gemini に置き換わります。残り15日で、App Actions や音声ショートカットを実装したアプリは挙動確認が必要ですAGENTS — Gemini API の Managed Agents がパブリックプレビューになりました。Google 側がホストする実行環境で、状態を持つ自律エージェントを構築できますENTERPRISE — Gemini Enterprise で A2UI エージェントと A2A エージェントの登録・管理が一般提供になり、エージェント同士を接続する枠組みがプレビュー段階を抜けましたSUNSET — gemini-robotics-er-1.6-preview は8月31日に停止します。残り11日で、移行先は7月30日にパブリックプレビューとなった Gemini Robotics ER 2 ですPRICING — 8月13日に一般提供となった Gemini 3.7 Flash の導入価格は100万トークンあたり入力0.75ドル・出力3.75ドルで、2026年12月31日までです
記事一覧/API / SDK
API / SDK/2026-08-20上級

ANR のスレッドダンプをそのまま Gemini に投げない

ANR ダンプは 96 スレッドで 33,616 文字ありました。main だけを抜けば 98% 減りますが、原因のスレッドは消えます。待ちの連鎖だけを残す前処理を実測しながら組み立てます。

gemini-api282android8anrdebuggingprompt-engineering14

プレミアム記事

段階公開を 5% で開始した翌朝、Play Console の Vitals に ANR がひとつ増えていました。

個人開発でアプリを出していると、この 5% の窓はとても短く感じます。24 時間ほど様子を見て、続けるか止めるかを決めなければなりません。クラッシュであれば Crashlytics のスタックトレースを読めば当たりが付きます。けれど ANR は事情が違いました。

開いたダンプには、96 個のスレッドが並んでいました。

5% の窓では、読む時間そのものが足りません

私は普段、段階公開を 5% → 25% → 50% → 100% と刻んで、Crash-free users と ANR 率を見ながら次に進めるかを決めています。クラッシュ側については、難読化を戻してから Gemini に渡す前処理を組んでいて、これは今もうまく回っています(この経緯は難読化されたスタックトレースを Gemini に渡していた記録に書きました)。

同じ調子で ANR ダンプも Gemini に丸ごと投げてみたのですが、これがうまくいきませんでした。返ってくる説明はどれも「メインスレッドが I/O を待っている可能性があります」といった、ダンプを見なくても言えることばかりだったのです。

原因は、渡し方にありました。

ANR ダンプはスタックトレースではなく、スレッドの一覧です

クラッシュのスタックトレースは、落ちた一本の呼び出し履歴です。読む対象が最初から一つに絞られています。

ANR ダンプは違います。ANR は「メインスレッドが一定時間応答しなかった」という事象なので、システムはプロセス内の全スレッドの状態を書き出します。広告 SDK・画像ローダ・Firebase・コルーチンのディスパッチャが載っている実アプリでは、これが数十から百を超える単位になります。

そして重要なのは、その中にスレッド同士の関係が書かれていることです。

"main" prio=5 tid=1 Blocked
  - waiting to lock <0x0e3a41c8> (a net.dolice.wallpapers.data.AssetIndex) held by thread 27
  at net.dolice.wallpapers.data.AssetIndex.lookup(AssetIndex.java:184)
  at net.dolice.wallpapers.ui.GridAdapter.onBindViewHolder(GridAdapter.java:96)

waiting to lock <アドレス> ... held by thread 27 の一行が、main と 27 番スレッドを結ぶ辺です。そして 27 番自身が別のロックを待っていれば、辺はさらに先へ伸びます。

ANR の原因は、この連鎖の終端にいます。main のフレームには「待っている」という事実しか書かれていません。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
ANR ダンプのどこを残してどこを捨てるかを、待ちの連鎖という一つの基準で自分で判断できるようになります
main スレッドだけを抜き出す前処理が原因を取りこぼす構造を理解し、実装してから気づく回り道を避けられるようになります
96 スレッド・33,616 文字のダンプを 3 スレッド・1,898 文字まで削る前処理を、自分の解析コードに組み込めるようになります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API / SDK2026-06-23
Gemini 3.2 Pro の Function Calling を iOS/Android アプリに統合する実装パターン
Gemini 3.2 Pro の Function Calling を iOS/Android アプリに統合する実装ガイド。SwiftUI・Kotlin 両対応の動くコード例と、個人開発の壁紙アプリで実証した本番設計パターン(コスト・レイテンシ・段階ロールアウト・回帰テスト)を解説します。
API / SDK2026-06-15
既定モデルが勝手に上がる時代に、プロンプト変更の劣化を数値で捕まえる — バリアント管理とカナリア評価の実装メモ
Gemini 3.5 Flash が既定に上がり、無効化もできなくなりました。プロンプトを触っていないのに応答が変わる前提で、バリアントを束ねて管理し、カナリアと LLM-as-judge で劣化を数値として捕まえる仕組みを、動くコードで組み立てます。
API / SDK2026-05-25
Gemini 2.5 Flash で個人開発アプリのヘルプ翻訳を3ヶ月運用した所感
iOS / Android の個人開発アプリで提供してきた多言語ヘルプを、Gemini 2.5 Flash を中心とした翻訳パイプラインで運用し始めて3ヶ月が経ちました。Pro との使い分け、訳文ドリフトへの備え、AdMob 収益に与えた小さな効果まで、運用ログに残った所感を淡々と記録します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →