0

そのため、Androidデバイス(トランスフォーマータブレット)用に1ミリ秒の精度でシンプルだが信頼性の高いストップウォッチを作成する必要があります。私はアンドロイドの経験がまったくありません。検索した後、この特定のコンテキストで取得できる最大精度についての詳細は見つかりません(以下で説明)。おそらく、ここにいる誰かが私に必要な情報を提供してくれるでしょう。ストップウォッチは時間の反応と診断に使用されるため、必要な精度は 1 ミリ秒です。

ストップウォッチがすべきことは非常に簡単です:

  • 明らかに、プログラムは 00:00.000 に開始され、そこから 7 つの対策が取られます。ユーザーがキーまたは画面を押すと、プログラムは経過時間を記録する必要があります。7 回目に、プログラムは測定値を txt ファイルに保存します。

スタンプや経過時間を表示して表示を更新する必要さえありません。OS アプリを除いて、他のアプリケーションは実行されません。

理論的には、 System.nanoTime() またはタイムスタンプがそれを行います。しかし、これで必要な 1 ミリ秒の精度が得られるかどうかはわかりません。彼らは私が探している精度を教えてくれますか? 簡単な説明が役立ちます。別の方法はありますか? 誰かがアンドロイド開発者である場合、情報は本当に高く評価されます.

ありがとう、

更新: ユーザー Nanno が Android OS の制限について有効な点を指摘したため、「タブレットのみ」のシナリオでは 1 ミリ秒の精度のストップウォッチが不可能になりました。 Android ADK (外部ハードウェア)。

4

5 に答える 5

1

あなたの現在の設定では、単に の不正確さのために、この種の精度が得られるとは思えませんusers push a key or the screen

画面をプッシュし、イベントをキャッチし、関数を呼び出す前に、精度が低下します。特にあなたが考えるときnanoTime、インターフェースはあなたの測定にランダムな要素を追加しているので、私はそれを信頼できません.

Android はリアルタイム プログラムを実行するように作られていないため、バックグラウンドで他のプログラムを実行していなくても、システムはその準備ができています。バックグラウンドでインテントをブロードキャストしたり、他の予期しないことを実行したりできます。私はそうは思わない。

于 2012-05-11T06:45:11.210 に答える
1

<1ms の正確な Android ストップウォッチ ソリューションは、次のようなものを使用して機能させることができます。

http://developer.android.com/guide/topics/usb/adk.html

ボタンをボードに接続し、タイミング コードをリモート プロセッサに入れます (AVR、arduino ツールを使用してプログラムします。組み込みの初心者には非常に簡単です) 次に、Android タブレットとオープン アクセサリ開発キットの間で USB 経由で通信し、結果をタブレット。

もちろん、このソリューションは、人々がGoogle Playから世界中のデバイスにダウンロードできるようにしたい場合にはあまり役に立ちません...しかし、特定のデバイスについて言及したのを見て、おそらくこのプロジェクトをあなた自身?

その場合、非常に迂遠な方法で実行可能です。

于 2012-05-11T07:16:45.443 に答える
0

最初にこれを試してください:

Androidタブレットを使用してキーを押してから時計が停止するまでの間に1ミリ秒の精度が得られるのはもっともらしいですが、Android OSではそうではありません。Android デバイスにはUBUNTUを使用する必要があります。

ここで入手してください:http://www.ubuntu.com/devices/android

コードについては、C++ の高精度タイマーを使用します。

アプリと通話の優先度を高く設定してください。

私が言ったように、それを試してみてください。時間とお金を節約できます!! (外部ハードウェアを購入し始めるよりはまし)

于 2012-05-13T10:05:36.927 に答える
0

System.currentTimeMillis をストップウォッチとして使用することに関する 1 つのコメントです。このアプリケーションで使用しようとしましたが、ユーザーが開始イベントと停止イベントの間の時間を変更すると失敗します。たとえば、ストップウォッチが 5 分間のイベントの計時を開始するとき、現在の時刻は午後 3 時 9 分である可能性があります。

次に、午後 3 時 11 分に、ユーザーは時刻を 1 時間進めて午後 4 時 11 分に設定できます。次に、5 分後にストップウォッチが停止し、System.currentTimeMilli を呼び出します。これにより、午後 4 時 14 分が返されます。プログラムは 2 つの時間を差し引いて、ストップウォッチの経過時間を 1 時間 5 分 (正しい 5 分ではなく) 返します!!!

于 2012-06-18T22:45:12.000 に答える