移动开发笔记
文章平均质量分 87
居家小男
这个作者很懒,什么都没留下…
展开
-
Activity启动流程
Activity启动流程参考:https://www.jianshu.com/p/4fb8c0735e22?utm_campaign=haruki转载 2020-10-11 19:11:42 · 132 阅读 · 0 评论 -
MVP架构由浅入深篇三(终极版)
MVP架构由浅入深篇三(终极版)前言:在从基础版MVP架构优化成进阶版MVP架构的过程中,几乎每个单元都做了很大优化并封装到了base层,但是唯独Model层没什么变化。所以,终极版MVP架构的优化主要就是对Model层的优化。一、Model单独封装,集中管理先看一下整体的架构模型先:Model层相比其他单元来说其功能就是通过回调接口向上层返回数据。再就是MVP的理念是让业务逻辑互相独立,这就导致每个的网络请求也被独立成了单个Model,这种方式在实际开发中就会出现一些问题:无法对所原创 2020-09-26 00:04:46 · 265 阅读 · 0 评论 -
MVP架构由浅入深篇二(进阶版)
MVP架构由浅入深篇二(进阶版)前言:在MVP基础版的讨论中我们发现了基础版MVP存在的不足之处,1.通用性差;2.存在漏洞;3.有重复代码。在本篇内容中,我们会对基础版MVP进行升级,到进阶版MVP解决基础版MVP遇到的问题。目录MVP架构由浅入深篇二(进阶版)一、在Presenter层调用MvpView接口方法时可能出现空指针异常1.新增Callback接口2.新增BaseView接口3.新增BasePresenter类4.新增BaseActivity5.MvpCal原创 2020-09-25 22:54:53 · 239 阅读 · 0 评论 -
MVP架构由浅入深篇一(基础版)
MVP架构由浅入深篇一前言:不得不说,才开始学习MVP架构各种接口的调用和解耦代码真的让人眼花缭乱,对于很多问题都是一知半解:关于如何在Activity中高效的复用Presenter和View; Mode层定义到什么程度才算是比较理想的解耦; Model层与Presenter层如何比较优雅的相互通信。所以决定静下心来理解一下该架构的艺术。博客主要参考https://www.jianshu.com/p/5c3bc32afa36?utm_campaign=haruki,其中加入自己的理解和代码实现原创 2020-09-25 12:24:08 · 808 阅读 · 0 评论 -
Kotlin协程基础
Kotlin协程基础知识前言:其实以前学习C#也了解过协程的概念,但是在深入学习Kotlin的时候准备系统的认识一下协程,同时与Java的线程进行一个对比。主要参考:https://www.jianshu.com/p/6e6835573a9c结合实际代码做了修改并且附带运行结果,使用IDEA的gradle构建项目方便添加相应依赖,至于gradle如何构建项目,请看我前面的内容。目录Kotlin协程基础知识一、协程的概念二、协程的简单测试1.使用runBlocking:T创建协程.原创 2020-09-24 14:08:39 · 259 阅读 · 0 评论 -
Kotlin运算符重载及其他约定
Kotlin运算符重载及其他约定前言:内容主要包括运算符重载、约定(支持各种运算的特殊命名函数)、委托属性,结合代码,让重载运算符相关知识简单易懂。目录Kotlin运算符重载及其他约定一、概述二、重载算数运算符1.重载二元算数运算2.重载复合赋值运算符3.重载一元运算符三、重载比较运算符1.等号运算符:“equals”2.排序运算符:compareTo四、集合与区间的定义1.通过下标来访问元素:get和set2.in 的约定3.rangeTo的约定原创 2020-09-23 21:57:20 · 376 阅读 · 0 评论 -
Android线程间通信
Android线程间通信前言:内容主要从android线程间通信方式进行入手,首先分析了线程间通信的几种方式,再深入分析线程间通信的机制,主要分析工作线程与工作线程间通信,因为主线程和工作线程间通信网上已经很多例子了。目录Android线程间通信一、Android线程间通信的四种实现方式1.Handler进行线程通信==>消息机制2.runOnUiThread3.View.post(Runnable r)4.AsyncTask二、线程间通信机制一、Andr.原创 2020-09-23 12:11:18 · 1361 阅读 · 0 评论 -
Android JNI基础及其简单使用
Android JNI基础及其简单使用前言:内容主要包括jni的概念、安卓jni开发的两种方式以及工具的简单使用,读者将了解最基础的jni开发流程。主要参考:齐行超老师的教程目录Android JNI基础及其简单使用一、JNI、NDK、Cmake、ndk-build的概述二、Cmake工具的使用(Android默认)三、ndk-build工具的使用一、JNI、NDK、Cmake、ndk-build的概述JNI(Java Native Interface)Java本地.原创 2020-09-21 23:55:52 · 2600 阅读 · 0 评论 -
易懂Android消息机制分析
最浅显讲解Android消息机制前言:以《安卓开发艺术探索》和自己经验为基础,介绍Android消息机制。Android消息机制主要指Handler机制,同时Handler需要底层的MessageQueue和Looper支撑。Looper会对消息队列进行无限循环,一有消息就会处理。同时在Looper中还有一个重要角色,那就是ThreadLocal,注意他并不是线程,他可以在不同线程中互不干扰地存储数据。还要注意,线程是默认没有Looper的,所以需要自己创建,但是在MainActivity中的Activ原创 2020-09-21 13:25:10 · 197 阅读 · 0 评论 -
Java正则表达式的使用
正则表达式前言:本篇博客将介绍正则表达式在Java中的应用,其他语言类似,正则表达式是一个共有的规则。目录正则表达式一、概述二、正则表达式规则三、栗子说明总结一、概述正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE)正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。在众多语言中都可以支持正则表达式,如Perl、PHP、Java、Python、Ruby等。当然在Java中也可以通过调用.原创 2020-09-13 11:36:44 · 170 阅读 · 0 评论 -
Kotlin系列篇--Kotlin函数定义和调用
第三部分:Kotlin函数的定义和调用前言:为了让介绍更简单直白,我将把Kotlin集合、字符串和正则表达式作为重点问题领域目录第三部分:Kotlin函数的定义和调用一、Kotlin中集合的创建:二、顶层函数和属性:三、扩展函数和属性:四、可变参数、中缀调用:五、正则表达式:六、局部函数:总结:一、Kotlin中集合的创建:在kotli.collections包中包含List(有序集合)、Set(无序集合)、Map(健值对)三种集合:Collect..原创 2020-09-12 22:54:09 · 1495 阅读 · 0 评论 -
Kotlin系列篇--Kotlin基础
第二部分:Kotlin基础前言:这一章我们将学习Kotlin基本要素:变量、函数和类;Kotlin中的控制结构;智能转换;Kotlin把类型检查和转换合并成一次操作,最后我们会学习异常。一、函数和变量函数:fun max(a:Int,b:Int):Int{ return if (a>b) a else b}可见,函数声明是由fun关键字开始,其后就是函数名,括号内是参数列表,冒号后面是返回值。在Kotlin中if语句是有结果的表达式,而Java中if是语句,没有返回结果原创 2020-09-12 16:09:43 · 163 阅读 · 0 评论 -
Kotlin系列篇--Kotlin定义和目的介绍
Kotlin学习系列前言:本系列文章将介绍Kotlin的使用,分为11章进行介绍,以《Kotlin实战》为基础,每章一篇博客,将采用模块化的讲解让读者对Kotlin有深入的了解,适用于有Java开发经验的读者,废话少说,下面就开始介绍Kotlin。第一部分:Kotlin定义和目的一、Kotlin概述:Kotlin是对Java语言的新编程语言。具有简洁、安全、务实,并且专注于与Java代码的互操作性。他几乎可以用于现在Java使用的任何地方:服务器开发、Android开发等等。二、Kotl原创 2020-09-12 14:56:24 · 260 阅读 · 0 评论 -
注解、反射、动态编译、字节码操作
注解、反射、字节码操作前言:本篇博客将介绍Java中注解的定义、使用以及反射对Java动态性的支持和Java字节码操作,通过本篇内容,读者将对Java知识有更加深刻的理解,同时为后面Android的高级框架学习打好基础。一、注解概述:Annotation是从JDK5.0开始引入的,注解并不是程序本身,但可以被其他程序读取,如果没有注解信息处理流程,注解将毫无意义。注解可以在Java很多地方使用,如类、属性、方法等等。1-注解入门2-内置注解3-自定义注解、元注解二、反射三原创 2020-09-11 23:02:16 · 490 阅读 · 0 评论 -
Retrofit基本使用及原理+源码解析(入门级)
Retrofit基本使用及原理+源码解析(入门级)前言:本篇博文主要对Retrofit做一个基本介绍,了解Retrofit基本使用以及部分源码解析,让读者对Retrofit框架有一个基本了解,主要参考文章:https://www.jianshu.com/p/07f7eb4aa9ae目录Retrofit基本使用及原理+源码解析(入门级)一、概述二、基本使用1-导入Retrofit框架:2-使用Retrofit框架:三、Retrofit内部的实现1-Retrofit实例的创建原创 2020-09-10 23:48:57 · 792 阅读 · 0 评论 -
glide的内存管理和缓存机制
glide生命周期管理、内存管理、缓存机制、加载器、观察者模式前言:本系列博文主要通过借鉴其他优秀博文以及自己的实际开发经验综合得出,主要分析glide相关使用、机制以及设计模式等内容,相信这篇博文会让你对glide有更加深入的理解。本篇是系列文章的第三章。篇三 glide的内存管理和缓存机制前言:本篇博客将深入浅出地介绍glide的内存管理机制,主要借鉴来源:https://www.jianshu.com/p/17644406396b一、Glide加载图片整体流程了解:Glide.原创 2020-09-10 14:12:36 · 531 阅读 · 0 评论 -
glide的生命周期管理
glide生命周期管理、内存管理、缓存机制、加载器、观察者模式前言:本系列博文主要通过借鉴其他优秀博文以及自己的实际开发经验综合得出,主要分析glide相关使用、机制以及设计模式等内容,相信这篇博文会让你对glide有更加深入的理解。本篇是系列文章的第二章。篇二 glide的生命周期管理前言:本篇博客将介绍glide的生命周期管理,如何与Fragment和Activity绑定的。我们知道将 Activity/Fragment 对象作为参数传给Glide.with(context/fr..原创 2020-09-09 19:00:54 · 890 阅读 · 1 评论 -
glide的基本使用及进阶使用
glide生命周期管理、内存管理、缓存机制、加载器、观察者模式前言:本系列博文主要通过借鉴其他优秀博文以及自己的实际开发经验综合得出,主要分析glide相关使用、机制以及设计模式等内容,相信这篇博文会让你对glide有更加深入的理解。本篇是系列文章的第一章。篇一glide的基本使用及进阶使用前言:本篇博客将介绍glide的基本使用和进阶使用目录一、简介二、使用三、Target篇四、Transformations篇五、自定义动画篇六、Module篇一、简介...原创 2020-09-08 23:41:58 · 976 阅读 · 0 评论 -
OKhttp源码分析
OKhttp源码分析前言:本篇博客将对OKhttp的重点代码和框架流程进行分析,重点是对OKhttp的连接器链进行深入理解,同时文末将对整个流程进行总结提炼。概述:OKhttp拦截器(interceptor)是OKhttp网络请求框架的精髓所在,通过框架对拦截器的逐个调用实现了高效灵活的网络请求,首先放一张图让大家对拦截器链有一个认识吧:代码分析:下面从一个最简单的网络请求开始分析OKhttp整个请求过程String url = "http://wwww.baidu.com";原创 2020-09-07 17:50:28 · 139 阅读 · 0 评论 -
OKhttp中的okio、拦截器、响应
OKhttp中的okio、拦截器、响应前言:本篇博客将由浅入深地对OKhttp进行解析,包括基本使用、okio、拦截器和响应等内容,和读者一起全面系统地了解OKhttp的知识,深入了解Android客户端网络请求方法及过程,学习OKhttp采用的设计模式和架构。一、OKhttp概述:HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。OkHttp是一个高效的HTTP客户端,它有以下默认特性:支持HTTP/2,允许所有同一个主机地址的请求共享同一原创 2020-09-06 21:31:10 · 1316 阅读 · 0 评论 -
Lrucache源码深入分析
Lurcache源码深入分析前言:本篇博客基于Lurcache源码分析安卓缓存实现原理,同时分析基于其内部实现的LinkedHashMap、Hash原理、Hash碰撞、如何解决Hash碰撞等问题。目录一、Lurcache源码深入分析1.Lurcache概述:2.使用方法:3.源码分析:4.LinkedHashMap的实现:5.代码验证:二、如何解决Hash冲突三、DiskLruCache介绍一、Lurcache概述:LRU (Least Recent...原创 2020-09-06 13:32:18 · 333 阅读 · 0 评论 -
史上最全JVM重点知识总结
史上最全JVM重点知识总结基于《深入了解java虚拟机》相关章节进行地重点知识归纳,同时面向企业面试,给出常见面试问题解析及自己的见解,如果有不正确的地方欢迎大佬们指正。文章目录1.jre、jdk、jvm的关系及java技术体系 2.常见jvm产品及特性 3.java内存区域 4.对象的创建及结构 5.垃圾回收 6.内存分配 7.常用虚拟机工具 8.性能调优 9.Class文件解构 10.字节码指令 11.类加载机制 12.java方法调用 13.happens-bef原创 2020-09-03 22:53:29 · 631 阅读 · 0 评论 -
移动开发之100%设备屏幕适配方案
移动开发之100%设备屏幕适配方案前言:本片博客将全面深入分析屏幕适配方案,针对不同项目要求,提供不同的适配框架分析,要求框架能100%适配所有设备。目录1.前期技术问题分析2.适用于中小型项目适配方案3.适用于大型项目适配方案一、前期技术问题分析:1.如何获取全局Context并解决Application冲突:前言:从上图Context的类继承关系可以看到,有两个直系子类,分别是包装类和实现类。包装类下可以看到我们熟悉的身影:Service、Application、A.原创 2020-09-01 16:42:36 · 1669 阅读 · 2 评论 -
Gradle构建项目深入浅出
如果我们将Gradle的Task看作一个黑盒子,那么我们便可以抽象出输入和输出的概念,一个Task对输入进行操作,然后产生输出。原创 2020-08-30 14:45:27 · 222 阅读 · 0 评论