使用产品风味时,每种风味中哪些文件是常见的,哪些文件是该风味特有的?

2023-12-03

productFlavors {
        India {

        }
        USA {

        }
    }

我们以两种产品口味为例

1. 印度 2. 美国

构建变体的总数将为 4

1.印度调试 2. 印度发布 3.美国调试 4. 美国发布

哪些文件对于所有风格都是通用的,哪些文件是特定于风格以及调试和发布特定的?

如果支持本地化并且英语是印度和美国的通用语言,那么每个版本都会有单独的英语文件或通用文件?


Product Flavor 是一个很棒的解决方案,可以构建具有各自功能的同一应用程序的不同版本。

具体文件

比如说,您的一个 Activity 将具有不同的功能和 UI,那么您可以避免将该 Activity 保留在通用包中并转移到各自的风格。每种口味都可以有单独的java and res文件夹和清单(这不是强制性的,Studio 会自行处理)。您的特定 Activity 的 java 文件和 xml 文件应放置在此处。

Example:登录屏幕在每种风格中都有不同的用户界面和功能

现在,在运行时和编译时,Android Studio 会在包之间切换并选择合适的文件。这是通过Build Variant feature

enter image description here

共同文件

所以来到适用的通用文件是所有的风格,让它在main/java and main/res itself.

理想情况下,根据您的风味编号,bundle.gradle 看起来与此类似。

productFlavors {

        student {
            applicationId "com.abc.student"
        }
        staff {
            applicationId "com.abc.staff"
        }
        tempstaff {
            applicationId "com.abc.tempstaff"
        }
    }
sourceSets {
        tempstaff {
            manifest.srcFile 'src/tempstaff/AndroidManifest.xml'
        }
        student{
            manifest.srcFile 'src/student/AndroidManifest.xml'
        }
        staff {
            manifest.srcFile 'src/staff/AndroidManifest.xml'
        }
    }

现在总结一下答案,整个系统中常见的文件 应用程序将保留在main包裹。具体文件 适用于单独的风味将进入该风味。这意味着 口味可以具有根本不属于其中的额外活动/功能 其他的,包括主要的也

