• Handler机制原理(三)Looper的源码分析

    刚看源码的时候:“这TM写的是啥?那写的又TM是啥?”研究明白了之后:“奥,原来就这点玩意儿啊,太简单了。” Looper的职责很单一,就是单纯的从MessageQueue中取出消息分发给消息对应的宿主Handler,因此它的代码不多(300行左右)。 Looper是线程独立的

    17-11-30
  • Handler机制原理(二)MessageQueue的源码分析

    看源码有一段时间了,越来越能从代码中感觉到工程师们满满的激情,无论是基础Java语法还是高级的语言特性都被发挥的淋漓尽致,写的恰到好处。分析源码的过程,何尝不是与大神们进行灵魂沟的过程。 MessageQueue属于低层类且依附于Looper,Looper外其他类不应

    17-11-30
  • 动手写Android内的计划任务定时框架

    在我讲解框架之前,我们先来看我一天中的计划需求。 计划任务: 7:30~8:30 起床8:40~9:00 去公司的路上9:10~9:30 早会10:00~11:00 技术群里吹水11:00~11:10 改了XXXActivity的变量命名(高大上的重构。懂吗?)11:10~12:00 思考中午吃什么 13:00~14:00 睡

    17-11-30
  • Android面试前准备(内存泄漏篇)

    为什么会产生内存泄漏 当一个对象已经不需要再使用本该被回收时,另外一个正在使用的对象持有它的引用从而导致它不能被回收,这导致本该被回收的对象不能被回收而停留在堆内存中,这就产生了内存泄漏。 内存泄漏对程序的影响 内存泄漏是造成应用程序OOM的主

    17-11-29
  • 2017上半年技术文章集合【Android】—184篇文章分类汇总

    地址: http://blog.csdn.net/androidstarjack/article/details/77923753 声明 | 本文是于亚豪 原创 终端研发部 前言: 2017年已经过大半,公众号里技术文章整理和归类了一下,方便给大家查找和阅读。这也是目前 发文的一个统计。 View篇: 高级UI特效之酷炫

    17-11-29
  • 告别MVP——使用Kotlin构建更适合Android的MVVM应用程序

    简书地址: http://www.jianshu.com/p/77e42aebd7bb 概述 说到MVVM,大家都会想起前端的MVVM框架,相较于前端MVVM的火热,它在移动开发领域就不那么热门了。Google在2015年才推出DataBinding框架,起步较晚,而且2015年是MVP模式爆发的一年,2016年是各种热

    17-11-28
  • Android面试前准备(基础篇)

    Activity生命周期: 启动Activity: onCreate()—onStart()—onResume(),Activity进入运行状态。 Activity退居后台: 当前Activity转到新的Activity界面或按Home键回到主屏: onPause()—onStop(),进入停滞状态。 Activity返回前台: onRestart()— onStart()

    17-11-28
  • 设计模式之四:访问者模式

    目录介绍 1.访问者模式介绍2.访问者模式定义3.访问者模式UML图4.访问者模式简单案例5.访问者模式之Android源码分析5.1 注解简单介绍5.2 注解与访问者模式关系5.3 注解与性能的关系6.访问者模式之实践6.1 介绍6.2 编译期注解之ButterKnife6.3 编译期注解之Dag

    17-11-23
  • LiveData + ViewModel + Room (Google 官文)+Demo

    原文地址:https://lovestack.github.io/2017/11/13/LiveData/demo:https://github.com/lovestack/VRMR 本指南适用于那些过去构建应用程序有基础知识,现在想知道构建强大的生产质量应用程序最佳实践和建议的体系结构的开发人员。 注意:本指南假设读者熟悉

    17-11-23
  • 你已经用 SharedPrefrence 的 apply() 替换 commit() 了吗?

    这是 面试系列 的第六期。本期我们将来探讨一个有趣的东西 —— SharePrefrence 的两种提交方式 apply() 和 commit() 。 往期内容传递: Android 面试(一):说说 Android 的四种启动模式 Android 面试(二):如何理解 Activity 的生命周期 Android 面试(

    17-11-21
  • Android 面试(五):探索 Android 的 Handler

    这是 面试系列 的第五期。本期我们将来探讨一下 Android 异步消息处理线程 —— Handler。 往期内容传递: Android 面试(一):说说 Android 的四种启动模式 Android 面试(二):如何理解 Activity 的生命周期 Android 面试(三):用广播 BroadcastReceiv

    17-11-21
  • Dagger2从入门到补胎(二)

    使用 继续学习在代码中会看到的标注:@Named、@Qualifier、@Singleton、@Scope。这四个标注包括之前学的@Inject其实不是在dagger的包中,而是javax-inject包中: 经过上篇的学习,结合@Inject、@Component、@Module、@Provides的使用,先看一个例子: City.j

    17-11-21
  • android dumpsys 快速入门

    dumpsys 属于android平台上的一个bin文件,放置在/system/bin 下面,主要完成打印系统服务的信息,帮助调试分析解决问题。 之前写的文章太长,感觉很难坚持看完,那么后续在写文章的时候,尽量讲的快一些,内容精简一些。 使用dumpsys -l 显示出来当前的服务

    17-11-20
  • 使用Kotlin构建MVVM应用程序—第二部分:Retrofit及RxJava

    简书地址: http://www.jianshu.com/p/8993b247947a 写在前面 这是使用Kotlin开发MVVM应用程序的第二部分—Retrofit及RxJava 在前一部分中我们简单了解了MVVM的基本概念和写法。如果你没有看过上一篇,请先快速浏览一遍,因为本系列是循序渐进的。可以在这里

    17-11-19
  • 使用Kotlin构建MVVM应用程序—第一部分:入门篇

    简书地址: http://www.jianshu.com/p/80926d9e64f7 写在前面 使用DataBinding已经有一年多的时间,Kotlin也写了好几个月了。在github上看了许多MVVM架构的项目(包括google的todo),但都没达到自己理想中的MVVM,可以说一千个人眼中就有一千个哈姆雷特,虽

    17-11-18
2410文