Context:
The play method of the NativeAudioService interface has been overloaded for a Real Time reason:
I have created one thread and one task by sound. The aim is to avoid disturbing the real time of the main cyclic thread, performed each 110 ms. These thread+task are performed where there is nothing else to do, in these 110 ms.
I have alse allowed to prepare sounds asynchronously
Consequence:
for easily modifying the play() method, I have added two booleans:
. bThreadTask for using one thread and its task, by sound OR not
. bPrepareAsync for using asychronous sound OR not
The combination of these two booleans allow to test three interesting cases (the case "no thread" and "no asynchronysm" is the original configuration with Real Time problem).
Below, you can see these three results.
Some explanation before reading them. And, sorry about some french words in the traces (even if I have translated some useful of them).
Time is in milliseconds
trace type n°1:
"Beginning traitementCyclique": beginning of the cyclic processing that must be theorically done each 110 ms
trace type n°2:
"End traitementCyclique - SUPER IMPORTANT - Execution time traitementCyclique : / tExec:" it is the real duration of this cyclic processing, provided at the end of it (INCLUDING the sound methods execution)
trace type n°3:
"End traitementCyclique - Phase n°4 / tExec MAX in the phase" : it is execution duration of this cycle, WITHOUT taking into account the sound methods execution
trace type n°4:
"AndroidNativeAudio - play xx: / noTask: yy / tExec:" audio trace of the play() method - See the code for the signification of numbers xx and yy
Analysis of results:
SOLUTION1: with thread and without asynchronysm
1st case: all sounds are done at the end of the cycle (trace type n°4) and "push away" the reactivation of the next cycle ("tExec: 243") . The 110ms rate is not respected. . You can see that he duration of the processing without sounds is less than 110 ms ( "MAX in the phase : 95"). Sounds (with tasks from 43 to 45) disturb the Real Time
See traces:
"End traitementCyclique - SUPER IMPORTANT - Execution time traitementCyclique : / tExec: 243"
and
"I/System.out(28026): trace CPU - heure : 42400 ms --- tExec: End traitementCyclique - Phase no 4 / tExec MAX in the phase : 95"
2nd case:
"AndroidNativeAudio - play 4a: / noTask: 57" related to mediaPlayer.start() is done at the end of the cycle BUT inside of it. That is correct. The next cycle begins at the right time.
Conclusion: when the user lightly practice the game (one touchScreen each second), the sound processing does not disturb the Real Time BUT, when he commonly practice it, sounds disturb it.
SOLUTION2: with thread and with asynchronysm
Asynchronism systematically disturbs the cyclic task of 110 ms
Tasks 36 and 37 disturb the real time because they are done inside during the cyclic processing
The rate is 200 ms (31451 - 31251)
SOLUTION3: without thread and with asynchronysm
Same remark with task from 43 to 47
Note: You can also use this code in your own tests, if you want.
@Override
public void onPrepared(MediaPlayer player) {
long tDeb = System.currentTimeMillis();
player.start();
nbCyclesAudio--;
GluonApplication.traceSimple("service play 5b: start - nbCyclesAudio decrem de 1 - Vaut maintenant " + nbCyclesAudio);
traceTexecCPU("AndroidNativeAudio - play 5b: " + " / noTask: " + noTask, tDeb);
}
});
}
else {
mediaPlayer.prepare();
traceTexecCPU("AndroidNativeAudio - play 3b: " + " / noTask: " + noTask, tDeb);
tDeb = System.currentTimeMillis();
mediaPlayer.start();
nbCyclesAudio--;
traceTexecCPU("AndroidNativeAudio - play 4b: " + " / noTask: " + noTask, tDeb);
}
} catch (IOException e) {
GluonApplication.traceSimple("Error playing audio resource " + e);
}
}
}
/****************************************************/
@Override
public void stop() {
if (mediaPlayer != null) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
}
mediaPlayer.release();
mediaPlayer = null;
}
}
/********************************************************/
@Override
public void pause() {
if (mediaPlayer != null) {
mediaPlayer.pause();
currentPosition = mediaPlayer.getCurrentPosition();
}
}
/*****************************************************/
@Override
public void resume() {
if (mediaPlayer != null) {
mediaPlayer.start();
mediaPlayer.seekTo(currentPosition);
}
}
/****/
public static void traceTexecCPU(String comments, long tDeb) {
long tExec = System.currentTimeMillis() - tDeb;
long deltaT = System.currentTimeMillis()- t0; // t0 is the system sate, in ms, get at the beginning of the main
System.out.println("trace tExec - heure : " + deltaT + " ms --- " + comments + " / tExec: " + tExec);
}
/****/
public void setAudioFileName(String audioFileName) {
this.audioFileName = audioFileName;
}
public void setNbCycles(int nbCycles) {
this.nbCyclesAudio = nbCycles;
}
public void setAudioLevel(double audioLevel) {
this.audioLevel = audioLevel;
}
}
RESULTS - TRACES
SOLUTION 1:
WithThread_WithoutAsync:
--------- beginning of system
--------- beginning of main
...
1st CASE OF SOLUTION 1:
I/System.out(28026): trace tExec - heure : 42065 ms --- gererLesBoucliersDeProtection / tExec: 0
Context: The play method of the NativeAudioService interface has been overloaded for a Real Time reason:
Consequence: for easily modifying the play() method, I have added two booleans: . bThreadTask for using one thread and its task, by sound OR not . bPrepareAsync for using asychronous sound OR not
The combination of these two booleans allow to test three interesting cases (the case "no thread" and "no asynchronysm" is the original configuration with Real Time problem).
Below, you can see these three results. Some explanation before reading them. And, sorry about some french words in the traces (even if I have translated some useful of them).
Time is in milliseconds
trace type n°1: "Beginning traitementCyclique": beginning of the cyclic processing that must be theorically done each 110 ms
trace type n°2: "End traitementCyclique - SUPER IMPORTANT - Execution time traitementCyclique : / tExec:" it is the real duration of this cyclic processing, provided at the end of it (INCLUDING the sound methods execution)
trace type n°3: "End traitementCyclique - Phase n°4 / tExec MAX in the phase" : it is execution duration of this cycle, WITHOUT taking into account the sound methods execution
trace type n°4: "AndroidNativeAudio - play xx: / noTask: yy / tExec:" audio trace of the play() method - See the code for the signification of numbers xx and yy
Analysis of results: SOLUTION1: with thread and without asynchronysm
1st case: all sounds are done at the end of the cycle (trace type n°4) and "push away" the reactivation of the next cycle ("tExec: 243") . The 110ms rate is not respected. . You can see that he duration of the processing without sounds is less than 110 ms ( "MAX in the phase : 95"). Sounds (with tasks from 43 to 45) disturb the Real Time See traces: "End traitementCyclique - SUPER IMPORTANT - Execution time traitementCyclique : / tExec: 243" and "I/System.out(28026): trace CPU - heure : 42400 ms --- tExec: End traitementCyclique - Phase no 4 / tExec MAX in the phase : 95"
2nd case: "AndroidNativeAudio - play 4a: / noTask: 57" related to mediaPlayer.start() is done at the end of the cycle BUT inside of it. That is correct. The next cycle begins at the right time.
Conclusion: when the user lightly practice the game (one touchScreen each second), the sound processing does not disturb the Real Time BUT, when he commonly practice it, sounds disturb it.
SOLUTION2: with thread and with asynchronysm Asynchronism systematically disturbs the cyclic task of 110 ms Tasks 36 and 37 disturb the real time because they are done inside during the cyclic processing
The rate is 200 ms (31451 - 31251)
SOLUTION3: without thread and with asynchronysm Same remark with task from 43 to 47
Note: You can also use this code in your own tests, if you want.
package com.gluonapplication;
import android.content.res.AssetFileDescriptor; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import javafx.concurrent.Task;
import java.io.IOException;
import com.gluonapplication.GluonApplication; import com.gluonapplication.NativeAudioService;
import javafxports.android.FXActivity;
public class AndroidNativeAudio implements NativeAudioService {
// https://developer.android.com/reference/android/media/MediaPlayer.html#prepare() if (bPrepareAsync) { mediaPlayer.prepareAsync(); // DO NOT WORK //mp3 will be started after completion of preparing... mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
// https://developer.android.com/reference/android/media/MediaPlayer.html#prepare() if (bPrepareAsync) { mediaPlayer.prepareAsync(); // DO NOT WORK //mp3 will be started after completion of preparing... mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
/****/ public static void traceTexecCPU(String comments, long tDeb) { long tExec = System.currentTimeMillis() - tDeb; long deltaT = System.currentTimeMillis()- t0; // t0 is the system sate, in ms, get at the beginning of the main System.out.println("trace tExec - heure : " + deltaT + " ms --- " + comments + " / tExec: " + tExec); }
/****/ public void setAudioFileName(String audioFileName) { this.audioFileName = audioFileName; }
}
RESULTS - TRACES
SOLUTION 1: WithThread_WithoutAsync:
--------- beginning of system --------- beginning of main ...
1st CASE OF SOLUTION 1: I/System.out(28026): trace tExec - heure : 42065 ms --- gererLesBoucliersDeProtection / tExec: 0
I/System.out(28026): trace tExec - heure : 42065 ms --- onPoursuitOuPas / tExec: 0
I/System.out(28026): trace tExec - heure : 42065 ms --- End traitementCyclique - SUPER IMPORTANT - Execution time traitementCyclique : / tExec: 5
I/System.out(28026): trace CPU - heure : 42065 ms --- tExec: End traitementCyclique - Phase no 4 / tExec MAX in the phase : 92
I/System.out(28026): trace tExec - heure : 42157 ms --- Beginning traitementCyclique ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ / tExec: 0
I/System.out(28026): trace tExec - heure : 42159 ms --- acqEvtsJoystickOuSmartphoneETActionsSurUneBDT / tExec: 2
I/System.out(28026): trace tExec - heure : 42159 ms --- gererLesBoucliersDeProtection / tExec: 0
I/System.out(28026): trace tExec - heure : 42159 ms --- gererLesFlippersEtLeursInfluences / tExec: 0
I/System.out(28026): trace tExec - heure : 42160 ms --- actionsAleatoireSurLesVE / tExec: 1
I/System.out(28026): trace tExec - heure : 42160 ms --- gererBDTBrightnessDesVaisseauxArmes / tExec: 0
I/System.out(28026): trace tExec - heure : 42160 ms --- translaterProjectiles / tExec: 0
I/System.out(28026): trace tExec - heure : 42160 ms --- activerPotentieltPlanete / tExec: 0
I/System.out(28026): trace tExec - heure : 42160 ms --- activerPotentieltRecharge / tExec: 0
I/System.out(28026): trace tExec - heure : 42160 ms --- activerPotentieltAsteroides / tExec: 0
I/System.out(28026): trace tExec - heure : 42160 ms --- translaterAsteroides / tExec: 0
I/System.out(28026): trace tExec - heure : 42160 ms --- gererLesBoucliersDeProtection / tExec: 0
I/System.out(28026): trace tExec - heure : 42160 ms --- rechercherImpactsProjectiles - avec VE / NbRech: 0 / tExec: 0
I/System.out(28026): trace tExec - heure : 42161 ms --- rechercherImpactsProjectiles - avec VA / NbRech: 0 / tExec: 0
I/System.out(28026): trace tExec - heure : 42161 ms --- rechercherImpactsProjectiles - avec aster / NbRech: 0 / tExec: 0
I/System.out(28026): trace tExec - heure : 42161 ms --- rechercherImpactsProjectiles - avec planete / NbRech: 0 / tExec: 0
I/System.out(28026): trace tExec - heure : 42161 ms --- rechercherImpactsProjectiles - avec trou noir / NbRech: 0 / tExec: 0
I/System.out(28026): trace tExec - heure : 42161 ms --- rechercherImpactsProjectiles - avec borne magnet / NbRech: 0 / tExec: 0
I/System.out(28026): trace tExec - heure : 42161 ms --- rechercherImpactsProjectiles - avec flipper / NbRech: 0 / tExec: 0
I/System.out(28026): trace tExec - heure : 42161 ms --- rechercherImpacts - mesure rechercherImpactsProjectiles / NbRech: 0 / tExec: 1
I/System.out(28026): trace tExec - heure : 42221 ms --- activerSon - 1 param. - mesure: / tExec: 0
I/System.out(28026): trace tExec - heure : 42231 ms --- activerSon - 1 param. - mesure: / tExec: 0
I/System.out(28026): trace tExec - heure : 42231 ms --- rechercherImpacts - mesure rechercherImpactsVaisseaux / NbRech: 10 / tExec: 70
I/System.out(28026): trace tExec - heure : 42232 ms --- AndroidNativeAudio - play 0: / noTask: 43 / tExec: 10
I/System.out(28026): trace tExec - heure : 42232 ms --- rechercherImpacts - mesure rechercherImpactsAsteroides / NbRech: 10 / tExec: 0
I/System.out(28026): trace tExec - heure : 42232 ms --- rechercherImpacts - mesure rechercherImpactsAsteroideSurLesObjetsFixes / NbRech: 10 / tExec: 0
I/System.out(28026): trace tExec - heure : 42232 ms --- rechercherImpacts - mesure rechercherImpactsDeLaPlaneteSurLesObjetsFixes / NbRech: 10 / tExec: 0
I/System.out(28026): trace tExec - heure : 42232 ms --- AndroidNativeAudio - play 0a: / noTask: 43 / tExec: 0
I/System.out(28026): trace tExec - heure : 42238 ms --- AndroidNativeAudio - play 0: / noTask: 44 / tExec: 5
I/System.out(28026): trace tExec - heure : 42238 ms --- AndroidNativeAudio - play 0a: / noTask: 44 / tExec: 0
I/System.out(28026): trace tExec - heure : 42252 ms --- activerSon - 1 param. - mesure: / tExec: 1
I/System.out(28026): trace tExec - heure : 42252 ms --- rechercherImpacts - mesure rechercherImpactsAliens / NbRech: 14 / tExec: 20
I/System.out(28026): trace tExec - heure : 42252 ms --- rechercherImpacts - mesure rechercherImpactsRecharges / NbRech: 20 / tExec: 0
I/System.out(28026): trace tExec - heure : 42252 ms --- rechercherImpacts - mesure supprimerSiNecProjectiles / tExec: 0
I/System.out(28026): trace tExec - heure : 42252 ms --- rechercherImpacts - mesure supprimerSiNecVAs / tExec: 0
I/System.out(28026): trace tExec - heure : 42252 ms --- rechercherImpacts - mesure supprimerSiNecVEs / tExec: 0
I/System.out(28026): trace tExec - heure : 42252 ms --- rechercherImpacts - mesure supprimerSiNecAsteroides / tExec: 0
I/System.out(28026): trace tExec - heure : 42252 ms --- rechercherImpacts - mesure supprimerSiNecPlanetes / tExec: 0
I/System.out(28026): trace tExec - heure : 42252 ms --- rechercherImpacts - mesure supprimerSiNecAliens / tExec: 0
I/System.out(28026): trace tExec - heure : 42252 ms --- rechercherImpacts - mesure supprimerSiNecRecharges / tExec: 0
I/System.out(28026): trace tExec - heure : 42252 ms --- rechercherImpacts - mesure supprimerSiNecBornes / tExec: 0
I/System.out(28026): trace tExec - heure : 42252 ms --- rechercherImpacts - mesure supprimerSiNecFlippers / tExec: 0
I/System.out(28026): trace tExec - heure : 42252 ms --- rechercherImpacts / tExec: 92
I/System.out(28026): trace tExec - heure : 42252 ms --- gererLesBoucliersDeProtection / tExec: 0
I/System.out(28026): trace CPU - heure : 42252 ms --- tExec: Phase no 4 / Ai trouve un deltaT plus gd: 95 / dureeTraittCPUdsUneBDTms APRES : 95
I/System.out(28026): trace tExec - heure : 42265 ms --- AndroidNativeAudio - play 0: / noTask: 45 / tExec: 12
I/System.out(28026): trace tExec - heure : 42267 ms --- AndroidNativeAudio - play 0a: / noTask: 45 / tExec: 1
I/System.out(28026): trace tExec - heure : 42283 ms --- AndroidNativeAudio - play 0: / noTask: 46 / tExec: 3
I/System.out(28026): trace tExec - heure : 42284 ms --- AndroidNativeAudio - play 0a: / noTask: 46 / tExec: 0
I/System.out(28026): trace tExec - heure : 42329 ms --- AndroidNativeAudio - play 0b: / noTask: 45 / tExec: 62
I/System.out(28026): trace tExec - heure : 42329 ms --- AndroidNativeAudio - play 0c: / noTask: 45 / tExec: 0
I/System.out(28026): trace tExec - heure : 42329 ms --- AndroidNativeAudio - play 1: / noTask: 45 / tExec: 0
I/System.out(28026): trace tExec - heure : 42329 ms --- AndroidNativeAudio - play 2: / noTask: 45 / tExec: 0
I/System.out(28026): trace tExec - heure : 42357 ms --- AndroidNativeAudio - play 0b: / noTask: 46 / tExec: 73
I/System.out(28026): trace tExec - heure : 42357 ms --- AndroidNativeAudio - play 0c: / noTask: 46 / tExec: 0
I/System.out(28026): trace tExec - heure : 42358 ms --- AndroidNativeAudio - play 1: / noTask: 46 / tExec: 1
I/System.out(28026): trace tExec - heure : 42358 ms --- AndroidNativeAudio - play 2: / noTask: 46 / tExec: 0
I/System.out(28026): trace tExec - heure : 42362 ms --- AndroidNativeAudio - play 3a: / noTask: 45 / tExec: 33
I/System.out(28026): trace tExec - heure : 42365 ms --- AndroidNativeAudio - play 0b: / noTask: 43 / tExec: 132
I/System.out(28026): trace tExec - heure : 42365 ms --- AndroidNativeAudio - play 0c: / noTask: 43 / tExec: 0
I/System.out(28026): trace tExec - heure : 42366 ms --- AndroidNativeAudio - play 1: / noTask: 43 / tExec: 1
I/System.out(28026): trace tExec - heure : 42366 ms --- AndroidNativeAudio - play 2: / noTask: 43 / tExec: 0
I/System.out(28026): trace tExec - heure : 42368 ms --- AndroidNativeAudio - play 0b: / noTask: 44 / tExec: 129
I/System.out(28026): trace tExec - heure : 42368 ms --- AndroidNativeAudio - play 0c: / noTask: 44 / tExec: 0
I/System.out(28026): trace tExec - heure : 42369 ms --- AndroidNativeAudio - play 1: / noTask: 44 / tExec: 1
I/System.out(28026): trace tExec - heure : 42369 ms --- AndroidNativeAudio - play 2: / noTask: 44 / tExec: 0
I/System.out(28026): trace tExec - heure : 42369 ms --- AndroidNativeAudio - play 3a: / noTask: 46 / tExec: 11
I/System.out(28026): trace tExec - heure : 42373 ms --- AndroidNativeAudio - play 4a: / noTask: 45 / tExec: 11
I/System.out(28026): trace tExec - heure : 42376 ms --- AndroidNativeAudio - play 3a: / noTask: 43 / tExec: 10
I/System.out(28026): trace tExec - heure : 42376 ms --- AndroidNativeAudio - play 3a: / noTask: 44 / tExec: 7
I/System.out(28026): trace tExec - heure : 42381 ms --- AndroidNativeAudio - play 4a: / noTask: 46 / tExec: 12
I/System.out(28026): trace tExec - heure : 42392 ms --- AndroidNativeAudio - play 4a: / noTask: 44 / tExec: 16
I/System.out(28026): trace tExec - heure : 42393 ms --- AndroidNativeAudio - play 4a: / noTask: 43 / tExec: 17
I/System.out(28026): trace tExec - heure : 42400 ms --- onPoursuitOuPas / tExec: 148
I/System.out(28026): trace tExec - heure : 42400 ms --- End traitementCyclique - SUPER IMPORTANT - Execution time traitementCyclique : / tExec: 243
I/System.out(28026): trace CPU - heure : 42400 ms --- tExec: End traitementCyclique - Phase no 4 / tExec MAX in the phase : 95
I/System.out(28026): trace tExec - heure : 42418 ms --- Beginning traitementCyclique ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ / tExec: 0
2nd CASE of SOLUTION 1:
I/System.out( 1655): trace tExec - heure : 49285 ms --- AndroidNativeAudio - play 0: / noTask: 58 / tExec: 1
I/System.out( 1655): trace tExec - heure : 49286 ms --- AndroidNativeAudio - play 0a: / noTask: 58 / tExec: 1
I/System.out( 1655): trace tExec - heure : 49337 ms --- AndroidNativeAudio - play 0b: / noTask: 58 / tExec: 51
I/System.out( 1655): trace tExec - heure : 49337 ms --- AndroidNativeAudio - play 0c: / noTask: 58 / tExec: 0
I/System.out( 1655): trace tExec - heure : 49337 ms --- AndroidNativeAudio - play 1: / noTask: 58 / tExec: 0
I/System.out( 1655): trace tExec - heure : 49337 ms --- AndroidNativeAudio - play 2: / noTask: 58 / tExec: 0
I/System.out( 1655): trace tExec - heure : 49359 ms --- AndroidNativeAudio - play 3a: / noTask: 58 / tExec: 22
I/System.out( 1655): trace tExec - heure : 49396 ms --- onPoursuitOuPas / tExec: 118
I/System.out( 1655): trace tExec - heure : 49397 ms --- End traitementCyclique - - SUPER IMPORTANT - Duree du traitementCyclique : / tExec: 132
I/System.out( 1655): trace CPU - heure : 49397 ms --- tExec: End traitementCyclique - Phase no 4 / dureeTraittCPUdsUneBDTms MAX ds la phase : 110
I/System.out( 1655): trace tExec - heure : 49402 ms --- AndroidNativeAudio - play 0b: / noTask: 57 / tExec: 122
I/System.out( 1655): trace tExec - heure : 49402 ms --- AndroidNativeAudio - play 0c: / noTask: 57 / tExec: 0
I/System.out( 1655): trace tExec - heure : 49403 ms --- AndroidNativeAudio - play 4a: / noTask: 58 / tExec: 44
I/System.out( 1655): trace tExec - heure : 49403 ms --- AndroidNativeAudio - play 1: / noTask: 57 / tExec: 1
I/System.out( 1655): trace tExec - heure : 49403 ms --- AndroidNativeAudio - play 2: / noTask: 57 / tExec: 0
I/System.out( 1655): trace tExec - heure : 49419 ms --- AndroidNativeAudio - play 3a: / noTask: 57 / tExec: 16
I/System.out( 1655): trace tExec - heure : 49427 ms --- Beginning traitementCyclique ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ / tExec: 0
I/System.out( 1655): trace tExec - heure : 49427 ms --- End traitementCyclique - - SUPER IMPORTANT - Duree du traitementCyclique : / tExec: 0
I/System.out( 1655): trace CPU - heure : 49427 ms --- tExec: End traitementCyclique - Phase no 4 / dureeTraittCPUdsUneBDTms MAX ds la phase : 110
I/System.out( 1655): trace tExec - heure : 49448 ms --- AndroidNativeAudio - play 4a: / noTask: 57 / tExec: 29
I/System.out( 1655): trace tExec - heure : 49491 ms --- Beginning traitementCyclique ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ / tExec: 0
I/System.out( 1655): trace tExec - heure : 49492 ms --- End traitementCyclique - - SUPER IMPORTANT - Duree du traitementCyclique : / tExec: 1
I/System.out( 1655): trace CPU - heure : 49492 ms --- tExec: End traitementCyclique - Phase no 4 / dureeTraittCPUdsUneBDTms MAX ds la phase : 110
I/System.out( 1655): trace tExec - heure : 49588 ms --- Beginning traitementCyclique ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ / tExec: 0
I/System.out( 1655): trace tExec - heure : 49588 ms --- End traitementCyclique - - SUPER IMPORTANT - Duree du traitementCyclique : / tExec: 0
SOLUTION 2: WithThread_WithAsync
--------- beginning of system
--------- beginning of main
... I/System.out(29517): trace tExec - heure : 31251 ms --- gererLesBoucliersDeProtection / tExec: 0
I/System.out(29517): trace tExec - heure : 31251 ms --- onPoursuitOuPas / tExec: 0
I/System.out(29517): trace tExec - heure : 31251 ms --- End traitementCyclique - SUPER IMPORTANT - Exceution time traitementCyclique : / tExec: 69
I/System.out(29517): trace CPU - heure : 31251 ms --- tExec: End traitementCyclique - Phase no 4 / tExec MAX in the phase : 87
I/System.out(29517): trace tExec - heure : 31332 ms --- Beginning traitementCyclique ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ / tExec: 0
I/System.out(29517): trace tExec - heure : 31333 ms --- acqEvtsJoystickOuSmartphoneETActionsSurUneBDT / tExec: 1
I/System.out(29517): trace tExec - heure : 31333 ms --- gererLesBoucliersDeProtection / tExec: 0
I/System.out(29517): trace tExec - heure : 31333 ms --- gererLesFlippersEtLeursInfluences / tExec: 0
I/System.out(29517): trace tExec - heure : 31333 ms --- actionsAleatoireSurLesVE / tExec: 0
I/System.out(29517): trace tExec - heure : 31333 ms --- gererBDTBrightnessDesVaisseauxArmes / tExec: 0
I/System.out(29517): trace tExec - heure : 31338 ms --- translaterProjectiles / tExec: 5
I/System.out(29517): trace tExec - heure : 31338 ms --- activerPotentieltPlanete / tExec: 0
I/System.out(29517): trace tExec - heure : 31338 ms --- activerPotentieltRecharge / tExec: 0
I/System.out(29517): trace tExec - heure : 31338 ms --- creerEtLancerAsteroides 1 / tExec: 0
I/System.out(29517): trace tExec - heure : 31388 ms --- activerSon - 2 param. - mesure: / tExec: 1
I/System.out(29517): trace tExec - heure : 31388 ms --- creerEtLancerAsteroides 2 / tExec: 50
I/System.out(29517): trace tExec - heure : 31388 ms --- activerPotentieltAsteroides / tExec: 50
I/System.out(29517): trace tExec - heure : 31390 ms --- AndroidNativeAudio - play 0: / noTask: 35 / tExec: 1
I/System.out(29517): trace tExec - heure : 31390 ms --- AndroidNativeAudio - play 0a: / noTask: 35 / tExec: 0
I/System.out(29517): trace tExec - heure : 31392 ms --- translaterAsteroides / tExec: 4
I/System.out(29517): trace tExec - heure : 31393 ms --- gererLesBoucliersDeProtection / tExec: 0
I/System.out(29517): trace tExec - heure : 31393 ms --- rechercherImpactsProjectiles - avec alien / NbRech: 0 / tExec: 0
I/System.out(29517): trace tExec - heure : 31393 ms --- rechercherImpactsProjectiles - avec proj / NbRech: 10 / tExec: 0
I/System.out(29517): trace tExec - heure : 31393 ms --- rechercherImpactsProjectiles - avec VE / NbRech: 30 / tExec: 0
I/System.out(29517): trace tExec - heure : 31393 ms --- rechercherImpactsProjectiles - avec VA / NbRech: 35 / tExec: 0
I/System.out(29517): trace tExec - heure : 31393 ms --- rechercherImpactsProjectiles - avec aster / NbRech: 50 / tExec: 0
I/System.out(29517): trace tExec - heure : 31393 ms --- rechercherImpactsProjectiles - avec planete / NbRech: 50 / tExec: 0
I/System.out(29517): trace tExec - heure : 31393 ms --- rechercherImpactsProjectiles - avec trou noir / NbRech: 50 / tExec: 0
I/System.out(29517): trace tExec - heure : 31393 ms --- rechercherImpactsProjectiles - avec borne magnet / NbRech: 50 / tExec: 0
I/System.out(29517): trace tExec - heure : 31393 ms --- rechercherImpactsProjectiles - avec flipper / NbRech: 50 / tExec: 0
I/System.out(29517): trace tExec - heure : 31394 ms --- rechercherImpacts - mesure rechercherImpactsProjectiles / NbRech: 50 / tExec: 0
I/System.out(29517): trace tExec - heure : 31394 ms --- rechercherImpacts - mesure rechercherImpactsVaisseaux / NbRech: 75 / tExec: 0
I/System.out(29517): trace tExec - heure : 31410 ms --- activerSon - 1 param. - mesure: / tExec: 1
I/System.out(29517): trace tExec - heure : 31418 ms --- AndroidNativeAudio - play 0: / noTask: 36 / tExec: 2
I/System.out(29517): trace tExec - heure : 31418 ms --- AndroidNativeAudio - play 0a: / noTask: 36 / tExec: 0
I/System.out(29517): trace tExec - heure : 31426 ms --- activerSon - 1 param. - mesure: / tExec: 0
I/System.out(29517): trace tExec - heure : 31426 ms --- rechercherImpacts - mesure rechercherImpactsAsteroides / NbRech: 81 / tExec: 32
I/System.out(29517): trace tExec - heure : 31426 ms --- rechercherImpacts - mesure rechercherImpactsAsteroideSurLesObjetsFixes / NbRech: 81 / tExec: 0
I/System.out(29517): trace tExec - heure : 31426 ms --- rechercherImpacts - mesure rechercherImpactsDeLaPlaneteSurLesObjetsFixes / NbRech: 81 / tExec: 0
I/System.out(29517): trace tExec - heure : 31426 ms --- rechercherImpacts - mesure rechercherImpactsAliens / NbRech: 81 / tExec: 0
I/System.out(29517): trace tExec - heure : 31426 ms --- rechercherImpacts - mesure rechercherImpactsRecharges / NbRech: 81 / tExec: 0
I/System.out(29517): trace tExec - heure : 31428 ms --- rechercherImpacts - mesure supprimerSiNecProjectiles / tExec: 0
I/System.out(29517): trace tExec - heure : 31428 ms --- rechercherImpacts - mesure supprimerSiNecVAs / tExec: 0
I/System.out(29517): trace tExec - heure : 31428 ms --- rechercherImpacts - mesure supprimerSiNecVEs / tExec: 0
I/System.out(29517): trace tExec - heure : 31429 ms --- rechercherImpacts - mesure supprimerSiNecAsteroides / tExec: 1
I/System.out(29517): trace tExec - heure : 31429 ms --- rechercherImpacts - mesure supprimerSiNecPlanetes / tExec: 0
I/System.out(29517): trace tExec - heure : 31429 ms --- rechercherImpacts - mesure supprimerSiNecAliens / tExec: 0
I/System.out(29517): trace tExec - heure : 31429 ms --- rechercherImpacts - mesure supprimerSiNecRecharges / tExec: 0
I/System.out(29517): trace tExec - heure : 31429 ms --- rechercherImpacts - mesure supprimerSiNecBornes / tExec: 0
I/System.out(29517): trace tExec - heure : 31429 ms --- rechercherImpacts - mesure supprimerSiNecFlippers / tExec: 0
I/System.out(29517): trace tExec - heure : 31429 ms --- rechercherImpacts / tExec: 36
I/System.out(29517): trace tExec - heure : 31429 ms --- gererLesBoucliersDeProtection / tExec: 0
I/System.out(29517): trace CPU - heure : 31429 ms --- tExec: Phase no 4 / Ai trouve un deltaT plus gd: 97 / dureeTraittCPUdsUneBDTms APRES : 97
I/System.out(29517): trace tExec - heure : 31429 ms --- onPoursuitOuPas / tExec: 0
I/System.out(29517): trace tExec - heure : 31429 ms --- End traitementCyclique - SUPER IMPORTANT - Exceution time traitementCyclique : / tExec: 97
I/System.out(29517): trace CPU - heure : 31429 ms --- tExec: End traitementCyclique - Phase no 4 / tExec MAX in the phase : 97
I/System.out(29517): trace tExec - heure : 31448 ms --- AndroidNativeAudio - play 0: / noTask: 37 / tExec: 7
I/System.out(29517): trace tExec - heure : 31453 ms --- AndroidNativeAudio - play 0a: / noTask: 37 / tExec: 1
I/System.out(29517): trace tExec - heure : 31451 ms --- Beginning traitementCyclique ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ / tExec: 0
I/System.out(29517): trace tExec - heure : 31463 ms --- acqEvtsJoystickOuSmartphoneETActionsSurUneBDT / tExec: 9
I/System.out(29517): trace tExec - heure : 31463 ms --- gererLesBoucliersDeProtection / tExec: 0
I/System.out(29517): trace tExec - heure : 31463 ms --- gererLesFlippersEtLeursInfluences / tExec: 0
I/System.out(29517): trace tExec - heure : 31474 ms --- actionsAleatoireSurLesVE / tExec: 11
I/System.out(29517): trace tExec - heure : 31474 ms --- gererBDTBrightnessDesVaisseauxArmes / tExec: 0
I/System.out(29517): trace tExec - heure : 31479 ms --- AndroidNativeAudio - play 0b: / noTask: 35 / tExec: 89
I/System.out(29517): trace tExec - heure : 31479 ms --- AndroidNativeAudio - play 0c: / noTask: 35 / tExec: 0
I/System.out(29517): trace tExec - heure : 31479 ms --- AndroidNativeAudio - play 1: / noTask: 35 / tExec: 0
I/System.out(29517): trace tExec - heure : 31479 ms --- AndroidNativeAudio - play 2: / noTask: 35 / tExec: 0
I/System.out(29517): trace tExec - heure : 31483 ms --- translaterProjectiles / tExec: 9
I/System.out(29517): trace tExec - heure : 31483 ms --- activerPotentieltPlanete / tExec: 0
SOLUTION 3: WithoutThread_WithAsync
--------- beginning of system
--------- beginning of main
.... I/System.out(30990): trace tExec - heure : 29308 ms --- rechercherImpacts / tExec: 1
I/System.out(30990): trace tExec - heure : 29308 ms --- gererLesBoucliersDeProtection / tExec: 0
I/System.out(30990): trace tExec - heure : 29308 ms --- onPoursuitOuPas / tExec: 0
I/System.out(30990): trace tExec - heure : 29308 ms --- End traitementCyclique - SUPER IMPORTANT - Execution time traitementCyclique : / tExec: 16
I/System.out(30990): trace CPU - heure : 29308 ms --- tExec: End traitementCyclique - Phase no 4 / tExec MAX in the phase : 171
I/System.out(30990): trace tExec - heure : 29391 ms --- Beginning traitementCyclique ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ / tExec: 0
I/System.out(30990): trace tExec - heure : 29392 ms --- acqEvtsJoystickOuSmartphoneETActionsSurUneBDT / tExec: 1
I/System.out(30990): trace tExec - heure : 29392 ms --- gererLesBoucliersDeProtection / tExec: 0
I/System.out(30990): trace tExec - heure : 29392 ms --- gererLesFlippersEtLeursInfluences / tExec: 0
I/System.out(30990): trace tExec - heure : 29404 ms --- actionsAleatoireSurLesVE / tExec: 12
I/System.out(30990): trace tExec - heure : 29405 ms --- gererBDTBrightnessDesVaisseauxArmes / tExec: 1
I/System.out(30990): trace tExec - heure : 29405 ms --- translaterProjectiles / tExec: 0
I/System.out(30990): trace tExec - heure : 29405 ms --- activerPotentieltPlanete / tExec: 0
I/System.out(30990): trace tExec - heure : 29405 ms --- activerPotentieltRecharge / tExec: 0
I/System.out(30990): trace tExec - heure : 29405 ms --- activerPotentieltAsteroides / tExec: 0
I/System.out(30990): trace tExec - heure : 29405 ms --- translaterAsteroides / tExec: 0
I/System.out(30990): trace tExec - heure : 29407 ms --- gererLesBoucliersDeProtection / tExec: 2
I/System.out(30990): trace tExec - heure : 29407 ms --- rechercherImpactsProjectiles - avec alien / NbRech: 0 / tExec: 0
I/System.out(30990): trace tExec - heure : 29407 ms --- rechercherImpactsProjectiles - avec proj / NbRech: 1 / tExec: 0
I/System.out(30990): trace tExec - heure : 29441 ms --- AndroidNativeAudio - play 0: / noTask: 25 / tExec: 1
I/System.out(30990): trace tExec - heure : 29441 ms --- AndroidNativeAudio - play 0a: / noTask: 25 / tExec: 0
I/System.out(30990): trace tExec - heure : 29491 ms --- AndroidNativeAudio - play 0b: / noTask: 25 / tExec: 50
I/System.out(30990): trace tExec - heure : 29491 ms --- AndroidNativeAudio - play 0c: / noTask: 25 / tExec: 0
I/System.out(30990): trace tExec - heure : 29491 ms --- AndroidNativeAudio - play 1: / noTask: 25 / tExec: 0
I/System.out(30990): trace tExec - heure : 29491 ms --- AndroidNativeAudio - play 2: / noTask: 25 / tExec: 0
I/System.out(30990): trace tExec - heure : 29492 ms --- activerSon - 1 param. - mesure: / tExec: 52
I/System.out(30990): trace tExec - heure : 29507 ms --- AndroidNativeAudio - play 0: / noTask: 26 / tExec: 1
I/System.out(30990): trace tExec - heure : 29507 ms --- AndroidNativeAudio - play 0a: / noTask: 26 / tExec: 0
I/System.out(30990): trace tExec - heure : 29559 ms --- AndroidNativeAudio - play 0b: / noTask: 26 / tExec: 52
I/System.out(30990): trace tExec - heure : 29559 ms --- AndroidNativeAudio - play 0c: / noTask: 26 / tExec: 0
I/System.out(30990): trace tExec - heure : 29561 ms --- AndroidNativeAudio - play 1: / noTask: 26 / tExec: 1
I/System.out(30990): trace tExec - heure : 29561 ms --- AndroidNativeAudio - play 2: / noTask: 26 / tExec: 0
I/System.out(30990): trace tExec - heure : 29562 ms --- activerSon - 1 param. - mesure: / tExec: 57
I/System.out(30990): trace tExec - heure : 29562 ms --- rechercherImpactsProjectiles - avec VE / NbRech: 9 / tExec: 155
I/System.out(30990): trace tExec - heure : 29562 ms --- rechercherImpactsProjectiles - avec VA / NbRech: 10 / tExec: 0
I/System.out(30990): trace tExec - heure : 29562 ms --- rechercherImpactsProjectiles - avec aster / NbRech: 10 / tExec: 0
I/System.out(30990): trace tExec - heure : 29562 ms --- rechercherImpactsProjectiles - avec planete / NbRech: 10 / tExec: 0
I/System.out(30990): trace tExec - heure : 29562 ms --- rechercherImpactsProjectiles - avec trou noir / NbRech: 10 / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpactsProjectiles - avec borne magnet / NbRech: 10 / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpactsProjectiles - avec flipper / NbRech: 10 / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure rechercherImpactsProjectiles / NbRech: 10 / tExec: 156
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure rechercherImpactsVaisseaux / NbRech: 20 / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure rechercherImpactsAsteroides / NbRech: 20 / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure rechercherImpactsAsteroideSurLesObjetsFixes / NbRech: 20 / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure rechercherImpactsDeLaPlaneteSurLesObjetsFixes / NbRech: 20 / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure rechercherImpactsAliens / NbRech: 24 / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure rechercherImpactsRecharges / NbRech: 44 / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure supprimerSiNecProjectiles / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure supprimerSiNecVAs / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure supprimerSiNecVEs / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure supprimerSiNecAsteroides / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure supprimerSiNecPlanetes / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure supprimerSiNecAliens / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure supprimerSiNecRecharges / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure supprimerSiNecBornes / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts - mesure supprimerSiNecFlippers / tExec: 0
I/System.out(30990): trace tExec - heure : 29563 ms --- rechercherImpacts / tExec: 156
I/System.out(30990): trace tExec - heure : 29563 ms --- gererLesBoucliersDeProtection / tExec: 0
I/System.out(30990): trace CPU - heure : 29563 ms --- tExec: Phase no 4 / Ai trouve un deltaT plus gd: 172 / dureeTraittCPUdsUneBDTms APRES : 172
I/System.out(30990): trace CPU - heure : 29563 ms --- tExec: Pb Temps Reel: duree du traitt > BDT
I/System.out(30990): trace CPU - heure : 29563 ms --- tExec: GROS PB TEMPS REEL: Exception - Le temps d'execution a depasse de 30% la BDT - Pourquoi?
I/System.out(30990): trace tExec - heure : 29592 ms --- AndroidNativeAudio - play 5b: / noTask: 25 / tExec: 92
I/System.out(30990): trace tExec - heure : 29605 ms --- onPoursuitOuPas / tExec: 42
I/System.out(30990): trace tExec - heure : 29605 ms --- End traitementCyclique - SUPER IMPORTANT - Duree du traitementCyclique : / tExec: 214
I/System.out(30990): trace CPU - heure : 29605 ms --- tExec: End traitementCyclique - Phase no 4 / tExec MAX in the phase : 172
I/System.out(30990): trace tExec - heure : 29621 ms --- Beginning traitementCyclique ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ / tExec: 0
I/System.out(30990): trace tExec - heure : 29622 ms --- acqEvtsJoystickOuSmartphoneETActionsSurUneBDT / tExec: 1
I/System.out(30990): trace tExec - heure : 29622 ms --- gererLesBoucliersDeProtection / tExec: 0