gradle中配置打包

productFlavors {
        debug_mode{ //不上报出错到bugly
            applicationId "com.demo.exampletest"
            manifestPlaceholders = [
                    APP_ID    : applicationId,
                    DEBUG_MODE: true,
                    APP_NAME  : "@string/app_name_test"
            ]
        }

        release_debug_mode{ //上报出错到bugly,测试阶段选这个,1-2
            applicationId "com.demo.exampletest"
            manifestPlaceholders = [
                    APP_ID    : applicationId,
                    DEBUG_MODE : false,
                    APP_NAME: "@string/app_name_test"
            ]
        }

        release_mode{  // 正式的包
            applicationId "com.demo.example"
            manifestPlaceholders = [
                    APP_ID    : applicationId,
                    DEBUG_MODE : false,
                    APP_NAME: "@string/kg_app_name"
            ]
        }
    }

以上配置了三种打包方式,第一种就是插usb直接安装的时候采用的配置,这种配置的特点是不会上报出错日志到系统,至于如何通过读取配置文件的常量,可以看一下代码:


	private void initEnvironment() {//初始化,在application的onCreate中调用
		APPEnvironment.init(this);
		mDebugMode = readManifestAsBoolean("DEBUG_MODE");
		APPBuildConfig.ENABLE_PROFILING = mDebugMode;//全局变量,配置打点相关,上报崩溃相关服务
	}



public boolean readManifestAsBoolean(String key) {//读取配置文件常量的通用方法,
		ApplicationInfo appInfo = null;
		boolean value = false;

		try {
			appInfo = this.getPackageManager().getApplicationInfo(getPackageName(),
               PackageManager.GET_META_DATA);
		} catch (PackageManager.NameNotFoundException e) {
			e.printStackTrace();
		}

		if(null!=appInfo)
			value = appInfo.metaData.getBoolean(key,false);

		return value;
	}


public String readManifestAsString(String key) {
		ApplicationInfo appInfo = null;
		String value = null;

		try {
			appInfo = this.getPackageManager().getApplicationInfo(getPackageName(),
            PackageManager.GET_META_DATA);
		} catch (PackageManager.NameNotFoundException e) {
			e.printStackTrace();
		}

		if(null!=appInfo)
			value = appInfo.metaData.getString(key);

		return value;
	}
 
manifest文件
 <meta-data
            android:name="DEBUG_MODE"
            android:value="${DEBUG_MODE}" />

值得注意的是读取的key要保持一致,例如代码中的DEBUG_MODE

 

回到上面的三种打包方式,第二种就是关闭了调试模式,但是包名和第一种(调试模式)的报名时一样的,这种打包如果希望调试只能通过收集崩溃信息后台来查看了,但是由于包名和正式包不一样,可以方便的在同一台手机进行两个同种app之间的通信

第三种就是正式的包

 

 

转载于:https://my.oschina.net/carbenson/blog/877598

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值