Kotlin 与 Java 语言比较

本文整理了一些 Kotlin 与 Java 语言的区别,方便从Java转型学习Kotlin的同学。

Kotlin 解决了一些 Java 中的问题

Kotlin 通过以下措施修复了 Java 中一系列长期困扰我们的问题:

Read More

Share Comments

Kotlin DSL 语法糖

Kotlin 中使用 DSL

最近发现一个使用Kotlin DSL技术来代替XML生成UI布局的工程,类似 Anko,觉得很有意思,特意复制过来,研究一下实现原理,源码在这里 layout_dsl

所谓DSL领域专用语言(Domain Specified Language),其基本思想是“求专不求全”:为专门解决某一特定问题的计算机语言,比如大家耳熟能详的 SQL 和正则表达式。

Kotlin DSL 所体现的代码结构有如下特点:链式调用,大括号嵌套,并且可以近似于英语句子。

Read More

Share Comments

JVM 堆和栈知识点积累

最近在看《深入理解Java虚拟机》,在此记录一下书中的重点,方便以后查阅。部分介绍内容来自网络。

线程独占区

Read More

Share Comments

Android Studio CPU Profiler使用

Android Studio CPU Profiler使用

CPU Profiler

谷歌的官方文档使用 CPU Profiler 检查 CPU 活动中,对CPU Profiler的功能描述是:

Read More

Share Comments

分析下载功能源码和实现

安卓下载功能分析

最近看了一份实现下载功能的代码,为了方便学习和记忆,将下载功能拆分,根据功能模块分析源码逻辑,做了一份整理:

目标

  • 1.支持多种下载api,如okhttp、HttpURLConnection
  • 2.多线程、断点续传下载,线程池支持
  • 3.下载管理:开始、暂停、继续、取消、重新开始

    Read More

Share Comments

从FrameLayout分析View测量原理

Android View测量原理

public class DecorView extends FrameLayout implements RootViewSurfaceTaker, WindowCallbacks {
//...
}

我们知道DecorView是继承自FrameLayout,而且FrameLayout本身也比较简单,所以本文打算从FrameLayout的角度来分析view的measure过程。

Read More

Share Comments

弄懂Android 源码中那些巧妙位运算

本文部分内容节选自星星笑语的文章

原码反码补码的概念

在介绍位运算符之前,我们先来看看关于反码补码等的相关知识。

  • 正数的原码反码补码相同,都是将数字转换为二进制形式,然后将高位补0。比如说对于8位来说:
    • 10所对应的原码反码补码都是 0000 1010
    • 30所对应的原码反码补码都是 0001 1110

      Read More

Share Comments

CoordinatorLayout源码解读

CoordinatorLayout

本文源码基于 27.1.1
AppBarLayout 和 CoordinatorLayout是 2015年就已经推出的Material Design控件,一直以来也是只知其一
这次通过阅读源码参考实现一个水平方向的 CoordinatorLayout和AppBarLayout组合。

Read More

Share Comments