[1]关于 MVI,我想聊的更明白些:这期专为 MVI 打磨一篇 “通俗易懂、看完便理解来龙去脉、并能活学活用”,相信阅读后你会耳目一新。

[2]探究ANR原理,是谁控制了ANR的触发时机:anr的触发时机有很多种,基本分为以下几点:

  • 输入事件:5s内无响应,如屏幕触碰事件;
  • 广播:执行前台广播(BroadcastReceiver)的onReceive()方法时10s没有处理完成,后台广播的超时时间为60s;
  • Service:前台Service20s内没有执行完毕;后台Service200s内没有执行完毕;
  • ContentProvider:10s内ContentProvider的publish未执行完;

从上面4点来看,每一种触发的时机都是在规定的时间内,看你消不消费得完自身的事件,而本文所探讨的问题就是,这些时间是由谁来制定,并且Anr的核心点在哪里。

[3]K2 编译器是什么?世界第二高峰又是哪座?:故众所周知,Kotlin团队正在开发新版Kotlin编译器,并命名为K2。那么K2又是什么意思呢?难道是Kotlin第二版编译器的意思?

 

[4]开发你的第一个 Kotlin 编译器插件:之前简单介绍了Kotlin编译器的主要结构以及K2编译器是什么,在此基础上,我们一起来看下如何开发第一个Kotlin编译器插件(即KCP)。

我们要实现的目标很简单,就是给所有添加了@DebugLog注解的方法,在方法执行前后打印一行日志。

[5]Google 为何把 SurfaceView 设计的这么难用?

  • 不支持 transform 动画;
  • 不支持半透明混合;
  • 移动,大小改变,隐藏/显示操作引发的各种问题;

最终我尝试走近这片迷雾,并一点点去思考下列问题的答案:

  • SurfaceView 的设计初衷是为了解决什么问题?
  • 实际开发中,SurfaceView 这么 难用 的根本原因是什么?
  • 为了解决这些问题,Google 的工程师进行了哪些 尝试 ?

 

[6]为什么推荐使用Jetpack CameraX?:CameraX在Camera2的基础上进行了高度的封裝和对大量设备进行了兼容性的处理,使得CameraX拥有了很多优势。

  • 易用性,采用封装的API可以高效达到目标
  • 设备一致性,不用在乎版本,忽略设备硬件差异带来的开发区别,达到一致的开发体验
  • 新的相机体验,通过效果扩展可以实现和原生相机一样的美颜等拍摄功能

 

[7]羡慕大劳星空顶?不如跟我一起使用 Jetpack compose 绘制一个星空背景(带流星动画):某日深夜,看完电影后,顺手打开了豆瓣的 书影音记录 这个功能,起初并没有注意到这个页面的背景有什么东西,我以为只是一个普通的深色背景而已,直至一道流星突然划过屏幕!这么漂亮的背景,不仿写一下真的对不起它了! 

[8]给 compose draw 绘制的非规则图形添加点击监听:在这篇文章中,我们依然从实例出发,介绍怎么为自定义绘制图案添加触摸监听,特别是一些"奇形怪状"的异形图案应该怎么判断触摸坐标。 

[9]Android自定义View--视差动画 

[10]Compose自定义实战:打算用Compose写玩安卓大家可以去好好学习一波,接下来我们跟着官网走,原理案例基于官网,写的效果高于官网。 [11]Android性能优化 - 捕获java crash的那些事:虽然说我们在开发过程中会遇到各种各样的crash,但是这个crash是如果产生的呢?我们来探讨一下一个crash是如何诞生的!

[12]TheRouter 页面跳转源码分析:TheRouter是货拉拉开源的 Android 平台中对页面、服务模块化整合开发、提供路由功能的中间件,提倡的是简单且够用。

从最常用的跳转开始分析,基本可了解到 TheRouter 的运转原理。

[13]记参加 2022 Google开发者大会:可以羡慕一下别人~

 

[14]Android性能优化-线程监控与线程统一:在历史性长,结构复杂的app中,线程数会达到好几百个甚至更多,然而过多的线程不仅仅带来了内存上的消耗同时也降低了cpu调度的效率。

现在比较流行的方案是通过字节码插桩的方式,统一做线程监控亦或进行线程统一,比如监控处理的matrix,还有优化相关的booster等,下面我们进行探讨。

[15]Android性能优化 - plt hook 与native线程监控:我们在android超级优化-线程监控与线程统一可以知道,我们能够通过asm插桩的方式,进行了线程的监控与线程的统一,但是这个只局限在java层线程的控制,如果我们项目中存在着native库,或者存在着很多其他so库,那么native层的线程我们如何监控呢?

 

 

转自:竹白

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