技术周刊(第9期):27篇优质文章与项目

[1]带着问题分析Kotlin协程原理:协程是一个较为复杂的东西,弄清协程的原理也不是简简单单的一篇文章就能讲的清,这个过程中需要做的就是使用、看源码、debug、总结、回顾。本节内容主要以弄清以下几个问题为主:

  • 如何创建一个协程
  • 协程是如何被创建出来的
  • 启动策略是什么
  • 启动策略完成了什么工作
  • 协程是如何被启动的
  • 协程启动过程中的Dispatchers是什么
  • 协程启动过程中的Dispatchers做了什么
  • Worker是什么
  • Worker中的任务被找到后是如何执行的?
  • 协程创建的时候CoroutineScope是什么
  • 协程的结构化中父子关系是怎样建立的
  • 结构化建立后又是怎么取消的
  • newCoroutineContext(context)做了什么

[2]2022 年 App 上架审核问题集锦,全面踩坑上线不迷路:相信这几年负责过上架应用市场的 App 开发,或多或少都躺过上线审核的坑,经历过的各种问题也是千奇百怪,今天就给大家做个汇总,希望可以帮助大家少走弯路,争取做一个“优雅”的客户端开发。

[3]毕业5年了还不知道热修复?:热修复是 Android 大厂面试中高频面试知识点,也是我们必须要掌握的知识点。热修复技术,可以看作 Android平台发展成熟至一定阶段的必然产物。Android热修复了解吗?修复哪些东西?常见热修复框架对比以及各原理分析?

[4]货拉拉 Android 模块化路由框架:TheRouter:TheRouter 是一个 Kotlin 编写,用于 Android 模块化开发的一整套解决方案框架。

Github 项目地址与使用文档详见:

https://github.com/HuolalaTech/hll-wp-therouter-android

[5]没错,TheRouter 是我写的:我发现做模块化,虽然我们能总结出来一套较为通用的解决方案,但很难通过几次短短的技术分享就跟别人讲清楚。并且很容易让人产生误解:我们是小公司,不需要做模块化。再加上因为当时是基于公司已有的基础建设,和制度的一些限制,并不能对外开源一套较为完善的模块化方案,开源一套完整的模块化方案这个种子就一直埋下了。

 

[6]ARouter 迁移到 TheRouter 使用感受:之前项目中一直用的是 ARouter,但是一直很卡,特意用adb查了一下ARouter的初始化用了131ms。最近发现货拉拉开源了一套更先进的路由框架 TheRouter,还宣传能无缝切换,趁着中秋放假就赶紧拿来试了一下,真香!

[7]扩展Glide支持加载SVGA动图:为了达到加载SVGA动图时能够像加载普通图片一样,不需要进行场景区分的目标,结合我们常用的图片加载框架是Glide,因此结合SVGAPlayer-Android 对 Glide进行扩展支持svga 图片。 [8]Android 全局替换字体的 4 种方式:在本系列的上一篇文章中,我们了解了 Xml 中的字体,还没有看过上一篇文章的朋友,建议先去阅读 Android字体系列 (三):Xml中的字体,有了前面的基础,接下来我们就看下 Android 中全局替换字体的几种方式。

[9]Android图形系统(四)应用篇:自定义View/ViewGroup详解:本篇文章介绍了自定义 View / ViewGroup 最重要的三个流程:测量、布局、绘制。

 

[10]中秋佳节:Compose 实现月亮阴晴圆缺动画 

[11]Compose把Text组件玩出新高度:介绍Compose的Text花样玩法。 

[12]Gradle 进阶(二):如何优化 Task 的性能?:当Task的输入与输出被注解标注并且都没有发生变化时,Task的状态是up-to-date的,此时可以跳过Task的执行。Gradle还提供了其他方案可以优化Task的性能:

  • 支持增量处理的Task

  • Task惰性配置

  • 避免不必要的Task配置

  • 并行Task


[13]通过抓包深入分析HTTPS

[14]Android重学系列(六):从源码看严格模式StrictMode(上) :在开发测试阶段,我们接入StrictMode,并指定一系列我们自己的策略,能很有效的帮助我们将某些问题在开发环境中就得到解决,而不必要带到线上去验证,同时也能促进我们一个很好的编码规范。

[15]发布一款Gradle插件需要经历些什么 :一般我们通过 Sonatype 来发布组件并同步到 Maven Central,主要步骤如下:

  1. Sonatype 平台账号注册
  2. 创建申请新建项目的 JIRA 工单
  3. 验证 groupId 的有效性并回复工单待人工审核
  4. 下载 GPG 管理工具并生成密钥
  5. 配置 Library 待发布项目,满足发布要求

[16]Kotlin 协程 Select:看我如何多路复用:协程通信三剑客:Channel、Select、Flow,上篇已经分析了Channel的深水区,本篇将会重点分析Select的使用及原理。

通过本篇文章,你将了解到:

  • Select 的引入
  • Select 的使用
  • Invoke函数 的妙用
  • Select 的原理
  • Select 注意事项

[17]Kotlin中 Flow、SharedFlow与StateFlow区别:了解过协程Flow 的同学知道是典型的冷数据流,而SharedFlow与StateFlow则是热数据流。

冷流:只有当订阅者发起订阅时,事件的发送者才会开始发送事件。

热流:不管订阅者是否存在,只要发送了事件就会被消费,意思是不管接受方是否能够接收到,在这一点上有点像我们Android的LiveData。

[18]记一次文件fd耗尽排查过程:最近在排查项目中文件fd泄漏经历了非常曲折的过程,并且没有查到与我们业务遇到问题相关的文章,故记录下给后来者遇到类似问题提供一种思路。

[19]这交互炸了,Compose挑灯夜看特效实现:我又有了新的想法,我们怎么照亮手机里面的文本内容呢?

 

[20]Android极简MVVM,从一个基类库谈起:这篇文章大概会按照以下几个模块进行阐述,此次封装,做到绝无第三方依赖,都是Android原生的代码封装。

  1. MVVM简单概括
  2. 基于MVVM模式如何封装基类库
  3. 实战封装
  4. 封装后在业务中如何使用
  5. 开源以及Demo查看

[21]二进制文件解析系列-如何解析Android中的FLAT文件?:主要介绍了解析编译过程中资源过程产物 FLAT 格式文件。

[22]【原理篇】WebView 实现嵌套滑动,丝滑般实现吸顶效果,完美兼容 X5 webview 

 

[23]Android组件化开发,其实就这么简单:本文会从以下四个模块进行阐述,各位老铁,准备好板凳,我们开始。

  • 为什么要采取组件化
  • 如何实现组件化
  • 组件化实战
  • 开源及Demo

[24]再谈 Android Fragment的懒加载,再进一步!:之前的文章我们讲到ViewPager+Fragment 实现懒加载的几种方式,如果我们的Fragment比较多,又或者Fragment内部的布局比较复杂,那我们加载这样的ViewPager会不会卡顿?如果有,那可以优化吗?又有哪些优化的方案呢?

[25]自定义View,中秋节放个烟花吧~:其实烟花就是由一条条贝塞尔曲线构成。

 

[26]卡顿监控:该库通过监听主线程Looper的消息处理时间,并通过stackSampler定时采样主线程的堆栈,当检测到主线程Looper消息慢处理时,会通过Notification的方式告知用户,当用户点击卡顿详情时,会跳转到一个Web页面,以火焰图的形式展示消息处理时间内的函数运行情况。 

 

https://github.com/Knight-ZXW/BlockCanaryX

[27]玩Android客户端 Flutter版本:使用 flutter 实现的 《玩Android》客户端。

 

GitHub - RuffianZhong/FlutterApp: 使用 flutter 实现的 《玩Android》客户端 

 

转自:Android 技术周刊(第9期):27篇优质文章与项目,不要卷自己~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值