dutpas / HG

0 stars 0 forks source link

MediaPlayer and prepareAsync() method about sound with NativeAudioService for Android #1

Open dutpas opened 7 years ago

dutpas commented 7 years ago

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

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 {

static private boolean bThreadTask = false;
static private boolean bPrepareAsync = true;

private MediaPlayer mediaPlayer;
private int currentPosition;

static private int nbTask = 0;
private int noTask;

String audioFileName = "";
int nbCyclesAudio = 1;
double  audioLevel = 1.0;

public AndroidNativeAudio() { }

/****************************************************/    

@Override
public void play() {
      if (bThreadTask) {
        Task<Void> taskSound = new Task<Void>() {

        @Override
        protected Void call() throws Exception {
        currentPosition = 0;
        nbTask++;
        noTask = nbTask;
        try {
            long tDeb = System.currentTimeMillis();
            if (mediaPlayer != null) {
                stop();
            }
            mediaPlayer = new MediaPlayer();
            traceTexecCPU("AndroidNativeAudio - play 0: "+ " / noTask: " + noTask, tDeb);
            tDeb = System.currentTimeMillis();  

            AssetFileDescriptor afd = FXActivity.getInstance().getAssets().openFd(audioFileName);
            traceTexecCPU("AndroidNativeAudio - play 0a: " + " / noTask: " + noTask, tDeb);
            tDeb = System.currentTimeMillis();          
            mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());

            traceTexecCPU("AndroidNativeAudio - play 0b: " + " / noTask: " + noTask, tDeb);
            tDeb = System.currentTimeMillis();

            mediaPlayer.setAudioStreamType(AudioManager.STREAM_RING);

            traceTexecCPU("AndroidNativeAudio - play 0c: " + " / noTask: " + noTask, tDeb);
            tDeb = System.currentTimeMillis();
            float floatLevel = (float) audioLevel;
            mediaPlayer.setVolume(floatLevel, floatLevel);
            GluonApplication.traceSimple("service play 1: " + floatLevel);
            traceTexecCPU("AndroidNativeAudio - play 1: " + " / noTask: " + noTask, tDeb);
            tDeb = System.currentTimeMillis();

            mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mediaPlayer) {
                    GluonApplication.traceSimple("service play 2a: " + nbCyclesAudio);
                    if (nbCyclesAudio >= 1) {
                        mediaPlayer.start();
                        nbCyclesAudio--;
                        GluonApplication.traceSimple("service play 3: start:" + nbCyclesAudio);
                    } else {
                        mediaPlayer.stop(); // Useful ?
                        mediaPlayer.release(); // for freeing the resource -
                                                // useful for the phone
                                                // codec - added: to test
                        mediaPlayer = null;
                    }
                    GluonApplication.traceSimple("service play 2b: " + nbCyclesAudio);
                }
            });

            traceTexecCPU("AndroidNativeAudio - play 2: " + " / noTask: " + noTask, tDeb);
            tDeb = System.currentTimeMillis();

// 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() {

                @Override
                public void onPrepared(MediaPlayer player) {
                    long tDeb = System.currentTimeMillis();
                    player.start();
                    nbCyclesAudio--;
                    GluonApplication.traceSimple("service play 5a: start - nbCyclesAudio decrem de 1 - Vaut maintenant " + nbCyclesAudio);
                    traceTexecCPU("AndroidNativeAudio - play 5a: " + " / noTask: " + noTask, tDeb);
                }

              });               
            }
            else {
                mediaPlayer.prepare();                  
                traceTexecCPU("AndroidNativeAudio - play 3a: " + " / noTask: " + noTask, tDeb);
                tDeb = System.currentTimeMillis();

                mediaPlayer.start();
                nbCyclesAudio--;
                traceTexecCPU("AndroidNativeAudio - play 4a: " + " / noTask: " + noTask, tDeb);
            }

        } catch (IOException e) {
            GluonApplication.traceSimple("Error playing audio resource " + e);
        }
        return null;
      }}; //Fin Task

      new Thread(taskSound).start();

      }
      else { //test not bTreadTask
                currentPosition = 0;
                nbTask++;
                noTask = nbTask;
                try {
                    long tDeb = System.currentTimeMillis();
                    if (mediaPlayer != null) {
                        stop();
                    }
                    mediaPlayer = new MediaPlayer();
                    traceTexecCPU("AndroidNativeAudio - play 0: "+ " / noTask: " + noTask, tDeb);
                    tDeb = System.currentTimeMillis();  

                    AssetFileDescriptor afd = FXActivity.getInstance().getAssets().openFd(audioFileName);
                    traceTexecCPU("AndroidNativeAudio - play 0a: " + " / noTask: " + noTask, tDeb);
                    tDeb = System.currentTimeMillis();          
                    mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());

                    traceTexecCPU("AndroidNativeAudio - play 0b: " + " / noTask: " + noTask, tDeb);
                    tDeb = System.currentTimeMillis();

                    mediaPlayer.setAudioStreamType(AudioManager.STREAM_RING);

                    traceTexecCPU("AndroidNativeAudio - play 0c: " + " / noTask: " + noTask, tDeb);
                    tDeb = System.currentTimeMillis();

                    float floatLevel = (float) audioLevel;
                    mediaPlayer.setVolume(floatLevel, floatLevel);
                    GluonApplication.traceSimple("service play 1: " + floatLevel);
                    traceTexecCPU("AndroidNativeAudio - play 1: " + " / noTask: " + noTask, tDeb);
                    tDeb = System.currentTimeMillis();

                    mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
                        @Override
                        public void onCompletion(MediaPlayer mediaPlayer) {
                            GluonApplication.traceSimple("service play 2a: " + nbCyclesAudio);
                            if (nbCyclesAudio >= 1) {
                                mediaPlayer.start();
                                nbCyclesAudio--;
                                GluonApplication.traceSimple("service play 3: start:" + nbCyclesAudio);
                            } else {
                                mediaPlayer.stop(); // Useful ?
                                mediaPlayer.release(); // for freeing the resource -
                                                        // useful for the phone
                                                        // codec - added: to test
                                mediaPlayer = null;
                            }
                            GluonApplication.traceSimple("service play 2b: " + nbCyclesAudio);
                        }
                    });

                    traceTexecCPU("AndroidNativeAudio - play 2: " + " / noTask: " + noTask, tDeb);
                    tDeb = System.currentTimeMillis();

// 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() {

                        @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

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