# ffsky-app-env **Repository Path**: hljdrl/ffsky-app-env ## Basic Information - **Project Name**: ffsky-app-env - **Description**: android app env 环境组件,app env : dev、sit、uat、pro - **Primary Language**: Android - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-19 - **Last Updated**: 2026-02-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: env, config, Android ## README # ffsky-app-env #### 介绍 app-env 环境组件 1. 基础组件,提供app运行环境。 2. 环境模型:dev、sit、uat、pre、pro 3. Env可扩展使用. 4. AppEnv默认实现,直接install后使用. 5. 支持多服务器API URL注入与调用(向下兼容单服务器API)。 #### 版本记录 - 1.0.2 - 新增多服务器 API URL 注入与调用(`install(env, baseUrls)`、`getBaseUrl(apiKey)`、`isServiceMatching(url, apiKey)`) - 新增 API 常量(`API_BASE`、`API_BASE2`、`API_CDN`、`API_RES`) - 补充 app 自测示例(多服务器、环境判断、匹配) - 完善 README 文档与类图 - 1.0.1 - 新增 pre 环境支持 核心类说明(lib_env) | 类名 | 说明 | |--------------------|-----------------------------| | EnvEvent | 环境能力接口(环境与API访问) | | BaseEnv | 环境抽象基类 | | AppEnv | 默认环境实现(单/多服务器) | | Env | 管理入口(install/getInstance) | | SimpleEnv | 简单静态使用方式 | 类图(完整字段/访问级别/线程安全/流程说明) 接口层API EnvEvent.java | 方法 | 备注 | |---------------------------------------|---------------| | boolean isPro() | 是否-pro环境 | | boolean isPre() | 是否-pre环境 | | boolean isDev() | 是否-dev环境 | | boolean isSit() | 是否-sit环境 | | boolean isUat() | 是否-uat环境 | | String getEnv() | 获取env | | String getBaseUrl() | 获取baseUrl | | String getBaseUrl(String apiKey) | 获取指定API的baseUrl | | boolean isServiceMatching(String url) | 判断是否匹配baseUrl | | boolean isServiceMatching(String url, String apiKey) | 判断是否匹配指定API | | - | - | 多服务器API Key(EnvEvent 常量) - API_BASE:默认服务器(对应旧 getBaseUrl) - API_BASE2:备用基础服务器 - API_CDN:静态资源服务器 - API_RES:资源服务器 #### 使用说明 1. 引入库 ```gradle // 当前最新版本(支持多服务器 API) api "com.gitee.hljdrl:env:1.0.2" // 新增 pre 环境 api "com.gitee.hljdrl:env:1.0.1" // 初始版本 api "com.gitee.hljdrl:env:1.0.0" ``` 2. 初始化 ```java public class MyApplication extends FFKitApplication { @Override public void onCreate() { super.onCreate(); //TODO 二选一方案:1.SimpleEnv 2. Env //TODO 不可同时使用,同时使用会造成业务层开发、维护成本呢。 //SimpleEnv 初始化, SimpleEnv.install(EnvEvent.ENV_DEV, "https://gitee.com/"); //Env初始化 Env.install(EnvEvent.ENV_PRO, "https://gitee.com/"); } } ``` 3. 多服务器API URL(新增能力,向下兼容) ```java Map urls = new HashMap<>(); urls.put(EnvEvent.API_BASE, "https://base.xxx.com/"); urls.put(EnvEvent.API_BASE2, "https://base2.xxx.com/"); urls.put(EnvEvent.API_CDN, "https://cdn.xxx.com/"); urls.put(EnvEvent.API_RES, "https://res.xxx.com/"); // SimpleEnv SimpleEnv.install(EnvEvent.ENV_DEV, urls); // Env Env.install(EnvEvent.ENV_PRO, urls); EnvEvent env = Env.getInstance(); String cdn = env.getBaseUrl(EnvEvent.API_CDN); boolean ok = env.isServiceMatching("https://cdn.xxx.com/a.png", EnvEvent.API_CDN); ```