03 2018 档案

摘要:这几天打算研究一下Retrofit,遇到的第一个知识点就是动态代理 。动态代理对应设计模式中的代理模式,还有个模式叫做静态代理,我们知道代理类与目标类需要实现相同的接口,在静态代理中手动实现这些接口会产生大量的模板代码,动态代理就可以很好地解决这一问题。 1、示例 接下来的例子,我们使用动态代理为网 阅读全文
posted @ 2018-03-30 10:06 mmmmar 阅读(263) 评论(0) 推荐(0)
摘要:开发中使用注解框架可以极大地提高编码效率,注解框架用到的技术可以分为两种,运行时注解跟编译时注解。运行时注解一般配合反射机制使用,编译时注解则是用来生成模板代码。这里我们分别使用这两种方法实现ButterKnife的控件绑定功能。 1、运行时注解 运行时注解实现比较简单,但是由于完全依靠反射技术,所 阅读全文
posted @ 2018-03-28 15:35 mmmmar 阅读(459) 评论(0) 推荐(0)
摘要:Android系统中图片一般用Bitmap对象表示,它支持png,jpg等常见格式。通常情况下图片的体积都比较大,单个应用允许使用的内存又是有限的,所以我们需要采取一些手段减少内存占用并提高加载速度。 1、图片加载 SDK提供了BitmapFactory类供我们加载图片,常用的方法有这么几个: Bi 阅读全文
posted @ 2018-03-26 16:50 mmmmar 阅读(896) 评论(0) 推荐(0)
摘要:从半个多月前接到阿里的面试电话,被多线程问题难住,到今天终于读完了《Java Concurrency In Practice》。想总结一下,又发现自己没有能力将一本书的内容都概括下来。还是把书里最后一部分Java内存模型相关的内容搬过来谈一谈吧。 1、happens-before 什么是Java内存 阅读全文
posted @ 2018-03-24 14:58 mmmmar 阅读(1097) 评论(0) 推荐(0)
摘要:1、前言 Android Studio对模块化开发提供的一个很有用的功能就是可以在主项目下新建库项目(Module),但是在使用库项目时却有一个问题就是资源ID冲突,因为编译时SDK会自动帮我们处理这个问题,所以一般我们不会察觉到,但是在某些情况下,我们需要意识到这个问题的存在。 比如,在新建的库项 阅读全文
posted @ 2018-03-23 13:20 mmmmar 阅读(2750) 评论(0) 推荐(0)
摘要:1、前言 之前好几次看到有人在面经中提到了乐观锁与悲观锁,但是一本《Java Concurrency In Practice》快看完了都没有见到过这两种锁,今天终于在第15章发现了它们的踪迹。 15.2 Hardware support for concurrency Exclusive locki 阅读全文
posted @ 2018-03-22 18:49 mmmmar 阅读(21967) 评论(0) 推荐(0)
摘要:这个问题也是头条面试官问的,本身没什么难度,但以前确实没仔细研究过。 1、使用介绍 ViewStub是一种不可见的尺寸为0的View,用来实现布局资源的懒加载。当ViewStub被设置为用户可见或其 inflate() 被调用时,实际的布局资源才会被加载。这时ViewStub在View树中的位置会被 阅读全文
posted @ 2018-03-21 15:24 mmmmar 阅读(932) 评论(0) 推荐(0)
摘要:今天头条的面试官问起了实现View滑动的方式,其实前几天刚刚看过,但还是没能答上来,这里再来总结一遍。 1、使用scrollTo/scrollBy 为了实现View滑动,Android专门提供了这两个方法让我们使用。这两个函数的区别是scrollBy提供的是基于当前位置的相对滑动,而scrollTo 阅读全文
posted @ 2018-03-19 22:13 mmmmar 阅读(576) 评论(0) 推荐(0)
摘要:我们知道在编程时许多操作(如更新UI)需要在主线程中完成,而且,耗时操作(如网络连接)需要放在子线程中,否则会引起ANR。所以我们常使用Handler来实现线程间的消息传递,这里讨论的也就是Handler的运行机制。 Handler的运行主要由两个类来支撑:Looper与MessageQueue。熟 阅读全文
posted @ 2018-03-18 15:54 mmmmar 阅读(364) 评论(0) 推荐(1)
摘要:最近在看View的事件分发机制,感觉比复杂的地方就是ViewGrop的dispatchTouchEvent函数,便对照着源码研究了一下。故名思意这个函数起到的作用就是分发事件,在具体分析之前还要说明几个相关的知识。 事件序列指的是从手指接触屏幕那一刻起,到手指离开屏幕那一刻为止产生的所有事件。 一旦 阅读全文
posted @ 2018-03-10 10:06 mmmmar 阅读(1033) 评论(0) 推荐(0)