经过这个链接了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用产品风味时,每种风味中哪些文件是常见的,哪些文件是该风味特有的? 的相关文章

  • 如何设置长PreferenceScreen的滚动位置

    Android 应用程序有一些很长的首选项屏幕 它们始终在首选项菜单的顶部打开 我知道用户想要在首选项菜单中的位置 如何强制打开首选项屏幕并滚动到特定的首选项项目 我知道这是一个旧问题 所以这个答案仅供参考 要自动选择给定屏幕 您所要做的就
  • 如何捕获 Runnable 中的封闭范围

    我正在尝试对 a 进行一系列更新HandlerThread使用下面的类 但我有几个关于变量捕获在 Java 中如何工作的问题 1 Is ret通过引用从封闭范围捕获 2 Does this参考Runnable 或者是从封闭范围捕获的 bon
  • 读取 Android 4.2 中的 APN?

    我有个问题阅读 APN在安卓v4 2中 是读 不是写APNS 它抛出一个安全异常 没有写入 APN 设置的权限 用户 10068 和当前用户都没有权限 进程有 android permission WRITE APN SETTINGS 相同
  • Android 测试 java.lang.NoClassDefFoundError 由于 Fest-Android 出现错误

    我目前正在我的项目中实现 Android 版 Fest 但我似乎遇到了依赖问题 如果我在不包含 Fest 库的情况下运行测试 测试将正常运行 一旦我添加了 Fest 库 测试就不再运行 相反 会抛出异常 我的项目使用以下依赖项 compil
  • Android 和 iOS 中的应用程序文件大小差异

    通过使用两个应用程序分发服务 Android 市场和 Apple 应用程序商店 我发现了一个谜团 Apple 应用程序的文件大小通常大于 Android 应用程序 我似乎找不到任何对这些差异的解释 而且这似乎是一个未触及的主题 我尝试过分配
  • Android/java:从 ProGuard 过渡/迁移到 R8?

    我想知道如何从ProGuard to R8 我是否应该从 Gradle 文件中删除与 Proguard 相关的行并添加android enableR8 true线代替 Thanks Proguard 由 GuardSquare 开发和维护
  • Android:让用户从图库中选择图像或视频

    是否可以以这样的方式启动图库 以便同时显示图片和视频 Thanks 从图库中选择音频文件 Use MediaStore Audio Media EXTERNAL CONTENT URI Intent intent new Intent In
  • 按钮上方带有文本的单选按钮

    我是 Android 新手 我需要在我的活动中添加单选按钮 但我需要将文本放在项目符号按钮的顶部 请提供任何帮助 我发现了以下内容 尽管我不明白 drawable in 选择器和 style Tab 样式是什么 顶部带有文本的单选按钮 ht
  • 不同风格的模块文件

    我正在尝试在同一个应用程序中实现播放服务和华为服务 但希望能够按风格配置使用哪一个 每种风格都使用自己的 applicationIdSuffix 因此 对于每种不同的风格 华为插件都会失败 我无法编译 我的应用程序模块包含agconnect
  • Android Studio 停留在构建 gradle 项目信息上

    我正在使用 Android Studio 2 3 每当我尝试创建一个新项目或打开某个项目时 它都会卡在此时 正在构建 Gradle 项目信息 请建议我一些解决方案 它可能正在下载 Gradle zip 文件 e g Users user g
  • 通过覆盖滑动调整图像大小不会调整图像大小

    我在用着Glide下载并显示图像 但是 当我尝试调整图像大小时 它不会这样做 我得到随机大小 或者可能是图像的实际大小 这是我用于通过 Glide 加载的代码 Glide with context load file getUrl asBi
  • Android TabLayout:均匀分布

    我正在查看 Google IO 中使用的 Google 类 称为 SlidingTabLayout 在该类中 有一个名为 setDistributeEvenly 的方法 它允许所有这些选项卡在屏幕上均匀分布 每个选项卡具有相同的大小 中心对
  • 无法在 Android 中使用自定义数组适配器进行搜索?

    我无法从以下位置搜索listview 我尝试了各种方法 但它对我不起作用 没有错误 我有其他方式进行搜索 但我想让这种方式成为可能 这是代码 public class MainActivity extends Activity implem
  • Eclipse Android 模拟器 - 键盘不工作

    我刚刚更新到最新的 SDK 版本 16 使用最新版本的 API 16 创建了新版本的 AVD 并且我的硬件键盘在模拟器上不再工作 甚至我的其他 avd 使用旧版本的 sdk 任何想法如何解决这一问题 您的 AVD 的 键盘支持 硬件属性是否
  • 谷歌的Json解析Gson库:JsonElement和JsonObject有什么区别?

    public abstract class JsonElement extends Object 表示 Json 元素的类 它可以是 JsonObject JsonArray JsonPrimitive 或 JsonNull public
  • 调用属于Fragment的Activity的函数

    我正在与多个Fragments在 Android 下 我对如何从嵌入式应用程序发送和接收数据感到困惑 为了简单的解释 我有一个ListFragment and a MapFragment使用解释的方法here https stackover
  • 测试应用内结算:“发布者无法购买此商品”

    我的应用程序似乎已准备好在我的设备上进行应用内购买程序的 现实生活 测试 但是 我在 Play 商店中收到 发布商无法购买此商品 的错误消息 现在 我应该如何测试这个 我不想通过仅用于测试的虚拟帐户重新安装手机来丢失手机的配置 在开发者控制
  • 如何根据受保护的 String doInBackground 方法中 AsyncTask 的结果调用 Toast.makeText() ?

    我从 AsyncTask 中的数据库中获取数据 如果它为空 我想吐司一个警告文本 我在 AsyncTask 中尝试过 但我了解到它不是在工作线程中调用的 这是我的 doInBackground 方法 protected String doI
  • 使用Android Camera API,拍摄照片的方向始终未定义

    我使用相机API 拍摄的照片总是旋转90度 我想旋转它 所以首先我想知道图片的方向 这一点我被卡住了 我总是以两种方式得到未定义的方向 这是代码 Override public void onPictureTaken byte data C
  • Android 布局仅使一个视图将自己绘制为横向,但其他所有视图都使用纵向

    我的活动布局中的主要视图元素是 VideoView 我的视频被渲染为设备的横向分辨率 但视频中的所有内容都是横向的 因此仍然需要在设备处于纵向位置时观看 即使我必须将活动设置为android screenOrientation landsc

