- 博客(14)
- 收藏
- 关注
原创 CoordinatorLayout系列
最近博主由于项目原因研究了一下android.support.design.widget包中的CoordinatorLayout。这篇文章从源码上简单分析一下这个控件的实现。一句话总结,这个控件的特点是能够协调子view的行为。
2016-07-15 17:24:56 503
原创 fresco系列一 异步框架的设计与实现
fresco开篇文章介绍到,因为java.util.concurrent包中的future类只有两个结果,在表现图片连续loading的时候能力不足。因此fresco自己实现了一套异步框架。这篇文章分析下fresco这套异步框架的设计与实现。代码版本0.10.0代码仓库: https://github.com/facebook/fresco要分析一个异步框架,就要找
2016-06-14 21:30:34 1218
原创 fresco开篇
一篇介绍fresco的文章。需翻墙。https://code.facebook.com/posts/366199913563917/introducing-fresco-a-new-image-library-for-android/一 fresco解决图片内存的方法。二 fresco的数据流设计。其它:fb实现了AnimatedDrawable来更好的支持动画。fb实现了mvc架构来实现图片显示。
2016-06-14 17:48:53 460
原创 react-native源码分析系列五 绘制js组件
上篇分析了负责分发touch的ReatRootView,这篇文章继续分析view的绘制。react-native绘制view的思路是将js写的控件映射到native的控件,通过addView之类的函数将js的控件添加到reactRootView.首先看一个我个人项目中的例子。ui长这样。用ddms的hierarchy view抓一下看一下。可以看到有Reac
2015-12-15 23:43:54 1763 1
原创 react-native源码分析系列四 ReactRootView
这篇文章分析一下ReactRootView类 主要focus在touch的处理上。ReactRootView.javapublic class ReactRootView extends SizeMonitoringFrameLayout implementsRootView /////////*****RootView.javapublic interface
2015-12-13 20:09:06 3995
原创 react-native源码系列三 native c++代码到js代码
上篇文章追踪runApplication函数到c++层,这篇文章分析一下c++与js的通信代码。基础知识 Android系统加载JNI Lib的方法 Android系统加载JNI Lib的方法有如下两种: 1) 通过JNI_OnLoad 2) 如果JNI Lib没有定义JNI_OnLoad,则dvm调用dvmResolveNativeMethod进行动态
2015-12-13 17:20:18 3651
原创 react-native源码分析系列二
接上篇。从ReactInstanceManager的createReactContext函数开始分析。ReactInstanceManager.java/*** @return instance of {@link ReactContext} configured a {@link CatalystInstance} set*/private ReactApplicat
2015-12-13 01:34:12 1333
原创 android volley缓存设计分析
本文学习一下volley的缓存设计写法。首先看下哪些类使用了cache。Cache.javapublic interface Cache {public Entry get(String key);public void put(String key, Entry entry);public void initialize();public void invalid
2015-12-13 00:13:24 596
原创 react-native源码分析系列一
react-native源码目前我看到过的最好的分析文章是qq空间分析的这篇。http://zhuanlan.zhihu.com/magilu/20259704不得不说大厂推出的分析确实牛逼,逻辑清晰。不过由于博主自己也读过源码,也做过一些分析,因此准备将这些分析整理一下放出来(这个系列会比较长。react-native 官网https://github.com/facebook/
2015-12-08 14:34:41 2394
原创 android jockeyjs库对webview的封装
jockeyjs库对h5和native代码交互做了优美的封装。你可以写出像下面这种风格的代码,本文对它的实现做一个分析。//Listen for an event from JavaScript and log a message when we have receied it.jockey.on("event-name", new JockeyHandler() { @Ov
2015-12-08 11:18:53 3335
原创 分享学习scala时看到scala仅仅使用ifthenelse构造出boolean类型的精妙代码
abstract class Boolean{ def ifThenElse[T](t: => T,e: => T): T def && (x: => Boolean): Boolean=ifThenElse(x,false) ... def == (x: Boolean): Boolean=ifThenElse(x,x.unary_!)}object true e
2015-12-06 18:14:31 734
原创 square的leakcanary库实现分析
Squareup大神公司出品的著名android检测内存泄漏的库,这里不介绍用法。官网地址https://github.com/square/leakcanary。官方说明了实现原理。1 crefWatcher.watch() reates a KeyedWeakReference to the watched object.2 Later, in a backgrou
2015-12-06 17:14:38 866
原创 知乎android客户端drawer布局探究
最近我的个人项目react-online-news用到drawer布局。https://github.com/xiaoshenke/React-Online-News欢迎star fork。在drawer的navigation部分设计界面的时候参考了知乎。至于实现部分,我准备在点击navigation的item的时候,弹出对应activity。但是当我仔细观察知乎的这几个页
2015-12-03 11:21:34 699
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人