Comment écrire moment de la construction du timbre en apk
- De faire quelques changements dans les Contacts Android package
- À l'aide de
mm
(faire) de commande pour créer cette application
Parce que j'ai changer et la construction de cette application, encore et encore, si je veux ajouter un délai de fabrication de timbres dans la Contacts.apk
pour vérifier le temps de génération quand nous runn il dans le combiné.
Comme nous le savons, quand nous courons mm
de commande, le Android.mk
(makefile) dans les Contacts paquet sera appelée.
Et maintenant, nous pouvons obtenir le temps de construction à l'aide de date
-macro.
Mais comment on peut écrire ce moment de la construction du timbre dans un fichier que notre application peut lire au moment de l'exécution?
Des suggestions?
- Êtes-vous désireux d'ajouter la construction d'horodatage de l'apk de lui-même? ainsi, il devient
MyApp-201109302359.apk
? - Merci, j'ai réaliser cette. comme MyApp-201109302359.apk, mais comme vous le savez, j'ai pour construire cette application plusieurs fois. Si je le fais, il y aura beaucoup de MyApp-*.apk dans *system/app dossier, ce n'est pas ce que je veux.
- Je veux écrire la construction d'horodatage dans un fichier que mon apk peut lire et afficher en Activité au moment de l'exécution.
- J'ai posté un moyen de faire ce w/Android Studio & gradle ici: stackoverflow.com/a/22649533/3035127
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez Gradle, vous pouvez ajouter
buildConfigField
avec horodatage mis à jour au moment de la construction.Puis de le lire au moment de l'exécution.
Méthode qui vérifie la date de la dernière modification de classes.dex, cela signifie que la dernière fois lors de l'application du code a été construit:
Testé et fonctionne très bien, même si l'application est installée sur la carte SD.
Depuis la version de l'API 9 il y a:
PackageInfo.lastUpdateTime
L'heure à laquelle l'application a été mise à jour.
Sur le bas de l'API versions, vous devez faire construire vous-même la date. Par exemple de mettre un fichier dans le dossier des actifs contenant la date. Ou à l'aide de __ DATE__ macro dans le code natif. Ou de la vérification de la date de votre cours.dex a été construit (date de fichier dans votre APK).
Un soupçon de solution "date de dernière modification de classes.dex fichier" un récent AndroidStudio versions:
Dans la configuration par défaut de l'horodatage n'est pas écrit plus de fichiers dans le fichier apk. Timestamp est toujours "du 30 Novembre 1979".
Vous pouvez modifier ce comportement en ajoutant cette ligne au fichier
%userdir%/.gradle/gradle.propriétés (à créer si elle n'existe pas)
Voir Question 220039
(Doit être dans le répertoire utilisateur, gradle.propriétés en projet de construire dir semble ne pas fonctionner)
dans votre construction.gradle:
Les deux sont differnet temps.
Vous pouvez vérifier avec le code ci-dessous.
Je utiliser la même stratégie que Pointeur Null sauf que je préfère le MANIFESTE.MF fichier.
Celui-ci est régénéré, même si une mise en page est modifiée (ce qui n'est pas le cas pour les classes.dex).
J'ai aussi la force de la date à être formaté en GMT pour éviter la confusion entre le terminal et le serveur de TZs (si une comparaison doit être faite, ex: vérifier la version la plus récente).
- Il dans le code suivant:
Je sais que c'est vraiment vieux, mais voici comment je l'ai fait à l'aide de ant au sein d'eclipse:
build.xml dans la racine du projet
Puis ajouter un application_build_date chaîne de votre strings.xml
Assurer le script ant est exécuté comme un pré-activité de construction, et vous aurez toujours valide date de création disponibles pour vous dans R. string.application_build_date.
Donc Développeur Android - Android Studio Guide de l'Utilisateur - Gradle des Conseils et des Recettes de Simplifier le Développement d'applications fait qu'ajouter à l'ordre pour avoir une sortie d'horodatage disponibles pour votre application:
Dans votre code de l'application, vous pouvez accéder aux propriétés comme suit:
Je suis, y compris ici comme tous les autres solutions semblent être d'avant l'exemple.
Pour l'horodatage et la gestion de versions, de construire.gradle/android/defaultconfig.ini.php:
Utilisation dans le code:
BuildConfig.BUILD_DATE_STAMP
Utilisation de xml:
"@string/build_date_stamp"
Mise en garde: l'ajout de
HHmm
provoquera des erreurs (probablement débordement d'entier)