热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android开发分享在android应用程序中获取产品风味或构build变体

我有一个Android应用程序,在&#x

我有一个Android应用程序,在我的build.gradle文件中configuration了许多不同的产品口味

%ignore_pre_1%

在我的应用程序代码中,我希望能够获得当前编译的风格(或构build变体)的名称。 一个解决scheme是:

 productFlavors { someFlavor { buildConfig "public static final String PRODUCT_FLAVOR = "someFlavor";" } anotherFlavor { buildConfig "public static final String PRODUCT_FLAVOR = "anotherFlavor";" } } 

然后在我的Android应用程序调用BuildConfig.PRODUCT_FLAVOR

有什么方法可以让gradle自动执行此操作吗? 或者是有一些其他的API我可以用来获取产品风味名称?

    编辑:现在自动从插件的0.7版本开始。 BuildConfig.java将包含

     public static final String BUILD_TYPE = "debug"; public static final String FLAVOR = "f1Fa"; public static final String FLAVOR_group1 = "f1"; public static final String FLAVOR_group2 = "fa"; 

    FLAVOR是所有味道维度/组应用的组合味道名称。 然后每个维度都可以用FLAVOR_

    最后, BUILD_TYPE包含使用的构buildtypes的名称。

    如果你有一个味道维度,那么你只有FLAVOR常量。

    这是现在唯一的方法。

    你可以做的一件事是自动化。 所以你可以做这样的事情:

     android { productFlavors.whenObjectAdded { flavor -> flavor.buildConfig "public static final String PRODUCT_FLAVOR = "${flavor.name}";" } // your normal config here. } 

    这样你就不必手动为每种口味做。

    接受的解决scheme是真棒。 对于某些情况,备用可能是有用的。

    你可以添加一个configuration文件,说'Appconfig.java'到你的productFlavor特定的源文件夹,例如src//java//Appconfig.java ; 您可以在应用程序中使用Appconfig.PRODUCT_FLAVOR 。 编译器会保持你的诚实,并确保你添加这个所有的味道。

    就像我说的,在这个特殊情况下,接受的解决scheme可能会更好,因为您甚至不需要为新产品Flavors添加任何东西,但是这种方法可能对其他情况有用。

    以上就是android开发分享在android应用程序中获取产品风味或构build变体相关内容,想了解更多android开发(异常处理)及android游戏开发关注(编程笔记)。


      推荐阅读
      • 深入浅出 webpack 系列(二):实现 PostCSS 代码的编译与优化
        在前一篇文章中,我们探讨了如何通过基础配置使 Webpack 完成 ES6 代码的编译。本文将深入讲解如何利用 Webpack 实现 PostCSS 代码的编译与优化,包括配置相关插件和加载器,以提升开发效率和代码质量。我们将详细介绍每个步骤,并提供实用示例,帮助读者更好地理解和应用这些技术。 ... [详细]
      • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
      • Unity3D 中 AsyncOperation 实现异步场景加载及进度显示优化技巧
        在Unity3D中,通过使用`AsyncOperation`可以实现高效的异步场景加载,并结合进度条显示来提升用户体验。本文详细介绍了如何利用`AsyncOperation`进行异步加载,并提供了优化技巧,包括进度条的动态更新和加载过程中的性能优化方法。此外,还探讨了如何处理加载过程中可能出现的异常情况,确保加载过程的稳定性和可靠性。 ... [详细]
      • Spring框架中枚举参数的正确使用方法与技巧
        本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
      • 深入解析Java虚拟机的内存分区与管理机制
        Java虚拟机的内存分区与管理机制复杂且精细。其中,某些内存区域在虚拟机启动时即创建并持续存在,而另一些则随用户线程的生命周期动态创建和销毁。例如,每个线程都拥有一个独立的程序计数器,确保线程切换后能够准确恢复到之前的执行位置。这种设计不仅提高了多线程环境下的执行效率,还增强了系统的稳定性和可靠性。 ... [详细]
      • 深入解析Android 4.4中的Fence机制及其应用
        在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
      • 本文深入解析了WCF Binding模型中的绑定元素,详细介绍了信道、信道管理器、信道监听器和信道工厂的概念与作用。从对象创建的角度来看,信道管理器负责信道的生成。具体而言,客户端的信道通过信道工厂进行实例化,而服务端则通过信道监听器来接收请求。文章还探讨了这些组件之间的交互机制及其在WCF通信中的重要性。 ... [详细]
      • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
      • POJ 2482 星空中的星星:利用线段树与扫描线算法解决
        在《POJ 2482 星空中的星星》问题中,通过运用线段树和扫描线算法,可以高效地解决星星在窗口内的计数问题。该方法不仅能够快速处理大规模数据,还能确保时间复杂度的最优性,适用于各种复杂的星空模拟场景。 ... [详细]
      • Web开发框架概览:Java与JavaScript技术及框架综述
        Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
      • PHP预处理常量详解:如何定义与使用常量 ... [详细]
      • 线程能否先以安全方式获取对象,再进行非安全发布? ... [详细]
      • 该问题可能由守护进程配置不当引起,例如未识别的JVM选项或内存分配不足。建议检查并调整JVM参数,确保为对象堆预留足够的内存空间(至少1572864KB)。此外,还可以优化应用程序的内存使用,减少不必要的内存消耗。 ... [详细]
      • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
      • 在当前的软件开发领域,Lua 作为一种轻量级脚本语言,在 .NET 生态系统中的应用逐渐受到关注。本文探讨了 Lua 在 .NET 环境下的集成方法及其面临的挑战,包括性能优化、互操作性和生态支持等方面。尽管存在一定的技术障碍,但通过不断的学习和实践,开发者能够克服这些困难,拓展 Lua 在 .NET 中的应用场景。 ... [详细]
      author-avatar
      潇湘V烟雨
      这个家伙很懒,什么也没留下!
      PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
      Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有