我们知道在 build.gradle 里面可以使用 buildTypes 针对自己 app 做一些 custom setup,例如同时在同一设备上安装 debug 和 release 版本
简单方便的方法:
buildTypes {
        debug {
            applicationIdSuffix ".debug"
            signingConfig signingConfigs.myConfig
            versionNameSuffix='d'
        }
        ...
    }
 
这里有个坑,如果你的应用有自定义的 view 或者属性时,需要在资源文件里将命名空间修改如下:
xmlns:app="http://schemas.android.com/apk/com.package.name"
 
to
xmlns:app="http://schemas.android.com/apk/res-auto"
 
就为了上面这一句我那坑爹的程序猿哥们坑了我半个工作日!! 我还尝试了去改 java 包名..一把泪
另外如果你的应用如果有用到 Contentprovider,需要 AndroidManifest 里面对 authorities 少许修改下:
<provider
            android:name=".provider.AppContentProvider"
            android:authorities="${applicationId}.provider"
            android:multiprocess="false" />
 
继续 Code 里面补上一句,BuildConfig 会在你编译的时候读取你 build.gradle 里面设置的 applicationID
public static final String AUTHORITY = BuildConfig.APPLICATION_ID + ".provider";
 
Ok,That's it ! 希望能节省你们宝贵的工作时间!