android studio 多版本打包

来源:互联网 发布:网站域名ip地址查询 编辑:程序博客网 时间:2024/06/01 19:13

     现在 很多人换 android studio 的一个很大的原因 就是他的自动打包,多版本打包。多版本打包 包括 替换 包名 AndroidManifest.xml 中的所有的变量信息 ,还有就是资源文件。

比eclipse 或者做成依赖库的方式更加方便 省的多个版本。不同的站点信息 同一个应用的去合并代码。

    只写基本的写法吧 这些就是可变的参数值。包括友盟的,QQ 微信 等一系类的的appKeyID 都是配置的,还有修改的就是报名 版本号,版本名称。这些  可以在 Module中的build.gradle c中进行配置 , 编译过程就是先找到这个配置文件 拿着这个配置文件的信息 去给 AndroidManifest.xml 中的变量进行赋值。通用的版本信息配置



这些就是一个版本的配置 其中 mian目录下的 就是 创建项目自动生成的那个 那个是程序默认去读取的 分支,当指定分支之后,指定目录下的资源文件就会覆盖掉 文件名称一样的资源文件,里面的替换规则 是跟依赖库的方式是一样的。


<meta-data    android:name="UMENG_APPKEY"    android:value="${umeng_key}" />
程序中想取值的话 就这样 给你的 清单文件赋值 AndroidManifest.xml   

RUN_TYPE = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA).metaData.getInt("UMENG_APPKEY");
在 build.gradle中进行动态的打包之前的赋值


productFlavors {    zzu {        //配置 包名        applicationId = "cn.com.coder"        versionCode = 4        versionName = "1.4.12.14"        manifestPlaceholders = [                RUN_TYPE : 9,                ApiKey   : "5590fd76e13ee487fc2",                umeng_key: "11111",                page_name:"cn.com.codel"        ]    }
}


zzu就是 你要创建的跟 main同级目录的文件夹 里面的文件结构 就是你想替换掉 main目录中的 需要替换的文件目录是一致的。替换规则 跟 普通项目做成依赖库的形式是一样的,但是 比那个要强大,貌似连 *.java文件都能替换,但是要求 同包名 类名 方法名。只是实现不一样。


自己多试试吧 很简单的 不知道为啥 我这图都不上去了




0 0