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

Gradle的一些技巧和遇到的问题

} } } 1. minifyEnabled 会对代码进行混淆和压缩,shrinkResources 会对比R文件对无用资源进行删除 2. minifyEnabled 设置为true时shrinkResources...所以如果你的应用有多个 Module 就会有多个 BuildConfig.java 生成,编译时被依赖的 Module 默认会提供 Release 版给其他 Module 或工程使用,这就导致该 BuildConfig.DEBUG...这样会导致 proguard 配置文件变得杂乱无章,同时需要团队所有成员对其语法有所了解。...如果下载完可以配置gradle离线工作 ,勾选gradle会使得速度更快,但同时存在一个问题,如果需要从网上加载第三方库,会无法下载,所以酌情使用。所以需要没有的第三方模块记得把这个关了。...com.loonggg.saoyisao.lib:1.1.0 这个依赖里引用了第三方zxing。

1.8K30
您找到你想要的搜索结果了吗?
是的
没有找到

【解决问题的思路】its super classes have no public methods with the @Subscribe annotation

方案一 关闭R8压缩 minifyEnabled false 但是这样会使得你的应用增大不少,比如你使用了某个第三方库时,应用中只使用了其中很小一部分,但打包时所有库代码都会保留在应用中。...如果你不介意的话,这是最简单粗暴的解决方案。...: 遇到问题先不要慌,也不要盲目搜索答案,这样会浪费时间,且可能混淆你的视线 先认真仔细的看一下日志,一般日志都会给你提示 结合一切可用信息,快速准确的定位问题 如果非要搜,建议先去官方文档找答案 遇到这个异常是怎么解决的...: 根据日志提示,定位到问题是EventBus 查看使用教程,并没有发现什么问题 在EventBus的issues中看看是否有同样的问题,果然是有的,并知道了是R8压缩导致的 去google官网查看R8...相关介绍,并知道了原因,且提供了解决方案 举一反三,也适用其他的问题。

1.1K10

用 Keras 搭建 GAN:图像去模糊中的应用(附代码)

我们唯一的准则就是看判别器是否接受生成器的合成的例子。 这些只是对生成对抗网络的一个简单回顾,如果还是不够明白的话,可以参考完整介绍。...其中包含了来自不同街道视角的人造模糊图像,根据不同的场景将数据集分在各个子文件夹中。 我们先把图像分到 A(模糊)和 B(清晰)两个文件夹。这个 A&B 结构对应于原始文章pix2pix 。...原文还使用了基于UNet的版本,但我目前还没有实现。这两种结构都可以很好地进行图像去模糊。 ?...左图: GOPRO 测试图像,右图:GAN 输出结果 希望你们可以喜欢这篇关于生成对抗网络用于图像去模糊的文章。 你可以评论,关注或者联系。...如果你对机器视觉感兴趣,我们还写过一篇用Keras实现基于内容的图像复原 。下面是生成对抗网络资源的列表。 ?

72521

图像去模糊算法 循序渐进 附完整代码

3.去模糊 有了前面的基础知识,我们可以做一个假设,进行验证。 例如,先对一张图片做卷积操作,模拟模糊成像。...如果想要达到 最终成像 - 干扰因素 = 清晰图片 必须 在最终成像的时候用类似卷积的方式,消除卷积核的内容以及范围的影响。 换句话说,这个操作必须控制好变量。 这个问题说真的,思考了很久很久。...上面伪代码称之为  散焦 算法,反之为 聚焦 也就是去模糊 。 聚焦算法最终可以实现耗时模糊半径无关,它是去模糊的一种特例。 目前,此算法暂无开源计划。...都采用了fftw,计算量还是居高不下。 对它提供的代码,做了一些简单的裁剪,cmake编译通过,仅依赖fftw。...深度学习目前还需要不少传统算法配合进行训练处理,以求达到更好的效果。 就目前来看,工业化落地也有不少问题,不过相信很快就能做得很好了。 因为有大公司和大量资金资本的助推,应该不是难事。

3.4K40

Android性能优化之APK 极限压缩(资源越多,效果越显著)

分析 APK 资源占用 注意: 是在 GitHub 找了一个人气比较高的开源项目,需要的话自己可以点击下载,自己动手尝试一番. ?...将图片转换为 webp 格式 Webp 概念 WebP 是一种同时提供了有损压缩与无损压缩的图片文件格式,派生自视频编码格式 VP8。...去除无用资源 Link 检查(谨慎删除) 概念 Lint 是 Android Studio 提供的 代码扫描分析工具,它可以帮助我们发现代码结构 / 质量问题,同时提供一些解决方案,而且这个过程不需要我们手写测试用例...注意 因为 link 是检查有没有引用来做的判断是否使用了资源,那么如果是这种方式勒,所以在删除的时候一定要谨慎。...严格模式 正常情况下,资源压缩器可准确判定系统是否使用了资源。

3.2K30

是如何做到在 5 分钟之内将应用大小减少 60% 的?