随机推荐

  • Python虚拟机需要CPU来执行字节码吗?

    Python虚拟机需要CPU来执行字节码吗 字节码是否转换为机器码 然后CPU参与该过程 为了在任何计算机上运行应用程序 其代码必须始终以某种方式转换为机器代码 然后由 CPU 执行 问题在于这种情况何时以及如何发生 让我尝试向您展示 Py
  • 在泽西岛调用 SOAP

    我有一个客户的要求 希望围绕 SOAP Web 服务编写一个包装器 REST Web 服务 我对 SOAP 和 REST 都很陌生 谁能告诉我 我们是否可以在 REST Web 服务中调用 SOAP Web 服务 如果是的话 那么在 Jer
  • javascript 将数字除以小数

    我怎样才能将数字 钱 平均除以x数 该数字可以包含一位或两位小数 也可以不包含小数 such as 1000 or 100 2 or 112 34我希望能够将该数字平等地分成 x 部分 但是如果它不是奇数 则将额外的数字添加到最后一个数字
  • 在现有 SqlConnection 中打开 DbContext 连接

    我感兴趣是否打开实体框架DbContext现有 ADO NET 中的连接SqlConnection如果它们都使用相同的连接字符串 即在完全相同的数据库上操作 那么应该不鼓励吗 例如 using TransactionScope scope
  • 将 jRadioButton 添加到 jTable 中

    我正在尝试添加jRadioButton into jTable 我使用了给定的代码 private class CustomCellRenderer extends DefaultTableCellRenderer non Javadoc
  • 将 CSV 字符串与 IN 运算符一起使用时出错

    当我运行以下代码时 declare aaa nvarchar 10 set aaa 1 2 3 Select from Customer where CustomerId in convert nvarchar aaa 10 我收到此错误
  • 如何在 Django 中创建模型包

    拥有相当大的models py文件 包含多个模型 我正在尝试重构 每个文件一个模型 因此我试图创建一个models包 结构如下 app models init py app models first model py app models
  • 使用jquery取消选中复选框时隐藏文本

    默认情况下会选中复选框 如果未选中 他们应该隐藏文本 如何隐藏或显示 jquery 中的文本 html div class check p p div
  • SQLiteException 没有被捕获

    我试图捕获 android database sqlite SQLiteException 错误代码 5 数据库已锁定 异常 try db insert mytable null myvalues catch SQLiteException
  • 如何在 dplyr 中按降序排列奇数,按升序排列偶数

    我在 r 中有以下数据框 ID bay row number 1 43 11 ABC 2 43 6 DEF 3 43 13 QWE 4 43 15 XDF 5 43 4 VGH 6 43 2 TYU 7 11 11 QAS 8 11 13
  • SQL Server - 不聚合的行到列

    我的数据看起来像这样 address id 12AnyStreet 1234 12AnyStreet 1235 12AnyStreet 1236 12AnyStreet 1237 我的目标是让它看起来像这样 Address id1 id2
  • Cloud Dataflow - Dataflow 如何实现并行性?

    我的问题是 在幕后 对于逐元素 Beam DoFn ParDo 云数据流如何并行工作负载 例如 在我的 ParDO 中 我向外部服务器发送一个针对一个元素的 http 请求 我使用了 30 个工人 每个工人有 4vCPU 这是否意味着每个工
  • 如何以二维风格指定单元测试文件夹

    我有一个具有二维风格的项目 例如风味维度 设备 水果 移动香蕉 移动苹果 香蕉 stbApple 所有构建结果都很好 我只想进行单元测试stbApple当选择构建变体在 Android Studio 中 如何实现这一目标 我尝试过以下实验
  • JSR 363 的 UCUM 单位格式

    我正在使用 JSR 363 测量单位 和最新的参考实现
  • rpy2 - “R”对象没有属性“nls”

    我正在使用 rpy2 在 python 中的 r 中进行一些非线性回归 import rpy2 robjects as robjects from rpy2 robjects import DataFrame Formula from rp
  • Python - Urllib2 等待页面加载以抓取数据

    首先 我想说我不想使用 Python 2 7 10 未提供的任何库 同样的问题也发布在 Stack Overflow 上 但在 Requests 库中得到了解答 我有一个使用 urllib2 登录 Roblox com 的脚本 为了在尝试登
  • AngularJS:从模型数组中拼接模型元素时,ng-repeat 列表不会更新

    我有两个控制器 并通过 app factory 函数在它们之间共享数据 单击链接时 第一个控制器会在模型数组 pluginsDisplayed 中添加一个小部件 小部件被推送到数组中 并且此更改反映到视图中 使用 ng repeat 来显示
  • 如何找到至少2个向量中共有的元素?

    假设我有 5 个向量 a lt c 1 2 3 b lt c 2 3 4 c lt c 1 2 5 8 d lt c 2 3 4 6 e lt c 2 7 8 9 我知道我可以使用以下方法计算它们之间的交集Reduce 和 一起inters
  • C++ 失败时 istream 行为发生变化

    取自 参考参数 直到 C 11 如果提取失败 例如 如果在需要数字的地方输入了字母 则值保持不变并设置失败位 自 C 11 起 如果提取失败 则将零写入值并设置失败位 如果提取结果导致值太大或太小而无法适应值 std numeric lim
  • 使用产品风味时,每种风味中哪些文件是常见的,哪些文件是该风味特有的?

    productFlavors India USA 我们以两种产品口味为例 1 印度 2 美国 构建变体的总数将为 4 1 印度调试 2 印度发布 3 美国调试 4 美国发布 哪些文件对于所有风格都是通用的 哪些文件是特定于风格以及调试和发布