【Android 源码解析】
文章平均质量分 95
鸿洋_
关注领域:JavaEE,Android,Javascript,HTML5,MySQL,Hadoop,Linux
展开
-
Android开发太难了:Java Lambda ≠ Android Lambda (上)
本文已授权个人公众号「鸿洋」原创发布。我又来了,继续回归写作中,目标 1 月 2 篇。需要两篇才能阐述清楚Java Lambda ≠ Android Lambda,本篇为上篇,先解释清楚 Java Lambda 的一些知识。耐心阅读本文,你一定会有收获。一、Java Lambda 不等于 匿名内部类测试环境JDK8。首先我们看一段比较简单的代码片段:public class TestJavaAnonymousInnerClass { public void test() { .原创 2022-01-11 20:06:46 · 10731 阅读 · 15 评论 -
Android 避坑指南:Gson 又搞了个坑!
这是我之前项目同学遇到的一个问题,现实代码比较复杂,现在我将尽可能简单的描述这个问题,并且内容重心会放在预防阶段。一、问题的起源先看一个非常简单的model类Boy:public class Boy { public String boyName; public Girl girl; public class Girl { public String girlName; }}项目中一般都会有非常多的model类,比如界面上的每个卡片,都是解析S原创 2021-01-31 17:52:41 · 12901 阅读 · 10 评论 -
Android避坑指南,Gson与Kotlin碰撞出一个不安全的操作
本文已经授权「鸿洋」公众号原创首发。最近发现微信多了个专辑功能,可以把一系列的原创文章聚合,刚好我每周都会遇到很多同学问我各种各样的问题,部分问题还是比较有意义的,我会在周末详细的写demo验证,简单扩展一下写成文章分享给大家。当然不鼓励大家随便私聊我问问题,大家可以去星球提问,公众号后台回复「星球」就能看到入口了,那里有5000多人,我毕竟还是有工作要忙。先看一个问题来一起看一段代码:public class Student { private Student() { .原创 2020-06-08 23:37:49 · 18947 阅读 · 17 评论 -
Android UI 线程更新UI也会崩溃???
本文已经授权公众号「鸿洋」原创首发。大家好,我是鸿洋。上个周末是双休,我决定来颠覆一下大家的认知。在平时的Android开发中,如果一个新手遇到一个这样的错:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy ca...原创 2020-04-19 22:48:19 · 19265 阅读 · 13 评论 -
Android 框架练成 教你打造高效的图片加载框架
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41874561,本文出自:【张鸿洋的博客】1、概述优秀的图片加载框架不要太多,什么UIL , Volley ,Picasso,Imageloader等等。但是作为一名合格的程序猿,必须懂其中的实现原理,于是乎,今天我就带大家一起来设计一个加载网络、本地的图片框架。有人可能会说,自己原创 2014-12-12 09:29:07 · 102387 阅读 · 107 评论 -
Android EventBus源码解析 带你深入理解EventBus
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40920453,本文出自:【张鸿洋的博客】上一篇带大家初步了解了EventBus的使用方式,详见:Android EventBus实战 没听过你就out了,本篇博客将解析EventBus的源码,相信能够让大家深入理解该框架的实现,也能解决很多在使用中的疑问:为什么可以这么做?为什么原创 2014-11-08 15:57:14 · 118535 阅读 · 63 评论 -
Android 框架炼成 教你如何写组件间通信框架EventBus
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41096639 ,本文出自:【张鸿洋的博客】1、概述关于Eventbus的介绍,前面已经有两篇:Android EventBus实战 没听过你就out了和Android EventBus源码解析 带你深入理解EventBus , 如果你觉得还有问题,没关系,接下来我带大家手把手打造原创 2014-11-20 09:27:58 · 32065 阅读 · 37 评论 -
Android 属性动画(Property Animation) 完全解析 (下)
上一篇Android 属性动画(Property Animation) 完全解析 (上)已经基本展示了属性动画的核心用法:ObjectAnimator实现动画,ValueAnimator实现动画,AnimatorSet的使用等~当然了属性动画还有一部分的知识点,也能做出很不错的效果,将在本篇博客为您展示~1、如何使用xml文件来创建属性动画大家肯定都清楚,View Animator 、Drawab原创 2014-07-26 09:14:19 · 101662 阅读 · 40 评论 -
Android LayoutInflater深度解析 给你带来全新的认识
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38171465 , 本文出自:http://blog.csdn.net/lmj623565791/article/details/381714651、 题外话 相信大家对LayoutInflate都不陌生,特别在ListView的Adapter的getView方法中基本都会出现,原创 2014-07-28 13:36:51 · 55828 阅读 · 50 评论 -
Android Drawable 那些不为人知的高效用法
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43752383,本文出自:【张鸿洋的博客】1、概述Drawable在我们平时的开发中,基本都会用到,而且给大家非常的有用。那么什么是Drawable呢?能够在canvas上绘制的一个玩意,而且相比于View,并不需要去考虑measure、layout,仅仅只要去考虑如何draw(c原创 2015-02-26 09:21:13 · 192135 阅读 · 65 评论 -
Android 源码解析 之 setContentView
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41894125,本文出自:【张鸿洋的博客】大家在平时的开发中,对于setContentView肯定不陌生,那么对其内部的实现会不会比较好奇呢~~~有幸终于能看到一些PhoneWindow神马的源码,今天就带大家来跑一回源码~~1、Activity setContentView首先原创 2014-12-16 15:19:52 · 37600 阅读 · 26 评论 -
Android 属性动画 源码解析 深入了解其内部实现
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/42056859,本文出自:【张鸿洋的博客】1、概述Android中想做很炫酷的动画效果,相信在很多时候你都可以选择使用属性动画,关于属性动画如何使用,我们已经很详细的写过两篇博客讲解。如果你还不了解,请参考:Android 属性动画(Property Animation) 完全解析原创 2014-12-25 11:05:00 · 29357 阅读 · 22 评论 -
Android Context 上下文 你必须知道的一切
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40481055,本文出自:【张鸿洋的博客】本文大多数内容翻译自:http://www.doubleencore.com/2013/06/context/ 我重新组织了下内容以及结构,建议大家尽可能看下原文。1、Context概念其实一直想写一篇关于Context的文章,但是又怕技翻译 2015-01-05 09:21:59 · 239234 阅读 · 84 评论 -
Android 自定义控件 优雅实现元素间的分割线 (支持3.0以下)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/42407923 ,本文出自:【张鸿洋的博客】1、概述话说,随着Android SDK版本的升级,很多控件增加了新的属性方便我们的使用,比如LinearLayout中多了:divider、showDividers等,用于为其内部元素添加分隔;但是呢,这样的属性在较低版本的SDK中不能原创 2015-01-08 09:58:04 · 53583 阅读 · 56 评论 -
Android 热修复 Tinker Gradle Plugin解析
一、概述前面写了两篇分析了tinker的loader部分源码以及dex diff/patch算法相关解析,那么为了保证完整性,最后一篇主要写tinker-patch-gradle-plugin相关了。 (距离看的时候已经快两个月了,再不写就忘了,赶紧记录下来)注意: 本文基于1.7.7前两篇文章分别为:Android 热修复 Tinker接入及源码浅析 An原创 2017-05-23 23:13:53 · 42763 阅读 · 12 评论 -
滴滴插件化方案 VirtualApk 源码解析
本文已在我的公众号hongyangAndroid原创首发。 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/75000580 本文出自张鸿洋的博客 本文已在我的公众号hongyangAndroid原创首发,文章合集。一、概述之前一直没有写过插件化相关的博客,刚好最近滴滴和360分别开源了自家的插件原创 2017-07-12 00:03:04 · 54515 阅读 · 56 评论 -
Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38377229 ,本文出自【张鸿洋的博客】很多人面试肯定都被问到过,请问Android中的Looper , Handler , Message有什么关系?本篇博客目的首先为大家从源码角度介绍3者关系,然后给出一个容易记忆的结论。1、 概述Handler 、 Looper 、Mess原创 2014-08-07 09:17:40 · 237921 阅读 · 148 评论 -
Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38476887 ,本文出自【张鸿洋的博客】上一篇博客介绍了Android异步消息处理机制,如果你还不了解,可以看:Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系 。那篇博客的最后,提出可以把异步消息处理机制不仅仅是在MainAc原创 2014-08-11 00:47:03 · 67681 阅读 · 73 评论 -
Android aidl Binder框架浅析
1、概述Binder能干什么?Binder可以提供系统中任何程序都可以访问的全局服务。这个功能当然是任何系统都应该提供的,下面我们简单看一下Android的Binder的框架Android Binder框架分为服务器接口、Binder驱动、以及客户端接口;简单想一下,需要提供一个全局服务,那么全局服务那端即是服务器接口,任何程序即客户端接口,它们之间通过一个Binder驱动访问。服务器端接口:实际原创 2014-08-11 09:05:30 · 50272 阅读 · 55 评论 -
Android 百分比布局库(percent-support-lib) 解析与扩展
Google终于开始支持百分比的方式布局了,瞬间脉动回来,啊咧咧。对于这种历史性的时刻,不出篇博客难以表达我内心的激动。,本文分为3个部分:PercentRelativeLayout、PercentFrameLayout的使用、对上述控件源码分析、自定义PercentLinearLayout。原创 2015-06-30 15:20:24 · 188385 阅读 · 187 评论 -
Android HandlerThread 完全解析
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47079737; 本文出自:【张鸿洋的博客】1、概述话说最近股市变动不变,也成了热火朝天的话题。不知道大家有没有考虑做个实时更新股市数据的app呢?假设我们要做一个股市数据实时更新的app,我们可以在网上找个第三方的股市数据接口,然后在我们的app中每隔1分钟(合适的原创 2015-07-27 09:02:20 · 162640 阅读 · 102 评论 -
Android 增强版百分比布局库 为了适配而扩展
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46767825; 本文出自:【张鸿洋的博客】一 概述上周一我们发布了Android 百分比布局库(percent-support-lib) 解析与扩展中对percent-support这个库进行了解析和添加了PercentLinearLayout的支持。原创 2015-07-06 09:11:08 · 175193 阅读 · 168 评论 -
Android IntentService完全解析 当Service遇到Handler
Android 基于Message的进程间通信 Messenger完全解析 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47143563; 本文出自:【张鸿洋的博客】一 概述大家都清楚,在Android的开发中,凡是遇到耗时的操作尽可能的会交给Service去做,比如我们上传多张图,上传的过程用原创 2015-07-30 08:49:45 · 80812 阅读 · 62 评论 -
Android 基于Message的进程间通信 Messenger完全解析
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46858663; 本文出自:【张鸿洋的博客】一、概述说到Android进程间通信,大家肯定能想到的是编写aidl文件,然后通过aapt生成的类方便的完成服务端,以及客户端代码的编写。如果你对这个过程不熟悉,可以查看Android aidl Binder框架浅析;当然今原创 2015-07-23 09:58:39 · 103055 阅读 · 87 评论 -
Android DiskLruCache 源码解析 硬盘缓存的绝佳方案
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47251585; 本文出自:【张鸿洋的博客】一、概述依旧是整理东西,所以近期的博客涉及的东西可能会比较老一点,会分析一些经典的框架,我觉得可能也是每个优秀的开发者必须掌握的东西;那么对于Disk Cache,DiskLruCache可以算佼佼者了,所以我们就来分析下其原创 2015-08-03 09:35:55 · 48415 阅读 · 36 评论 -
Volley 图片加载相关源码解析
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47721631; 本文出自:【张鸿洋的博客】一 概述在使用Volley作为图片加载库的时候,肯定需要做以下几件事:Application中初始化Volley请求队列初始化ImageLoader,需要设置ImageCache需要的时候,调用 getInstance原创 2015-08-17 10:32:19 · 30105 阅读 · 32 评论 -
Android AdapterView View的复用机制 分析
对于ListView、GridView相信大家都不陌生,重写个BaseView,实现对于的几个方法,然后就完成了我们的界面展示,并且在大部分情况下,我们加载特别多的Item也不会发生OOM,大家也都明白内部有缓存机制,都遇到过ItemView复用带来的一些问题,比如异步加载图片,最终造成界面显示的混乱,我们一般会使用setTag,然后回调显示时,避免造成混乱。设想1:拿ListView为例,如原创 2014-04-23 00:21:09 · 45492 阅读 · 44 评论 -
Android 属性动画(Property Animation) 完全解析 (上)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/380674751、概述Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View Animation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的局限性。比如原创 2014-07-25 09:34:10 · 369869 阅读 · 93 评论 -
Android Fragment 真正的完全解析(下)
上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上)。本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创建对话框,如何与ActionBa原创 2014-07-21 09:09:56 · 296457 阅读 · 236 评论 -
Android Fragment 真正的完全解析(上)
自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务;以及Fragment的一些特殊用途,例如:没有布局的Frag原创 2014-07-20 11:22:09 · 896183 阅读 · 333 评论 -
Android 官方推荐 : DialogFragment 创建对话框
1、 概述DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。2、 好处与用法使用DialogFr原创 2014-07-15 17:17:04 · 267245 阅读 · 105 评论 -
Android ViewGroup事件分发机制
上一篇已经完整的解析了Android View的事件分发机制,今天给大家代码ViewGroup事件分发的源码解析~~凡是自定义ViewGroup实现各种滑动效果的,不可避免的会出现很多事件的冲突,对ViewGroup事件分发机制的了解,也有益于大家了解冲突产生的原因,以及对冲突进行处理~1、案例首先我们接着上一篇的代码,在代码中添加一个自定义的LinearLayout:package com.ex原创 2014-09-09 09:38:03 · 97817 阅读 · 59 评论 -
Android View 事件分发机制 源码解析 (上)
一直想写事件分发机制的文章,不管咋样,也得自己研究下事件分发的源码,写出心得~首先我们先写个简单的例子来测试View的事件转发的流程~1、案例为了更好的研究View的事件转发,我们自定以一个MyButton继承Button,然后把跟事件传播有关的方法进行复写,然后添加上日志~MyButtonpackage com.example.zhy_event03;import android.conte原创 2014-09-02 09:32:38 · 77041 阅读 · 53 评论 -
Android AsyncTask 源码解析
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38614699,本文出自:【张鸿洋的博客】1、概述相信大家对AsyncTask都不陌生,对于执行耗时任务,然后更新UI是一把利器,当然也是替代Thread + Handler 的一种方式。如果你对Handler机制还不了解,请看:Android 异步消息处理机制 让你深入理解 Lo原创 2014-08-18 09:10:35 · 34095 阅读 · 30 评论 -
Android base-adapter-helper 源码分析与扩展
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/44014941,本文出自:【张鸿洋的博客】1. 功能介绍1.1. base-adapter-helperbase-adapter-helper 是对我们传统的BaseAdapter的ViewHolder的模式的一个抽象。主要功能就是简化我们在书写AbsListVi原创 2015-03-02 10:28:41 · 38100 阅读 · 48 评论