美文网首页
Android Studio配置Gradle打包、测试与正式IP

Android Studio配置Gradle打包、测试与正式IP

作者: 呦西小强 | 来源:发表于2022-04-19 14:29 被阅读0次

首先生成两个打包的key一个debug和一个release放在app下面,然后在app下的gradle中的android节点下配置

    signingConfigs {

        release {
            keyAlias "release"
            keyPassword "release123456"
            storeFile file("ReleaseKey.jks")
            storePassword("release123456")
            v1SigningEnabled true
            v2SigningEnabled true
        }

        debug {
            keyAlias "debug"
            keyPassword "debug123456"
            storeFile file("DebugKey.jks")
            storePassword("debug123456")
            v1SigningEnabled true
            v2SigningEnabled true
        }

    }

    buildTypes {
        debug {
            minifyEnabled false   // 混淆
            zipAlignEnabled false // Zipalign优化
            shrinkResources false // 移除无用的resource
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // 混淆配置
            signingConfig signingConfigs.debug
            buildConfigField "String", "IP_SERVER", "\"http://192.168.1.251:10002/\"" //测试环境
        }
        release {
            minifyEnabled false   // 混淆
            zipAlignEnabled false // Zipalign优化
            shrinkResources false // 移除无用的resource
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // 混淆配置
            signingConfig signingConfigs.release
            buildConfigField "String", "IP_SERVER", "\"https://www.wenyonghong.com/\"" //正式环境
        }
    }
public class MainActivity extends AppCompatActivity {

    private TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = (TextView) findViewById(R.id.tv);
        tv.setText(BuildConfig.IP_SERVER);       //通过BuildConfig.IP_SERVER获取Gradle中配置的IP地址
    }
}

通过Build Variant切换dubug 或者release环境:


image.png

然后Build就能生成对应的环境的apk包:


image.png

接下来配置对应不同打包的渠道的区分,一次性打好所有平台的包:
同样在app下的gradle中的android节点下配置

   productFlavors {

        huawei {
            buildConfigField "String", "RELEASE_CHANNEL", "\"1\""
        }
        xioami {
            buildConfigField "String", "RELEASE_CHANNEL", "\"2\""
        }
        oppo {
            buildConfigField "String", "RELEASE_CHANNEL", "\"3\""
        }
        vivo {
            buildConfigField "String", "RELEASE_CHANNEL", "\"4\""
        }

    }

并在android->defaultConfig节点下配置

    defaultConfig {
        applicationId "com.signingconfigs"
        minSdkVersion 19
        targetSdkVersion 31
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        flavorDimensions "default"
    }

不配置flavorDimensions "default" 可能报以下错误


image.png

接下来


image.png

接下来

public class MainActivity extends AppCompatActivity {

    private TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = (TextView) findViewById(R.id.tv);
        tv.setText(BuildConfig.IP_SERVER);       //通过BuildConfig.IP_SERVER获取Gradle中配置的IP地址
        tv.setText(BuildConfig.RELEASE_CHANNEL);       //通过BuildConfig.RELEASE_CHANNEL获取区分不同平台的配置
    }
}

通过点击Gradle->assembleRelease就可以一次性打包所有的区分平台的包

image.png
打包结果:
image.png
完整代码地址:https://gitee.com/JiGeXC/signingconfigs.git
代码下载后可能需要多次的clean project 和 rebuild project
可能还有许多足之处请多指教,谢谢!

相关文章

网友评论

      本文标题:Android Studio配置Gradle打包、测试与正式IP

      本文链接:https://www.haomeiwen.com/subject/plpsertx.html