問題タブ [android-threading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
70 参照

java - アプリがバックグラウンドにあるときにAndroidスレッドが遅れ続ける

私は WebRTC ストリーミング アプリに取り組んでいます。アイデアは、マイクから信号をキャプチャし、リアルタイムの C/C++ 処理 (JNI) を実行し、処理された信号をサーバーにストリーミングすることです。アプリがフォアグラウンドにある場合、プロセスは期待どおりに機能します。ただし、アプリがバックグラウンドになった瞬間、または電話をロックすると、遅れが始まります。

優先度を Process.THREAD_PRIORITY_URGENT_AUDIO に設定しましたが、それでも遅れます。ラグを修正する方法について、どんな助けでも大歓迎です。

Update1 : アプリがバックグラウンドにある場合、process_time (C/C++ コードがオーディオ バッファーを処理する時間) が 2 倍になることに気付きました。私はこの行動を理解していません!

Update2 : この動作は Android Emulator では発生しませんが、実際の Android デバイス (OnePlus Nord N200) では発生します。

Update3 : @emandt の提案に従って、フォアグラウンド モードとバックグラウンド モードでの CPU 使用率をプロファイリングしました。CPU 使用率は同じままですが、消費電力は著しく低下します。これは、アプリがバックグラウンドにあるときに CPU クロック速度が制限されていることを示唆している可能性がありますか?

ここに画像の説明を入力