Android调试技巧之如何在一个手机中安装多个接口地址的apk应用

在项目开发过程中,经常会有需要打包buildType的 APK 的需求。 比如 debug版,release版,dev版等等。 有时候不同的版本中使用到的不同的服务端api域名也不相同。 比如 debug_api.com,release_api.com,dev_api.com等等。

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }
   
        qafc {
            //这里是关键代码
            // 属性applicationIdSuffix作用是在packageId后面加上一个后缀,后缀必须以『.』开头
            applicationIdSuffix '.qafc'
            signingConfig signingConfigs.config
        }

        dev {
            applicationIdSuffix '.dev'
            signingConfig signingConfigs.config
          
        }
    }

再进一步方便调试app,点Android Studio上这个按钮

将不同版本的包直接运行到手机上,我们还需要做以下配置。

image.png

Setp2.

image.png

Setp3.

点击按钮直接将dev包安装到手机上

如何一步安装dev、release、debug所有的包到手机

创建一个gradle task


image.png

将之前创建的任务都加到这个任务中,installAll最终包括了所有的任务


image.png

如果你在一台设备上安装两个 App,一个是 Debug 版一个是 Release 版,那么你很难区分出来到底哪个是哪个(不打开的情况下)。

可以在你的 App icon 上加一个蒙层用以区分出各个 BuildType 的 App,所以我们需要从修改应用图标入手。


image.png

Setp1.准备几张带有buildtype标签的logo图

Setp2.

//利用manifestPlaceholders属性做图标的动态替换 
// 注意,这里是添加,在 string.xml 不能有这个字段,会重名!!!
        release{
            signingConfig signingConfigs.release
            resValue "string", "app_name", "应用预览版"
            manifestPlaceholders =[app_icon:"@drawable/app_icon_test"]
        }

Setp3.

//将在AndroidManifest.xml中替换成引用
    <application
        android:name=".app.MyApplication"
        android:allowBackup="true"
        android:configChanges="orientation"
        android:icon="${app_icon}"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:supportsRtl="true"
        android:theme="@style/AppTheme.NoActionBar">
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容