自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 webView系列(十一)----webview网页调试之setWebContentsDebuggingEnabled使用

一、前言 坐混合开发,最蛋疼的就是处理webview的兼容性问题,还有就是js的调用问题,网页是可以正常调试,但是问题是出现在Android机上,需要做兼容适配,但是h5开发的同事不知道Android如何调试,这样子发现问题、解决问题就花了大量的时间,今天,就介绍Android手机使用谷歌浏览器...

2019-12-06 10:37:41

阅读数 1720

评论数 1

原创 /usr/bin/env: "python": 没有那个文件或目录

1.首先查看一下 /usr/bin/ 文件夹里面有没有python文件 如果没有先下载 sudo apt-get install python 2.如果有这个文件则执行下面这句话 sudoapt-get --reinstall install python-minimal 检查是否/us...

2019-09-09 14:12:14

阅读数 1668

评论数 0

原创 Android 3DES加密/解密工具类

public class AndroidDes3Util { private static final String ALGORITHM = "DESede"; /** * 加解密统一使用的编码方式 */ private final ...

2019-08-20 11:08:15

阅读数 237

评论数 0

原创 使用ScheduledThreadPoolExecutor进行Android的定时任务

一、ScheduledThreadPoolExecutor简介 1.1、构造方法 ScheduledThreadPoolExecutor有四个构造方法,如下所示: ScheduledThreadPoolExecutor​(intcorePoolSize) ScheduledT...

2019-08-20 10:31:04

阅读数 241

评论数 0

原创 硬件系列导航与所有硬件博文的demo

硬件系列(一)----------WIFI打印机之使用socket进行打印机搜索 硬件系列(二)-------------wifi打印机之佳博wifi打印机踩坑之路 硬件系列(三)--------wifi打印机之使用socket打印(无sdk) 硬件系列(四)-------------And...

2019-08-16 09:53:36

阅读数 377

评论数 8

原创 硬件系列(九)--------串口扫码头数据读写

一、前言 最近需求做扫码支付,但是扫码的扫码头是串口的,需要进行开发才能调起扫码头扫码,头疼了一段时间,在度娘上搜索了一波,做了下总结,也写了一个demo,顺便写一篇博文记录一下。 二、串口管理类 ** * 串口管理类 * <p> * 触发扫码:7E 00 08 01 0...

2019-08-16 08:30:31

阅读数 240

评论数 0

原创 硬件系列(八)---------使用AccessibilityService服务进行无界面扫码枪扫码获取数据

一、DetectionService 服务类 public class DetectionService extends AccessibilityService { final static String TAG = "DetectionService"; ...

2019-08-16 08:29:31

阅读数 138

评论数 0

原创 硬件系列(七)----------USB扫码枪

一、扫码枪工具类 public class BarcodeScannerResolver { private static final String TAG = BarcodeScannerResolver.class.getSimpleName(); /** *...

2019-08-16 08:29:06

阅读数 168

评论数 0

原创 硬件系列(六)--------------小票打印之无SDK打印

一、前言 在硬件系列(五)-------------Android小票打印机连接 (已封装好,可直接使用)博文中,介绍了利用小票打印sdk进行小票打印,这个也是很久前写的了,也有很多同行的朋友需要sdk进行打印,只是碍于写那篇博文的时候是抽离出来的,很多同行要demo就没有,现在正好有台小票打印...

2019-08-15 17:38:54

阅读数 139

评论数 5

原创 硬件系列(三)--------wifi打印机之使用socket打印(无sdk)

一、前言 在上一篇博文硬件系列(二)-------------wifi打印机之佳博wifi打印机踩坑之路中介绍了佳博wifi打印机的打印,但是这个是要的是sdk进行打印的,如果没有sdk呢?所以,这篇博文就介绍无sdk wifi打印。 二、浅析 wifi打印机,其实本质还是使用网络进行数据的...

2019-08-15 10:47:22

阅读数 90

评论数 0

原创 使用线程池工厂创建线程

一、前言 当我们使用阿里的插件进行代码规范检查的时候,线程的创建不规范总是会报一下的提示: 所以,这篇博文就记录下线程池的创建。 二、线程池工厂类 /** * 线程池工厂类 * @author Freak * @date 2019/8/13. */ public clas...

2019-08-15 10:38:32

阅读数 129

评论数 0

原创 硬件系列(二)-------------wifi打印机之佳博wifi打印机踩坑之路

一、前言 之前做过USB打印机,但是现在需求变了,不是使用收银台进行打印机的连接了,而是使用手机与打印机进行打印。手机又无法像收银机一样直接使用USB直接与打印机直接连接进行打印。所以只能使用蓝牙打印机或者wifi打印机了,但是项目的需求中需要使用到语音播报的功能,配备的是蓝牙音箱,故只剩下了w...

2019-08-15 09:27:16

阅读数 296

评论数 0

原创 硬件系列(一)----------WIFI打印机之使用socket进行打印机搜索

一、前言 相信大部分做wifi打印机打印的朋友都知道,第一步是要进行wifi搜索,看看当前局域网内已经启动的wifi打印机,然后再进行连接,具体的就不多说了,wifi打印这个模块写了已经很久了,现在才有空抽时间出来写一写总结,如果有什么不对的地方,希望能留言给个建议,多多交流交流。不多说,直接开...

2019-08-15 09:03:40

阅读数 99

评论数 0

原创 OKHTTP系列(十一)---自定义拦截器之登录验证再请求拦截器(刷新token再请求)

一、前言 在上一篇博文中,我们介绍了怎么自定义拦截器添加公共参数和设置请求头参数,在这里,讲解一下,自定义一个拦截器去验证登陆是否过期,然后做一些相应的操作,流程如下: 二、RefreshTokenInterceptor类 /** * @author Freak * @date 2...

2019-07-13 13:33:11

阅读数 581

评论数 0

原创 OKHTTP系列(十)---自定义拦截器之添加公共参数拦截器

一、前言 在前面,我们在讲拦截器的时候也讲到了拦截器的调用顺序,会优先调用自定义的拦截器,然后才会调用之后的几个拦截器。这里就不多说了,具体的查看博文OKHTTP系列(三)--拦截器Interceptor概述 二、自定义拦截器 自定义一个拦截器类,实现Interceptor接口,如下所示 ...

2019-07-13 13:32:57

阅读数 244

评论数 0

原创 okhttp系列导航

OKHTTP系列(一)----结构简介 OKHTTP系列(二)--请求与响应流程 OKHTTP系列(三)--拦截器Interceptor概述 OKHTTP系列(四)--拦截器之RetryAndFollowUpInterceptor重定向拦截器 OKHTTP系列(五)--拦截器之Bridge...

2019-07-13 09:57:38

阅读数 87

评论数 0

原创 webview系列导航

webView系列(一)----相关类介绍 webView系列(二)----WebSettings webView系列(三)----WebViewClient webView系列(四)----WebChromeClient webView系列(五)----历史记录 webView系列(六...

2019-07-13 09:54:18

阅读数 176

评论数 0

原创 webView系列(十)----自动登录(刷新token持久化登录)

一、前言 在上一篇博文webView系列(九)----登录验证中,我们将到了登录验证,验证token失效后,就会到登陆页面重新登陆,这样用户觉得登陆的比较麻烦,想达到登陆一次,就很久都不需要登陆了,只要一直使用APP就不会,几天不使用都不会退出登录。为达到这样的效果,我们将讲解自动登录。 二、...

2019-07-13 09:39:20

阅读数 438

评论数 0

原创 webView系列(九)----登录验证

一、前言 在上一遍博文webView系列(八)----拼接参数中,我们讲到如何拼接token,拼接token的目的我们也都知道,就是为了识别用户已经登陆了,相当于网页中的cookie(也可以使用cookie,这里就不做介绍),但是虽然是拼接了token了,但是token是有过期时间的,我们怎么才...

2019-07-13 09:38:58

阅读数 102

评论数 0

原创 webView系列(八)----拼接参数

一、前言 如果项目是进行了三端的开发,而且移动端使用了webview进行混合开发的话,在此时,我们登陆信息就需要拼接到url后面了。如果只是进行一次拼接,那这个很方便,直接在加载url的时候就把登陆信息(token以下都写token)拼接到url里面进行load。但是如果想达到在进入网页的每一个...

2019-07-13 09:38:36

阅读数 220

评论数 0

原创 webView系列(七)----webview加载顺序

一、普通网页加载流程(一开始传入url) WebChromeClient getVisitedHistory WebChromeClient onProgressChanged WebViewClient shouldInterceptRequest(WebView vi...

2019-07-13 09:38:16

阅读数 211

评论数 0

原创 webView系列(六)----webview Api

一、加载网页 /** * 加载URL指定的网页 * * @param url 访问地址 */ @Override public void loadUrl(String url) { super.loadUrl(url); } /** * 携带http headers加载UR...

2019-07-13 08:13:12

阅读数 107

评论数 0

原创 webView系列(五)----历史记录

一、概述 在每次访问一个网页的时候,webview都会记录访问的地址,保存了一个堆栈中,这就是我们要说的浏览历史记录。网页进行加载时,都会调用doUpdateVisitedHistory(WebView view, String url, boolean isReload)方法去更新历史记录。 ...

2019-07-12 17:15:33

阅读数 291

评论数 0

原创 webView系列(四)----WebChromeClient

private WebChromeClient mWebChromeClient = new WebChromeClient() { /** * <video /> 控件在未播放时,会展示为一张海报图,HTML中可通过它的'poster'属性来指定...

2019-07-12 17:01:45

阅读数 152

评论数 0

原创 webView系列(三)----WebViewClient

private WebViewClient mWebViewClient = new WebViewClient() { /** * 通知应用可以将当前的url存储在数据库中,意味着当前的访问url已经生效并被记录在内核当中。 * 此方法在网页加...

2019-07-12 17:00:49

阅读数 262

评论数 0

原创 webView系列(二)----WebSettings

WebSettings settings = mWebView.getSettings(); /** * 设置userAgent用户表示,可以给服务器区分是否是移动端访问 */ settings.setUserAgentString(settings.getUserAgentString()....

2019-07-12 17:00:01

阅读数 129

评论数 0

原创 webView系列(一)----相关类介绍

WebViewDatabase 存储与管理以下几类浏览数据 表单自动填充的用户名和密码; HTTP认证的用户名和密码; 曾经输入过的文本; WebViewClient 一个web客户端,可自定义实现。 WebChromeClient 谷歌web客户端。 WebView Andro...

2019-07-12 16:59:44

阅读数 164

评论数 0

原创 OKHTTP系列(九)---http请求头(header)作用

前言 在项目开发中,网络请求是必不可少的 ,在http方面的知识学习也是不能拉下的,这里就做一波http请求头的记录。 Header:请求头个别参数和描述 Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain,...

2019-07-11 10:03:06

阅读数 385

评论数 0

原创 OKHTTP系列(八)--拦截器之CallServerInterceptor请求服务器拦截器

这是链中的最后一个拦截器。 它会对服务器进行网络请求。 我们通过ConnectInterceptor已经连接到服务器了,接下来我们就是写入请求数据以及读出返回数据了。整个流程: 写入请求头 写入请求体 读取响应头 读取响应体 CallServerInterceptor类 public ...

2019-07-10 21:06:23

阅读数 37

评论数 0

原创 OKHTTP系列(七)--拦截器之ConnectInterceptor连接拦截器

一、连接机制 连接的创建是在StreamAllocation对象统筹下完成的,我们前面面也说过它早在RetryAndFollowUpInterceptor就被创建了,StreamAllocation对象,主要用来管理两个关键角色: RealConnection:真正建立连接的对象,利用Sock...

2019-07-10 21:06:06

阅读数 61

评论数 0

原创 OKHTTP系列(六)--拦截器之CacheInterceptor缓存拦截器

我们知道为了节省流量和提高响应速度,Okhttp是有自己的一套缓存机制的,CacheInterceptor就是用来负责读取缓存以及更新缓存的。 一、CacheInterceptor拦截器intercept(Chain chain)方法 /** Serves requests from the...

2019-07-10 17:12:45

阅读数 69

评论数 0

原创 OKHTTP系列(五)--拦截器之BridgeInterceptor连接桥拦截器

BridgeInterceptor就跟它的名字那样,它是一个连接桥,它负责把用户构造的请求转换为发送给服务器的请求,把服务器返回的响应转换为对用户友好的响应。 转换的过程就是添加一些服务端需要的header信息。 一、BridgeInterceptor拦截器源码 /** * Bridges...

2019-07-09 23:29:03

阅读数 21

评论数 0

原创 OKHTTP系列(四)--拦截器之RetryAndFollowUpInterceptor重定向拦截器

在介绍RetryAndFollowUpInterceptor拦截器之前,先了解一下重定向是什么!!! 一、http协议中的重定向简单了解 原理: 在 HTTP 协议中,重定向操作由服务器通过发送特殊的响应(即 redirects)而触发。HTTP 协议的重定向响应的状态码为 3xx 。浏览器...

2019-07-09 15:23:33

阅读数 49

评论数 0

原创 OKHTTP系列(三)--拦截器Interceptor概述

回顾 我们先回顾先我们OKHTTP系列(二)--请求与响应流程中的请求的处理: final class RealCall implements Call { Response getResponseWithInterceptorChain() throws IOException { ...

2019-07-09 15:18:42

阅读数 22

评论数 0

原创 OKHTTP系列(二)--请求与响应流程

一 、请求与响应流程 Okhttp的整个请求与响应的流程就是Dispatcher不断从Request Queue里取出请求(Call),根据是否已经存存缓存,从内存缓存或者服务器获取请求的数据。 请求分为同步和异步两种,同步请求通过 调用Call.exectute()方法直接返回当前请求的Re...

2019-07-08 22:59:29

阅读数 40

评论数 0

原创 OKHTTP系列(一)----结构简介

一、简介 OkHttp是一个处理网络请求的高性能框架,由Square公司贡献 二、请求流程 三、Okhttp的子系统层级结构 网络配置层:利用Builder模式配置各种参数;例如:超时时间、拦截器等,这些参数都会由Okhttp分发给各个需要的子系统。 重定向层:负责重定向。 H...

2019-07-08 22:49:57

阅读数 38

评论数 0

原创 webview设置setOnKeyListener方法,onKey方法执行两次解决方案

一般我们都会这样设置,代码如下: mWebView.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) ...

2019-07-04 11:57:18

阅读数 143

评论数 0

原创 极光推送之#00 pc 000000000006abe4 /system/lib64/libc.so (tgkill+8) [arm64-v8a]错误

在使用极光推送的时候,在cpu架构为arm64-v8a的时候,闪退率100%,刚开始还以为是项目其他的影响了,但是在其他手机上没有问题,就只能一个一个排查,最终确认是极光推送的sdk的so文件有问题。 具体问题如图所示: 解决方法:只要把极光的sdk版本与libs包下的各种cpu架构的so...

2019-07-03 14:37:34

阅读数 837

评论数 0

原创 基于okhttp3+rxjava2+retrofit2的MVVM模式网络请求

前言 MVC、MVP、MVVM是我们工作和面试中都比较重要的一块,但很多时候我们却有点迷惑。有时候看了好多博文都搞不懂他们是啥,有时候想写个MVP模式,写着写着就成了MVC模式。这个请求框架,也是基于我自己的理解和众多网友的博文进行封装的。另外由于本人水平有限,如果写的不对或者不严谨的地方,请不...

2019-05-24 15:56:54

阅读数 398

评论数 0

原创 java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.inter

在项目中的application中使用registerActivityLifecycleCallbacks()方法时,报了一个异常 java.lang.IllegalArgumentException: Parameter specified as non-null is null: metho...

2019-05-05 15:25:40

阅读数 371

评论数 0

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