安卓白标

2024-03-01

我在一家公司工作,该公司在商店里有这个“foo”应用程序,该应用程序是我们硬件的助手,深受经销商的喜爱。我们确保该名称尽可能通用 - 以便我们的供应商能够将应用程序作为“他们的应用程序”进行营销。

然而,一些经销商确实希望在应用程序上显示他们的确切名称和图标。他们愿意付钱,所以我需要让这一切发生。

问题:

  1. 我知道我正在寻找构建变体。但是,如何使用构建变体修改 apk-package-name ,显示名称是默认启动器图标?
  2. 这是允许的吗...?我并不是“正式”向商店发送垃圾邮件,但感觉我可能会因为这样做而被禁止。
  3. 代码签名 - 我将自己上传 APK,并且需要使用不同的证书进行签名(无论它在 Android 上被称为什么)。再说一遍 - 这是模糊的,我找不到关于这个主题的文档。
  4. 我还计划以这种方式发布我的应用程序的测试版。我目前正在使用标准机制,但这意味着测试人员无法向客户展示应用程序(因为大多数时候它尚未完成或崩溃)[1]

  5. “白色标签”一词是否适用于此......?

[1] 在小公司工作的乐趣:)


您可以按照您的怀疑使用构建变体来执行此操作,但您也可能需要风味。

这是一个具有多种构建类型和风格的 gradle 文件示例。您可以在风味设置中设置 ApplicationId(Play 商店中使用的包名称)。

设置每种类型/口味的签名。您可以添加特定于每种风格的资源、图标、清单等。您甚至可以替换整个类文件,以便客户特定代码仅包含在您为其构建的客户的 apk 中。

  defaultConfig {
    applicationId "uk.co.foo.default"
    minSdkVersion 14
    targetSdkVersion 23
    versionCode = 113
    versionName = "3.2.3"
}

signingConfigs {
    release {
        storeFile file("X:\\Android Projects\\Keystore\\MyKeys.jks")
        storePassword "MyPassword"
        keyAlias "KeyAlias"
        keyPassword "itsasecret"
    }
}

productFlavors {
    Customer1 {
        applicationId "uk.co.foo.customer1"
    }

    Customer2 {
        applicationId "uk.co.foo.customer2"
    }
}

buildTypes {

    debug {
        applicationIdSuffix ".debug"
        versionNameSuffix " Debug"
    }

    beta {
        applicationIdSuffix ".beta"
        versionNameSuffix " Beta"
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }

    signed {
        minifyEnabled false
        debuggable true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }

    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}

以下是为每种类型\风味添加资源的文件夹结构。在这个例子中,第二种味道被称为“粉丝”。默认情况下使用“main”文件夹。每个类型和风格的资源都会合并到 apk 中(替换主文件夹中的任何同名资源),具体取决于您在 Android Studio 的“构建变体”部分中选择的构建。

Android Studio 将显示哪些文件夹对当前构建有效,如此图中突出显示的那样。


编辑 - 完整的官方文档可在此处找到:https://developer.android.com/tools/building/configuring-gradle.html https://developer.android.com/tools/building/configuring-gradle.html

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

安卓白标 的相关文章