有限的电量,有限的存储,有限的处理能力,有限的内存,有限的网络带宽……无论你面对的是 Android 还是 iOS,这都是真理。 在前几个月,在开发一个安卓应用。...今天在这篇文章教大家一些用来减小应用体积的技巧。这些技巧都简单且易用,会在现在或将来为大家提供一些帮助。 越小越好 作为一个开发者我们总是更关心应用的性能,设计和用户体验。...如果用户的存储空间不够的话,他们会卸载你的应用。 这些发展中国家用户使用的依然是速度有限的 2G/3G 网。所以,如果你的应用体积太大,将会需要更多的时间来下载(更可能的情况时用户根本不会去下载)。...app “Anti-Theft Screen Lock” 只需要支持英语。而很多的支持库都可能有其它语言的本地化文件夹。这些是需要的。所以,添加下面的这些代码让应用只支持英语。...但是这样你需要对它的向后兼容性进行一些处理。 TL;DR: 通过在你的 release build type 中加上下面这些代码启用混淆。 启用 shrinkResources。

97220

云点播(VOD)“你问我答”第七季(2020.11月&12月)

Q1:云点播的播功能是什么意思? 对媒体播后,除了点播控制台预览,其他场景访问视频各种资源的URL(原始文件、转码输出文件、截图等)均会返回 403。...播/解禁操作全网生效时间约 5~10 分钟。 Q2:云点播是否支持查看视频处理的进度? 支持,点播目前已经对外提供了任务管理类的相关接口,用户可以通过该接口查询转码进度。...详情参考:查询任务详情 Q3:云点播是否支持图片处理相关的功能? 云点播目前提供图片的实时编辑,包含裁剪、缩放等功能,用户通过链接与模板的拼接,即可获取处理后的图片。...取决于用户的播放视频类型,如果无任何证书和资质要求,则不需要指定小程序播放器插件。 Q7:多个小程序需要使用多个小程序插件么 ?...Q9:上传视频转码后,把原视频删除,转码成功的视频文件是否也被删除? 会,目前仅支持删除全部文件和删除转码文件。 Q10:云点播套餐包未使用能退吗?

1.2K51

Deblurring with Parameter Selective Sharing and Nested Skip Connections

图像去模糊,即从模糊图像中恢复出清晰的图像,是几十年来的一个重要研究领域。由于不适定的性质,需要特定的假设来建模不同类型的均匀、非均匀和深度模糊。...GoPro的数据集提供了3214对,但部分图像存在缺陷,可能会对网络训练产生不利影响。因此,我们构建了一个更大、更高质量的数据集。通过克服缺陷来训练更好的去模糊网络。...后来,Kim和Lee[13]假设运动是局部线性变化的,因此提出了一种无分段的方法来处理这个问题。在[20]中,我们使用了一个分割置信度图来减少不同运动区域之间的分割歧义。...第二个问题是一个scale内不同模块的参数是否可以共享。参数独立:图2是动态场景中典型的模糊图像。背景建筑大致清晰,但前景人物模糊不清。...如果特征提取模块跨尺度共享,则无法同时提取锐化和模糊特征。共享特征提取模块在粗尺度上学习锐特征时,无法提取精细尺度上的模糊特征。?

1.8K10

android混淆那些坑

这里的minifyEnabled即用来控制在编译时是否需要启用Proguard,将minifyEnabled修改为true,即表示启用Proguard。’...proguard-android.txt’是Android SDK中自带的一个基本Progurad配置文件,默认是空白的,需要由开发者自行添加哪些需要混淆哪些不混淆,形如: -ignorewarning...# 是否使用大小写混合 -dontpreverify # 混淆时是否做预校验 -verbose # 混淆时是否记录日志 -optimizations...预检(Preveirfy): 在java平台上对处理后的代码进行预检。...混淆之后的jar文件执行过程如果出现异常,生成的异常信息将很难被解读,方法调用的堆栈都是一些混淆之后的名字,通过retrace.jar可以将异常的堆栈信息中的方法名还原成混淆前的名字,方便程序解决bug

3.1K60

Android项目实战(二十五):Android studio 混淆+打包+验证是否成功

所以现在我们在打包一个项目之前,都要对项目进行混淆处理,让Apk无法被轻易的反编译,提高产品的安全性。 混淆操作需要进行一些配置。...unused.txt #混淆前后的映射 -printmapping proguard/mapping.txt ########记录生成的日志数据,gradle build时 在本项目根目录输出-end###### #如果用了...# 如果使用了Gson之类的工具要使被它解析的JavaBean类即实体类不被混淆。...application module或者依赖的library module中使用了第三方的库,并不需要显式添加规则 #-libraryjars xxx #添加了反而有可能在打包的时候遭遇同一个jar多次被指定的错误...#以libaray的形式引用了开源项目,如果不想混淆 keep 掉,在引入的module的build.gradle中设置minifyEnabled=false -keep class com.nineoldandroids

1.3K70

Android Gradle实用技巧(四) | 自动瘦身APK文件

