Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo guardar la clave del API en gradle.properties

Soy nuevo en android y trabajando en un proyecto donde veo que la clave de API que tengo se guarda en gradle.properties como:

MyOpenWeatherMapApiKey="1c3ae96f93a0094e8a7chsjdgfid04aed3f10"

Y luego en build.gradle(module:app) estoy añadiendo las siguientes líneas:

 buildTypes.each { it.buildConfigField 'String', 'OPEN_WEATHER_MAP_API_KEY', MyOpenWeatherMapApiKey } 

Por lo tanto, en mi programa principal estoy accediendo a los datos utilizando esta api cuya URL se obtiene por este pedazo de código:

 final String FORECAST_BASE_URL = "http://api.openweathermap.org/data/2.5/forecast/daily?"; final String QUERY_PARAM = "q"; final String FORMAT_PARAM = "mode"; final String UNITS_PARAM = "units"; final String DAYS_PARAM = "cnt"; final String APPID_PARAM = "APPID"; Uri builtUri = Uri.parse(FORECAST_BASE_URL).buildUpon() .appendQueryParameter(QUERY_PARAM, params[0]) .appendQueryParameter(FORMAT_PARAM, format) .appendQueryParameter(UNITS_PARAM, units) .appendQueryParameter(DAYS_PARAM, Integer.toString(numDays)) .appendQueryParameter(APPID_PARAM, BuildConfig.OPEN_WEATHER_MAP_API_KEY) .build(); URL url = new URL(builtUri.toString()); 

Por lo tanto, mi pregunta es que por qué tomar toda la tensión de hacer cambios para almacenar el appid en la parte gradle. ¿No podemos acceder directamente en el programa principal solamente?

Y la segunda parte de mi pregunta es lo que realmente está sucediendo en la parte gradle, especialmente con el buildTypes.each{} bloque?

  • ¿Está la API Java 8 New Date disponible en Android N?
  • Cómo utilizar NFC API con google chrome para android
  • Seleccionar la API de destino en la vista previa de diseño de diseño de Android Studio
  • Android YouTube api v3 - orientación
  • ¿Cómo integrar prestashop con android?
  • Cómo crear API de sitio web
  • Google Maps Android API v2 bloquea el subproceso de la interfaz de usuario
  • API para cargar automáticamente apk en Google Play?
  • One Solution collect form web for “Cómo guardar la clave del API en gradle.properties”

    1. La idea de esta indirección es permitirle almacenar la clave de la API en los archivos que no se cargan en el control de versiones: gradle.properties es un archivo local y no debe almacenarse bajo el control de versiones, y BuildConfig es una clase generada, por lo que Sólo se creará en el tiempo de construcción. Es definitivamente más fácil almacenar la llave de la API en alguna parte como una cadena llana, pero después usted tendrá que comprometerla con el repo.
    2. Durante el tiempo de construcción, Gradle generará el archivo BuildConfig para almacenar algunas constantes relacionadas con la construcción. Puede utilizar el comando buildConfigField para instruir a Gradle a agregar campos personalizados a BuildConfig . Una vez construido el proyecto, puede hacer referencia a estas constantes dentro de su código fuente.
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.