Comment faire pour obtenir l'heure actuelle dans Android native code?
Je me demandais si il existe un moyen facile pour obtenir l'heure actuelle dans Android native code. De façon optimale, il serait quelque chose de comparable au Système.getTimeMillies(). Je vais seulement de l'utiliser pour voir combien de temps certains appels de fonction prendra donc une variable de type long à l'heure actuelle, en millisecondes, serait la solution optimale pour moi.
Merci d'avance!
OriginalL'auteur Pandoro | 2010-09-30
Vous devez vous connecter pour publier un commentaire.
Pour la microseconde résolution que vous pouvez utiliser
gettimeofday()
. Il utilise le "mur de l'horloge", qui continue à l'avance lorsque l'appareil est en veille, mais est sujet à de brusques changements de l'avant ou vers l'arrière si le réseau met à jour l'horloge du dispositif.Vous pouvez également utiliser
clock_gettime(CLOCK_MONOTONIC)
. Cette fonction utilise la fonction monotone de l'horloge, qui n'a jamais bonds en avant ou en arrière, mais arrête de compter lorsque l'appareil est en veille.La résolution réelle des compteurs est dépendant du périphérique.
Ces deux sont les Api POSIX, pas Android.
OriginalL'auteur fadden
Pour les paresseux, ajoutez à cela le haut de votre code:
L'appeler comme ceci:
Gardez à l'esprit que
CLOCK_REALTIME
n'est pas monotone, utilisezCLOCK_MONOTONIC
si vous avez besoin d'une non-diminution des temps.OriginalL'auteur torger
Un autre pour les paresseux, cette fonction renvoie l'heure actuelle, en nanosecondes à l'aide de
CLOCK_MONOTONIC
long
. Si vous allez à se multiplier untime_t
par 1e9, vous devez utiliser une explicite 64-bits type (par exemple,int64_t
) pour lancertv_sec
et que la valeur de retour.OriginalL'auteur donturner