自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 数据结构(四):树

一、树的概念N个节点构成的有限集合——树中有一个称为“根”的特殊节点——其余节点可分为若干个互不相交的树,称为原来节点的子树其常用基本术语:基本术语含义节点的度节点的子树个数 (如图其A节点的度为3)树的度树中所有节点中最大的度(A/D节点的度都是3)叶节点度为0的节点(叶节点有EKGLIJ)父节点有子树的节点是其子树的根节点的父节点子节点若A是B的父节点,B就是A的子节点判断是否为树结构的几大准则:——子树是不相交的——除了根节

2021-02-03 16:52:49 254

原创 网络相关知识梳理

一、网络基础1、网络体系2、三次握手3、四次挥手二、http基础1、2、URI和URL的区别3、一次完整的http请求4、http协议报文/响应报文结构方法 + URI + 协议版本5、常见的Headergeneral Headerrequest Headerresponse Headerentity Header6、http缓存机制及原理7、http和https的区别http:端口默认80https:端口默认为4438、SSL协议加密方式对称加密:双方都需要一把相同

2021-02-03 10:12:57 321

原创 Android进阶之OKHTTP源码解析及分发拦截流程梳理

一、OKHTTP的基本使用OkHttpClient client = new OkHttpClient();void get(String url) throws IOException { Request request = new Request.Builder() .url(url) .build(); // 执行同步请求 Call call = client.newCall(request); Resp

2021-01-27 17:22:36 352

原创 数据结构(二):队列和栈

一、队列在线程池中的工作原理及执行顺序二、队列的分类1、一般队列2、循环队列3、链式队列三、队列变形1、双端队列2、优先级队列四、leetcode 算法题621题 任务调度器641题 设计循环双端队列933题 最近的请求次数...

2021-01-20 22:26:50 184

原创 Android高级UI之webview架构搭建(组件化module)

一、认识webview平时在项目中用webView的情况相对来说不是很多,但是基本用法还是要掌握。二、webview架构搭建第一天课程:android:useCleartextTraffic=“true”==》解决打不开页面的问题,设置允许HTTP请求如何实现组件化?arouter or cc(个人开发者)方式实现组件化aotoService实现组件化的方式第一步:添加依赖第二步:新增common module并添加接口类——组件下沉(implemention project(":com

2020-09-09 15:00:59 995

原创 uni-app开发(四):项目实战之仿糗百搜索页

一、搜索框UI基本实现1、首页到搜索界面的跳转事件监听原生标题栏搜索输入框点击事件:框架-生命周期-页面生命周期中的onNavigationBarSearchInputClicked()跳转路由事件:API-路由与页面跳转中的uni.navigateToindes.vue文件中的data中添加监听//监听搜索框点击事件 onNavigationBarSearchInputClicked(){ // 跳转到搜索界面 uni.navigateTo({ url:"../sea

2020-08-12 16:04:16 286

原创 uni-app开发(三):项目实战之仿糗百首页

一、首页模型搭建首先,首页有个底部导航——tabBar,分为四个模块,故对应在pages下创建模块,pages.json文件中代码如下:{ "pages": [ //pages数组中第一项表示应用启动页 { "path": "pages/index/index", "style": {} ,{ "path" : "pages/news/news", "style" : {} } ,{

2020-08-11 16:09:23 636 1

原创 uni-app开发(二):基础组件及样式

一、底部导航tabBar二、view和text组件viewtext三、CSS3选择器类选择器:ID选择器:奇偶选择器:nth-of-typefirst-of-type/last-of-typenth-child四、flex布局display:flexflex-direction:justyfy-content:align-items:flex-shrink:设置是否被压缩五、数据渲染.name>view六、Class与Style绑定:classstyle

2020-08-05 11:42:04 802

原创 uni-app开发(一):准备工作及环境配置

一、准备工作1、uni-app开发官网下载Hbuilder开发工具,直接下载解压缩就可以用了https://uniapp.dcloud.io/quickstart2、HBuilder插件安装:工具——插件安装——APP真机运行/uni-app编译/stylelint/eslint-js/es6编译二、创建uni-app项目1、创建uni-app新项目并命名会生成一系列文件。2、项目框架结构3、pages.json包含所有页面(pages)及全局样式(globalStyle)4、manif

2020-08-04 09:36:05 967

原创 Java 线程与进程(1):基础知识及用法(问答形式)

1 Java 中有几种新起线程的方式?2 怎么让Java线程安全停止工作?3 线程常用的方法和线程状态(图),各个方法使用场景及流程4 对锁的使用和区分(类锁/对象锁/显示锁)—死锁5 生产者消费者案例(产生问题—解决方案)6 ThreadLocal7 并发基础补充知识点死锁活锁8 CAS9 队列和阻塞队列10 线程池...

2020-07-31 15:32:39 140

原创 RecyclerView(四):自定义ItemDecoration并实现吸顶效果

一、RecyclerView.ItemDecoration源码分析ItemDecoration 是RecyclerView类中一个抽象静态内部类,onDraw() 是在itemView 绘制之前onDrawOver 是在ItemView 绘制之后源码如下:public abstract static class ItemDecoration { /** * Draw any appropriate decorations into the Canvas sup

2020-07-23 09:42:01 393

原创 Android高级UI之仿淘宝首页嵌套滑动及吸顶效果实现

一、布局结构设计及实现仿淘宝首页的嵌套布局,TabLayout 上面放置一个 RecyclerView 模拟嵌套效果(TopRecyclerView 只是继承 RecyclerView 填充了几条静态数据,其他未做任何处理),ViewPager的Fragment 中只有一个 RecyclerView 控件,整体的布局是 ScrollView + RecyclerView + TabLayout + ViewPager + Fragment + RecyclerView。<?xml version=

2020-07-21 14:42:38 2901 2

原创 Android高级UI之文字绘制及渐变效果实现

一、文字如何绘制在中心点1、通过画笔 Paint 和画布 Canvas 绘制文字并显示;若直接通过 canvas.drawText() 绘制。将对应 x/y 值都设为 0 ,文字并不会显示,这是因为 y 要传入的值是基于文字基线 baseline,如下图:public void drawText(@NonNull String text, float x, float y, @NonNull Paint paint) { super.drawText(text, x, y, paint

2020-07-15 21:16:10 624

原创 Android高级UI之自定义FlowLayout

一、自定义View之前要了解的知识点1、自定义 View 和自定义 ViewGroup 之间的区别自定义父类控件需重写的方法自定义ViewonMeasure() + onDraw()自定义ViewGrouponMeasure() + onLayout()View 在Activity 中显示出来要经历测量、布局和绘制三个步骤,分别对应measure、layout、draw,其中测量:onMeasure() 决定 View 的大小布局:onLayout()决定 Vi

2020-07-06 11:45:39 285

原创 数据结构(一):顺序表(ArrayList)和链表(LinkedList)

前言因之前没有系统学习过数据结构相关知识,所以从现在起将此部分知识过一遍,后续会将学习内容做总结记录。一、数据结构相关概念数据项:一个数据元素可以由若干数据项组成数据对象:有相同性质的数据元素的集合,是数据的子集数据结构:是相互之间存在一种或多种特定关系的数据元素的集合逻辑结构:指数据对象中数据元素之间的相互关系,分别有集合结构、线性结构、树形结构、图形结构等。物理结构:指数据的逻辑结构在计算机中的存储形式,包含顺序存储结构和链式存储结构二、线性表之顺序表1、 为什么会有线性表数组的特征

2020-07-02 17:14:55 1249

原创 Android进阶之Rxjava的使用及原理梳理

一、RxJava的使用场景1 RxJava 的思维GitHub 上的解说,RxJava 是基于事件流的链式调用、实现异步操作的库。2 RxJava使用场景导入RxJava 是一种扩展的观察者模式,包含以下几个角色:角色作用被观察者产生事件观察者接收事件,并给出响应动作订阅连接 被观察者 & 观察者以上角色的关系是:被观察者 (Observable) 通过订阅(Subscribe) 按顺序发送事件 给观察者 (Observer), 观察者(Obs

2020-06-22 17:31:27 716

原创 Java进阶之注解和反射及动态代理

前言一、二、

2020-06-15 10:29:17 358

原创 Java进阶之泛型

前言码代码是基本的用泛型还是没有问题,但没有深究过泛型的原理,学习后在此做个记录。一、什么是泛型?为什么引入?泛型是JDK5中引入的一种参数化类型特性。为什么引入泛型?----水果案例使代码更健壮(只要编译不提示错误,运行就不会报错)代码更简洁(无需强转)代码更灵活(多类型可复用)二、泛型的定义和使用1 泛型接口public interface IPoint<T> { void setPoint();}2 泛型接口的不同实现方式2.1 泛型类publi

2020-06-12 17:11:06 208

原创 Java进阶之理解JVM内存区域——运行时数据区

前言最近在学习 JVM(Java Virtual Machine)的内存区域相关知识,为巩固所学知识整理做个记录,个人学习总结的知识体系架构图如下:一、JVM与操作系统的关系Java 程序编译后生成的 Java 字节码( .class 文件或者 .jar 文件)需要通过 JVM 翻译才能被操作系统识别(0/1机器码),目前可实现跨平台甚至跨语言(如 kotlin)。Java SE 体系架构中 JDK 提供工具,JRE 提供基础类库, JVM 则只负责翻译,其关系如下图:二、JVM运行过程J

2020-06-10 11:10:43 277

原创 Android框架之Glide框架的使用和源码分析

参考资料:Glide全面解析 面试提问之Glide一、Glide与其他图片加载框架的对比二、Glide的基本使用三、源码分析

2020-05-22 16:50:51 289

原创 Android消息机制(未完待续~~)

一、消息机制介绍首先,要了解消息机制中的四个概念;A Handler:具体处理逻辑的地方B MessageQueue:具有时间优先级的消息队列C Looper:轮询消息队列,看是否有新的消息到来D ThreadLocal:当前线程存储的数据仅能从当前线程取出然后,理清这几者之间的关系:二、Looper在主线程中死循环为什么没有导致界面的卡死?三、IdleHandler介绍?四、...

2020-05-20 23:14:41 131

原创 关于Gson和FastJson

一、阿里巴巴的fastJsonfastjson的github地址:https://github.com/alibaba/fastjsonfastjson的文档地址:https://github.com/alibaba/fastjson/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98FastJson在复杂类型的Bean转换Json上会出现一些问题,可能会出现引用的类型,导致Json转换出错,需要制定引用。FastJson采用独创的算法,将parse的速度提升到极致,

2020-05-15 09:18:00 173

原创 kotlin语法基础汇总(与Java对比)

一、kotlin 主要特征<简洁/安全>1、和 Java 一样是一种静态类型的编程语言;2、kotlin 不需要在源码中显示的申明每个变量的类型,变量类型可根据上下文自动判断----类型推导;3、kotlin 对可空类型的支持:类型标记为可空在其尾部加一个问号4、kotlin 对函数类型的支持5、lambda 表达式6、kotlin 中的检查和转换被组合成一次操作,一旦检查通过,无需额外转换可直接饮用当前类型成员;二、kotlin基础1 基本要素:变量、函数和类关键字 fun

2020-05-14 23:28:58 369

原创 Android进阶之Retrofit2的基本使用及源码分析

一、前言Retrofit框架在项目开发中一直有用到,但是对其一些原理还不是很明白,所以在这做个梳理。二‘、retrofit的使用首先,在GitHub上查看最新的版本,然后添加库的依赖三、retrofit的问题分析四、...

2020-05-09 11:36:23 239

原创 Android屏幕适配问题记录

一、前言个人工作中其实并没有要用到屏幕适配,但之前面试时有被问过相关问题,这次有时间故对屏幕适配的知识做下学习总结整理。二、屏幕适配在那些场景中要用到在这之前,首先得知道屏幕适配的目的是使得某一元素在Android不同尺寸、不同分辨率的手机上具备相同的显示效果,了解以下列出的相关概念及其之间的关系:A 屏幕尺寸:手机对角线的物理尺寸(1英寸=2.54cm),常见的尺寸有5寸、5.5寸、6寸...

2020-05-08 17:06:10 253

原创 Flutter(一):Hello Flutter准备工作

问题1:解决方案:问题9:卡在Running Gradle task ‘assembleDebug’解决方案:因为Gradle的Maven仓库在国外, 可以使用阿里云的镜像地址。修改项目中android/build.gradle文件:第一处:repositories { /*google() jcenter()*/ maven { url 'https://maven...

2020-03-18 16:09:00 154

原创 跑马灯实现

项目中要实现跑马灯垂直滚动功能,选择的TextSwitcher布局xml:<TextSwitcher android:id="@+id/text_switcher" style="@style/textStyle_remark" android:layout_width="wrap_content" android:layout_height="wrap_...

2020-03-09 21:23:42 168

原创 RecyclerView(三):实现时间轴效果

做项目时有需求展示物流信息,用RecyclerView.ItemDecoration实现,代码如下:对应activity中LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL)...

2020-03-09 21:01:40 294

原创 ConvenientBanner的使用

一、com.bigkoo:convenientbanner使用1、导入依赖//轮播图implementation 'com.bigkoo:convenientbanner:2.0.5'2、初始化布局 <com.bigkoo.convenientbanner.ConvenientBanner android:id="@+id/convenientbanner" android:...

2020-03-09 17:20:48 3518

原创 RadioGroup相关

一、代码中在RadioGroup中动态添加RadioButton时的自动换行实现使用自定义RadioGroup,代码如下:public class CustomRadioGroup extends RadioGroup { private List<RowView> rowViews;//存放每行radioBotton的集合 private int horizont...

2020-03-09 16:39:17 207

原创 TextView中加图片,部分字体的样式修改

目前项目中用到的TextView中加图片及样式修改的处理:一、TextView中加静态图片A 不同方向都可添加,xml中设置代码如下:android:drawableTop="@mipmap/pic_loading"android:drawableBottom="@mipmap/pic_loading"android:drawableLeft="@mipmap/pic_loading"...

2020-03-09 15:01:24 139

原创 四大组件之ContentProvider

一、什么是ContentProvider应用程序间共享数据的接口二、ContentProvider的使用需自定义一个类继承ContentProvider,而后覆写query, insert, update, delete等方法;并在清单配置文件中注册,而后第三方可通过ContentResolver来访问Provider;三、ContentProvider与sql的差别ContentPr...

2019-08-26 22:48:06 118

原创 四大组件之BroadcastReceiver

一、什么是BroadcastReceiver在组件之间传播数据的一种机制,这些组件可以位于不同的进程中,起到进程间通信的作用二、BroadcastReceiver的用法首先,需要定义一个类,继承BroadcastReceiver,复写onRecevie方法,当接收到广播后在此做响应处理;然后,对广播进行注册,注册方式有两种,动态注册和静态注册;▲ 动态注册的广播接收器一定要在onDest...

2019-08-26 22:15:12 158

原创 易混淆概念的区分总结

一、String/StringBuffer/StringBuilder的区别1、String长度一旦定义则不可改变;String对象的修改需创建一个新对象,再存入新的值;String类不能被继承;2、StringBuffer可变对象,做修改时不用重建对象;只可通过构造函数来建对象;线程安全类;3、StringBuilder线程不安全,其他与StringBuffer区别不大二、...

2019-08-26 07:50:00 437

原创 四大组件之Service

一、什么是Service?Android中实现程序后台运行的解决方案,他非常适合是去执行那些不需要和用户交互而且还要长期运行的任务。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另一个应用程序,服务仍然能够保持独立运行。服务并不是运行在一个独立的进程当中,而是依赖于创建服务时所在的应用程序进程。当某个应用程序被杀掉时,所有依赖该进程的服务也会停止运行。二、Servic...

2019-08-26 07:27:39 129

原创 四大组件之Activity

一、Activity是什么?Activity是Android的四大组件之一,用来显示View,它提供一个屏幕来与用户交互。二、Activity的基本用法1、需创建一个Activity的子类(通过extends RxAppCompatActivity,或现有子类如BaseActivity的子类);在子类中,实现需要用到的Activity的生命周期,例如在创建,停止,恢复或销毁活动;2、访问...

2019-08-25 12:21:40 175

原创 四大组件五大数据存储六大布局七大生命周期八大基本数据类型(未完待续~)

一 、四大组件1、Activity相关链接:2、Service相关链接:3、BroadcastReceiver相关链接:4、ContentProvider相关链接:二 、五大数据存储SharedPreferences存储数据   SharedPreferences数据存储,也叫作xml存储。这是将数据存储“data/data/程序包名/share_prefs”路径下的到x...

2019-08-22 22:44:50 320

原创 GitHub管理项目代码

在做文档记录及查资料时发现大家把源码都放在GitHub链接,感觉非常方便,之前都没有用过GitHub,所以就查资料试着用下GitHub代码管理工具。1、首先,注册一个GitHub账户并登陆(就按提示步骤操作即可,一般没什么问题)2、然后,根据提示下载GitHub客户端(官网下载地址:http://git-scm.com/download/ )3、安装客户端(注意:选择安装路径,千万别选带中文...

2019-03-20 11:32:17 198

原创 RecyclerView(二):+SnapHelper实现类似ViewPager效果

代码在RecyclerView(一)的基础上做修改实现类似ViewPager左右滑动显示效果,直接上代码:A activity_main.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

2019-03-19 16:06:44 312

原创 RecyclerView(一):基本使用

关于RecyclerView,我想大家都不陌生了,其基本使用就直接上流程步骤了。第一步:添加依赖;compile 'com.android.support:recyclerview-v7:25.1.1'第二步:创建对象并初始化;<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="ht...

2019-03-19 10:09:23 138

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除