- 博客(14)
- 收藏
- 关注
原创 CoordinatorLayout系列
最近博主由于项目原因研究了一下android.support.design.widget包中的CoordinatorLayout。这篇文章从源码上简单分析一下这个控件的实现。 一句话总结,这个控件的特点是能够协调子view的行为。
2016-07-15 17:24:56
535
原创 fresco系列一 异步框架的设计与实现
fresco开篇文章介绍到,因为java.util.concurrent包中的future类只有两个结果,在表现图片连续loading的时候能力不足。因此fresco自己实现了一套异步框架。 这篇文章分析下fresco这套异步框架的设计与实现。 代码版本0.10.0 代码仓库: https://github.com/facebook/fresco 要分析一个异步框架,就要找
2016-06-14 21:30:34
1254
原创 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
487
原创 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
1808
原创 react-native源码分析系列四 ReactRootView
这篇文章分析一下ReactRootView类 主要focus在touch的处理上。 ReactRootView.java public class ReactRootView extends SizeMonitoringFrameLayout implements RootView /////////***** RootView.java public interface
2015-12-13 20:09:06
4076
原创 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
3733
原创 react-native源码分析系列二
接上篇。从ReactInstanceManager的createReactContext函数开始分析。 ReactInstanceManager.java /** * @return instance of {@link ReactContext} configured a {@link CatalystInstance} set */ private ReactApplicat
2015-12-13 01:34:12
1376
原创 android volley缓存设计分析
本文学习一下volley的缓存设计写法。 首先看下哪些类使用了cache。 Cache.java public 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
631
原创 react-native源码分析系列一
react-native源码目前我看到过的最好的分析文章是qq空间分析的这篇。 http://zhuanlan.zhihu.com/magilu/20259704 不得不说大厂推出的分析确实牛逼,逻辑清晰。 不过由于博主自己也读过源码,也做过一些分析,因此准备将这些分析整理一下放出来(这个系列会比较长。 react-native 官网https://github.com/facebook/
2015-12-08 14:34:41
2434
原创 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
3374
原创 分享学习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
762
原创 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
891
原创 知乎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
727
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人