安卓进阶系列---罗小辉
文章平均质量分 78
主要讲解安卓Handler/Looper/Message,线程池,OkHttp原理等一些框架原理,都是本人看源码的一些心得。
罗小辉
这个作者很懒,什么都没留下…
展开
-
安卓进阶(11)之UI适配解决方案
博客内容有些UI设计师给到我们的设计图的宽的单位是px(比如1080*1920),有的给到我们的的单位是dp(比如360dp),我们没法保证设计师到底给出哪一种,而且,给到我们的设计图的尺寸,我们除了适配常规的尺寸,还得适配非常规的手机分辨率。那具体我们应该怎么去做适配呢?看了几篇帖子,都是人家用过非常成熟的,适用场景比较多的方案了。我自己总结了下,分为两种解决方案,一种是单位以px为参照物,...原创 2018-10-24 14:32:40 · 835 阅读 · 0 评论 -
安卓进阶(10)之OkHttp3.10连接层原理解析
参考文章OkHttp3源码解读四:连接层TCP连接与OKHTTP复用连接池原创 2018-10-22 19:39:30 · 492 阅读 · 0 评论 -
安卓进阶(9)之各种排序算法
目前在看排序算法有:冒泡排序,选择排序,插入排序,快速排序,归并排序。后面两种有递归操作,还没完成理解,先打个样,后面有时间再来琢磨~冒泡排序算法public class BubbleSort { static final String TAG = "BubbleSort"; public static void sort(int[] array){ bo...原创 2018-10-19 10:22:58 · 584 阅读 · 1 评论 -
安卓进阶(8)之Okhttp3.10缓存层原理分析
博客流程用一个demo展示Okhttp如何对接口数据进行缓存;讲解Okhttp数据缓存的流程以及原理。demo示例设置接口数据缓存可以有两种方式,一种是添加拦截器,另外一种是直接在Request.Builder类中设置cacheControl:OkHttpClient client = new OkHttpClient.Builder() //添加本地拦截器 .a...原创 2018-10-18 13:57:36 · 554 阅读 · 0 评论 -
安卓进阶(7)之OkHttp3.10拦截器原理解析
博客流程用一个demo介绍如何添加自定义的拦截器;介绍拦截器是怎么产生拦截效果的;介绍okhttp里自带的各个拦截器的原理。添加自定义的log拦截器在使用okhttp时,我们可能需要获取到okhttp的log日志,请求参数以及响应参数和数据。我们用一个小的demo来展示一下:OkHttpClient client;void initOkhttpClient() { c...原创 2018-10-15 19:01:37 · 1477 阅读 · 0 评论 -
安卓进阶(6)之OkHttp整体架构/基本使用/OkHttpClient原理解析
整体架构图Okhttp可以分为上层应用接口层,协议层,连接层,缓存层,I/O层,拦截器层。接口层就是我们上层开发人员调用的一些接口和API。连接层是核心,连接池以及网络请求优化都在这里面了。拦截器和缓存层是重点,比如我们要加log日志,这时候加一个拦截器。OkHttp的整体架构图如图所示:基本使用GET请求//创建OkHttpClient对象OkHttpClient client = ...原创 2018-10-12 11:48:48 · 903 阅读 · 0 评论 -
安卓进阶(5)之消费者/生产者模式的3种实现方式
实现的接口/** * 作者:luoxiaohui * 日期:2018/10/9 09:02 * 文件描述: 接口,消费和生产方法 */public interface Person { void consume(String personName) throws InterruptedException; void produce(String personName)...原创 2018-10-09 11:37:40 · 1621 阅读 · 1 评论 -
安卓进阶(4)之线程池以及多线程并发原理
安卓中使用线程池的场景常规接口网络请求数据;静态文件(图片)流下载;日志上传。为什么要使用线程池管理线程,不需要频繁创建和销毁,实现最高程度的线程的复用。...原创 2018-10-06 15:19:54 · 608 阅读 · 0 评论 -
安卓进阶(3)之Handler/Looper/MessageQueue源码分析以及原理理解
前言安卓系统是消息驱动的,所以深刻了解Handler整个消息分发机制,对于我们了解安卓系统,是一个必不可少的知识点。整个过程中,我们需要重点关注的类是:1. Handler2. Looper3. MessageQueue4. Meesage5. ThreadLocal6. Thread本博客所分析的handler消息分发机制是基于andorid-28这个sdk来的,之所以...原创 2018-09-20 19:09:38 · 703 阅读 · 2 评论 -
安卓进阶(2)之android Binder通信理解
关键字aidl进程间通信binder机制aidl全名安卓接口定义语言,用于进程间通信。简单理解的话,就是类似应用的服务器和客户端。服务器开启一个服务处理数据,客户端传递数据以及响应回调。具体使用方法见AndroidStudio实现AIDL。建议自己跟着文章手写一遍,并细看build之后由aidl文件生成的java文件中内容。参考文章 AndroidStudio实现AI...原创 2018-09-06 19:59:43 · 437 阅读 · 0 评论 -
安卓进阶(1)之从Glide缓存算法到了解java数据结构
Glide图片缓存分为三级:内存缓存,磁盘缓存,网络加载。 其中,内存缓存使用的机制是LRU算法+弱引用机制,磁盘缓存采用的是LRU算法。关键字 LRU算法(近期最少使用算法) LinkHashmap=HashMap+双向链表 HashMap原理 双向链表和单向链表区别参考文章Map 综述(二):彻头彻尾理解 LinkedHashMap...原创 2018-09-06 14:08:30 · 966 阅读 · 0 评论 -
android 事件分发机制(图文详解)
在Android开发中,事件分发机制是一块Android比较重要的知识体系,了解并熟悉整套的分发机制有助于更好的分析各种点击滑动失效问题,更好去扩展控件的事件功能和开发自定义控件,同时事件分发机制也是Android面试必问考点之一,如果你能把下面的一些事件分发图当场画出来肯定加分不少。废话不多说,总结一句:事件分发机制很重要。Android 事件分发流关于Android 事件分发机制网上的博文很多,转载 2016-07-12 15:56:35 · 3399 阅读 · 0 评论 -
android 弹性ScrollView(已优化)
想要的效果最近项目中想实现一个效果,效果如下: 网上demo展示就是上滑或者下滑,能实现弹性效果,代码大致如下:public class BounceScrollView extends ScrollView { private View inner;// 孩子View private float y;// 点击时y坐标 private原创 2016-07-12 19:52:14 · 12918 阅读 · 14 评论 -
android 单例模式和策略模式的结合使用
单例模式类型1. 懒加载模式懒加载模式是我们在android中最常用的模式,具有高效率高性能的优势,缺点就是在多线程操作时,会有线程不安全问题。 适用场景:只在主线程中操作,或者只在某个子线程操作。原创 2016-04-09 17:39:18 · 2685 阅读 · 0 评论