Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 将API密钥保存在gradle.properties中大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是一个新的 android,并在一个项目,我看到我得到的API密钥保存在gradle.properties为: @H_528_2@myOpenWeatherMapApiKey = “1c3ae96f93a0094e8a7chsjdgfid04aed3f10”

然后在build.gradle(module:app)中,我添加了以下几行:

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

所以,在我的主程序中,我正在使用这个api访问数据,其api的URL由这段代码获得:

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

所以,我的问题是,为什么要采取一切变化的紧张局势把appid存放在毕业生中.我们不能直接在主程序中访问?

而我的问题的第二部分是在gradle部分实际发生了什么,特别是与buildTypes.each {}块?

解决方法

>这个间接的想法是允许您将API密钥存储在未上传到版本控制的文件中:gradle.properties是本地文件,不应该存储在版本控制下,而BuildConfig一个生成的类,所以它只会在构建时创建.将API密钥存储在一个明确的字符串中,这绝对是更容易的,但是您必须将其提交到repo. >在构建期间,Gradle将生成BuildConfig文件来存储一些构建相关的常量.您可以使用buildConfigField命令来指示Gradle将自定义字段添加到BuildConfig中.项目建成后,您可以在源代码中引用这些常量.

大佬总结

以上是大佬教程为你收集整理的android – 将API密钥保存在gradle.properties中全部内容,希望文章能够帮你解决android – 将API密钥保存在gradle.properties中所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。