从 Linux 到 Android 线程调度

起因最近我们的 APM 上线了应用卡顿的性能检测,我们使用的是和 BlockCanary 同样的方案,通过 Looper Printer 去监控应用的卡顿。在收集到线上数据以后,发现一个比较怪异的现象,大量的卡顿的情况下,当前执行线程(主线程)的执行时间其实并不长,主线程只执行了几毫秒,但是却卡顿1s甚至更长的时间。很明显这个时候是由于主线程没有抢占到CPU导致,为了搞清楚为什么主线程没有抢到CP

Read More

Comments

Kotlin 迷人的语言特性(下)

在上一篇文章,我们介绍了 Kotlin 许多迷人的语言特性,包括空安全、类型推断、操作符重载等等,接下来我们继续领略 Kotlin 给我们带来的迷人特性。 委托属性Kotlin 没有字段(field)的概念,只有属性,Kotlin 为所有的属性自动生成 Setter 和 Getter 方法(常量只有 Getter)方法,对 Kotlin 属性的设置和访问,也都是通过 Setter 和 Getter

Read More

Comments

Kotlin 迷人的语言特性(上)

Kotlin 今天能够被大家所广泛认识,当然是要依赖于 Google 在 I/O 大会上力挺的结果,然而支撑 Kotlin 从众多语言中脱颖而出的是,它作为一门现代语言,吸收了许多现代语言所有的非常棒的特性,正是这些迷人的语言特性加上 Android 开发的无缝对接,让 Kotlin 一下击败 Java,俘获了大多数 Android 程序员的芳心。 空安全空安全是 Kotlin 送给 Androi

Read More

Comments

玩转 Kotlin 委托属性

tags: Kotlin Kotlin 属性要讲 Kotlin 的委托属性,要先从 Kotlin 的属性说起,当然关于属性的定义就不多介绍了。这里介绍一下 Kotlin 区别于 Java 独有的 back field 的概念。用过 Kotlin 的人都知道,Kotlin 的属性是天生带 Setter/Getter 方法的,不过如果要重写他们的话,写法有所不同。

Read More

Comments

Swift vs. Kotlin 漫谈之函数定义

tags: Kotlin, Swift Kotlin 君和 Swift 君在一个团队一起开发已经很久了,由于平台的差异性,他们经常会进行一些技术上的交流(PK),「Kotlin vs. Swift」课程就是他们在互相切磋是的语录。

Read More

Comments

Swift vs. Kotlin 之变量定义

tags: Kotlin, Swift Kotlin 君和 Swift 君在一个团队一起开发已经很久了,由于平台的差异性,他们经常会进行一些技术上的交流(PK),「Kotlin vs. Swift」课程就是他们在互相切磋是的语录。

Read More

Comments