Android渠道包自动更新、单元测试实践 | 每日掘金第242期

938 阅读6分钟

Hello,又到了每日掘金时间。酱酱们的每日掘金新增优质作者介绍和码上掘金板块,专注于发掘站内优质创作者和优质内容,欢迎大家多提宝贵意见!

本文字数2100+,阅读时间大约需要 15分钟。

  • 【本期每日掘金】亮点:
  • Android渠道包自动更新
  • 更高效的web动效解决方案
  • 你不会只知道MVVM的概念吧?
  • JVM 中的垃圾回收算法详解,一文读懂GC回收机制
  • 单元测试实践
  • 前端如何进行单文件上传云服务存储
  • ……

筛选规则:文章发布时间在本期「酱酱们的每日掘金」发布时间的 1-3 天内,且符合社区推荐标准,也会同步发布在掘金相关技术社群。

今日主理人|每日掘金

本期每日掘金由 帅气的法医 负责制作,法医是一个长期活跃于沸点的最佳摸鱼手,热爱Coding,喜欢分享,五湖四海皆兄弟,欢迎大家一起在沸点摸鱼,在掘金创作。

每日干货|每日掘金

主理人们会对近期(1-3 天)社区深度技术好文进行挖掘和筛选,优质的技术文章有机会出现在下方列表,排名不分先后。

『前端』

To C 业务场景下的 Web 页面,经常会有炫酷复杂的动效需求。在一个有限的项目排期下,选择合适的动效解决方案:既可以符合设计师的动效要求,又可以用最少的时间完成任务,但往往对前端工程师来说是一个巨大的挑战。

在日常的开发过程中,我相信大家肯定会碰到很多的文件上传需求,例如流程中的附件,设置头像图片等等内容,并且上传的文件,为了前端页面的加载性能,一般也都会选择将文件上传至云服务存储当中去,之后直接使用文件的 cdn 路径来访问。那么问题来了,对于文件如何上传到云服务存储当中去大家是否了解呢?上传流程有遇到什么困难吗,所以这篇文章也借着我们团队遇到的一些问题,跟大家交流一下云服务文件存储当中的一些问题与解决方式。

最近在 G2 5.0 中加上了 heatmap 热力图的 mark,让 G2 5.0 可以轻松绘制热力图,应该社区上大部分绘制热力图的库,原理基本都是类似的,可以参考 heatmap.js 源码,所以这边文档就是对于 heatmap.js 的源码解读。

ViewModel作为视图层(View)与数据层(Model)之间的中介,负责处理业务逻辑、数据获取、数据转换等操作。它的主要职责就是:数据变化后更新视图、视图变化后更新数据数据。绑定的方式:双向绑定和单向绑定。

『后端』

垃圾回收是一种自动化的内存管理方式,它可以监测并清除内存中不再使用的对象,使得内存空间可以被回收并重新利用。在 JVM 中,垃圾回收器负责管理虚拟机的内存分配和回收。

这个就是上面的Sentinel 热点规则 注意看我们的限制处理方法在本类中代码的耦合度高 阅读性差 不利于程序的扩展 @SentinelResource的作用就是解决这个需求将处理方法放到一个类中

单测成本一开始投入极大, 但随着时间的推移、经验的积累单测成本/研发投入成本,在逐渐降低,单测一定程度上降低了提测bug数,提升对代码质量的信心

在日常使用Linux系统服务器时,如果系统安全维护方面做的不够规范和严谨,很容易导致主机被黑客植入恶意木马病毒被当做肉鸡。以后就是一次肉鸡木马病毒的排查过程,有助于运维服务器时遇到此情况时进行针对性的排查和修复。

『移动端』

转转集团旗下有多款APP产品,随着业务发展,各APP发版频率变高。在持续交付的背景下,渠道包更新存在以下几个效率问题

这个词在我们开发工作当中应该经常会被提起,那到底什么是业务场景呢?我的理解是业务场景就是一种状态对应着页面的一种展现方式,比如某些app上你如果是未登录状态,页面上就会展示一个提示你去登录的提示语,然后再加上一个登录按钮,又比如安全验证方面,有的app会根据用户的风险等级去决定是去密码验证还是人脸验证,又或者是同时验证,在这些大大小小的业务场景里面,有的实现起来简单,可能只要两三句代码就完成了,有的可能实现起来会比较复杂,需要三方sdk配置再加上与自己服务端交互才能实现,而当我们一个独立的页面也牵扯进来了多个业务场景,我们通常会如何处理呢?

随着 Android Studio Flamingo 正式版的发布,AGP 8(Android Gradle Plugin 8)也正式进入大家的视野,这次 AGP 8 相关更新属于「断代式」更新,同时如果想体验 AGP 8,就需要升级到 Android Studio Flamingo 版本,而升级到 Flamingo 的话,默认自带的 Java 版本就会变成 JDK 17 ····· 所以,这就是你需要适配 AGP8 的主要原因之一。

每当 App 发生崩溃时,系统会自动生成一个后缀 ips 的崩溃报告。我们可以通过崩溃报告来进行问题定位。但崩溃报告的内容繁多,新手看很容易一脸懵。所以本文先讲解一下报告中各字段的含义,后面再说报告符号化。

最近看之前写的代码突然感觉非常陌生,自我感觉实现的逻辑还不错,所以想整理一下,一是加深印象,二是想分享一下。日程事历大家都用过,苹果也有自己的。但仔细想想里面计算视图frame的逻辑还是非常有意思的。

📖 投稿专区|每日掘金

👉 大家可以在评论区推荐认为不错的文章,并附上链接和推荐理由,有机会登上下一期。文章创建日期必须在近 1-3 天内;可以推荐自己的文章、也可以推荐他人的文章。