【问题标题】:how to hide "API URL" and "API KEY" from "ApiResources.java"如何从“ApiResources.java”中隐藏“API URL”和“API KEY”
【发布时间】:2019-08-05 09:37:14
【问题描述】:
我的 ApiResources.java 看起来像这样
package com.example.utils;
import com.example.R;
public class ApiResources {
public static String adStatus="0",adMobBannerId="null", adMobInterstitialId="null", adMobPublisherId="null";
String URL = "http://example/api/";
String API_SECRECT_KEY = "api_secret_key=1kkzczxc8fny1fagc";
【问题讨论】:
标签:
java
android
android-studio
android-developer-api
【解决方案1】:
第 1 步:在源代码之外定义密钥
将以下行放入您的用户级gradle.properties 文件中。
MyAwesomeApp_ApiKey="your-api-key-goes-here"
我更喜欢使用这种格式<Project Name>_<Key Property Name>,这样我就不会误将不同项目的密钥混淆了。
第 2 步:在项目中导入密钥
- 打开您的模块级
build.gradle 文件(通常是您为应用定义依赖项的文件)。
- 在每个构建类型中添加您的属性。
- 如果您想从 Java 访问密钥,请将其添加为
buildConfigField。
- 如果您想访问 XML 文件(布局和其他资源)中的密钥,请将其添加为
resValue。
完成此操作后,您的 build.gradle 可能看起来像这样
buildTypes {
debug {
buildConfigField 'String', "ApiKey", MyAwesomeApp_ApiKey
resValue 'string', "api_key", MyAwesomeApp_ApiKey
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField 'String', "ApiKey", MyAwesomeApp_ApiKey
resValue 'string', "api_key", MyAwesomeApp_ApiKey
}
}
第 3 步:在应用代码中使用密钥
- 现在在 Java 中,您可以简单地将所有使用
API_SECRET_KEY 替换为 BuildConfig.ApiKey。
- 在 XML 中,您可以使用
@string/api_key 引用密钥。