自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OkHttp源码分析

本篇文章将从OkHttp的使用步骤入手逐步去分析Okhttp的源码。 常见使用: //OkHttpClient的创建 OkHttpClient client = new OkHttpClient(); //Request的创建 Request request = new Request.Builder() .url(url) ....

2019-12-17 21:36:23 291

原创 HashMap实现原理及源码分析

HashMap基本特点 HashMap是基于hashing原理,使用put(key,value)存储对象到HashMap中(但是并不保证其顺序),使用get(key)取出对象的一种数据结构。 HashMap可以接受null键和null值(但是只允许一条记录的键为null,值没做限制)。 HashMap是非线程安全的。所以在多线程的情况下要使用的话,可以使用Collections.synchr...

2019-12-17 21:33:11 266

原创 EventBus源码分析

本篇文章将从EventBus的常用使用步骤去逐步分析它的源码和内部实现,其中会额外提到粘性事件、观察者模式和接口回调的区别以及EventBus线程调度相关知识。 下面就从以下的使用流程去逐步分析EventBus的源码。 初始化->注册->发送事件->解除注册 初始化 使用EventBus时我们一般通过调用getDefault来获取EventBus对象,EventBus的获...

2019-09-22 21:55:30 295

原创 Android Presentation实现双屏异显

一、概述 现在越来越多的Android设备有多个屏幕,双屏异显应用场景最多的应该就是类似于收银平台那种设备,在主屏上店员能够对点商品进行选择录入,副屏则是展示给我们的账单详情,但是它只通过了一个软件系统就实现了双屏异显这个功能,而Presentation正是这其中的关键。 二、Presentation分析 简述:首先从它的继承关系上来看Presentation是继承自Dialog的,就是说它...

2019-07-17 18:34:48 1951

原创 Java 注解

一、注解概述 官方:注解是一系列元数据,它提供数据用来解释程序代码,但是注解并非是所解释的代码本身的一部分。注解对于代码的运行效果没有直接影响。 人话:注解类似于标签,相当于给一个东西贴上标签,让编译器能更好的认识它,从而进行处理。 元数据  元数据指的就是用来描述数据的数据,即注解是一种用来描述数据的数据。 二、元注解 元注解只是在使用的范围上有限制,它是用来给注解添加注解的。元注解一...

2018-12-12 22:08:49 236

原创 Android 消息机制

一、消息机制概述 Android的消息机制主要是指Handler的运行机制以及Handler所附带的MessageQueue和Looper的工作过程,Handler的主要作用是将一个任务切换到当前Handler所在的线程中去执行。 Android提供这个功能主要是它规定了访问UI只能在主线程中进行,如果在子线程中访问UI,那么程序就会抛出异常。 以上规定的原因是:Android的UI控件不是...

2018-12-06 22:33:45 346

原创 Java 反射

一、反射概述 JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 二、反射的原理 举个例子Student s = new Student(),我们通过new这个操作符在堆区为这个对象分配了内存空间,完成了s的创建。 在从new ->...

2018-12-03 17:21:31 262

原创 Android 事件分发机制

一、基本认识 1.1事件分发的顺序:     Activity -> ViewGroup -> View 1.2事件分发方法的协作     主要由dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()共同协作完成 1.3大致流程:     Activity -> ViewGroup:当一个点击事件产生...

2018-11-26 22:21:08 236

原创 Java集合框架

Java集合主要由两个接口派生而出:Collection和Map 而这主要的集合又大致分为:Map,List,Set,Queue   集合和数组的区别 1.数组长度必须在初始化时指定,只能保存定长数据;集合则可以保存数量不定的数据 2.数组元素可以是基本类型的值,也可以是对象;集合则只能保存对象,基本类型的变量要转换成对应的包装类才能放入集合中(如:int -> Integer) ...

2018-11-17 21:59:58 225

原创 对虚拟DOM的一点理解

起因:DOM的操作是很慢的,每次涉及到的状态改变都会重新进行DOM操作。 怎么去进行性能优化?(整体的思想是减少对DOM的操作) 1).既然DOM操作很慢,那就不用DOM 优点:性能全面提升 最开始有个公司提出了一个全新的理解,既然DOM很慢,那么就不用DOM,他们直接用的是canvas(画布),相当于用户操作的是一个canvas,而没去改变DOM节点,这样避免使用DOM就...

2018-10-07 22:21:24 749

原创 一个完整的RN项目总结

