No sé si esto es fuera de tema, pero en laravel, podemos establecer las variables de un .env
archivo, que puede entonces tener acceso utilizando una getenv()
función de prevención de codificación duro en que no se puede asegurar.
Podemos hacer lo mismo en Android Studio (usando Java)? Como hay cierta información que código en lugar no es difícil.
Espero este sentido marcas.
He intentado establecer las variables en una clase y acceder a ellos a través de la clase, pero siento que hay una mejor manera que es más similar a como se hace en laravel.
Esto es lo que estoy haciendo ahora, pero no es lo que estoy buscando:
public class EnvVariables {
public final String API_KEY = "some API key";
public final String API_ENDPOINT = "https://example.com/api/v1/endpoint";
}
Luego utiliza estas variables donde quiera que los necesitaba.
Esto hace el trabajo, pero la clase sigue siendo de fácil acceso, mientras que una .env
no es (ya que no debe ser).
El más cercano (en mi opinión) que tienen las variables ambientales, sería buildConfig
campos, que se realice en build.gradle, así:
buildConfigField "String", "variable_name", "variable_value"
usted haría algo como esto:
flavorDimensions "default"
productFlavors {
dev {
buildConfigField "String", "SERVER_TEST", "\"http://192.618..\""
buildConfigField "String", "SERVER_MAIN", "\"https://68.5...\""
buildConfigField "String", "API_KEY", "dev API key"
}
prod {
buildConfigField "String", "SERVER_TEST", "\"http://192.618..\""
buildConfigField "String", "SERVER_MAIN", "\"https://68.5...\""
buildConfigField "String", "API_KEY", "prod API key"
}
que luego se puede acceder de esta manera:
BuildConfig.API_KEY
echar un vistazo a estos para obtener más información:
¿Cómo generar buildConfigField con tipo String
y esto para la creación de diferentes sabores:
https://developer.android.com/studio/build/build-variants
Como nota al margen, buildConfig
los campos se utilizan para los valores relacionados específicamente con una acumulación en particular o un grupo de generaciones, por su situación de querer almacenar claves de la API se trata de un ejemplo bueno, pero no deben utilizarse para simplemente almacenar todos los valores constantes para una aplicación .
Si usted tiene diferentes versiones de una aplicación (gratuita, de alta calidad, etc), que utiliza diferentes claves de la API, la acumulación de configuración es la mejor forma de hacerlo, como se puede ver en mi código anterior, dependiendo de la variante de construcción que inicie, la API clave va a cambiar.