您的位置:首页 > 其它

如何判断是debug还是release

2017-03-29 16:29 423 查看
1.在ant中 使用BuildConfig类修改参数值

public final class BuildConfig {

  public static final boolean DEBUG = false;

...

}

2.如果想自定义debug,比如log

buildTypes {

    debug {

        buildConfigField "boolean","LOG_DEBUG","true"

    }

    release {

        buildConfigField "boolean","LOG_DEBUG","false"

    }
}

使用:BuildConfig.LOG_DEBUG

3.使用AndroidManifest.xml中的meta-data

<meta-data

    android:name="Logs.enable"

    android:value="${LogEnable}"

    />

然后在gradle中配置buildTypes;

buildTypes {

    debug {

        manifestPlaceholders = [LogEnable : true]

    }

    release {

        manifestPlaceholders = [LogEnable : false]

    }

}

最后在工程代码中加载meta-data的数据

ApplicationInfo appInfo = null;

try {

    appInfo = this.getPackageManager()

                  .getApplicationInfo(getPackageName(),

                          PackageManager.GET_META_DATA);

   boolean enable=appInfo.metaData.getBoolean("Logs.enable");

    Log.d("MyApplication","Logs.enable = "+enable);

} catch (PackageManager.NameNotFoundException e) {

    e.printStackTrace();

}

4.在AndroidManifest.xml中设置其debug属性

<application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" 

        android:debuggable="true">

&ApplicationInfo.FLAG_DEBUGGABLE

不推荐这种方法。最好还是由打包方式决定。

5.应用程序中来判断

public static boolean isApkDebugable(Context context,String packageName) {

        try {

            PackageInfo pkginfo = context.getPackageManager().getPackageInfo(

                    packageName, 1);

            if (pkginfo != null ) {

                ApplicationInfo info= pkginfo.applicationInfo;

                return (info.flags&ApplicationInfo.FLAG_DEBUGGABLE)!=0;

            }

        } catch (Exception e) {

            

        }

        return false;

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: