Android 模块与风味之间的区别

2024-02-05

android模块和风格之间的主要区别是什么?

来自模块定义https://developer.android.com/studio/projects/add-app-module.html https://developer.android.com/studio/projects/add-app-module.html

模块为应用程序的源代码、资源文件和应用程序级别设置(例如模块级别构建文件和 Android 清单文件)提供容器。每个模块都可以独立构建、测试和调试。

但对于口味我也可以说同样的话。

有人可以指出这两者之间的主要区别吗?


模块是项目的一部分,而风格或多或少是配置/实现

模块的具体示例: 如果您正在制作一个库,您可以有多个模块,例如库本身和演示项目。每个都是模块

Note: 每个模块都有自己的代码

口味的具体示例: 您正在制作具有一些在线功能的应用程序。为此,您有多个环境(在服务器环境上用于测试,一个用于实时版本)。 您可以使用自己的配置为每个环境创建构建风格(如果需要,还可以使用自己的实现)

Note:口味可以共享他们的代码(使用主文件夹)

这只是一个简短的结论。模块和风味比这个简短的描述强大得多,但我认为它将指出最重要的区别

EDIT:主要区别在于项目的结构,尤其是关于 gradle 的结构。

模块总是有自己的 gradle 文件,所以你会得到以下结构:

projectName.gradle
    module1.gradle
    module2.gradle
    ...

风味在模块的 gradle 文件中定义:

例如module1.gradle 可能如下所示:

// some other gradle stuff before

buildTypes {
    dev {
        // your config
    }
    debug {
        // your config
    }
    release {
        // your config
    }
}

正如您所看到的,您可以混合口味和模块。因此,现在您将拥有一个包含 2 个模块且 module1 中具有不同风格的项目。

在您的项目文件夹中,文件资源管理器中应该具有以下结构:

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

Android 模块与风味之间的区别 的相关文章

  • Android ListView数组索引过滤后越界

    我认为这是专家的问题 我接到电话getView with positon 出界来自ListView数据列表 当我使用适配器过滤器时会发生这种情况 过滤器publishResults 方法使用小于原始列表的过滤列表填充数据 当新的过滤列表时似
  • 如何查看 Android 设备上安装的 SD 卡还有多少可用空间?

    如何以编程方式检查 Android 设备上安装的 SD 卡有多少可用空间 要获取外部 SD 卡的可用 可用 空间以显示与菜单 gt 设置 gt SD 卡和手机存储的编号一致的编号 请使用以下代码 StatFs stat new StatFs
  • Android CirclePageIndicator 不工作

    我无法使用 CirclePageIndicator 加载页面 这是 XML
  • Android 已弃用屏幕尺寸?

    嘿 我需要在我的应用程序中获取屏幕的宽度 该应用程序将在 2 1 及更高版本上运行 我已经将其设置为如下所示 该方法已被弃用 我可能应该使用 getSize 或其他方式 但问题是 这是否适用于 3 0 和 4 0 等 Android 版本
  • 从字符串将 AM/PM 设置为时间选择器对话框?

    我有一个 TextView 其中时间以格式显示10 00 PM当用户单击该视图时 必须将相同的时间设置为TimePicker对话 我能够设置Hour and Minutes到选取器 但在AM PM部分 我总是得到AM用户是否已设置AM or
  • 如何使用 http 将 Android 中的文件从移动设备发送到服务器?

    在android中 如何使用http将文件 数据 从移动设备发送到服务器 很简单 您可以使用 Post 请求并将文件作为二进制 字节数组 提交 String url http yourserver File file new File En
  • 动画图像视图

    目前我正在开发一款游戏 这是我的游戏的详细信息 用户应选择正确的图像对象 我希望图像从左到右加速 当他们到达终点时 他们应该再次出现在活动中 这是我正在处理的屏幕截图 我有 5 个图像视图 它们应该会加速 您有此类动画的示例代码吗 非常感谢
  • Galaxy Nexus 4.1.1 和 ISO14443 读卡器

    是否可以在 Galaxy Nexus Jelly Bean 4 1 1 移动设备和任何常规桌面非接触式读卡器 ISO 14443 A B 之间建立连接 据我所知 android不支持卡模拟模式 所以只能通过p2p模式来完成 p2p 是否基于
  • NativeScript 错误。在列表模板中找到多个视图

    我有这样的ListView
  • 推送通知需要很长时间才能到达

    我在适用于 iOS 和 Android 的 Adob e Air 应用程序中遇到推送通知的奇怪问题 我正在使用 Milkman Games 的 Easy Push ANE 以及 One Signal 服务 问题是通知确实会到达 但有时 随机
  • 错误:包 com.google.android.gms.appstate 不存在

    由于此错误 无法编译我的 android 项目 BaseGameUtils src main java com google example games basegameutils GameHelper java Error 32 39 e
  • ViewPager 的 Android Viewholder

    您好 我正在使用 ViewPager 但我现在想保留状态 而不是重新生成单元格 我注意到 viewpager 与 listviews 的自定义适配器非常相似 它们的功能类似 listview 在单元格不再出现在屏幕上后重新生成单元格中的数据
  • 更改弹出对话框的背景颜色

    我编写了显示弹出对话框的 android 代码 但我想将背景颜色从黑色更改为白色 然后更改文字颜色 这是对话框的代码 mPrefs PreferenceManager getDefaultSharedPreferences this Boo
  • 将 espresso 与自定义 EditText 结合使用

    这是我的布局的一部分
  • Listview里面只有一个Element

    您好 我正在尝试将列表视图放入列表视图中的列表视图中 唯一的问题是只有第一个列表视图正确显示所有元素 此后的每个列表视图仅包含一个元素 UPDATE 创建我自己的不可滚动列表视图解决了这个问题 https stackoverflow com
  • 在运行时用Dagger添加Retrofit RequestInterceptor

    我正在使用匕首和改装 我用 Dagger 注入我的 Retrofit 服务 现在我想做一个授权请求来获取 accessToken 之后 我想使用请求拦截器来增强我的 api 模块 以便将此访问令牌用于将来的请求 我的想法是在收到访问令牌后使
  • 如何在Android中显示进度对话框?

    我想展示ProgressDialog当我单击 登录 按钮时 需要一些时间才能移动到另一个页面 我怎样才能做到这一点 ProgressDialog pd new ProgressDialog yourActivity this pd setM
  • C/C++ 通过 Android NDK 在 JNI 中看不到 Java 方法

    我正在尝试从使用 NDK 构建的 C 类文件调用 Java 方法 它不断抛出常见的 未找到非静态方法 错误并导致整个 Android 应用程序崩溃 下面的代码片段 有些东西可能不需要 但我按原样保留它们 因为焦点 问题在于refreshJN
  • 如何为 Android Q 打开具有特定专辑或文件夹的默认图库应用程序?

    我尝试打开图库中的特定文件夹 如下代码所示 但它对我不起作用 并且出现错误无法找到物品 fun openDirectoryInGallery context Context directory String val intent Inten
  • 首选项和操作栏中的开/关切换按钮 - 冰淇淋三明治风格

    我指的是 ICS 手机上默认 Android 设置应用程序中看到的蓝色开 关样式 也可以在这里看到 http android developers blogspot com 2012 02 android design v2 now wit

随机推荐

  • Rails + Sinatra 应用程序分享会

    我还没有找到一个好的答案 如何让我的 Rails 应用程序和 Sinatra 应用程序 安装在我的 Rails 应用程序的 config ru 中 成功共享会话 如果我先访问我的 Sinatra 应用程序 然后访问 Rails 应用程序 我
  • @State 的限制

    我在一些文章中看到 state有很多限制 我们不应该将它与复杂的模型一起使用 最好将它与简单的属性 如 string bool 等 一起使用 我们应该在视图本身内部使用它 我尝试制作一个结构模型 并在内容视图 ParentView 中用 s
  • 在 iis 上托管基本 html 网站

    我有一个基本网站 只有 html js 和 css 文件 我想将其托管在本地计算机上的 IIS 上以进行测试 当我直接将其作为文件在计算机上运行时 该网站运行良好 我使用这些文件所在的目录在 IIS 上添加了一个网站 但是当我尝试启动它时
  • Android 中的多个 HTTP 连接(分段/群下载)下载同一文件

    我目前正在为 Android 创建一个下载管理器 为了优化下载 我需要使用与服务器的多个连接来下载相同的文件 即 与 Windows 中的 Internet 下载管理器中使用的技术相同 问题是我不知道如何创建多个 HTTP 连接并下载相同的
  • 如何设计响应的打字稿模型?

    如何在得到以下响应的打字稿中设计我的模型 data name XYZ id 1 name Abc id 2 我尝试了什么 export class responseModel
  • 自引用 has_many :through 和自定义 :primary key 问题

    我正在尝试在 Rails 2 3 8 应用程序 ruby 1 8 7 中模拟 twitter 模型 class Connection lt ActiveRecord Base belongs to subject foreign key g
  • 以一种形式上传多个文件 MVC4

    我正在尝试在一张表单上上传多张图片 using Html BeginForm Create AdminRestaurants FormMethod Post new enctype multipart form data div class
  • 为什么 CSS 填充会增加元素的大小?

    我试图给我的 div 和 textarea 一些填充 当我这样做时 它会增加元素的大小 而不是缩小元素内部的内容区域 有什么办法可以实现我想做的事情吗 你可以添加box sizing border box到容器元素 以便能够指定在向元素添加
  • Linux中访问另一个进程虚拟内存(调试)

    Linux上gdb如何访问另一个进程的虚拟内存 都是通过 proc完成的吗 Linux上gdb如何访问另一个进程的虚拟内存 都是通过 proc完成的吗 在Linux上读取内存 1 如果要读取的字节数小于3 sizeof long 或文件系统
  • Scala中递归删除目录

    我正在编写以下内容 使用 Scala 2 10 和 Java 6 import java io def delete file File if file isDirectory Option file listFiles map toLis
  • 在某些设备上,两个活动之间的拖放功能不起作用

    我使用以下代码将视图从应用程序中的一个活动拖动到另一个活动 知道拖动开始时第二个活动 接收放置事件 未创建 活动 它适用于 三星 Note 3 Android 5 API 21 三星 Note 4 Android 6 0 1 API 23
  • 从我的应用程序捕获 iPhone 屏幕并录制视频

    我只是好奇创建一个应用程序来录制 iPhone 屏幕视频或捕获 iPhone 屏幕图像 我知道苹果不允许应用程序商店上架此类应用程序 而且我无意这样做 我可以将我的应用程序上传到Cydia如果我愿意的话 但我目前的目标只是开发一个具有捕获
  • 单核处理器上的单线程与多线程编程

    有人可以解释一下编写在单核处理器上运行的多线程代码是否真的有任何优势吗 例如 一种处理文档页面的方法 使得页面与上述代码段是互斥的 乍一看 这似乎没有优势 因为真正的多线程是不可能的 也就是说 操作系统无论如何都必须对线程进行上下文切换 我
  • 下拉列表选定值

    我已经使用 Web 服务创建了国家 地区的下拉列表 并且尝试将下拉列表选择添加到 sql 数据库中 但是当我在插入语句中使用 ddlCountry SelectedValue 执行此操作时 只有下拉列表中的第一个值是出现在表中 我应该使用
  • 语音合成器“输入字符串的格式不正确”

    这是我的代码 string message Hello world SpeechSynthesizer synth new SpeechSynthesizer Prompt prompt new Prompt message synth S
  • IE9奇怪的表格问题

    大家好 我想知道是否有人可以提供帮助 因为我一片空白 我有一个使用 css 设计的表格 除了 IE9 甚至其他 ie 版本 之外 它在所有浏览器中都呈现良好 我不知道为什么 我什至尝试删除所有 css 但它仍然发生 有什么想法吗 Examp
  • VirtualDocumentRoot 域和子域

    普通域和子域是否可以有 VirtualDocumentRoot http www example com or http example com Uses var www example com And http example com U
  • UI 自动化 - #32770(对话框)在 Insepct.exe 中显示,但不在 VisualUIAVerifyNative.exe 中显示

    我正在尝试使用 UI Automation C API 自动化子窗口 ClassName 的对话框为 32770 目标子窗口显示在Spy and 检查程序 但不显示在VisualUIAVerifyNative 它也无法通过 Automati
  • 在其参数结构上重载 C/C++ 预处理器宏

    我想编写一个预处理器宏 如果它的参数是带括号的标记元组 它会做一件事 如下所示 MY MACRO x y 如果它只是一个令牌 还有其他东西 如下所示 MY MACRO x 那可能吗 如何区分空格分隔的标记的数量 即MY MACRO x an
  • Android 模块与风味之间的区别

    android模块和风格之间的主要区别是什么 来自模块定义https developer android com studio projects add app module html https developer android com