Speichern des API-Schlüssels in gradle.properties

Ich bin neu in Android und arbeite an einem Projekt, in dem der von mir erhaltene API-Schlüssel in @ gespeichert isgradle.properties wie

MyOpenWeatherMapApiKey="1c3ae96f93a0094e8a7chsjdgfid04aed3f10"

nd dann inbuild.gradle(module:app) Ich füge folgende Zeilen hinzu:

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

Also, in meinem Hauptprogramm greife ich mit dieser API auf die Daten zu, deren URL durch diesen Code erhalten wird:

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());

Also, meine Frage ist, warum man die ganze Spannung aufnimmt, Änderungen vorzunehmen, um die Appid im gradle-Teil zu speichern. Können wir nicht direkt im Hauptprogramm zugreifen?

Und der zweite Teil meiner Frage ist, was eigentlich im gradle Teil passiert, besonders mit dembuildTypes.each{} Block

Antworten auf die Frage(4)

Ihre Antwort auf die Frage