如何在Android Studio中添加可在代码中使用的环境变量?
在Android Studio中设置可通过
System.getenv()读取的环境变量 核心说明
Android应用进程与系统环境相互隔离,System.getenv()读取的是应用进程自身的环境变量,无法直接通过系统层面设置让应用获取到值,得通过构建脚本或运行配置注入。
具体实现方法
方法1:Gradle构建脚本注入(推荐)
在模块级build.gradle(或build.gradle.kts)中,为对应构建类型添加配置:
android { buildTypes { debug { // 生成BuildConfig常量(类型安全,更推荐直接使用) buildConfigField "String", "AWS_ACCESS_KEY_ID", "\"你的AccessKeyId值\"" } release { // 正式环境同理,建议用安全方式管理敏感信息 buildConfigField "String", "AWS_ACCESS_KEY_ID", "\"你的正式环境AccessKeyId\"" } } }
同步Gradle后,若一定要用System.getenv()读取,需在自定义Application类的onCreate()中手动注入:
@Override public void onCreate() { super.onCreate(); // 将BuildConfig中的值写入进程环境变量 System.getenv().put("AWS_ACCESS_KEY_ID", BuildConfig.AWS_ACCESS_KEY_ID); }
方法2:用gradle.properties管理敏感信息(更安全)
- 在项目根目录的
gradle.properties中添加:
awsAccessKeyId=你的AccessKeyId值
- 模块级
build.gradle中引用该变量:
android { buildTypes { debug { buildConfigField "String", "AWS_ACCESS_KEY_ID", "\"${awsAccessKeyId}\"" } } }
注意:把
gradle.properties加入.gitignore,避免敏感信息提交到版本仓库。
方法3:运行配置临时设置(仅调试用)
- 打开Android Studio的Run/Debug Configurations
- 选中你的应用配置,切换到Environment Variables标签
- 添加键值对
AWS_ACCESS_KEY_ID=你的AccessKeyId值 - 启动应用后,
System.getenv("AWS_ACCESS_KEY_ID")即可读取到值,但该设置仅对当前运行配置生效,发布版本不适用。
重要提醒
- 敏感信息(如AWS密钥)不要硬编码到代码或构建脚本中,优先用
gradle.properties或专业密钥管理方案 - 正式发布版本建议使用AWS Cognito等身份认证方式,避免直接暴露Access Key
内容的提问来源于stack exchange,提问作者GustavoGB
相关产品推荐
相关产品推荐

