前言 回顾了下以前写的调用相机和相册的功能,准备把它们整合下,想起曾经用魅族在获取大图时OOM的问题,决定重看一遍当初的解决方式。在获取缩略图步骤上发现了系统已经提供了工具类ThumbnailUtils,当然减少内存消耗…
分类:移动开发
Recyclerview使用
首先是布局文件中使用 RecyclerView <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to…
OkHttp源码之socket连接池
在整个okhttp中,相对来说最耗资源的应该属于socket连接了,所以为了节省tcp的连接释放以及TLS协议的握手等时间,socket连接池是必不可少的。研究它的连接池,我们重点关注以下两点: socket复用有何标准…
简单解读equals()与“==”、hashcode()的关系
一、”==”和equals方法究竟有什么区别? ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只…
windowIsTranslucent和Activtiy切换动画冲突
解决办法 <style name="Animation.Activity.Translucent.Style" parent="@android:style/Animation.Translucent"> &…
Tinker源码分析(七):dex合成流程
本系列 Tinker 源码解析基于 Tinker v1.9.12 前面讲到了 Tinker 安装补丁的流程,现在就详细地来看下 dex 合成的代码。代码入口就在 DexDiffPatchInternal.tryRecov…
Android面试题Java篇
前言 一年之计在于春 金三银四已经要到来,2019的新的开始,作为一个开发人员,你是否面上了自己理想的公司,薪资达到心中理想的高度? 面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责。 今天给大家分享下我整…
LayoutInflater源码分析(二)
上一篇LayoutInflater源码分析(一)我们分析了LayoutInflater的from()方法,这节我们来分析一下inflate()方法。 view = LayoutInflater.from(parent.g…
大表哥带你一步一步用Builder模式实现自定义相机(拍照+录制,附源码)
1.前言 1.1 初衷 在我们做很多项目的过程中,经常会遇到很多需要自定义的相机的需求,这个时候,很多人第一步都是网上查资料,包括我也是这样,但是我没有发现有比较靠谱没有Bug的开源项目,虽然这个需求也不是很难,但是由于…
Dagger2初探
在你逛Github的时候,如果遇到一些大型的开源项目,恐怕最眼熟的几个关键字就是RxJava、Retrofit、MVP、Dagger2、RetroLambda等等。在之前的文章中,我们先后学习过Rxjava、Retrof…
FFmpeg音视频同步原理与实现
前几篇文章,实现了音频与视频的单独播放,但将音视频结合到一块之后会出现音频与视频不同步的问题。经研究之后,在此记录下原因、同步原理、以及实现。 一、原理 如果简单的按照音频的采样率与视频的帧率去播放,由于机器运行速度,解…
自定义 View:用贝塞尔曲线绘制酷炫轮廓背景
先对曾经点喜欢或者收藏这篇文章的朋友说声抱歉,因部分原因个人决定在简书停更并转移驻扎到其他平台。本想删除账号,可不忍已经点喜欢和收藏的朋友再进入此文章看到 “404” 的页面。所以在下面附上这篇文章转移的新地址。 《自定…