問題タブ [android-looper]
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.
java - リアルタイム Android アプリをテストするためのデスクトップ ライブラリ
毎秒数百の入力イベントを受信し、毎秒いくつかの出力イベントを吐き出す Android 用のリアルタイム アプリケーションを作成しました。入力イベントはステート マシンを駆動して、出力イベントを生成します。実行ごとに入力イベントと出力イベントの両方をファイルに書き込みます。回帰テストに有効と思われる実行ファイルを使用したいと考えています。記録された入力イベントをシステムにフィードし、予想される出力イベントを探します。
android.util.log
私のシステムはルーパー/ハンドラーを介してイベントを受信し、タイマーを使用しますが、簡単にラップできるデバッグ目的以外は Android API に依存しません。
必要な API を提供するデスクトップ フレームワークはどれですか? JUnit テストで十分でしょうか? これはインストルメント化されたテストである必要がありますか? 実際にある種のモッカー ライブラリを実行する必要がありますか? これは私にとって初めての Android アプリで、まだ慣れていません。
テストを制御するパラメーターを変更できるように、Java でコマンド ライン ツールを作成するのが理想的です。私が念頭に置いている種類のテストが、一般的なテスト フレームワークに適しているとは思えません。実際の結果を期待される結果と一致させるタイミングと、テストの実行を停止するタイミングを決定するには、ある程度のインテリジェンスが必要だからです。適切なデスクトップ ライブラリを探しているだけだと思います。
私は仕事をする別の Android アプリを作成する方法を見たと思いますが、それはシェルから行うよりもはるかに複雑に見えます。私のバックアップ計画は、通常の Java スレッド メッセージングを使用して、ルーパー API (私のライブラリのパブリック API) の下でシステムをテストすることです。(イベントを元のタイミングでシステムにフィードしたい。)
更新: 答えを探し回ると、すべてのリアルタイム テストを実行する JUnit テストを作成できることが明らかになりましたが、エミュレーションが遅いという不満が気になります。これらのテストではタイミングが重要です。一方、デスクトップ コンピューターはタイミングを妨げるバックグラウンド プロセスを実行する可能性があるため、デバイス上で実行するテスト ハーネスを作成する必要があるかもしれません。アドバイスを期待して...
android - Looper.loop() の後に onPostExecute() を実行しない
doInBackground() は問題なく動作します. Looper.loop() の後のコードは動作しません。Looper.Loop() の後にログが印刷されず、onPostExceute() が実行されません。メソッド 1、2、3 が実行されるまで待つ必要があります。Looper.prepare() を使用しない場合、method1 で例外が発生します。