首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Gradle系列-运用篇

    新建项目时,默认有一个release配置,但我们实际开发中可能需要多个不同的配置,例如debug模式,为了方法调试,一般都不需要对其进行代码混淆、压缩等处理。...我们新增一个api维度,构建不同的minSkdVerison版本的apk 1 flavorDimensions "mode", "api" 2 productFlavors { 3...在gradle为每个构建变体或对应apk命名时,属于较高优先级风格维度的产品风格首先显示,之后是较低优先级维度的产品风格,再之后是构建类型。...] 对应apk:app-[dev, prod]-[minApi16, minApi21]-[debug, outer, release].apk 构建变体有这么多,但有时我们并不全部需要,例如你不需要mode...{ 4 outputFileName = "analysis-release-${defaultConfig.versionName}.apk" 5

    66110

    Flutter完整开发实战详解(三、 打包与填坑篇)

    项目 IOS Android GSYGithubAppFlutter flutter-ipa flutter-apk GSYGithubAppRN rn-ipa rn-apk 从上表我们可以看到: Fluuter...的 apk 会比 ipa 更小一些,这其中的一部分原因是 Flutter 使用的 Skia 在Android 上是自带的。...这里又有一个细节,rn 的 ipa 包体积小很多,这其实是因为 javascriptcore 在 ios上 是内置的原因。 对上述内容有兴趣的可以看看《移动端跨平台开发的深度解析》。...但由于笔者项目中使用了第三方的插件包如 shared_preferences 等,在执行 Archive 的过程却一直出现如下问题: 在 `Archive` 时提示找不到 #import 不设置时一般是 Drawer 的图标或者返回按钮。 flexibleSpace :位于 bottom 和 leading 之间。

    1.6K10

    【Android 组件化】使用 ARoute 实现组件化 ( 完整组件化项目框架 )

    // 要与compiler匹配使用,均使用最新版可以保证兼容 api 'com.alibaba:arouter-api:1.5.1' annotationProcessor '...集成模式 true ( 默认模式 , 模块化 ) 组件模式 false ( 组件化 ) androidConfig 用于统一管理各个 Module 中的版本号 , 如编译版本号 , 最小版本号 , 目标版本号...// 要与compiler匹配使用,均使用最新版可以保证兼容 api 'com.alibaba:arouter-api:1.5.1' annotationProcessor '...// 要与compiler匹配使用,均使用最新版可以保证兼容 api 'com.alibaba:arouter-api:1.5.1' annotationProcessor '...// 要与compiler匹配使用,均使用最新版可以保证兼容 api 'com.alibaba:arouter-api:1.5.1' annotationProcessor '

    2.5K20

    美团 5 大最受欢迎的开源项目,牛批!

    快捷的 webpack 构建机制:自定义构建策略、开发阶段 hotReload 支持使用 npm 外部依赖 使用 Vue.js 命令行工具 vue-cli 快速初始化项目 H5 代码转换编译成小程序目标代码的能力... - App模块名字      packageName - applicationId (App包名packageName)      buildType - buildType (release/debug...等)      channel - channel名称 (对应渠道打包中的渠道名字)      versionName - versionName (显示用的版本号)      versionCode ...- versionCode (内部版本号)      buildTime - buildTime (编译构建日期时间)      fileSHA1 - fileSHA1 (最终APK文件的SHA1哈希值...目前Leaf覆盖了美团点评公司内部金融、餐饮、外卖、酒店旅游、猫眼电影等众多业务线。在4C8G VM基础上,通过公司RPC方式调用,QPS压测结果近5w/s,TP999 1ms。

    96640

    Android Gradle知识梳理

    它定义了一系列的诸如doLast, doFirst等抽象方法,具体可以看gradle api里org.gradle.api.Task的文档。...最重要的是,很容易忘记,最终导致app module之间的差异不统一,也不可控。 强大的gradle插件在1.1.0支持全局变量设定,一举解决了这个问题。...rootProject.ext.versionCode versionName rootProject.ext.versionName } } 然后每次修改project级别的...自定义导出的APK名称 默认android studio生成的apk名称为app-debug.apk或者app-release.apk,当有多个渠道的时候,需要同时编出50个渠道包的时候,就麻烦了,不知道谁是谁了...".toLowerCase()) } } } 当apk太多时,如果能把apk按debug,release,preview分一下类就更好了(事实上,对于我这样经常发版的人,一编往往就要编四五十个版本的人

    74520

    章鱼抓娃娃添加Bugly-Tinker热更新支持

    发包清单 修改gradle配置,如versionName, versionCode等(tinker-support文件切换及tinkerId修改已自动化); walle打包(Tinker支持walle多渠道包热修复...理论上这两步是可以省去的,在你确保改动代码被Tinker支持的情况下。不过,不建议如此,热修复依然存在许多问题,在预发布环境先行测试补丁效果具有必要性。...如何生成补丁 线上补丁与测试补丁生成的差异主要体现在配置上。 生成测试补丁 将代码切回至有问题的线上节点。...保证versionName、versionCode与线上版本一致(以免后续升级有问题)。 执行 buildTinkerPatchRelease 指令生成release补丁。...这样,APK_DATE 即为apk的构建时间(即我们用指令生成该apk或其最新补丁的时间); 在设置页面连击版本号7次,即可观察到相关信息 "生成时:" + BuildConfig.APK_DATE

    82920

    写给Android工程师的 Github CI 快速指北

    当我们每次提一个 PR 或者 push 时,就自动去打测试包,并执行一些我们自定义的一些 check,如 代码检查 、 包大小检查 、自动化测试 等等,并将最后打出的 apk 上传到 fir 或者其他地方...并借助 webhook ,从而实现 飞书、钉钉 等方式通知相关同学; 发布新的 release版本 前,改版本号时,也可以支持自动化版本号。...所以我们也可以利用 CI ,发现有新的 tag 时,则触发工作流执行,从而去自动发布一个 release 版本,并且执行一遍打包,将相关产物上传到我们指定的位置;并根据项目的规则总结出相应的 release...release.yml 在具体的工作流脚本这里,我们的触发时机选择为每次发布新的 release 时,此时就去获取本次 release 对应的 tag_name,并在打包时,通过 Gradle 命令行传参的方式...示例代码如下: 这里使用开源的 action,ncipollo/release-action,从而更简单的实现上述需求,当然也可以选择使用 Github Api。

    86420

    基于Jenkins + Docker 搭建 Android 持续集成平台

    网上对于搭建Jenkins的教程很多,但是基于Docker的很少,同时要考虑服务器上无法访问外国网站,所以自己摸索并填了很多坑,因此记录一下。...设计思路 实现目标:可以根据参数打不同flavor/不同运行环境的包;收集打包成功后的成果(Artifact);把api上传到fir后,在建构列表展示出下载链接。...', API_URL } signingConfigs { release { // Load keystore if(rootProject.file...,mapping文件 (2)上传apk到fir (3)把上传到fir的短链接展示到建构列表中。...它会通过正则表达式匹配建构的输出,匹配到字符串可以用\n获取。比如下面的\1会获取第一个匹配到的字符串 iii.此时在建构列表里它会显示为如下。

    1.9K50

    SVG,Vector,gradle

    VectorDrawable: 从5.0(API等级21)开始,android了支持矢量图,优点:文件比位图要小,可以缩小我们apk体积,并且可以任意放大矢量图形,而不会丢失细节或影响清晰度,在屏幕适配时...,但是为了保证老APK的行为和以前兼容,只要APK的targetSdkVersion不变,那么即使这个APK安装在新的Android系统上,那么行为还是保持老的系统上的行为。...系统在调用某个api或者模块的时候,会先检查调用的APK的targetSdkVersion,来决定执行什么行为。...jar :只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。...,并在发生时在桌面上生成图标,但是在release版本上我们并不希望这么做,这时候我们可以这么写: debugCompile 'com.squareup.leakcanary:leakcanary-android

    7210

    【错误记录】NDK 报错 java.lang.UnsatisfiedLinkError 的一种处理方案 ( 主应用与依赖库 Module 的 CPU 架构配置不匹配导致 )

    出现上述错误 , 就是 打包的 so 动态库没有找到 , 有很多问题都会导致该错误 , 如 build.gradle 中没有配置对应的 CPU 架构 , NDK 中调用的外部动态或静态依赖库的 CPU 架构不匹配...; 这里我遇到的问题是 主应用 与 依赖库的 CPU 架构不匹配导致 ; 创建项目时选择如下选项 , 自动生成的 build.gradle 中默认生成 arm64-v8a, armeabi-v7a,...动态库 , 只剩成了 armeabi-v7a 架构的动态库 ; 依赖库中还是生成的 armeabi-v7a 架构的动态库 ; 问题解决 ; 如果非要配置 arm64-v8a 架构 , 但是一旦配置上..., 所有的在 NDK 中使用到的依赖库 如 OpenSSL , FFMPEG , RTMP , FAAC , OpenCV 等 , 都必须一式两份 , 一份 armeabi-v7a 架构的静态/动态 依赖库..., 一份 arm64-v8a 架构的 静态 / 动态 依赖库 ; ( 很麻烦 , APK 编译后也很大 , 不推荐 )

    1K00

    使用AndroidStudio编译NDK的方法及错误解决方案

    __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) //注册native api的类#define JNIREG_CLASS "com...另外还需要注意的是gradle1.9下没有buildTypes标签,需要将debug、release标签直接放在android标签内,在gradle1.10下debug、release需要放在buildTypes...解决方案: 这是NDK在Windows下一个bug,当只编译一个文件时出现,解决方法就是再添加一个空的文件即可。...ó 解决方案: 在使用gradle1.9版本时遇到,使用gradle1.10版本来解决。...ó 无论使用哪个版本都有问题,后来仔细查看了下'AppPlugin'这个错误是出现在‘app’模块上的而非‘hellojni’模块上,于是考虑新建工程项目并且只在该工程下建立一个库模块,不再创建app模块

    2.6K120

    第八章 自定义Android Gradle工程

    就是我们新闻上经常见到的什么‘冰激凌三明治’什么的。这里给出一个列表,让大家一目了然。...public ProductFlavor setVersionCode(Integer versionCode) { this.mVersionCode = versionCode;...类似,也是ProductFlavor一个属性,用于配置Android App的版本名称,比如V1.0.0等等,主要显示用,让用户或者市场知道我们的Android App版本,它和versionCode一个是外部用...模式的时候,Android SDK已经为我们提供了一个默认的debug签名证书,我们可以直接使用,但是发布的时候,release模式构建时,我们要配置使用自己生成的签名证书。...现在我们启用了混淆,但是Android Gradle还不知道按何种规则进行混淆,不知道要保留哪些类不混淆,要做到这些就需要我们的Proguard配置文件了,现在我们为我们的混淆指定配置文件。

    62210

    学(kao)习(bei)官方关于64k异常处理 ^_^

    注:如果项目配置时所面向的 Dalvik 可执行文件分包使用的是 minSdkVersion 20 或更低版本,并且将其部署到运行 Android 4.4(API 级别 20)或更低版本的目标设备上,则...二、Android 5.0 及更高版本的 Dalvik 可执行文件分包支持 Android 5.0(API 级别 21)及更高版本使用名为 ART 的运行时,后者原生支持从 APK 文件加载多个 DEX...级别 14)的设备上启动。...如果APP目标 API 级别低于 14,请务必针对这些版本的平台进行测试,因为应用可能会在启动时或加载特定类群时出现问题。...尽管 Android 4.0(API 级别 14)提高了分配限制,但在 Android 5.0(API 级别 21)之前的 Android 版本上,应用仍有可能遭遇这一限制。

    97520

    【鸿蒙 HarmonyOS】OpenHarmony 简介 ( HarmonyOS OpenHarmony - Android AOSP 对比关联 | 鸿蒙开发者定位及使用的开发语言和开发工具)

    OpenHarmony 是 开源的分布式操作系统 , 由 华为公司 捐赠 智能终端操作系统 基础能力 相关代码 , 由 开放原子开源基金会 ( OpenAtom Foundation ) 运营的开源项目 , 其 目标...Android 开发者来说 , 开发出来的 APK 安装包 , 既可以在 Google 手机中的 AOSP 原生系统运行 , 也可以在 小米 / VIVO 等 Android 手机中运行 ; 3、HarmonyOS..., 对应 API 能力级别为 API 11 Release ; 参考文档 : https://docs.openharmony.cn/pages/v4.1/zh-cn/OpenHarmony-Overview_zh.md...HarmonyOS 使用的是 OpenHarmony SDK 3.2.12.2 (API Version 9 Release) , 对应 API 能力级别为 API 9 Release ; 参考文档..._3_1_202305-0000001582097989-V2 文档 ; 该文档中也给出了对应的 DevEco Studio 的版本 , 注意这三个版本一定要匹配 ; 点击左侧 , 可以查看 HarmonyOS

    4.1K01
    领券