BaseUrlManager

Introduction: :sailboat: BaseUrlManager 的设计初衷主要用于开发时,有多个环境需要打包 APK 的场景,通过 BaseUrlManager 提供的 BaseUrl 动态设置入口,只需打一次包,即可轻松随意的切换不同的开发环境或测试环境。在打生产环境包时,关闭 BaseUrl 动态设置入口即可。
More: Author   ReportBugs   
Tags:

MavenCentral JitPack CI Download API License

BaseUrlManager for Android 的设计初衷主要用于开发时,有多个环境需要打包 APK 的场景,通过 BaseUrlManager 提供的 BaseUrl 动态设置入口,只需打一 次包,即可轻松随意的切换不同的开发环境或测试环境。在打生产环境包时,关闭 BaseUrl 动态设置入口即可。

妈妈再也不用担心因环境不同需要打多个包的问题,从此告别环境不同要写一堆配置的烦恼,真香。

配合 RetrofitHelper 动态改变 BaseUrl 一起使用更香。

效果展示

Image

你也可以直接下载 演示 App 体验效果

引入

Gradle:

  1. 在 Project 的 build.gradlesetting.gradle 中添加远程仓库

     repositories {
         //...
         mavenCentral()
     }
    
  2. 在 Module 的 build.gradle 中添加依赖项

     //AndroidX 版本
     implementation 'com.github.jenly1314:base-url-manager:1.2.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 实例(适用于 v1.1.x 版本)
    mBaseUrlManager = BaseUrlManager.getInstance();

    //获取 BaseUrlManager 实例(适用于 v1.0.x 旧版本)
    mBaseUrlManager = new BaseUrlManager(this);

    //获取 baseUrl
    String baseUrl = mBaseUrlManager.getBaseUrl();

Step.3 提供动态配置 BaseUrl 的入口(通过 Intent 跳转到 BaseUrlManagerActivity 界面)

v.1.1.x 新版本写法

   BaseUrlManager.getInstance().startBaseUrlManager(this,SET_BASE_URL_REQUEST_CODE);

v1.0.x 以前版本写法

    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 时,在 Activity 或 Fragment 的 onActivityResult 方法中重新获取 baseUrl 即可


    //方式 1:通过 BaseUrlManager 获取 baseUrl
    String baseUrl = BaseUrlManager.getInstance().getBaseUrl();
    //方式 2:通过 data 直接获取 baseUrl
    UrlInfo urlInfo = BaseUrlManager.parseActivityResult(data);
    String baseUrl = urlInfo.getBaseUrl();

更多使用详情,请查看app中的源码使用示例或直接查看 API 帮助文档

相关推荐

  • RetrofitHelper 一个为 Retrofit 提供便捷配置多个 BaseUrl 相关的扩展帮助类。
  • LogX 一个轻量而强大的日志框架;好用不解释。
  • KVCache 一个便于统一管理的键值缓存库;支持无缝切换缓存实现。
  • AndroidKTX 一个简化 Android 开发的 Kotlin 工具类集合。
  • AndroidUtil 一个整理了 Android 常用工具类集合,平时在开发的过程中可能会经常用到。
  • AppUpdater 一个专注于 App 更新,一键傻瓜式集成 App 版本升级的轻量开源库。
  • MVVMFrame 一个基于 Google 官方推出的 JetPack 构建的 MVVM 快速开发框架。
  • AppTemplate 一款基于 MVVMFrame 构建的 App 模板。

版本日志

v1.2.0:2022-1-25 (从 v1.2.0 开始发布至 MavenCentral)

  • 优化细节

v1.1.1:2021-1-28

  • 新增支持长按复制相关功能

v1.1.0:2020-12-4

  • 输入的 url 支持正则校验
  • 后续版本只支持 androidx,版本名称不再带有 androidx 标识

v1.0.1:2019-7-5

  • 移除 strings.xml 资源中的 app_name
  • 支持不依赖刷新数据,直接通过 onActivityResult 获取 baseUrl 信息

v1.0.0:2019-6-11 支持 AndroidX 版本

  • BaseUrlManager 初始版本

footer

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools