- 博客(49)
- 资源 (3)
- 收藏
- 关注

原创 Android屏幕适配总结
1.屏幕适配方案1. 宽高限定符(分辨率限定符)穷举市面上所有的手机宽高,生成相应的res文件,如values-19201080,values-1280720,values-1024600等,使用其中一种分辨率(和UI设计一样)作为基准,编写dimens文件,然后其他所有的分辨率根据基准分辨率计算,生成其对应分辨率的dimens文件,使用时,直接按照ui设计图在xml里面使用对应的dimens值,不同分辨率会使用到其对应的dimens下的值。这一方案有两大问题,问题一,生成dimens文件时比较麻烦,
2021-11-04 21:51:24
14501
2

原创 全网最全的Java Socket通讯例子
前言网上关于Java的比较完整的Socket编程例子屈指可数,参考价值不大。要么是短连接且只支持纯文本通讯;要么是短连接且只支持文件通讯;要么是基于多个短连接的文本和文件通讯;前面这些基本是单向通讯的例子,而且长连接的例子很少。当然也有比较著名的socket框架,如Netty。但这些框架高度封装,对于入门和理解Socket基础编程,未免显得吃力。本文介绍Java Socket原始通讯例子,全双工通讯,客户端和服务端互发消息,支持文本和大文件通讯,可基于例子理想可自由扩展。...
2021-08-22 13:51:37
5872
4

原创 基于RxJava2.0+Retrofit2.0超大文件分块(分片)上传(带进度)
当上传文件过大时,直接上传会增加服务器负载,负载过高会导致机器无法处理其他请求及操作,甚至导致宕机,这时分片上传是最佳选择。本次简单介绍两种分片上传文件方案(暂不考虑文件安全相关问题,如签名):方案一:把单个文件切割成若干份,依次上传,最后由服务端合并方案二:根据文件索引读取指定大小上传,服务器根据索引写入...
2021-06-14 21:38:55
2839
8

原创 一款牛逼的Android端身份证合成工具
简介做物联网设备软件开发时,设备端一般都有读取身份证的模块,比如银行自助终端,图书馆自助终端,而从硬件端读取身份证出来的是原始数据,需要合成身份证正反面并在终端显示,最终上传base64编码的图片数据到服务端。本工具主要用于合成中华人民共和国居民身份证(基于身份证模板上绘制基础信息),不支持外国人永久居住证及自定义身份证字体字号。目前支持以下功能: 1. 支持根据基本信息合成......
2020-08-11 12:12:59
80584
11

原创 Android基于Http服务实现文件管理器
前言大家都知道手机自带的文件管理都有一个远程管理文件的功能,都是基于FTP服务实现,只要电脑端和手机端在同一局域网里,就可以访问手机里的文件。...
2020-01-17 10:14:02
2003
3

原创 非常棒的Android开源UI库、类库、项目汇总
前言 平时Android开发为了按时按质完成任务,总少不了一手好资源,这样不仅大幅提高开发效率(说不定老板还会为你加薪升职),又可以把开发剩出的时间用来学习其它技术,一举两得。当然如果你时间充足且有一定的实力,可以不用别人的开源库,重新造一个新的轮子。但是开源库不一定满足实际需求,但可以参考现有开源库的实现思想,在其基础上进行改造以满足实际需要。总之,改造控件和使用开源项目的优点有:...
2019-11-23 21:31:11
3458

原创 Java获取类或接口上的泛型类型T方法
前言实际开发中,泛型使用到处可见。有时候定义接口时,经常使用泛型,而不是指定具体对象,使用泛型的好处很多,特别是代码复用方面。要获取类或接口上的泛型类型Class<?>,然后对这个类型进行数据处理,至于怎么处理,还要看实际的应用场景。本篇讲述如何获取类或接口的泛型类型(参数化类型ParameterizedType)。实例1.定义泛型接口public interface Res...
2019-09-19 16:59:37
27793
7

原创 Java Socket正确读取数据姿势
前言平时日常开发用得最多是Http通讯,接口调试也比较简单的,也有比较强大的框架支持(OkHttp)。个人平时用到socket通讯的地方是Android与外设通讯,Android与ssl服务通讯,这种都是基于TCP/IP通讯,而且服务端和设备端协议都是不能修改的,只能按照相关报文格式进行通信。但使用socket通讯问题不少,一般有两个难点:socket通讯层要自己写及IO流不正确使用,遇......
2019-09-12 17:57:13
20666
4

原创 Adnroid jni数据传递大全,看这篇就够了
前言 这次总结一下jni数据交互(通讯)的方式,本篇侧重应用,native层主要用C++编写。掌握数据交互方式,对入门jni及理解java与C++的数据类型映射起到四两拨千斤的作用。本编着重jni数据传递实现,跳过jni开发环境搭建及jni基础知识(网上基本可以找到对应解决方案)。 平时为了实现某个功能(RFID编解码库),如果C++开发那边已经有现成的C++类...
2019-08-02 17:12:38
2756
1

