【移动应用开发技术】Android 多渠道定制化打包_第1页
【移动应用开发技术】Android 多渠道定制化打包_第2页
【移动应用开发技术】Android 多渠道定制化打包_第3页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】Android多渠道定制化打包

这里要用到productFlavors,productFlavors可以用来自定义应用构建版本

这里要用到productFlavors,productFlavors可以用来自定义应用构建版本1.区分渠道,使用对应的包名在build.gradle文件中android目录下添加以下代码即可productFlavors{

//默认,不设置applicationId,继承defaultConfig中的配置

flavors_default{

}

//开发版本,applicationId替换为com.xxx.dev

flavors_dev{

applicationId"com.xxx.dev"

}

//发布版本,applicationId替换为com.xxx.release

flavors_release{

applicationId"com.xxx.release"

}

}

2.区分渠道,使用对应App名称,应用图标,常量,图片资源等

该方案通过在AndroidManifest.xml文件中application标签下指定<mate-data>设置占位符来实现动态替换属性值。

该方案通过在AndroidManifest.xml文件中application标签下指定<mate-data>设置占位符来实现动态替换属性值。在build.gradle文件中注:此方式可以能会引起异常如下Error:Executionfailedfortask':app:processDebugManifest'.

>Manifestmergerfailedwithmultipleerrors,seelogs此问题产生原因大概有三个:1.清单文件有错,这种错不会在编译时指出来,当然as中还是可以看到的2.引入的三方包存在相同的labelicon等名字解决:清单文件用tools然后添加replace字段如tools:replace="icon,label"即可

在main的同级目录下创建以渠道名命名的文件夹,然后创建资源文件(路径要与main中的一致),然后打包的时候gradle就会自己替换或者合并资源。

在main的同级目录下创建以渠道名命名的文件夹,然后创建资源文件(路径要与main中的一致),然后打包的时候gradle就会自己替换或者合并资源。例如,App的默认icon路径为main\res\mipmap-hdpi\ic_launcher.png,那么flavors_dev的路径就为flavors_dev\res\mipmap-hdpi\ic_launcher.png,打包flavors_dev渠道的时候会自动替换图片。同理assets中文件如下:

使用BuildConfig的变量当我们定义如下字段之后,编译后自动生成文件,在app/build/source/BuildConfig/dev/com.xxx.dev/BuildConfig目录,打开这个文件,我们就能看到我们所定义的字段了。

使用BuildConfig的变量当我们定义如下字段之后,编译后自动生成文件,在app/build/source/BuildConfig/dev/com.xxx.dev/BuildConfig目录,打开这个文件,我们就能看到我们所定义的字段了。1.设置字段使用buildConfigField设置好后编译一下,咦,什么鬼,怎么出错了?明明设置的字符串怎么会这样,好了这是我们需要注意的地方,设置值需要这样写它的意思是"default"这个整体是属于一个字符串,然后在编译一下恩,ok2.使用字段3.使用Gradle命令打包常用命令看这里gradlewassembleDebug打包所有渠道的debug版本gradlewassembleRelease打包所有渠道的release版本gradlewassembleflavors_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论