安卓进阶
文章平均质量分 76
罗小辉
这个作者很懒,什么都没留下…
展开
-
安卓进阶(2)之android Binder通信理解
关键字aidl进程间通信binder机制aidl全名安卓接口定义语言,用于进程间通信。简单理解的话,就是类似应用的服务器和客户端。服务器开启一个服务处理数据,客户端传递数据以及响应回调。具体使用方法见AndroidStudio实现AIDL。建议自己跟着文章手写一遍,并细看build之后由aidl文件生成的java文件中内容。参考文章 AndroidStudio实现AI...原创 2018-09-06 19:59:43 · 449 阅读 · 0 评论 -
安卓进阶(13)之离奇bug
PS:此贴会持续更新,记录我平时遇到的比较坑爹的bugLoaderManager.LoaderCallbacks前提: 数据源从始至终都没有变化!问题: 当我的compileSdkVersion为27及以下时,onLoadFinished()只会调用一次,但是当我的compileSdkVersion为28时,从其他页面返回到已实现LoaderManager.LoaderCallbacks接口...原创 2019-03-08 12:05:22 · 272 阅读 · 0 评论 -
安卓进阶(12)之自定义数字键盘
想要源码的请戳这里:源码地址实现效果实现原理概括:数字键盘View用Popuwindow来呈现,通过监听Activity/Dialog中Window的decorView焦点改变事件,以及EditText中的tag属性,来动态显示自定义的数字键盘。在Dialog中弹出自定义数字键盘,需要动态更新数字键盘的位置,和宽度。初始化数字键盘设置数字键盘的宽高,并监听焦点变化:private v...原创 2019-01-30 15:05:56 · 861 阅读 · 0 评论 -
安卓进阶(11)之UI适配解决方案
博客内容有些UI设计师给到我们的设计图的宽的单位是px(比如1080*1920),有的给到我们的的单位是dp(比如360dp),我们没法保证设计师到底给出哪一种,而且,给到我们的设计图的尺寸,我们除了适配常规的尺寸,还得适配非常规的手机分辨率。那具体我们应该怎么去做适配呢?看了几篇帖子,都是人家用过非常成熟的,适用场景比较多的方案了。我自己总结了下,分为两种解决方案,一种是单位以px为参照物,...原创 2018-10-24 14:32:40 · 852 阅读 · 0 评论 -
安卓进阶(10)之OkHttp3.10连接层原理解析
参考文章OkHttp3源码解读四:连接层TCP连接与OKHTTP复用连接池原创 2018-10-22 19:39:30 · 520 阅读 · 0 评论 -
安卓进阶(9)之各种排序算法
目前在看排序算法有:冒泡排序,选择排序,插入排序,快速排序,归并排序。后面两种有递归操作,还没完成理解,先打个样,后面有时间再来琢磨~冒泡排序算法public class BubbleSort { static final String TAG = "BubbleSort"; public static void sort(int[] array){ bo...原创 2018-10-19 10:22:58 · 593 阅读 · 1 评论 -
安卓进阶(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 · 1659 阅读 · 1 评论 -
安卓进阶(7)之OkHttp3.10拦截器原理解析
博客流程用一个demo介绍如何添加自定义的拦截器;介绍拦截器是怎么产生拦截效果的;介绍okhttp里自带的各个拦截器的原理。添加自定义的log拦截器在使用okhttp时,我们可能需要获取到okhttp的log日志,请求参数以及响应参数和数据。我们用一个小的demo来展示一下:OkHttpClient client;void initOkhttpClient() { c...原创 2018-10-15 19:01:37 · 1489 阅读 · 0 评论 -
安卓进阶(8)之Okhttp3.10缓存层原理分析
博客流程用一个demo展示Okhttp如何对接口数据进行缓存;讲解Okhttp数据缓存的流程以及原理。demo示例设置接口数据缓存可以有两种方式,一种是添加拦截器,另外一种是直接在Request.Builder类中设置cacheControl:OkHttpClient client = new OkHttpClient.Builder() //添加本地拦截器 .a...原创 2018-10-18 13:57:36 · 565 阅读 · 0 评论 -
安卓进阶(4)之线程池以及多线程并发原理
安卓中使用线程池的场景常规接口网络请求数据;静态文件(图片)流下载;日志上传。为什么要使用线程池管理线程,不需要频繁创建和销毁,实现最高程度的线程的复用。...原创 2018-10-06 15:19:54 · 619 阅读 · 0 评论 -
安卓进阶(6)之OkHttp整体架构/基本使用/OkHttpClient原理解析
整体架构图Okhttp可以分为上层应用接口层,协议层,连接层,缓存层,I/O层,拦截器层。接口层就是我们上层开发人员调用的一些接口和API。连接层是核心,连接池以及网络请求优化都在这里面了。拦截器和缓存层是重点,比如我们要加log日志,这时候加一个拦截器。OkHttp的整体架构图如图所示:基本使用GET请求//创建OkHttpClient对象OkHttpClient client = ...原创 2018-10-12 11:48:48 · 921 阅读 · 0 评论 -
安卓进阶(1)之从Glide缓存算法到了解java数据结构
Glide图片缓存分为三级:内存缓存,磁盘缓存,网络加载。 其中,内存缓存使用的机制是LRU算法+弱引用机制,磁盘缓存采用的是LRU算法。关键字 LRU算法(近期最少使用算法) LinkHashmap=HashMap+双向链表 HashMap原理 双向链表和单向链表区别参考文章Map 综述(二):彻头彻尾理解 LinkedHashMap...原创 2018-09-06 14:08:30 · 975 阅读 · 0 评论 -
安卓进阶(3)之Handler/Looper/MessageQueue源码分析以及原理理解
前言安卓系统是消息驱动的,所以深刻了解Handler整个消息分发机制,对于我们了解安卓系统,是一个必不可少的知识点。整个过程中,我们需要重点关注的类是:1. Handler2. Looper3. MessageQueue4. Meesage5. ThreadLocal6. Thread本博客所分析的handler消息分发机制是基于andorid-28这个sdk来的,之所以...原创 2018-09-20 19:09:38 · 713 阅读 · 2 评论 -
EasyRouter源码解析---仿Arouter路由的简洁版
为什么市面上由如Arouter这样优秀的路由框架了,还要自己去手写路由框架呢?Arouter框架大而全,会比较臃肿,很多功能其实我们并不需要,我们完全定制属于自己的路由;路由框架中有很多知识点需要我们综合运用,比如AutoService,Javapoet,注解,反射;对路由框架源码有更清晰的认识和理解。之前在项目中用ARouter比较多,看了ARouter的源码,也是似懂非懂,过了一段...原创 2019-06-27 17:28:44 · 754 阅读 · 0 评论