自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 kotlin的使用笔记

kotlin的使用笔记kotlin中的扩展函数结合kotlin自带的扩展函数apply函数 -> 同also函数基本一致用法apply 是 Any 的扩展函数,因而所有类型都能调用apply 接受一个lambda表达式作为参数,并在apply调用时立即执行,apply返回原来的对象apply 主要作用是将多个初始化代码链式操作,提高代码可读性使用this关键字代指调用者...

2019-01-18 11:50:39 228

原创 算法笔记

排序算法分析问题:排序算法的执行效率(最好情况,最坏情况,平均时间复杂度)时间复杂度的系数,常数,低阶(平常n值很小的情况下)比较次数和交换(移动)次数,尽可能少排序算法的内存消耗(空间复杂度)原地排序: 特指空间复杂度为O(1)的排序算法排序算法的稳定性:如果待排序的序列中有相同的值,经过排序以后,不改变他们之间原有的先后顺序例如: 根据订单的金额大小跟下单时间...

2018-11-09 10:18:44 162

原创 蔡蔡的画

风景画水墨画人物画工笔画剪纸作品

2018-09-11 18:21:33 1440 1

原创 使用SurfaceView实现手机息屏状态下的静默拍照保存,上传服务器

注意:本文章只适用于技术交流,请你友好交流净化开发环境思考由于谷歌强制在Android应用开发中编写拍照程序是必需要有图像预览的。这对那些恶意程序比如Android中泛滥的Service在后台偷偷记录手机用户的行为与周边信息。这样的门槛还包括手机厂商自带的相机软件在拍照时必须是有声音,这样要避免一些偷拍的情况;据说oppo find系列及vivo Nex系列可以检测出那些流氓软件这么...

2018-09-10 11:46:49 2630 2

原创 栈跟队列的理解

