android-使用多模板风味构建单个Apk

android-使用多模板风味构建单个Apk,第1张

概述是否可以构建具有超过1种产品风味的APK?例如:我有一个具有3种口味的项目(App1-App2-App3).每个应用程序都有自己的配置,例如applicationId等.现在我想构建不同的模板(不同的XML布局),并且用户应该能够从应用程序内部从布局切换到另一个.我的问题是res文件夹将很大,并且很难维护,因此我试图找到一种方法来分离不同的布局并使其尽可能保

是否可以构建具有超过1种产品风味的APK?

例如:
我有一个具有3种口味的项目(App1-App2-App3).
每个应用程序都有自己的配置,例如applicationID等.

现在我想构建不同的模板(不同的XML布局),并且用户应该能够从应用程序内部从布局切换到另一个.

我的问题是res文件夹将很大,并且很难维护,因此我试图找到一种方法来分离不同的布局并使其尽可能保持清洁.

并且,如果有可能,那么我该如何打算或重新启动应用程序以构建其他版本?

我想到的另一件事是在主要资源中构建所有XML文件,并选择不同的限定符,例如在创建不同的屏幕尺寸(sm-larg等)时进行选择,但是我还是找不到添加自定义限定符的方法.

我的Gradle代码是这样的:

flavorDimensions "default"    productFlavors {        demo {            applicationID "test.demo"            versionCode 2            versionname "1.1.2"            resValue "string","backage_name_file","test.demo.fileprovIDer"            resValue "string","bc","com.demo"            resValue "string","bc_e","extra_data.com.demo"            resValue "string","default_hostname","demo.test.com"            resValue "string","default_username","demo"            resValue "string","default_password","demo"        }         AppOne {            applicationID "test.AppOne"            versionCode 2            versionname "1.1.2"            resValue "string","test.AppOne.fileprovIDer"            resValue "string","com.AppOne"            resValue "string","extra_data.com.AppOne "            resValue "string","AppOne.test.com"            resValue "string","AppOne"            resValue "string","AppOne"        }          AppTwo {            applicationID "test.AppTwo"            versionCode 2            versionname "1.1.2"            resValue "string","test.AppTwo.fileprovIDer"            resValue "string","com.AppTwo"            resValue "string","extra_data.com.AppTwo"            resValue "string","demoAppTwotest.com"            resValue "string","AppTwo"            resValue "string","AppTwo"        }}
最佳答案您无法构建具有多种风味的APK,就像无法在deBUG和release buildTypes中构建一个APK一样.所选风味的配置/资源被拉入实际的APK元数据/清单中,因此无法在运行时进行修改.

您需要将所有内容都包含在res文件夹中,但是有几种方法可以帮助您更轻松地进行管理.我建议前三个选项,如果您有大量具有不同行为的代码布局文件,则建议第四个选项:

> Use Fragments,以避免大多数Java / Kotlin代码需要重复.
> Include XML layouts,而不是每次都重新定义所有内容以重用公共元素.
>仔细命名文件,例如template1_background,template2_background.
> Use multiple modules,每个“模板”一个.然后,您将拥有多个明智的res文件夹.

我可以看到为什么风味可能看起来像解决方案,但是由于您需要在一个应用程序中使用所有风味,因此不幸的是这种方法行不通.您可能会发现步骤2将删除几乎所有重复文件,从而完全避免了该问题! 总结

以上是内存溢出为你收集整理的android-使用多模板/风味构建单个Apk 全部内容,希望文章能够帮你解决android-使用多模板/风味构建单个Apk 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1145077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存