首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

哪怕不学Gradle,这些开发常见操作,你也值得掌握

dimension "channel" // appid后缀,会覆盖了我们build类型中的applicationIdSuffix applicationIdSuffix...在配置变体时,我们也可以替换在 build类型 中设置的所有默认值,具体原因是,在添加 build类型 时,默认的 defaultConfig 配置其实是属于 ProductFlavors 类,所以我们也可以在任意变体中替换所有默认值...---- 组合多个变体 在某些场景下,我们可能想将多个产品的变体组合在一起,比如我们想增加一个 api30 的变体,并且针对这个变体,我们想让demo1和demo2与分别也能与其组合在一起 ,即也就是当...build类型) 需要注意的是 debug 和 relase 是默认就会存在的,我们可以选择覆盖,否则就算移除,其也会选择默认设置存在 即也就是最终 gradle 会帮我们每个变体都生成相应的 build...---- 过滤变体 Gradle 会为我们配置的 所有变体 和 build类型 每一种可能组合都创建一个 build变种 。

61520

【Android Gradle 插件】BuildType 编译类型配置 ① ( BuildType 编译类型简介 | BuildType#applicationIdSuffix 包名后缀配置 )

文章目录 一、BuildType 编译类型 二、BuildType#applicationIdSuffix 包名后缀配置 Android Plugin DSL Reference 参考文档 : 文档主页...一、BuildType 编译类型 ---- Android Gradle 插件 , 在编译时 , 会自动创建 debug 和 release 两种 构建类型 的 APK 安装包 ; BuildType...中 , 也就是在 build.gradle 中的 android 配置块下使用 ; BuildType 原型如下 : BuildType 是靠 NamedDomainObjectContainer 容器代理的...与 DefaultProductFlavor 都有 applicationIdSuffix 包名后缀配置 ; 使用如下配置的 Gradle 构建脚本 , 在 " android # defaultConfig...# applicationIdSuffix " 配置 “.tom” 设置 , 在 " android # buildTypes # debug # applicationIdSuffix " 配置 “

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    哪怕不学Gradle,这些开发中的常见操作,你也值得掌握

    dimension "channel" // appid后缀,会覆盖了我们build类型中的applicationIdSuffix applicationIdSuffix...在配置变体时,我们也可以替换在 build类型 中设置的所有默认值,具体原因是,在添加 build类型 时,默认的 defaultConfig 配置其实是属于 ProductFlavors 类,所以我们也可以在任意变体中替换所有默认值...组合多个变体 在某些场景下,我们可能想将多个产品的变体组合在一起,比如我们想增加一个 api30 的变体,并且针对这个变体,我们想让demo1和demo2与分别也能与其组合在一起 ,即也就是当channel...build类型) 需要注意的是 debug 和 relase 是默认就会存在的,我们可以选择覆盖,否则就算移除,其也会选择默认设置存在 即也就是最终 gradle 会帮我们每个变体都生成相应的 build...过滤变体 Gradle 会为我们配置的 所有变体 和 build类型 每一种可能组合都创建一个 build变种 。

    50920

    【Android Gradle 插件】BuildType 编译类型配置 ② ( consumerProguardFiles 配置 | debuggable 配置 | embedMicroApp配置 )

    中的混淆文件配置 ; 发布的AAR中包含的ProGuard规则文件。...配置 是 BuildType 中特有的配置 , 该值默认为 true ; BuildType#debuggable 配置设置为 true , 则默认生成的是可调式的 apk 安装文件 ; BuildType...#debuggable 配置设置为 false, 则生成的 apk 文件安装运行后 , 无法对 debug 版本的代码进行调试 ; boolean debuggable Whether this build...".jerry" // 默认为 true , 生成的 debug apk 可调试 // 设置为 false , 生成的 debug apk 不可调试...BuildType#embedMicroApp 配置是 可穿戴设备应用使用的配置 , 普通的手机应用不用处理该配置 ; 是否应使用此构建类型将链接的Android Wear应用嵌入变体中。

    1.6K20

    Android dependencies 基础知识

    概述 在build:gradle2.x的时代,我们在进行第三方依赖时,会有一些尴尬的问题。比如,我们制作了一个库,依赖了Glide2.0 。项目组集成我们的库,同时也需要使用Glide4.0 。...所幸在build:gradle3.x中,google为我们提供了新的依赖方式。 Dependency configurations api 替代了之前的compile。...implementation 这个设置与compile类似,区别是当我们使用implementation时,我们其实希望不要将自制库的第三方依赖泄露给项目方。...这个非常适用于,当我们的自制库想要使用一些特定的,普遍的通用库时。 runtimeOnly 当使用runtimeOnly时,我们在编译期无法使用这个依赖,但却将它的内容带进了包,运行时可以使用。...然后,我们在接口层的build.gradle中,我们加入: dependencies { ...

    2.7K20

    【Android Gradle 插件】BuildType 编译类型配置 ⑤ ( renderscriptDebuggable 配置 | shrinkResources 配置 )

    是否开启 渲染脚本 RenderScript 调试功能 , RenderScript 一般用于高性能计算 ; 是否将生成类型配置为使用可调试的RenderScript代码生成apk。.../2.3/com.android.build.gradle.internal.dsl.BuildType.html BuildType#shrinkResources 配置 用于设置 是否自动优化未使用的资源..., 该配置生效的前提是 BuildType#minifyEnabled 设置必须为 true ; 是否启用了未使用资源的缩减。...默认为 false; BuildType#minifyEnabled 配置 参考 【Android Gradle 插件】BuildType 编译类型配置 ④ ( minifyEnabled 配置 | multiDexEnabled...versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" applicationIdSuffix

    67710

    Android Gradle必备基础知识

    我最开始是被它的多渠道打包所吸引。 简介 --- Gradle是以Groovy语言为基础,面向Java应用为主。基于DSL(Domain Specific Language)语法的自动化构建工具。...凭借Groovy的DSL和创新打包方式,Gradle提供了一个可声明的方式,并在合理默认值的基础上描述所有类型的构建。 Gradle目前已被选作许多开源项目的构建系统。...因为Gradle是基于DSL语法的,如果想看到build.gradle文件中全部可以选项的配置,可以看这里 DSL Reference 基本的项目设置 --- 一个Gradle项目通过一个在项目根目录中的...最后,构建插件创建了为所有build type(debug, release, test)类型安装和卸载的任务,只要他们能被安装(需要签名)。...创建一个Library项目 Library项目和普通的Android项目的区别比较少,由于libraries的构建类型与应用程序的构建不同,所有它会使用一个别的构建插件。

    89010

    《Android群英传 神兵利器》读书笔记

    { ...... } 构建buildTypes buildTypes{ // xys.initWith(buildTypes.debug) 也可以继承其他的构建类型 xys{ applicationIdSuffix...Lint 用于检测各项目中(包含库)中的一些错误问题,比如资源未用或过时的api等。 在AS命令行使用gradle lint。...变量生命周期结束后,由虚拟机释放该变量占用的内存空间 快 常用的内存类型: VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)。...GC系统根据GC Root算法进行GC工作,该算法会以一个GC Root对象为起点,搜索与之相关联的对象。...JNI:jni相关调用的引用、变量、参数。 Thread:活着的线程。 Stack:栈中的对象。 静态:方法区类的静态属性引用的对象。 常量:方法区中的常量引用的对象(final类型)。

    57610

    Gradle 与 AGP 构建 API: 如何编写插件

    变体由多个构建类型组合而成,例如 debug 与 release,以及构建脚本中定义的产品变种。 在您的构建文件中,使用声明式 DSL 添加构建类型是完全没有问题的。...不过,在代码中以这种方式让您的插件影响构建是不可能的,或者说难以使用声明式语法进行表达。 AGP 通过解析构建脚本及 android 块中设置的属性来启动构建。...在此回调中,我可以在 DSL 对象应用于 Variant 创建前对它们进行修改。我将创建一个新的构建类型并且设置它的属性。...= ".debugStaging" } } 注意,在此阶段中,我可以创建或注册新的构建类型并设置它们的属性。...在这里,我会检查当前变体是否是我为 staging 创建的变体。接下来,我将禁用单元测试并设置不同的 minSdk 版本。

    84630

    【错误记录】Android Studio 中生成测试覆盖率报告出错 ( ExampleInstrumentedTest > useAppContext FAILED )

    文章目录 一、报错信息 二、解决方案 一、报错信息 ---- 在 Android Studio 工程中 , 启用了 " android # buildTypes # debug " 中的 testCoverageEnabled...配置 , 设置为 true , 目的是为了生成测试覆盖率报告 ; kim.hsl.svg.ExampleInstrumentedTest > useAppContext[Pixel 2 - 9] FAILED...build.gradle 配置文件如下 : plugins { id 'com.android.application' id 'kotlin-android' } android {..." android # defaultConfig " 中设置了 applicationIdSuffix ".tom" 包名后缀 , 在 " android # buildTypes # debug "...中设置了 applicationIdSuffix ".jerry" 包名后缀 , 导致最终生成 测试覆盖率报告 出现问题 ; 屏蔽这两个后缀即可正确生成 " 测试覆盖率报告 " ; 再次执行 gradlew

    77130

    读书笔记--Android Gradle权威指南(下)前言笔记后记

    在 2.3.3 版本的 Android Gradle 插件中,这个 id 指向的类为 AppPlugin apply plugin 意思是为当前项目的构建应用一个 Gradle 插件,至于应用哪个插件,...5.2 android {} 官方文档:http://google.github.io/android-gradle-dsl/current/ 不同的项目构建时,所需的配置可能不同,那么,设置这些配置项的入口就在...applicationIdSuffix:配置包名的后缀,使用场景通常是在 debug 中配置,这样 debug 包和 release 包都可以安装在同一台设备上。...那么在 build.gradle 中就可以结合这个方法,然后在服务器上配置一个特定的环境变量,当检查到当前打包环境在服务器上时,就可以去触发这些本地开发过程中较耗时的构建工作了,尤其打包服务器还可以将这些...执行:在项目里应用了一个脚本插件的时候,其实脚本里的代码就被运行了,而 Gradle 有一个 task 的概念,代码里是没办法直接触发某个 task 的执行的,但可以设置各个 task 之间的前后依赖关系

    73430

    记录我使用过的 build 基本配置

    真的要细说 Gradle,恐怕目前能力还是有限,仅仅了解皮毛,简单分享,欢迎交流~ 一、Gradle 基本配置 其实这块更应该成为封装项目的 basic build 配置,以便于后续的 module 可以减少大量重复性的内容...jksPassword keyAlias jksAlias keyPassword jksPassword } } // 封装项目的所有构建类型配置...module 均可使用 */ dependencies { // ... } 二、buildConfigField 使用 在构建时,Gradle 将生成 BuildConfig 类,以便应用代码可以检查与当前构建有关的信息...针对我之前这种法子做个小小升级,在原有 gradle 文件中添加如下内容: android { // 封装项目的所有构建类型配置 buildTypes { debug...buildConfigField "boolean", "LOG_DEBUG", "false" // ... } } } 随后 Build 之后变会根据当前构建类型在

    54720

    Android 构建多APK

    Android 开发过程中,总是会遇到这样的场景: 1,app需要交付给不同的客户,每个客户都有自己相关的定制,这时候应该如何构建?...sz { // 定义的flavor 可以设置自己的包名等差异话信息 applicationId 'com.demo.sz' dimension...city的数量 * color的数量 * 2 (Debug/Release) = 12 APK多环境开发 Studio工程中,默认有Debug/Release 两种环境,在部分场景中,可能两种环境并不能满足我们的开发需求..."] } } 过滤APK 在定制不同的Flavor 和 BuildTypes 时, 总是会组合出很多其实我们不需要的APK类型,通过下面的方式可以过滤调那些我们不需要的APK,这样看起来也会清爽很多...工程目录下新建一个 customization.gradle 文件 //自定义构建的劫持操作(project.afterEvaluate 模块配置结束回调) project.afterEvaluate

    67130

    【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ⑤ ( 优化 Gradle 构建脚本 | 构建脚本结构 | 闭包定义及用法 | 依赖配置 | android 块配置 )

    Gradle 插件】组件化中的 Gradle 构建脚本实现 ① ( 组件化简介 | 创建组件化应用 | 依赖库模块 / 应用模块 切换设置 ) 最后提到了 在 Gradle 构建脚本中 , 需要实现...| 切换插件导入 | 切换设置应用 ID ) 博客中实现了 模块化 与 组件化 的切换 ; 在 【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ③ ( 在 Gradle...一、Gradle 构建脚本结构 ---- 在 工程根目录 中 , 创建 common.gradle 构建脚本 , 所有的 核心配置 都放置在该脚本中 , 在所有的模块中的 build.gradle 构建脚本..., 设置了依赖 ; 同时在 模块中的 build.gradle 构建脚本中 , 还可以 继续调用 dependencies 方法 , 在已设置依赖的基础上 , 追加新的依赖 , 如下脚本所示 : /*...插件】组件化中的 Gradle 构建脚本实现 ③ ( 在 Gradle 构建脚本中实现 AndroidManifest.xml 清单文件切换设置 ) 博客最终配置 ; 完整设置脚本 : /**

    1.4K21
    领券