
Android
swjtufq
这个作者很懒,什么都没留下…
展开
-
深入理解Looper,MessageQueue和Handler
这几乎是每次面试必问的问题了吧,然而并没有什么高深,之所以每次面试问,是由于Handler在平时工作中用的比较多,记得当年去vivo面试,问了两个技术点,这是其中一个,先从整体说一下,每个线程只能有一个Looper,Looper里面会创建一个消息队列MessageQueue,Handler在发消息的时候找到当前Looper的MessageQueue,然后把消息传进去,Looper里面有个无限循环,不原创 2016-09-13 10:28:41 · 472 阅读 · 0 评论 -
Android Volley源码解析
前面一篇文章讲解了Volley加载网络图片,在使用ImageLoader的时候加入了内存缓冲,我说还可以加入文件缓存,其实在Volley源码中已经包含了文件缓存,不需要自己再添加了,Volley源码还是挺庞大的,不可能一一分析到位,今天就粗略看下Volley源码,还记得我们一般在使用的时候怎么用吗:RequestQueue mQueue = Volley.newRequestQueue(MainAc原创 2016-09-26 16:45:46 · 262 阅读 · 0 评论 -
Android Volley之加载网络图片
前面分享了Volley用于一般网络数据请求的方法,http://blog.youkuaiyun.com/swjtufq/article/details/52636361 今天来说一下Volley用于网络图片的请求,首先来看ImageRequest,这个跟之前的StringRequest很类似,代码如下:RequestQueue requestQueue = Volley.newRequestQueue(thi原创 2016-09-26 14:53:26 · 331 阅读 · 0 评论 -
你真的理解android事件分发机制了吗
最近在看一些源代码的时候,又遇到了android的事件分发机制,以前我以为我懂了,但是看着看着又糊涂了,于上浏览了下别人写的文章,越看越糊涂,干脆自己写个程序验证下,这一验证,才发现以前没有真正懂这个流程,今天我就用事实说话,来跟大家一起验证下android的事件分发机制(很多坑需要注意): 事件分发中我们无非会遇到这么几个函数,dispatchTouchEvent,onInterceptTouc原创 2016-09-22 14:10:55 · 420 阅读 · 0 评论 -
Android图片的压缩处理和缓存策略
我们平时工作中经常会处理Bitmap图片,有些网上下载下来的图片很大,比如1024*1024分辨率的图片,采用ARGB8888格式存储,每个像素占4个字节,就是1024*1024*4=4M,一张图片就这么大了,如果我们不进行压缩处理的话,很容易引起OOM,所以我们经常要对下载下来的图片进行压缩处理,如果每次都让用户重新去网上请求数据,这样显然是不合理的,对于已经下载下来的图片,当然要做缓存,我们可以原创 2016-09-24 15:52:47 · 813 阅读 · 0 评论 -
Android AsyncTask用法及源码分析
AsyncTask这个类相信大家都用的比较多了,主要是解决异步任务问题,耗时的操作不能在MainThread中进行,必须放在其他线程中执行,执行完之后回到主线程更新UI,我们也经常用Thread+Handler的方式来解决这类问题,那么为什么还要用AsyncTask呢,如果看了源码的话,你会发现,这个类里面的实现逻辑其实是对Thread和Handler的一个封装,让大家用起来更方便而已,没什么高深的原创 2016-09-21 10:19:39 · 409 阅读 · 0 评论 -
Android网络请求Volley
我们平时工作中用到的网络请求无非是HttpClient或者是HttpURLConnection,前者目前已经被完全废弃了,所以Volley网络框架里会有判断版本,与其自己写网络请求接口,不如用Google提供的Volley框架,方便的多,Volley既可以进行普通的网络请求,也可以请求网络图片,今天我先只分享普通的网络请求,网络图标后面再说,先从网上下载Volley源码,然后引入到工程中,这个不说了原创 2016-09-23 11:33:51 · 312 阅读 · 0 评论 -
Android下拉刷新
早期下拉刷新主要是用XListView,这个类是继承ListView的,使用起来有局限性,并且在git上作者已经不维护了,之后有人自己写了一个PullToRefreshLayout,不用再继承自ListView,而是直接嵌套在所有继承于AbsListView的外面,如下:<com.fq.pulltorefresh.PullToRefreshLayout xmlns:android="http://s原创 2016-09-22 17:15:21 · 258 阅读 · 0 评论 -
Android AIDL 双向调用的使用及相关原理
AIDL全称Android Interface Definition Language,一种android的接口定义语言,用于进程间通讯,我们知道android是不允许不同进程间直接共享数据的,但是有几种解决办法,比如ContentProvider,AIDL等等,那么什么情况下我们会用到AIDL呢,这里直接举一个实际应用的例子,比如应用市场,下载应用的逻辑一般放到一个service中,由于应用市场属原创 2016-09-13 17:35:43 · 3207 阅读 · 0 评论 -
Android Fragment讲解
Fragment是依赖于Activity存在的,Fragment也有自己的生命周期,首先来看下Fragment的生命周期: 这是官网的图,可以看到Fragment比activity多了几个生命周期函数: public void onAttach(Context context),当Fragment与Activity发生关联时调用 public View onCreateView(Layou原创 2016-09-30 16:47:54 · 272 阅读 · 0 评论