他是一种在构建时,打包成Apk之前,会检测所有资源,看看是否被引用,如果没有,那么这些资源就不会被打包到Apk包中....比如我们常用的Google Play Service,这个是一个比较大的库,它支持很多Google的服务,比如Google Drive,Google Sign In等等,如果你在你的应用中只使用了Google...就是我们经常使用的ProGuard,也就是我们要启用minifyEnabled,是为了缩减代码的; 我们上面已经讲了,自动清理未使用的资源的原理很简单,就是判断有没有用到这些资源,如果你的代码还在使用,...此外,对于res/raw/keep.xml这个文件我们不用担心,Android Gradle构建系统最终打包的时候会清理它,不会把它打包进Apk中的,除非你在代码中通过R.raw.keep引用了它。...可以识别代码中类似于如下示例的引用 getResources().getIdentifier("unused","drawable",getPackageName()); 这类代码也被构建系统认为是使用了资源文件

83620

Android包体积优化(常规、进阶、极致)

8.so文件缩减 比如集成了一个三方的直播或者浏览器,可能会提供很多so文件,起初可能是一股脑的copy进项目,但并不一定都用的到。...也就是插件化的思想,按需加载,但是收益很大的同时,风险也很大,有很多case需要考虑到,比如下载时机、网络环境、线程进程,加载失败是否有降级策略等等。...极致操作 那如果想做到极致,还有哪些骚操作呢,ok,继续。...2.砍功能 有些功能可能想的很美好,但上线之后收益并不大,是否需要重新思考价值点,最好找到数据依托,再跟产品打架。...7.图片着色器 针对同图不同色的处理,可以使用tint,比如原本是一个黑色的返回icon,现在另一个页面要用白色了,就不需要两张图了,而是使用tint来修改为白色即可。

83730

精华文稿|在非理想输入下NeRF的重建

如果针对输入图片数量非常少的情况,基本上在3、4张这样,其实是有非常多的工作,首先这个开山之作PixelNeRF,想要在极少数输入图片下也能呈现出比较好的效果,我们就需要有比较强的先验。...03  传统图像和视频去模糊的相关工作 先介绍一下模糊的形成原理以及已有的这些在图像或者video上去模糊的相关工作。要想解释模糊的成因,首先我们需要先解释一下图像从场景变成一张image的过程。...是最后观测到的模糊图像,在讲解已有的一些去模糊的算法过程之前,我们先介绍一些有关于使用机器学来做去模糊的一些work。 这里主要就给大家一个大致的分类,具体,如果大家感兴趣的话,可以去看一些。...但是总结了一点,基于视频的去模糊是如何利用多帧的信息来达到去模糊效果。 首先,最简单的一种方式是把连续几帧连接到一起送入到网络中。...所以之后也有工作用了隐式的光流(cost volume)。

1.7K20

Android Studio Gradle中buildTypes + flavor(flavor group, flavor dimensions)组合依赖编译,添加buildTypes

如果是根据flavor来定义依赖,则是flavor1Compile,flavor2Compile(flavor1,flavor2为flavor名字)。...(gradle 2.2.3) 于是兴高采烈的使用了mixedReleaseCompile,以达到mixed+Release的组合依赖。结果并没有依赖成功。...自定义buildTypes 后来想,其实对于withLogs和withoutLogs这个flavorDimensions,要的是一个正式发布前带日志但混淆过的版本,其实可以定义一个preview版本...proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'        }    } 这样就不需要用到...注意:有些教程里会让你在signingConfig中创建一个同名的preview,其实如果没用到自动签名是不需要

2K20

Android APP 终极瘦身指南

release { minifyEnabled true } } } 在proguard中,是否保留符号表对APP的大小是有显著的影响的...官方介绍:https://developers.google.com/speed/webp/docs/precompiled 第8条:缩小大图 如果经过上述步骤之后,你的工程里面还有一些大图,考虑是否有必要维持这样的大尺寸...,是否能适当的缩小。...第11条:删除x86包下的so 与第十条不同的是,x86包下的so在x86型号的手机是需要的,如果产品没用这方面的要求也可以精简。...最后的最后,想对大家说:在APK瘦身的道路上,一定要掌握好度,安排好事情的优先级,如果目前要做的事情、要优化的方面比较复杂,不仅需要花费很长的时间,而且最终效果也不明显,可以考虑之后再做,甚至不做。

2.5K10

一些关于加速Gradle构建的个人经验

调整gradle配置 开启daemon 相比没有开启daemon,开启daemon有如下好处 不需要每次启动gradle进程(JVM实例),减少了初始化相关的工作 daemon可以缓存项目结构,文件,task...等,尽可能复用之前的编译成果,缩短编译过程 开启daemon很简单,以Mac为例,在家目录下的.gradle/gradle.properties文件(如没有,可需要新建文件),加上如下的代码即可。...注意,如果是某个依赖在本地不存在,则会编译出错,解决方法,只需要暂时关闭offline,等依赖下载到本地后,在后续的执行中加入offline即可。...设置并行构建 现在的工程往往使用了很多模块,默认情况下Gradle处理多模块时,往往是挨个按顺序处理。可以想象,这种编译起来会有多慢。...的机器为15.4MBP,i7,8G,SSD.

1.7K10
领券