最新文章

Android IPC 机制

本文为《Android 开发艺术探索》 第二章IPC机制 笔记及实践 文章中涉及的代码:https://github.com/pqpo/ServiceAndIpcDemo  建议先clone一份到本地,运行起来之后再继续阅读。 其中项目中包括Service生命周期的部分不在本文 讨论范围之内,并且只演示了使用Binder进行进程间通讯,其他方式比较简单。 IPC:Inter-Process Com […]

JVM内存结构与内存溢出异常

本文为《深入理解Java虚拟机》读书笔记,加入了一些自己的见解。 Jvm内存溢出异常就是我们常说的OOM,即java.lang.OutOfMemoryError,当然还包括java.lang.StackOverflowError。 那么它和内存泄漏有什么区别与联系呢? 对于内存泄漏,维基百科的定义是:在计算机科学中,内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。 对应于Java虚拟机 […]

Tinker接入及源码分析(三)

该系列文章分析基于 Tinker1.7.6 版本 Tinker项目地址:https://github.com/Tencent/tinker Tinker接入及源码分析(一):简单介绍以及如何接入 Tinker接入及源码分析(二):加载补丁源码分析 Tinker接入及源码分析(三):合成补丁源码分析 上篇文章分析了加载补丁的源码,本篇文章会继续分析tinker初始化过程以及合成补丁的过程。 之前也说 […]

Tinker接入及源码分析(二)

该系列文章分析基于 Tinker1.7.6 版本 Tinker项目地址:https://github.com/Tencent/tinker Tinker接入及源码分析(一):简单介绍以及如何接入 Tinker接入及源码分析(二):加载补丁源码分析 Tinker接入及源码分析(三):合成补丁源码分析 上篇文章简单的介绍了Tinker的使用:《Tinker接入及源码分析(一)》 再次推荐大家阅读官方w […]

Tinker接入及源码分析(一)

该系列文章分析基于 Tinker1.7.6 版本 Tinker项目地址:https://github.com/Tencent/tinker Tinker接入及源码分析(一):简单介绍以及如何接入 Tinker接入及源码分析(二):加载补丁源码分析 Tinker接入及源码分析(三):合成补丁源码分析 现在市面上有很多Android热修复框架,包括开源的,未开源的和即将开源的。阿里巴巴的AndFix, […]

Android 单元测试实践

单元测试是什么 单元测试 是针对 程序的最小单元 来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。一个单元可能是单个程序、类、对象、方法等。 ——维基百科 为什么要做单元测试 卖个关子,看完文章自然就知道了 原来和很多人一样并没有写单元测试的习惯,写好一个功能模块之后直接在真机上做自测,看看刚写的功能是否和预期一致,如果不一致,从头debug找问题出在哪儿,没问题就提交测试,测试测出问 […]

当百度定位遇上RxJava

在项目中引入RxJava之后,得益于RxJava的各种优势,比如线程切换,避免死亡式回调,方便的数据流处理等等,便希望将所有用到回调的地方都用RxJava重写一遍。一大批使用RxJava的开源项目如雨后春笋般应运而生,RxBinding,RxBus,RxLifecycle,RxActivityResult,RxCache… 原项目中使用百度定位作为应用的定位服务,定位成功后通过回调的形 […]

手牵手教你写IntelliJ Idea插件:MvpGenerator

上一篇文章写了:如何将原项目重构成MVP模式 实际使用中发现每次新建一个页面,都需要另外建三个类,分别是Contract,Model,Presenter,着实是一项枯燥无味的体力活。 当遇到这种事情的时候,最先想到的就是能不能写一段代码来做这件事。 上网一搜,果然已经有人做好了:Android Studio插件之MVPHelper,一键生成MVP代码,非常感谢这位大兄弟。 赶紧按他的步骤试了一遍, […]

如何将原项目重构成MVP模式

最近在做公司项目的重构工作,主要重构点包括: 网络请求框架由 HttpURLConnection + Handler 改为 Retrofit + OkHttp + RxJava 事件通知由 安卓广播 改为 RxBus 图片加载框架由 ImageLoader 改为 Glide 代码优化(瘦身,内存泄漏分析等) 将传统Activity作为God Object的MVC模式 改为兼容原代码的MVP模式 & […]

沉浸式状态栏解决方案

【转】伴随着 Android 5.0 发布的 Material Design,让 Android 应用告别了以前的工程师审美,迎来了全新的界面,灵动的交互,也让越来越多的 App 开始遵从 material design 设计原则,不再是以前拿着iOS设计稿,做着Android开发。本文就其中的沉浸式状态栏这一特性,描述其兼容到4.4的实现,以及一些使用中的小细节。 前言 在4.4之前状态栏一直是 […]