让你了解数据加载的生命周期

原文链接 : Making loading data lifecycle aware 创建动态应用需要动态数据,但我希望在 UI 线程加载数据前就已经把事情搞定(因为一些性能问题或其他类似的)。这样的讨...

5年前 1472次阅读 阅读全文 »

TextView预渲染研究

原文链接 Android中的TextView是整个framework中最复杂的控件之一,负责Android中显示文本的大部分工作,framwork中的许多控件也直接或者间接的继承于TextView,例如Button...

5年前 1889次阅读 阅读全文 »

Gradle小知识#2:学学语法

原文链接 : Gradle tip #2: understanding syntax 在第一部分,我们聊了下Gradle中的任务以及构建过程中的不同阶段。但是,在我发布上篇文章之后我意识到在继续深入Gradle...

5年前 1160次阅读 阅读全文 »

我们为什么要用fitsSystemWindows

原文链接 : Why would I want to fitsSystemWindows? System windows 指的就是屏幕上status bar、 navigation bar等系统控件所占据的部分。 绝大多数情况下,你都不需要理...

5年前 1863次阅读 阅读全文 »

Flow和Mortar的调查

原文链接 : Architecting An Investigation into Flow and Mortar “在 App 开发过程中尽可能使用 Fragment 替代 Activity”,Google 官方的这个建议无疑让万千 Android 开...

5年前 1330次阅读 阅读全文 »

Android应用架构

Android开发生态圈的节奏非常之快。每周都会有新的工具诞生,类库的更新,博客的发表以及技术探讨。如果你外出度假一个月,当你回来的时候可能已经发布了新版本的Support L...

5年前 3030次阅读 阅读全文 »

Gradle小知识#1:tasks

原文链接 : Gradle tip #1: tasks 从这篇博文开始我打算开启关于Gradle相关知识的一些列博文。现在想想,如果我刚开始接触Gradle的时候知道这些知识的话那该多好啊。 今天...

5年前 1879次阅读 阅读全文 »

在滚动列表中播放视频

原文链接 : Implementing video playback in a scrolled list (ListView & RecyclerView) 本篇博文将会介绍如何实现在列表中播放视频,具体效果参见:Facebook,Instagram ...

5年前 1420次阅读 阅读全文 »

Android 开发生僻却实用的知识点 Part 3

欢迎大家阅读“Android 开发生僻却实用的知识点”系列博文第三部分,非常感谢各位能够关注本系列博文,以及在邮件和留言上表达的支持!

如果你是第一次阅读本系列博文:我...

5年前 4126次阅读 阅读全文 »

Kotlin在Android上令人惊叹的技巧

原文链接 : Kotlin awesome tricks for Android

我已经在这个Blog里讨论了很多Kotlin了,现在Google也正在讨论Kotlin,Kotlin 1.0 RC 已经发布了,毫无疑问,Kotlin不仅仅...

5年前 1956次阅读 阅读全文 »

使用Systrace分析UI性能

开发应用的时候,应该检查它是否有流畅的用户体验,即60fps的帧率。如果由于某种原因丢帧,我们首先要做的就是知道系统在做什么(造成丢帧的原因)。 Systrace允许你监视和...

5年前 2850次阅读 阅读全文 »

剖析OkHttp缓存机制

原文链接 : WHAT’S UNDER THE HOOD OF THE OKHTTP’S CACHE? 现在应用市场上的 App 无一不需要网络操作,这些应用的开发者大多数都选择结合使用 OkHttp 和 Retrofit 来完...

5年前 1378次阅读 阅读全文 »

APK文件的重打包

在Android应用逆向工程的系列博客中,我们已经讨论过了APK的文件格式, aapt 和 dex2jar,接下来我们介绍Apktool。 我们都知道,APK的资源文件是经过压缩以二进制的格式存储...

5年前 4537次阅读 阅读全文 »

开发安全的Android应用

原文链接 : Develop a secured Android application 安卓应用已经广泛用于处理非常敏感的信息。保证用户的信息不被居心叵测的人轻易截获是每个Android开发者的责任。“开放...

5年前 2581次阅读 阅读全文 »

软件架构模式

5年前 2181次阅读 阅读全文 »

创建一个 RecyclerView LayoutManager – Part 1

5年前 1170次阅读 阅读全文 »

使用TDD的方式开发一个Hackernews客户端

5年前 1441次阅读 阅读全文 »

通过Jenkins并行完成UI的自动化测试

5年前 1635次阅读 阅读全文 »

Android 中的 AOP 编程

5年前 1645次阅读 阅读全文 »

创建 RecyclerView LayoutManager – Part 2

5年前 2066次阅读 阅读全文 »

开发第一个应用之前你需要知道的六件事

5年前 3383次阅读 阅读全文 »

ListView或者RecycleView滚动时隐藏Toolbar (1)

5年前 1897次阅读 阅读全文 »

数据绑定(Data Binding)-Part1

5年前 1302次阅读 阅读全文 »

利用Retrofit和RxJava实现服务器轮询和出错重试

5年前 3102次阅读 阅读全文 »

如何修复编译时的MultiDex崩溃

5年前 1289次阅读 阅读全文 »

RxJava开发精要5 - Observables变换

在上一章中,我们探索了RxJava通用过滤方法。我们学习了如何使用filter()方法过滤我们不需要的值,如何使用take()得到发射元素的子集,如何使用distinct()函数来去除重复的...

5年前 3249次阅读 阅读全文 »

Android主题动态切换开源库Prism基本原理2-搭配ViewPager使用

5年前 2010次阅读 阅读全文 »

深入了解Bundle和Map

5年前 1842次阅读 阅读全文 »

欢迎来到Android多进程时代

5年前 1450次阅读 阅读全文 »

APPENDIX A #

5年前 1520次阅读 阅读全文 »