直接从进入app开始讲每一个功能的具体实现。 先声明本文提到的这些功能,我的实现方法可能并不是最优的,如果有更好的实现方法,欢迎交流! 转载请注明出处! 1.引导页只在第一次打开app后出现: 实现方法:类似于原生Android的处理方法,直接存一个值到本地,原生用的是Sharedpreferences,RN里面就直接用AsyncStorage。原理就是在第一次打开的时候设定一个值保存在本...

2018-09-17 16:05:58 1258

原创 React-Native学习之路(十)使用第三方库实现分享功能

本文章实现了第三方分享、登录的功能,主要基于另一个博主的文章,在此仅对实现方法及集成过程中的问题进行详细的记录,方便自己日后回顾,详细操作请参考原作https://blog.csdn.net/u013718120/article/details/75040805 作者的github:https://github.com/songxiaoliang/react-native-share Andr...

2018-08-15 15:35:57 1986

原创 React-Native学习之路(九)TabNavigator隐藏问题的分析及解决

首先说明一下我是用的TabNavigator+StackNavigator来写的页面跳转。 我们先分析一下为什么在每个Tab的Item里面实现跳转,跳转页面还是会有底部的TabNvigator 先看下我出问题的项目结构,首先,我们可以看到我给这个Tab的Item指定的显示页面是MyPage,然后因为我MyPage中涉及一系列的跳转,所以我用了一个StackNavigator来实现MyPag...

2018-08-01 21:59:34 2220

原创 React-Native学习之路(八)TabNavigator

TabNavigator 2018年7月23日 15:46 通过TabNavigator来实现底部菜单栏,因为这是一个第三方的库,所以使用这个TabNavigator需要先下载 npm install --save react-navigation 然后导入 Import TabNavigator from 'react-native-tab-navigator' 因为是个第三方库,...

2018-07-24 22:14:47 731

原创 React-Native学习之路(七)ListView

ListView 2018年7月22日 15:53 一、实现ListView基本显示中的两个必要属性: 1).dataSource:         dataSource是ListView的数据源,首先在state中去创建一个ListView.DataSource数据源,然后通过cloneWithRows方法为其传递一个数组,其中提供给数据源的rowHasChanged函数可以告诉Lis...

2018-07-24 22:10:50 1022

原创 React-Native学习之路(六)Navigator

Navigator页面跳转和数据传递 2018年7月21日 15:37 1.首先需要导入 npm install react-native-deprecated-custom-components --save 然后在项目中使用navigator的时候 import {Navigator} from react-native-deprecated-custom-components ...

2018-07-24 22:06:34 286

原创 React-Native学习之路(五)Touchable系列组件

Touchable系列组件 2018年7月21日 11:14 TouchableWithoutFeedback:响应用户的点击事件,如果你想在处理点击事件的同时不显示任何视觉反馈,使用它是个不错的选择。 TouchableHighlight:在TouchableWithoutFeedback的基础上添加了当按下时背景会变暗的效果。 TouchableOpacity:相比Touchable...

2018-07-24 22:05:12 463

原创 React-Native学习之路(四)Flexbox和一些普通布局属性

Flexbox和一些普通布局属性 2018年7月20日 20:23 flexbox是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。采用flex布局的元素,称为flex容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为flex项目(flex item),简称"项目"。 首先看下flexbox的排列:分为主轴和交叉轴(侧...

2018-07-24 22:02:03 348

原创 React-Native学习之路(三)props和state

React-Native props和state 2018年7月20日 10:23 props: 即属性,它是用来描述一个组件的特征的,由父组件传递给子组件,而且一经指定,在被指定的组件的生命周期中则不再改变 第一个this.props.name就会使用PropsTest的组件,在PropsTest中设置后就能在子组件进行显示 默认属性:可以在这个子组件中设置默认的属性,就必须...

2018-07-24 21:50:22 731

原创 React-Native学习之路(二)组件的生命周期

React-Native组件的生命周期 2018年7月19日 16:03  上图为React-Native组件的生命周期图,由于我编写时constructor已经替代了getDefaultProps和getInitialState两个方法所以重新做了张图以供学习。 一、初始化阶段 1).constructor:         constructor即构造函数,我们可以在里面初始化...

2018-07-24 21:45:03 1278

原创 React-Native学习之路(一)配置及环境搭建常见问题

ReactNative配置及环境搭建常见问题 2018年7月19日 11:43 1.找不到sdk:有两种方式: 1).在环境变量中加入一个新的"ANDROID_HOME"在这里面把电脑上的sdk位置设置进去 我的电脑像找不到JDK这样配置出现不了具体路径,就用了第二种方法 2).复制AS根目录下的local.properties到新建项目的android目录下 经实测只有第二种方法能...

2018-07-24 20:36:59 281

空空如也

空空如也

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

TA关注的人

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