![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android基础知识
文章平均质量分 65
此非梦亦非幻
我就是我
展开
-
基于RxJava2.0+Retrofit2.0的多线程文件下载实现
前言原创 2021-09-09 20:13:34 · 1879 阅读 · 0 评论 -
全网最全的Java Socket通讯例子
前言网上关于Java的比较完整的Socket编程例子屈指可数,参考价值不大。要么是短连接且只支持纯文本通讯;要么是短连接且只支持文件通讯;要么是基于多个短连接的文本和文件通讯;前面这些基本是单向通讯的例子,而且长连接的例子很少。当然也有比较著名的socket框架,如Netty。但这些框架高度封装,对于入门和理解Socket基础编程,未免显得吃力。本文介绍Java Socket原始通讯例子,全双工通讯,客户端和服务端互发消息,支持文本和大文件通讯,可基于例子理想可自由扩展。...原创 2021-08-22 13:51:37 · 4873 阅读 · 4 评论 -
Android WebView最佳优化(WebView池)
前言说到优化是个老生常谈的话题了,如内存泄露这种,只要遵循一定的编码规则,大部分能避免。本文说下WebView优化,如何大幅提高WebView加载速度。一种可以从设置缓存下手,另一种使用WebView池。本文采用第二种方法,基于X5 WebView优化,这种效果非常明显,给人丝滑般流畅。网上的WebView池方案基本没有考虑视图缓存问题,即复用WebView时,加载新页面,存在历史浏览页面问题。优化国际规则,先上代码:...原创 2021-06-26 12:38:29 · 4177 阅读 · 2 评论 -
基于RxJava2.0+Retrofit2.0超大文件分块(分片)上传(带进度)
当上传文件过大时,直接上传会增加服务器负载,负载过高会导致机器无法处理其他请求及操作,甚至导致宕机,这时分片上传是最佳选择。本次简单介绍两种分片上传文件方案(暂不考虑文件安全相关问题,如签名):方案一:把单个文件切割成若干份,依次上传,最后由服务端合并方案二:根据文件索引读取指定大小上传,服务器根据索引写入...原创 2021-06-14 21:38:55 · 2551 阅读 · 8 评论 -
一文搞懂Handler线程切换奥妙
网上关于Handler的使用及原理文章很多,都讲得不错,但关于主线程和子线程切换方面都是一笔带过,不够清晰易懂。回顾一下Handler消息机制,其组成元素:Handler、Looper、MessageQueue、Message,主要作用:发送和处理消息,Looper会在一个无限循环中不断从MessageQueue中获取Message(它的target参数持有是发送它的Handler对象),交给对应的Handler去处理,最终回调Handler。其实Handler主线程和子线程切换主要依靠ThreadLoc原创 2020-05-15 14:47:48 · 900 阅读 · 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 · 2800 阅读 · 1 评论 -
Retrofit混淆后数据反序列化失败或数据解析失败问题
前言有时候明明混淆规则配置好了(Retrofit+Rxjava+Gson+Okhttp组合),还是出现数据反序列化失败问题,本次介绍一种特殊情况,就是主app目录和module目录下各有一个bean,app的bean关联module的bean,即在子模块里尽量只放和子模块相关的混淆规则,一些公有的混淆方式请放在app或者公有的模块中。问题复现app目录混淆规则:modlue目录...原创 2019-12-27 10:45:43 · 1244 阅读 · 0 评论 -
Android中异步转同步(主线程等待子线程)方法总结
前言原创 2019-08-15 18:13:08 · 12457 阅读 · 2 评论 -
基于RxJava2.0+Retrofit2.0的文件下载实现(带进度,非覆写ResponseBody和拦截器)
基于RxJava2.0+Retrofit2.0的文件下载实现(带进度,非覆写ResponseBody和拦截器)前言本文主要讲解RxJava2.0+Retrofit2.0实现下载文件并带进度效果,如果按照传统方法是很容易实现的。但是,发现网上搜索的例子都是通过OkHttpClient的拦截器去拦截Response来实现进度显示(侵入性有点强),个人发现bug不少,问题都是在UI更新方面出...原创 2019-01-18 16:15:02 · 7901 阅读 · 22 评论 -
Android小技巧之创建桌面快捷方式(已适配8.0)
前言 在某些情况下需要对应用创建桌面快捷方式,特别是在使用原生系统(4.3到8.0)运行物联网app时,往往存在二级菜单,而应用图标默认安装在二级菜单(现在国内主流手机厂商的系统都没有二级菜单了),如果按照网上的做法是可以创建和兼容8.0系统,但存在一个问题: 点击快捷方式打开应用和点击二级菜单应用图标打开应用,会出现重启应用的问题,导致两边进入应用显示的页面...原创 2019-05-31 16:01:49 · 3950 阅读 · 0 评论