自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 资源 (5)
  • 收藏
  • 关注

原创 JDK8 HashMap源码解析

JDK8 HashMap源码解析

2022-07-16 17:12:36 402

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

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

2019-12-06 10:37:41 16611 1

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

1.首先查看一下 /usr/bin/ 文件夹里面有没有python文件如果没有先下载sudo apt-get install python2.如果有这个文件则执行下面这句话sudoapt-get --reinstall install python-minimal检查是否/usr/bin在$PATH内部emacs。如果是,您不能/usr/bin/python2从shell运...

2019-09-09 14:12:14 30969 1

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

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

2019-08-20 11:08:15 1280 1

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

一、ScheduledThreadPoolExecutor简介1.1、构造方法ScheduledThreadPoolExecutor有四个构造方法,如下所示:ScheduledThreadPoolExecutor​(intcorePoolSize) ScheduledThreadPoolExecutor使用给定的核心池大小创建新的。 ScheduledTh...

2019-08-20 10:31:04 1767

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

硬件系列(一)----------WIFI打印机之使用socket进行打印机搜索硬件系列(二)-------------wifi打印机之佳博wifi打印机踩坑之路硬件系列(三)--------wifi打印机之使用socket打印(无sdk)硬件系列(四)-------------Android标签打印机连接与打印位置调动方法总结硬件系列(五)-------------Android...

2019-08-16 09:53:36 1077 9

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

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

2019-08-16 08:30:31 1510

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

一、DetectionService 服务类public class DetectionService extends AccessibilityService { final static String TAG = "DetectionService"; private ScanGun mScanGun = null; @Override public ...

2019-08-16 08:29:31 927 1

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

一、扫码枪工具类public class BarcodeScannerResolver { private static final String TAG = BarcodeScannerResolver.class.getSimpleName(); /** * 若500ms之内无字符输入,则表示扫码完成. (若觉得时间还长,则可以设置成更小的值) *...

2019-08-16 08:29:06 2541

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

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

2019-08-15 17:38:54 823 6

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

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

2019-08-15 10:47:22 2591 3

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

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

2019-08-15 10:38:32 1347 1

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

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

2019-08-15 09:27:16 1831 1

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

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

2019-08-15 09:03:40 3058

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

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

2019-07-13 13:33:11 4032 2

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

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

2019-07-13 13:32:57 2071

原创 okhttp系列导航

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

2019-07-13 09:57:38 311

原创 webview系列导航

webView系列(一)----相关类介绍webView系列(二)----WebSettingswebView系列(三)----WebViewClientwebView系列(四)----WebChromeClientwebView系列(五)----历史记录webView系列(六)----webview ApiwebView系列(七)----webview加载顺序web...

2019-07-13 09:54:18 810

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

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

2019-07-13 09:39:20 3855

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

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

2019-07-13 09:38:58 1012

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

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

2019-07-13 09:38:36 1889

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

一、普通网页加载流程(一开始传入url) WebChromeClient getVisitedHistory WebChromeClient onProgressChanged WebViewClient shouldInterceptRequest(WebView view, final WebResourceRequest request) WebCh...

2019-07-13 09:38:16 1970

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

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

2019-07-13 08:13:12 538

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

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

2019-07-12 17:15:33 4479

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

private WebChromeClient mWebChromeClient = new WebChromeClient() { /** * <video /> 控件在未播放时,会展示为一张海报图,HTML中可通过它的'poster'属性来指定。 * 如果未指定'poster'属性,则通过此方法提供一个默认的海报图。 * * @re...

2019-07-12 17:01:45 519

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

private WebViewClient mWebViewClient = new WebViewClient() { /** * 通知应用可以将当前的url存储在数据库中,意味着当前的访问url已经生效并被记录在内核当中。 * 此方法在网页加载过程中只会被调用一次。 * 此方法在进行加载url时会更新历史记录 ...

2019-07-12 17:00:49 1900

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

WebSettings settings = mWebView.getSettings();/** * 设置userAgent用户表示,可以给服务器区分是否是移动端访问 */settings.setUserAgentString(settings.getUserAgentString().concat("userAgent"));/** * 根据menuItems标志禁用动作模式菜单...

2019-07-12 17:00:01 1020

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

WebViewDatabase存储与管理以下几类浏览数据表单自动填充的用户名和密码; HTTP认证的用户名和密码; 曾经输入过的文本;WebViewClient一个web客户端,可自定义实现。WebChromeClient谷歌web客户端。WebViewAndroid的控件,可以在xml中使用,也可以使用动态添加的方式使用。WebStorage该类用于管理...

2019-07-12 16:59:44 1041

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

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

2019-07-11 10:03:06 5647

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

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

2019-07-10 21:06:23 285

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

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

2019-07-10 21:06:06 1230

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

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

2019-07-10 17:12:45 906

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

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

2019-07-09 23:29:03 337

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

在介绍RetryAndFollowUpInterceptor拦截器之前,先了解一下重定向是什么!!!一、http协议中的重定向简单了解原理:在 HTTP 协议中,重定向操作由服务器通过发送特殊的响应(即 redirects)而触发。HTTP 协议的重定向响应的状态码为 3xx 。浏览器在接收到重定向响应的时候,会采用该响应提供的新的 URL ,并立即进行加载;大多数情况下,除了会有一小...

2019-07-09 15:23:33 1040

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

回顾我们先回顾先我们OKHTTP系列(二)--请求与响应流程中的请求的处理:final class RealCall implements Call {Response getResponseWithInterceptorChain() throws IOException { // Build a full stack of interceptors. List&lt...

2019-07-09 15:18:42 643

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

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

2019-07-08 22:59:29 1004

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

一、简介OkHttp是一个处理网络请求的高性能框架,由Square公司贡献二、请求流程三、Okhttp的子系统层级结构网络配置层:利用Builder模式配置各种参数;例如:超时时间、拦截器等,这些参数都会由Okhttp分发给各个需要的子系统。 重定向层:负责重定向。 Header拼接层:负责把用户构造的请求转换为发送给服务器的请求,把服务器返回的响应转换为对用户友好...

2019-07-08 22:49:57 470

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

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

2019-07-04 11:57:18 1766

原创 极光推送之#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 6217

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

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

2019-05-24 15:56:54 3620

SerialPortTool.zip

使用SerialPort串口进行获取数据,压力测试等串口测试工具

2019-08-16

PrintTool.zip

demo有使用sdk打印方式进行打印小票和不是要sdk进行打印的usb打印、wifi打印,还有USB扫码枪和使用AccessibilityService进行无界面扫码获取数据

2019-08-16

小票打印机sdk

小票打印机sdk,可根据供应商id和产品id去支持多种品牌打印机

2018-12-07

标签打印机sdk

标签打印机的jar包,有需要的可以下载,分数都是一分的

2018-12-07

音频播放文件与源码

此资源附带上播放的代码与播放的音频文件,实现了收款语音的播报功能,如果没有资源分数的朋友,可以在我的博客上联系我直接发你,因为这里上传的资源分数最少只能为1,所以就只能是1分了,我能体会到没有分数下载不了的痛苦。哈哈哈

2018-11-15

空空如也

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

TA关注的人

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