BaseUrlManager
简介::sailboat: BaseUrlManager 的设计初衷主要用于开发时,有多个环境需要打包 APK 的场景,通过 BaseUrlManager 提供的 BaseUrl 动态设置入口,只需打一次包,即可轻松随意的切换不同的开发环境或测试环境。在打生产环境包时,关闭 BaseUrl 动态设置入口即可。
标签:
BaseUrlManager for Android 的设计初衷主要用于开发时,有多个环境需要打包 APK 的场景,通过 BaseUrlManager 提供的 BaseUrl 动态设置入口,只需打一次包,即可轻松随意的切换不同的开发环境或测试环境。在打生产环境包时,关闭 BaseUrl 动态设置入口即可。
妈妈再也不用担心因环境不同需要打多个包的问题,从此告别环境不同要写一堆配置的烦恼。
Gif 展示
引入
Maven:
<dependency>
<groupId>com.king.base</groupId>
<artifactId>base-url-manager</artifactId>
<version>1.0.0</version>
<type>pom</type>
</dependency>
Gradle:
implementation 'com.king.base:base-url-manager:1.0.0'
Lvy:
<dependency org='com.king.base' name='base-url-manager' rev='1.0.0'>
<artifact name='$AID' ext='pom'></artifact>
</dependency>
如果 Gradle 出现 implementation 失败的情况,可以在 Project 的 build.gradle 里面添加如下:(也可以使用上面的 GitPack 来 implementation)
allprojects {
repositories {
maven { url 'https://dl.bintray.com/jenly/maven' }
}
}
引入的库:
api 'com.android.support:appcompat-v7:28.0.0'
compileOnly 'com.android.support:recyclerview-v7:28.0.0'
示例
集成步骤代码示例 (示例出自于app中)
Step.1 在您项目中的 AndroidManifest.xml 中通过配置 meta-data 来自定义全局配置
<!-- 在你项目中添加注册如下配置 -->
<activity android:name="com.king.base.baseurlmanager.BaseUrlManagerActivity"
android:screenOrientation="portrait"
android:theme="@style/BaseUrlManagerTheme"/>
Step.2 在您项目 Application 的 onCreate 方法中初始化 BaseUrlManager
//初始化 BaseUrlManager
mBaseUrlManager = new BaseUrlManager(this);
//获取 baseUrl
String baseUrl = mBaseUrlManager.getBaseUrl();
//也可以通过暴露方法获取 BaseUrl
/**
* 获取 baseUrl
* @return {@link #mBaseUrlManager#getBaseUrl()}
*/
public String getBaseUrl() {
return mBaseUrlManager.getBaseUrl();
}
Step.3 提供动态配置 BaseUrl 的入口(通过 Intent 跳转到 BaseUrlManagerActivity 界面)
Intent intent = new Intent(this, BaseUrlManagerActivity.class);
//BaseUrlManager 界面的标题
//intent.putExtra(BaseUrlManagerActivity.KEY_TITLE,"BaseUrl 配置");
//跳转到 BaseUrlManagerActivity 界面
startActivityForResult(intent,SET_BASE_URL_REQUEST_CODE);
Step.4 当配置改变了 baseUrl 时,只需通过 BaseUrlManager 刷新下数据,重新获取 baseUrl 即可
//刷新数据
mBaseUrlManager.refreshData();
//获取 baseUrl
mBaseUrlManager.getBaseUrl();