![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 95
firtzXu
这个作者很懒,什么都没留下…
展开
-
记一个使用系统相机拍照后照片被旋转的问题
最近在做项目的自定义相册时,遇到了这么一个问题:从 小米9 手机上面的拉起系统相机进行拍照,然后上传到服务器上面,发现图片莫名其妙就旋转了 90° ,这个并不符合业务方的需求,在仔细分析后,发现拍照后,系统保存到本地的照片已经给旋转过了 因此要解决这个问题,就只有在拍照后,判断图片是否给旋转,如果有,就将它旋转回去 要获取图片的旋转信息,其实就是要获取图片的 Exit 信息,它里面存储了图片的全部参数,我们可以通过 ExifInterface 来获取到这个数据: /** * 读取图片的旋转的角度 *.原创 2020-12-06 22:51:32 · 2405 阅读 · 5 评论 -
Android增量更新
现在国内的各大应用市场都有省流量更新的功能,只需要你将最新版本的 apk 上传到它们的应用市场上面进行更新,用户在通过应用市场更新应用时,都可以看到体积较小的升级包,这背后的技术,就是增量更新 增量升级的基本流程: 用户手机上面已经安装的目标应用,它的版本号为 1,而目前该应用的最新版本的版本号为 2 将版本号为 1 和版本号为 2 的两个目标应用的安装包,进行差量对比,得到一个差分包(这个就是增量包) 版本号为 1的应用和增量包进行合并得到版本号为 2 的安装包,并进行覆盖安装 从上面的流程就可以.原创 2020-05-17 23:54:46 · 303 阅读 · 0 评论 -
线程小白的学习笔记
本篇为 Java编程的逻辑 的并发内容的学习笔记 什么是线程? 线程是表示一条单独执行的程序执行流,它有自己的程序计数器和栈。 创建线程 Java 中的 Thread对象 实现了 Runnable 接口,因此创建线程的方法有两种。 public class Thread implements Runnable {} 1.继承Thread 通过继承 Thread 并...原创 2018-06-12 22:32:21 · 131 阅读 · 0 评论 -
线程小白的学习笔记(二)
本篇为 Java编程的逻辑 的并发内容的学习笔记的第二篇 共享内存以及带来的问题 不同线程之间可以共享内存,操作相同的变量,但是可能会发现一些意料之外的问题,其中有名就是竞态问题和内存可见性问题。 竞态问题 所谓的竞态是指:当多个线程访问和操作同一个对象时,最终执行结果和执行时序有关,也就是执行结果可能正确也可能不正确。 我们可以看下面的例子: public cla...原创 2018-06-17 12:37:08 · 200 阅读 · 0 评论 -
认识Http的缓存策略
这篇以前在简书写的blog,由于已经不会在简书写东西了,就搬过来这边。 我们日常开发经常和网络打交道,从服务器上面获取数据。但是如果我们如果在短时间内多次向服务器请求的数据其实都是一样的,我们是没有必要这么浪费用户的流量的。为了提高用户的体验,我们需要合理使用缓存,要使用缓存就得搞明白缓存的一些相关策略机制,于是就有了这篇文章。 Http的缓存机制 我们可以先看下面的思维导图...原创 2018-06-30 18:43:46 · 1415 阅读 · 0 评论 -
Java 中的代理模式
为其他对象提供一个代理对象,从而让其他对象操作该代理对象来间接完成对某个指定对象的访问,这个就是代理模式。 而在 Java 中,针对代理对象的创建方式,又划分了 静态代理 和 动态代理 静态代理 代理模式的一个特征就是 代理类和指定对象有着同样的方法调用,因此一般都是通过接口来设计代理模式。 首先定义个接口: public interface Subject { void req...原创 2018-11-25 23:14:46 · 127 阅读 · 0 评论 -
okhttp的拦截器
okhttp 其实就做了 3 个操作,分别是 请求(call) ,TCP 连接(Connection) ,数据流(okio),这 3 个操作都是通过 okhttp 的拦截器来完成的 okhttp 的拦截器到底是有些,我们可以在 opkhttp3/RealCall 里面的一个方法看到: Response getResponseWithInterceptorChain() throws IOExc...原创 2018-12-03 21:49:50 · 185 阅读 · 0 评论 -
高效易用的okio(四)
超时机制在我们的日常生活中随处可见,最为常见就是火车了,如果你不能按时到达火车站点,那么你就错失坐这一趟火车的机会 在前面的文章,就已经提到过 okio 中的有一个超时机制 Timeout, 现在就来说说它的原理 okio 中的超时机制只要就两种: 同步超时 Timeout 异步超时 AsyncTimeout 还有一个超时对象 ForwardingTimeout ,不过这个属于一个空盒子,需要...原创 2019-01-05 14:29:13 · 830 阅读 · 0 评论