Android Architecture Components应用架构组件源码详解(基于1.0以上)(第二篇ViewModel和LiveData)

熟悉mvp模式的小伙伴应该都清楚,m->Model,v->View,p->presenter, p层调用model层的业务处理,将结果通过接口返回给View层,而此处所介绍的ViewModel用法有点类似与p层,只不过你要把业务处理...

2017-11-29 14:56:13

阅读数 3050

评论数 4

跑马灯在RecyclerView上ItemView上最简单的实现方式(解决焦点抢占,同时播放多个跑马灯)

public class RollTextView extends android.support.v7.widget.AppCompatTextView { public RollTextView(Context context) { super(context); ...

2019-03-13 17:36:53

阅读数 52

评论数 0

从源码角度理解Fragment的setUserVisibleHint方法的妙用

说到setUserVisibleHint的用法,网上有一大堆,这里简单介绍一下,在你切换Fragment的时候,不管Frament有没么有创建View,都会调用这个方法: @Override public void setUserVisibleHint(boolean isVisib...

2019-03-06 16:47:16

阅读数 87

评论数 0

Ndk系列之CmakeList常用内置命令用法详解

message命令: 用途:​​​​用于输出打印信息。 范例:message(“Hello World”)。 include_directories命令: 用途:引入某目录的所有的头文件,加载静态库或动态库的时候,使用时需要引入头文件。 范例:include_directories( ...

2018-12-17 11:12:43

阅读数 69

评论数 0

android分页框架Paging源码分析

如果你还没用过Paging的话,很正常,毕竟现在用的并不多,做为android的开发人员分页的做法我们习惯写一个自定义控件,下拉的时候刷新(请求接口的页数置为1),上拉加载更多(请求接口数据页数实现累加)。然而,一种新的框架出来,我们应该尽可能的去了解它的架构,吸取人家谷歌工程师的代码精华。 好...

2018-12-14 17:33:19

阅读数 75

评论数 0

从饿了吗框架Hermes探讨跨进程通信方案的思想

  谈到跨进程,你首先想到的就是AIDL技术,也就是android中传说中利用了Binder技术实现跨进程通信,当然你也可以用Messenger类实现跨进程开发简单粗暴,或者你感觉不过瘾,也可以直接继承Binder自己实现Binder扩展通信。 不管你采用那种方案,你如果要在android种实...

2018-11-07 17:02:25

阅读数 240

评论数 0

android5.0协调布局CoordinatorLayout(第三篇BottomSheetBehavior源码详解)

在开始看源码之前,咱们先来重温一下RecycleView是怎么将触摸事件传到CoordinatorLayout问它消不消耗事件的!根据事件的分发机制是从Activity的(dispatchTouchEvent)事件开始传入给PhoneWindow的DecorView的(dispatchTouchE...

2018-09-14 16:38:50

阅读数 313

评论数 0

面试之为什么Handler会存在内存泄露

这两天面试被问到Handler的通信机制,这个问题还是很好回答的,Handler负责发送消息和在handleMessage方法中处理消息,它将消息发送给给消息队列MessageQueue,然后Loop不断从消息队列中取出消息调用handler的dispatchMessage方法,最后调用handl...

2018-08-29 22:43:18

阅读数 267

评论数 0

WorkManager用法详解

WorkManager是什么?它是谷歌提供的Architecture Components 架构组件的库中的其中一个库,WorkManager有什么用?官方解释如下: Note: WorkManager is intended for tasks that require a guarantee...

2018-07-31 17:59:58

阅读数 598

评论数 0

适配android P

android的P到来,真是让我们这群开发android的程序员蛋疼了不少,因为它加入了不少限制,尤其是非SDK api使用的限制,妈的以后非sdk的api调用直接给你抛异常奥,听起来是不是很兴奋。很想说适配个屁啊,哈哈确实是适配个P官方适配文档下面来看一下保存非sdk有哪些后果吧,这里引用官方文...

2018-06-23 15:40:49

阅读数 3016

评论数 0

android的Bitmap缓存策略全面剖析第二篇(之Glide缓存策略)

上一篇咱们讲了ImageLoader的缓存策略,那么Glide的缓存策略相较于ImageLoader缓存有什么优势吗?它们之间有什么样的差别,或者说性能方面,那一个更好,注意咱们这里所介绍的缓存是不包括sd卡存储的。先来看一看Glide用了哪些缓存策略模式,如下:是不是少了点,没错和缓存有关的就这...

2018-06-14 13:32:15

阅读数 567

评论数 0

android的Bitmap缓存策略全面剖析第一篇(之ImageLoader缓存策略)

小伙伴们都知道,做一个app是少不了和图片打交道的,而不管是jpg还是png格式的图片,android的显示的时候最终都是将它们变换为Bitmap显示的,而Bitmap占用内存巨大,打个比方假如是ARGB_8888格式的Bitmap的话,每像素占用四个字节,占用的内存总共大小就是4*width*h...

2018-06-13 15:40:29

阅读数 164

评论数 0

android的组件化详解(CC框架源码剖析)

说到组件化开发,咱们先聊聊三个问题。第一个问题:什么是组件化?组件化这三个字顾名思义就是将一个项目拆成多个项目,也就是说一个项目由多个组件组成,就比如一辆汽车,你可以把它拆分成发动机、底盘、车身和电气设备等四个模块;又比如一架飞机你可以把它拆分成机身、动力装置、机翼、尾翼、起落装置、操纵系统和机载...

2018-04-14 16:04:00

阅读数 2647

评论数 0

组件化开发之路由器模块详解(ActivityRouter源码详解)

    路由器的作用是什么?通俗的讲,路由器的作用就是一根网线满足多人上网的需求。而在开发中路由器模块的作用就是实现中转分发,也就是说将原来有关系的模块(有依赖的模块分开),产生一个中间的模块,让原来依赖的两个模块都去和路由模块交互,从而将原来两个有关系的模块拆分开,利如我现在在开发一个app,根...

2018-04-08 17:44:19

阅读数 631

评论数 1

在OkHttp框架基础上打造客户端可控的缓存框架,带你彻底理解OkHttp的缓存功能模块

话说okhttp已经具备强大的缓存功能,我为什么还要改造它呢?虽然okhttp的缓存功能很强大,但是缓存功能是依赖响应头而设计的,如果服务端不给你提供响应头的话,那么这个框架默认是不会保存你请求的数据的,也就是说如果我在app端显示数据,想在网络差的情况下、或网络断掉的情况下能让界面快速显示从而提...

2018-03-01 16:57:22

阅读数 188

评论数 0

从腾讯VasSonic源码剖析到webview优化的思考

提到android的webView,我想大家对它都有点恨之入骨,因为它和ios的UIWebView的性能实在差的太远了,尤其在4.4以下,加载个页面慢的要死,出现白屏时间过长、没有网络的时候加载直接给你加载出内核自带的页面等等,如果对它不管的话体验实在是太差了,作为一个优秀的程序员,这些事情是无法...

2018-02-27 11:00:43

阅读数 1524

评论数 3

美团热修复Robust源码庖丁解牛(第一篇字节码插桩)

如果你想对java编译后的class文件做一些手脚的话,市面上有供你选择的asm、javassist、aspectJ(aop面向切面编程)等等,一般修改class文件的用途有你想统计一些东西,例如app崩溃日志,做为程序员应该要懒,不想写统计的代码,这个时候利用编译器改变class的方式,来选择是...

2018-01-15 15:13:24

阅读数 1148

评论数 0

LightSun/android-databinding(第二篇事件绑定)源码剖析与思考

上一篇中大体的讲解了一下属性绑定的套路LightSun/android-databinding(第一篇属性绑定)源码剖析与思考,这一篇来看一下事件绑定的套路,怎么通过xml的属性配置让DataBinding自己识别是什么事件,在View层不见一句OnClick、OnTouch等等事件,确可以分隔离...

2018-01-05 15:03:41

阅读数 190

评论数 0

LightSun/android-databinding(第一篇属性绑定)源码剖析与思考

自从谷歌推出DataBinding框架之后,MVVM开发模式也在android的端慢慢的兴起,用DataBinding框架可以省去UI和数据绑定的不少功夫,通俗的讲就是少写很多代码,并且结构看起来清晰,并利于维护,就是降低耦合,反正程序员最终的道路就是解放双手提高生产力,当然最终双手解放了,生产力...

2018-01-04 16:39:39

阅读数 242

评论数 0

alibaba/Virtualview-Android(第一篇View映射生成)源码剖析和思考

在开篇之前,大家开发中应该都会有这么一种思考吧,怎么样让你的布局变成动态的?何为动态?即是在不发表新版本的前提下,让你的界面在用户看来变了,然而他们没有更新app,也许你会说可以直接h5吧,好这种方案的确可行,但是如果h5过多,那还用app开发人员干嘛,不好,是不是感觉饭碗被抢了,当然你也可以把h...

2017-12-28 16:45:53

阅读数 648

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