随机推荐

  • 如何发送带有查询字符串作为查询字符串的 URL

    我正在执行从一个页面到另一个页面的重定向 以及从第二页面到第三页面的另一个重定向 我有来自第一页的信息 该信息未在第二页上使用 但必须转移到第三页 是否可以将第三页的 URL 及其查询字符串作为查询字符串发送到第二页 这是一个例子 Resp
  • Android 进度条未更新

    我在更新进度条时遇到问题 我正在单独的线程中更新进度条 并在另一个线程中更新进度条进度所依赖的变量 这是一个类变量 因此 进度对话框显示但始终为 0 不更新进度 请帮帮我 public void setProgressbar progres
  • 何时在模块方法中使用 self

    我的模块定义如下所示 module RG Stats def self sum a args a inject 0 accum i accum i end end 要使用此方法 我只需要包含此定义的文件 以便我可以执行以下操作 RG Sta
  • 从 CMake 文件执行 bash 命令

    我无法理解 CMake 我想要做的是在构建过程中执行以下 bash 命令 date F T gt timestamp 这会获取当前日期并将其写入文件 但是 我似乎无法使用 CMake 命令重现这个简单的操作 以下是我尝试过的一些事情 exe
  • 为什么默认参数后面允许有参数包?

    也许我遗漏了一些明显的东西 但是以下编译并运行 我不确定为什么 我知道this https stackoverflow com questions 27303283 clang vs gcc variadic template parame
  • 使用 Java 8 按属性对自定义对象列表进行分组

    我正在学习 lambda 的许多新功能 并想知道如何根据某些属性作为键按自定义对象列表进行分组 例如 我在 json 中有这样的对象列表 account checking source BOA account checking source
  • 是否有必要将“passHref”传递给具有 Semantic UI React 作为其子组件的 NextJS

    我一直在阅读 nextjs 文档 它说here https nextjs org docs api reference next link if the child is a function component that 如果孩子Link
  • 使用 AppCompat ActionBarActivity 更改状态栏颜色

    在我的一项活动中 我使用更改了工具栏颜色Palette 但在 5 0 设备上使用ActionBarActivity the status bar颜色是我的颜色colorPrimaryDark在我的活动主题中 所以我有两种截然不同的颜色 但看
  • 如何在Xcode lldb中打印超过256个数组元素?

    当我使用p or print它只会打印前 256 个元素 我怎样才能打印所有这些 您可以告诉 lldb 强制打印特定表达式求值的所有数组元素 lldb expr A array variable 您还可以通过运行以下命令来提高默认打印的最大
  • 如何在自组织图中关联回原始数据点

    我正在使用 R kohonen 包来实现 SOM 我发现将自组织映射产生的代码向量与原始数据点相关联时遇到麻烦 我尝试在训练过程中包含没有权重的标签 但结果令人难以理解 有没有办法在训练过程完成后从每个节点引用原始数据点 您将从中获得中心值
  • C 中的有符号除法

    我正在阅读书中有关 C 可移植性的部分C Traps and Pitfalls安德鲁 科尼格 关于整数除法 q a b r a b 如果a是负数 显然是提醒r可以是负数或正数 同时满足属性 q b r a 通常我会期望r如果股息为负a是负数
  • iOS:位置服务列表中缺少应用程序

    我的应用程序使用 iPhone 的 GPS 功能 之前运行良好 因为它提示用户允许使用位置服务 并且它显示在 设置 gt 位置服务 列表下 我从应用程序商店卸载并重新下载了该应用程序 但它们都不再起作用 该应用程序是同一版本 并且已经有一段
  • Flutter 中的 Sqlite,数据库资产如何工作

    我正在看这个 https github com tekartik sqflite blob master doc opening asset db md https github com tekartik sqflite blob mast
  • 更改 UIAlertView 的背景颜色?

    我想更改 UIAlertView 的背景颜色 但这似乎没有颜色属性 AlertView的背景是一张图片 你可以改变这个图像 UIAlertView theAlert UIAlertView alloc initWithTitle Atent
  • “似乎不是 NgModule 类。”更新到 Angular@15 后出错

    我正在尝试从以下位置更新Angular 13 to Angular 15 这样做之后 我收到了我完全不明白的编译错误 SharedModule does not appear to be an NgModule class src app
  • 在裸机 RPI 集群上使用 Metallb 的 LoadBalancer 安装后无法工作

    我正在摆弄我设置的 RPI 集群Kubeadm我想让 LoadBalancers 能够在集群上工作 节点的 IP 是静态的 并且设置为192 168 1 100 192 168 1 103对于主节点和工作节点 我已经使用官方网站文档安装了
  • asp.net OnClientClick 未呈现最初禁用的按钮

    我有一个禁用的 asp Button 稍后我用 JavaScript 启用它 像这样
  • s[i]^=32 如何将大写转换为小写?

    int main string s cout lt lt enter the string lt lt endl cin gt gt s for int i 0 i lt s length i s i 32 cout lt lt modif
  • Clojure 常量的约定、样式和用法?

    在 Clojure 中定义常量的最佳实践有哪些 包括样式 约定 效率等 例如 这是正确的吗 def PI 3 14 问题 Clojure 中常量应该大写吗 从风格上来说 它们应该在一侧还是两侧都有星号 字符 我应该注意哪些计算效率注意事项
  • 安卓白标

    我在一家公司工作 该公司在商店里有这个 foo 应用程序 该应用程序是我们硬件的助手 深受经销商的喜爱 我们确保该名称尽可能通用 以便我们的供应商能够将应用程序作为 他们的应用程序 进行营销 然而 一些经销商确实希望在应用程序上显示他们的确