原创 Android端轻量级远程JDBC库remote-db
前言 最近在做一个Android端手持设备盘点功能, 要求将盘点到的数据直接发送远程数据库。正常来说,移动端直接操作数据库存在安全性问题,但由于是局域网连接数据库,可以忽略。 平时我们都是客户端通过Http请求后端服务,服务端操作数据库再返回数据给客户端。Java EE后端操作数据库当然容易很多,毕竟有很多牛逼的ORM框架Hiberante 、mybatis等,...
2019-07-18 15:06:36
10086

转载 最新Android框架排行榜,上百项资源汇总不容错过
Android框架排行榜1.Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言上榜理由:Retrofit以21.8k的stars量雄踞github中android子标题榜首,第一当之无愧。官网地址 http://square.github.io/retrofit/github https://github.c...
2019-05-21 17:30:36
4132
6

原创 基于RxJava2.0+Retrofit2.0的文件下载实现(带进度,非覆写ResponseBody和拦截器)
基于RxJava2.0+Retrofit2.0的文件下载实现(带进度,非覆写ResponseBody和拦截器)前言本文主要讲解RxJava2.0+Retrofit2.0实现下载文件并带进度效果,如果按照传统方法是很容易实现的。但是,发现网上搜索的例子都是通过OkHttpClient的拦截器去拦截Response来实现进度显示(侵入性有点强),个人发现bug不少,问题都是在UI更新方面出...
2019-01-18 16:15:02
8235
22
原创 IC卡(智能卡)APDU通讯总结
前言总所周知,IC卡(智能卡)在身份验证、公共交通、门禁系统、银行、保险等领域随处可见。本文介绍IC卡读写器涉及一些简单概念和IC卡APDU通讯,概念并不做过多深入,了解即可,着重应用,避免少走弯路。IC卡基本概念和相关知识IC卡 (Integrated Circuit Card,集成电路卡),也称智能卡(Smart card)、智慧卡(Intelligent card)、微电路卡(Microcircuit card)或微芯片卡等。它是将一个微电子芯片嵌入符合ISO 7816标准的卡基中,做成卡片形式
2022-01-22 14:32:08
18434
2
原创 Android Studio内置JDK源码关联和断点错乱问题解决
平时使用Android Studio新建Java工程,断点调试发现JDK源码时AS反编译后的代码,调试起来极方便。内置JDK正确关联源码操作步骤:1. 查看Android Studio自带的JDK版本,找对应路径:C:\Users\Administrator.AndroidStudio3.6\config\options\jdk.table.xml2. 去官网下载对应的JDK,https://www.oracle.com/java/technologies/oracle-java-archive-
2021-08-27 20:29:17
1067
原创 Java控制台日志打印封装
平时为了方便测试和定位错误(特别是demo工具时),又不想依赖日志框架,习惯使用System.out.println(),但这种知识简单输出文本,而且打印异常时不好定位,对打印不同级别的日志也不能满足需求。本文对System.out.println()进行简单封装,轻量级调用。以前是这样调用:现在引入后这样调用:...
2021-08-12 16:46:43
1186
原创 Android WebView最佳优化(WebView池)
前言说到优化是个老生常谈的话题了,如内存泄露这种,只要遵循一定的编码规则,大部分能避免。本文说下WebView优化,如何大幅提高WebView加载速度。一种可以从设置缓存下手,另一种使用WebView池。本文采用第二种方法,基于X5 WebView优化,这种效果非常明显,给人丝滑般流畅。网上的WebView池方案基本没有考虑视图缓存问题,即复用WebView时,加载新页面,存在历史浏览页面问题。优化国际规则,先上代码:...
2021-06-26 12:38:29
4629
2
原创 一文搞懂base64编码
前言Android开发中,base64编码还是比较常用的,用归用,其原理还是有必要理解的。Android中使用base64编码:private void base64Test() { String baseStr = "ab中国。"; byte[] bytes = baseStr.getBytes(); //默认编码 System.out.println("DEFAULT :" + ByteUtil.bytes2Str(Base64.
2021-04-02 09:47:20
1292
原创 Android终端机屏保页功能实现
前言一般来说,Android终端机空闲状态播放显示屏保页,播放图片或者视频,可以使用ViewPager,这次没有使用,
2020-11-22 22:51:05
449
1
原创 关于Android终端机串口的理解
前言一般来说,终端设备包括Android系统及其关联的硬件模块的组合体,Android系统与硬件通讯有多种连接方式,比如常见的串口,usb,wifi,蓝牙等连接方式,其中串口一般是指传统的串口RS232((也叫COM口,通讯口)),已经。其实串口包含USB接口,usb就是通用串行总线(Universal Serial Bus, USB)。传统串口相信不久会被市场淘汰,目前市场上大部分是usb口。串口是指利用串行方式传输数据的接口,它是一大类接口,USB接口、RS232接口、网线RJ45接口、RS485接
2020-11-22 21:05:45
1806
原创 Android扫码枪数据读取封装
前言本文介绍如何从Android端获取扫码枪的二维码数据,扫码枪应用场景多,如:扫码付款,扫码取票,扫码开门等。扫码枪的相关设置这里不多说,都有对应的文档说明,不同扫码枪大同小异。Android端获取扫码枪数据一般有如下三种获取方式:USB键盘模式,自感模式(出厂默认):设置一个带焦点的EditText进行接收,此方式容易漏读扩展的ASCII码数据,除非二维码是标准的ASCII码(1-128)通过usb com连接扫码:发送扫码开关指令进行扫码,即基于Usb相关类控制扫码开关,控制不好容易出问
2020-09-26 14:56:36
4395
2
原创 Android自定义均衡器 EqualizerView
闲来无事,撸了个自定义了个均衡器 EqualizerView,遵循测量-布局-绘制三部曲,最后加上触摸交互动作。本控件支持TV端使用,可应用在音乐播放器中。效果图:
2020-05-22 16:30:50
2169
1
原创 一文搞懂Handler线程切换奥妙
网上关于Handler的使用及原理文章很多,都讲得不错,但关于主线程和子线程切换方面都是一笔带过,不够清晰易懂。回顾一下Handler消息机制,其组成元素:Handler、Looper、MessageQueue、Message,主要作用:发送和处理消息,Looper会在一个无限循环中不断从MessageQueue中获取Message(它的target参数持有是发送它的Handler对象),交给对应的Handler去处理,最终回调Handler。其实Handler主线程和子线程切换主要依靠ThreadLoc
2020-05-15 14:47:48
986
3
原创 Glide等比缩放图片问题总结
前言等比例缩放图片在聊天列表中比较常见,而不是显示固定宽高的图片。最近对IM项目迁移到Androidx时,顺便升级了glide,发现glide等比例缩放图片出现bug(自定义ImageViewTarget实现图片缩放),第一次能正常加载,第二次无法正常等比例缩放。原来项目是使用glide 3.7.0,现在是使用gilde 4.11.0 (4.10.0开始支持AndroidX)解决方案不同版本...
2020-04-29 11:03:47
3022
1
原创 Android相机填坑总结
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2020-03-25 18:21:33
397
原创 Retrofit混淆后数据反序列化失败或数据解析失败问题
前言有时候明明混淆规则配置好了(Retrofit+Rxjava+Gson+Okhttp组合),还是出现数据反序列化失败问题,本次介绍一种特殊情况,就是主app目录和module目录下各有一个bean,app的bean关联module的bean,即在子模块里尽量只放和子模块相关的混淆规则,一些公有的混淆方式请放在app或者公有的模块中。问题复现app目录混淆规则:modlue目录...
2019-12-27 10:45:43
1408
转载 Android UI 切图命名规范、标注规范及单位描述
Android UI 切图命名规范、标注规范及单位描述很多UI设计师做APP切图都会有两套,一套是Android的,一套是IOS的...
2019-12-05 17:34:55
1266
原创 快递100接口查询限制分析
前言 最近,发现快递100快递明细查询接口异常(https://www.kuaidi100.com/query?type=jd&postid=快递单号&temp=0.47825892409661974&phone=),以前该接口不管哪个平台直接查询可以获得正常结果,现在查询出现如下: 经研究发现快递100官方做查询限制,如果你要正常查询...
2019-07-29 17:32:00
6093
3
原创 Gson同字段不同类型数据解析总结
前言 最近使用Retrofit进行网络请求时,自带Gson解析json时遇到一个问题,返回的json数据中某个字段可能为jsonArray,也可能是jsonObject,也有可能为空(即同一个字段,返回可能是对象,数组,null)。错误回顾测试数据:如果返回的数据类型有两种以上,但你定义json的实体类bean属性类型时,可能只使用了jsonObject或者json...
2019-06-17 13:56:02
8676
1
转载 像大牛一样写代码: 31个Android 开发者工具
原文:Code like a pro: 31 tools for Android app developers。文中部分工具是收费的,但是绝大多数都是免费的。FlowUp这是一个帮助你跟踪app整体性能的工具,深入分析关键的性能数据如FPS, 内存, CPU, 磁盘, 等等。FlowUp根据用户数量收费。Stetho由Facebook开发的一...
2019-06-10 10:44:39
1035
原创 我就简单理解一下Retrofit及其CallAdapter.Factory
前言 用了Retrofit这么久 ,感觉Retrofit的架构设计牛逼,是学习设计思想和设计模式的不二典范。但今天不是来详细分析这个框架的原理,主要简单了解下Retrofit的CallAdapter.Factory及怎么通过CallAdapter.Factory兼容OkHttp和RxJava。 OkHttpClient.Builder httpClient = new ...
2019-06-05 18:38:48
6562
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人