- 博客(11)
- 收藏
- 关注
原创 Bitmap如何处理大图,预防oom
BitmapFactory高效加载大图我们面试的时候常常会被问到,给你一张超大高清图,你如何加载才能不会导致内存溢出呢?我们通常会很爽快的回答“使用二次采样”,那到底什么是二次采样呢?直接上代码BitmapFactory:bitmap工厂,可以帮助我们将不同来源的图片(流,本地资源,byte数组,文件)转化为bitmap,这里我们以从sd读取一张图片为例:public static B...
2020-04-03 11:42:33
1450
原创 AIDL权限验证
AIDL权限验证AIDL的具体使用此处不讲,如有需要自行百度,这里只讲AIDL的自定义权限及验证1.服务端定义并声明权限:<permission android:name="com.nsitd.aa" android:protectionLevel="normal"></permission> <uses-permissi...
2019-12-20 18:35:26
957
原创 android 7.1startActivity()源码解析
android 7.1 startActivity()源码解析参考:https://blog.csdn.net/zhangcanyan/article/details/82981901研究startActivity()源码的目的:通过何种方式生成一个新的Activity类的,是通过java反射生成的吗?Activity的生命周期回调方法是通过哪个类调用的,在什么时候调用的?界面的绘制是...
2019-12-18 16:21:33
240
原创 自定义带边框的圆角图片
这里是利用图层绘制的原理,绘制一个圆角矩形的遮罩来遮挡部分原图,达到视觉上的圆角效果。具体步骤:1.绘制一个白色矩形背景2.绘制一个圆角矩形背景3.利用图层绘制中的PorterDuff.Mode.DST_OUT模式(显示下层非交集部分,交集部分透明显示)显示圆角。4.绘制边框public class RoundCornerImageView extends android.suppor...
2019-10-17 16:42:36
172
原创 刮刮乐自定义view实现
利用图层混合原理实现简单的刮刮乐效果,直接上演示效果public class XfermodeEraserView extends View { private Bitmap mSrcB, mDstB, mTxtB; private Paint mPaint; private Path mPath; public XfermodeEraserView(Con...
2019-10-08 20:34:10
182
原创 Android 加载超大长图及原理
Android 加载超大长图及原理我们在开发中偶尔会遇到加载超大长图,类似于微信n多页聊天记录截图加载。但这类图片一般都会很大,几兆、十几兆、甚至几十兆,很容易造成内存溢出,今天笔者给大家提供一个可以满足此类需求的简单的自定义view。具体原理就是图片缩放,只加载屏幕显示区域图片,内存复用。代码很简单,注视也很相信,可以拿来直接用。public class BigView extends Vi...
2019-09-26 11:49:03
1160
原创 okhttp3.7源码分析(三)-多路复用
前面两篇文章我们主要了解了一下okhttp的同步异步使用、基本工作原理及okhttp的拦截器的功能。今天我们重点分析一下ConnectIntercept拦截器中的多路复用 @Override public Response intercept(Chain chain) throws IOException { RealInterceptorChain realChain = (Rea...
2019-09-17 07:24:36
1309
原创 app在被系统释放后,重回前台Activity时,重建造成Fragment重叠
我们知道,要使用Fragment的Activity必须继承v7的AppCompatActivity,而AppCompatActivity继承自FragmentActivity当我们的app退到后台被系统回收时,会触发我们的onSaveInstanceState方法,而使用Fragment的Activity会调用到父类FragmentActivity的onSaveInstanceState方法...
2019-09-16 20:58:31
459
原创 okhttp3.7源码分析(二)-拦截器
okhttp3.7源码分析1.okhttp 特点:2.okhttp的同步和异步使用同步异步调用Response response = getResponseWithInterceptorChain();最后总结一下okthhp的整个网络访问流程1.okhttp 特点:1.支持HTTPS/HTTP2/WebSocket(在OkHttp3.7中已经剥离对Spdy的支持,转而大力支持HTTP2)2...
2019-09-16 09:57:34
169
原创 okhttp3.7源码分析(一)
1.okhttp 特点:1.支持HTTPS/HTTP2/WebSocket(在OkHttp3.7中已经剥离对Spdy的支持,转而大力支持HTTP2)2.内部维护任务队列线程池,友好支持并发访问3.内部维护连接池,支持多路复用,减少连接创建开销4.socket创建支持最佳路由5.提供拦截器链(InterceptorChain),实现request与response的分层处理(如透明GZIP...
2019-09-16 09:29:46
165
原创 Android 开发ReactNative入门
今天下午鼓捣了三个小时终于把rn的hello world弄出来了,感觉rn开发步步都是坑啊,所以记录一下。第一步:新建一个普通的安卓项目。清单文件中加入权限<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permissio...
2019-08-29 22:59:37
209
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人