一、栈栈(stack),是一种线性存储结构,它有以下几个特点:栈中数据是按照"后进先出(LIFO, Last In First Out)"方式进出栈的;向栈中添加/删除数据时,只能从栈顶进行操作;栈通常包括的三种操作:push、peek、poppush -- 向栈中添加元素peek -- 返回栈顶元素pop -- 返回并删除栈顶元素的操作使用栈设计一个先进先出的队列​/** * descrip...

2018-05-07 23:29:49 249

原创 使用TagFlowLayout制作动态添加删除标签

效果图

2017-07-20 16:53:19 3803 3

原创 解决Dagger2与ButterKnife冲突

发现问题使用ButterKnife引入Dagger2后发现点击以及控件的查找均失效,主要是butterknife和dagger2都用到了annotation;解决方法关于注解的问题[点击跳转](“http://blog.csdn.net/xx326664162/article/details/68490059“)按照官方正常配置App的build dependencies {

2017-07-19 15:29:51 1852 2

原创 Retrofit实现HTTPS请求

服务器下载文件(crt+key转cer)在jdk\bin文件下复制openssl.exe(链接有)使用openssl x509 -in (你的服务器).crt -keyform (服务器私钥).key -out (Retrofit使用的Http).cer -outform der Retrofit请求中配置使用OkHttpClient.sslSocketFactory()设置Https请求

2017-06-23 14:15:57 567

原创 Android进程间通信:Messenger,AIDL

MessengerMessenger本质也是AIDL,只是进行了封装,开发的时候不用再写.aidl文件,Messenger使用起来十分简单 ; 在service端,Messenger处理client端的请求是单线程的,而AIDL是多线程的。 使用AIDL的时候,service端每收到一个client端的请求时,就会启动一个线程(非主线程)去执行相应的操作。而Messenger,service

2017-06-04 17:28:45 323

原创 事件处理及解决事件冲突

事件传递原则:先捕获然后冒泡在捕获阶段,事件先由外部的View接收,然后传递给其内层的View,依次传递到更够接收此事件的最小View单元,完成事件捕获过程;在冒泡阶段,事件则从事件源的最小View单元开始,依次向外冒泡,将事件对层传递。Android中不同的控件所具有的事件分发、拦截和响应稍有不同,主要表现在Activity本身不具有事件拦截,不是ViewGroup的最小view单元也不具有

2017-06-03 17:57:37 1126

原创 AsyncTask与线程池

线程池的创建为什么使用线程池 线程的创建和销毁由线程池维护,一个线程在完成任务后并不会立即销毁,而是由后续的任务复用这个线程,从而减少线程的创建和销毁,节约系统的开销线程池旨在线程的复用,这就可以节约我们用以往的方式创建线程和销毁所消耗的时间,减少线程频繁调度的开销,从而节约系统资源,提高系统吞吐量在执行大量异步任务时提高了性能Java内置的一套ExecutorService线程池相关的a

2017-05-31 21:05:13 452

原创 Java算法结构

直接插入排序 int a[] ={2,4,5,6,3,1,7,8,3}; //排序算法:稳定的算法,不会改变相同数字在数组的前后顺序; //复杂度为O(n^2); /* 快速排序:直接插入排序(Insertion Sort)的基本思想是: 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序

2017-05-28 22:14:27 522

原创 Retrofit动态代理机制与Rxjava适配器模式分析

代理模式代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。对于代理模式可以分为两大类,分别是静态代理和动态代理。下面就开始对这两种类型的代理模式进行详细介绍。静态代理在这里通过一个场景来展开描述代理模式。现在我想按照自己想要的配置来组装一台电脑。于是我将主板,内存条,显卡,机箱,显示器等所有的配件都买回来了。可是这个时候遇到了一个难题,我不会组装呀。于是我带着这些配件去找专业人士为

2017-03-29 11:21:14 1353

原创 桥接模式

应用桥接模式(Bridge)来做(多维度变化)效果及实现要点:Bridge模式使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化。所谓抽象和实现沿着各自维度的变化,即“子类化”它们,得到各个子类之后,便可以任意它们,从而获得不同路上的不同汽车。Bridge模式有时候类似于多继承方案,但是多继承方案往往违背了类的单一职责原则(即一个类只有一个变

2017-03-17 15:45:12 355

原创 算法简介

时间复杂度定义时间复杂度O:评估执行程序所需的时间。可以估算出程序对处理器的使用程度;空间复杂度:评估执行程序所需的存储空间。可以估算出程序对计算机内存的使用程度 设计算法时,一般是要先考虑系统环境,然后权衡时间复杂度和空间复杂度,选取一个平衡点。不过,时间复杂度要比空间复杂度更容易产生问题,因此算法研究的主要也是时间复杂度,不特别说明的情况下,复杂度就是指时间复杂度时间复杂度:就是当n为无

2017-03-16 15:22:54 1070

原创 观察者模式与建造者模式

观察者模式定义观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。Subject:抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,

2017-03-15 16:24:36 1487

原创 Retrofit网络框架的封装使用

retrofit的使用实例(封装以后比较简单明了) //联网登录请求的使用 Map<String, String> map = new HashMap<>(); map.put("userName" , phone); map.put("passWord" , pwd); System.out.println(phone + "-

2017-03-14 17:24:42 468

原创 单例模式

特点单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同

2017-03-13 14:17:07 379

原创 Collection的迭代器实现

集合的遍历方法List<String> list = new ArrayList<String>();list.add("aaa");list.add("bbb");list.add("ccc");方法一:超级for循环遍历for(String attribute : list) { System.out.println(attribute);}方法二:对于ArrayList来

2017-03-13 11:35:28 440

原创 ANR产生原因和解决办法

ANR定义ANR定义:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样系统不会

2017-03-07 14:11:43 1675

原创 Andriod内存

内存泄露的概念内存泄漏(memory leak)是指由于疏忽或错误造成程序未能释放已经不再使用的内存。那么在Android中,当一个对象持有Activity的引用,如果该对象不能被系统回收,那么当这个Activity不再使用时,这个Activity也不会被系统回收,那这么以来便出现了内存泄漏的情况。在应用中内出现一次两次的内存泄漏获取不会出现什么影响,但是在应用长时间使用以后,若是存在大量的Act

2017-03-02 13:30:02 355 1

原创 RxJava学习笔记

Rxjava 的原理Observable:发射源,可观察的,在官擦着模式中被称为”被观察者Observer:接收源,观察者,可接受Observable,subject发送的数据Subject:即可当接受者,也可以当被观察者Subscriber: 订阅者,接收源,实现了Observer接口,比Observer多了一个接口unSubscribe取消订阅,建议使用Subscriber接收源.Su

2017-03-01 16:00:34 768

oppenssl.exe

用于将crt转成cer文件

2017-06-23

空空如也

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

TA关注的人

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