2010-09-17 8 views
4

Pour l'instant, j'ai utilisé la commande classique export pour définir une variable d'environnement et j'ai essayé de lire cette variable depuis mon test avec la fonction System.getenv(), mais cela ne semble pas fonctionner. Est-ce que quelqu'un peut donner un exemple comment configurer et lire une variable système dans une application Android?Comment définir et utiliser une variable d'environnement dans Android Test?

+0

S'il vous plaît voir http://stackoverflow.com/a/22315463/927592 pour la manière spécifique à Android pour définir/obtenir des variables d'environnement de Java –

Répondre

2

pour obtenir et définir une propriété que vous pouvez faire ce qui suit:

System.getProperty('property_name'); 

System.setProperty('property_name', 'value'); 

System.getenv() devrait travailler pour retourner une carte de toutes les variables d'environnement disponibles.

Pouvez-vous poster une partie de votre code si cela ne fonctionne toujours pas?

+0

Je ne peux toujours pas le faire fonctionner. C'est ainsi que j'exporte la variable système. 'export A = 123' et voici comment j'essaye d'obtenir la valeur:' tmp = System.getenv ("A"); Log.d ("MyTest", "== A:" + tmp); ' – Michalis

3

La variable d'environnement n'est visible que dans les processus issus (ou identiques) du processus qui définit la valeur de la variable d'environnement. (Voir http://en.wikipedia.org/wiki/Environment_variable#Synopsis)

Cela peut être un facteur dans votre incapacité apparente à voir la valeur que vous définissez, si le processus dans lequel vous voulez lire la valeur n'est pas un descendant du processus dans lequel vous l'avez défini.

Vous devez donc examiner la hiérarchie de processus de vos applications pour déterminer où vous devriez définir la valeur.

+1

Ceci est vrai. Mais j'ai utilisé le même shell Android pour définir la variable d'environnement et exécuter mon application Android. – Michalis

0

Mon but initial était de lire des arguments externes dans mon application Android. J'ai donc finalement utilisé le fichier XML en tant que fichier de configuration. Ce n'est toujours pas une réponse à ma question, mais quelqu'un pourrait trouver cela utile. Voir comment charger un fichier de configuration XML here

1

Si vous êtes familiarisé avec l'utilisation du NDK, créez simplement une fonction native dans l'espace NDK contenant la ligne ou ajoutez-la à une fonction existante.

setenv("ENVIROMENT_VARIABLE", "value", 1); 

Vous pouvez ensuite utiliser les API java System.getenv() pour le lire.

Bien que cela soit lourd, il est nécessaire d'utiliser des outils d'analyse de code en ligne comme gcov (inclus avec l'android ndk) pour la couverture de code.

Questions connexes