摘要: 详解Android主流框架不可或缺的基石 公共技术点之 Java 注解 Annotation 公共技术点之 Java反射Reflection 公共技术点之 Java动态代理 公共技术点之 依赖注入 公共技术点之 Android动画基础 公共技术点之 View的事件传递 公共技术点之 View的绘制流 阅读全文
posted @ 2020-05-24 18:30 tiger168 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 1.wait()与sleep() wait()方法会释放占有的对象锁,当前线程进入等待池,释放cpu, 而其他正在等待的线程即可抢占此锁,获得锁的线程即可运行程序; sleep()方法则表示,当前线程会休眠一段时间,休眠期间,会暂时释放cpu,但并不释放对象锁,也就是说,在休眠期间,其他线程依然无法 阅读全文
posted @ 2019-03-21 11:15 tiger168 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 什么情况下会导致内存泄露(Memory Leak)? Android 的虚拟机是基于寄存器的Dalvik,它的最大堆大小一般是16M,有的机器为24M。因此我们所能利用 的内存空间是有限的。如果我们的内存占用超过了一定的水平就会出现OutOfMemory 的错误。 内存溢出的几点原因: 1、资源释放 阅读全文
posted @ 2019-02-20 16:22 tiger168 阅读(1754) 评论(0) 推荐(0) 编辑
摘要: 如何避免OOM 异常? 想要避免OOM 异常首先我们要知道什么情况下会导致OOM 异常。 1、图片过大导致OOM Android 中用bitmap 时很容易内存溢出,比如报如下错误:Java.lang.OutOfMemoryError : bitmap size exceeds VM budget。 阅读全文
posted @ 2016-04-08 13:03 tiger168 阅读(547) 评论(0) 推荐(0) 编辑
摘要: https://www.jianshu.com/p/718aa3c1a70b https://www.jianshu.com/p/2dd855aa1938 https://www.jianshu.com/p/168e52336b53 国内一线互联网公司内部面试题库 Android面试题集合 2017 阅读全文
posted @ 2016-03-04 10:52 tiger168 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 参考: 1.CompletableFuture 教程 2.CompletableFuture 使用详解 1. 使用 runAsync() 运行异步计算 如果你想异步的运行一个后台任务并且不想改任务返回任务东西,这时候可以使用 CompletableFuture.runAsync()方法,它持有一个R 阅读全文
posted @ 2020-08-27 15:29 tiger168 阅读(2156) 评论(0) 推荐(0) 编辑
摘要: 一、消息种类 Message分为3种:普通消息(同步消息)、屏障消息(同步屏障)和异步消息。我们通常使用的都是普通消息,而屏障消息就是在消息队列中插入一个屏障,在屏障之后的所有普通消息都会被挡着,不能被处理。不过异步消息却例外,屏障不会挡住异步消息,因此可以这样认为:屏障消息就是为了确保异步消息的优 阅读全文
posted @ 2020-06-02 14:45 tiger168 阅读(2074) 评论(0) 推荐(0) 编辑
摘要: 原文: https://www.cnblogs.com/mingfeng002/p/12091628.html IdleHandler:空闲处理器。 在每次next获取消息进行处理时,发现没有可以处理的消息(队列空,只有延时消息并且没到时间,同步阻塞时没有异步消息)都会回调该接口。 1.怎么使用? 阅读全文
posted @ 2020-06-02 11:30 tiger168 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 原文:https://www.songma.com/news/txtlist_i28215v.html 使用 OkHttpClient client = new OkHttpClient();//创建OkHttpClient对象 Request request = new Request.Build 阅读全文
posted @ 2020-05-28 16:47 tiger168 阅读(1277) 评论(0) 推荐(0) 编辑
摘要: 1 Observable 的创建 1.1 from( ) 转换集合为一个每次发射集合中一个元素的 Observable 对象。可用来遍历集合。方法列表: public static <T> Observable<T> from(Future<? extends T> future) public s 阅读全文
posted @ 2020-05-27 19:40 tiger168 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 原文: https://www.jianshu.com/p/c86021fe958d 如何进行电量优化? 了解手机关键耗电的地方及分析耗电的工具后。接下来就是我们的核心,如何来进行电量的优 化?首先我们先简单总结汇总一下耗电的相关因素 屏幕亮暗相关 设备 awake,sleep 的切换,尤其是唤醒. 阅读全文
posted @ 2020-05-27 19:13 tiger168 阅读(739) 评论(0) 推荐(0) 编辑
摘要: 作者:Stan_Z 链接:https://www.jianshu.com/p/fba7b43bdc9c 做内存优化的同学有福了,不过文章知识点依然硬核,能啃多少是多少吧,其他性能优化相关文章: 吹爆系列:深入探索Android卡顿优化 吹爆系列:深入探索Android布局优化大科普吹爆系列:深入探索 阅读全文
posted @ 2020-05-27 18:04 tiger168 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 使用HashMap会涉及一个要求:key与value必须为对象类型,而不能为基本类型。这就导致了本可以基本类型的数据必须转换为其对象包装类型(int->Integer,long->Long......),这就涉及到需要占用更多内存以及拆箱装箱频繁转换问题。 为此Google专门设计了当key为基本类 阅读全文
posted @ 2020-05-27 17:18 tiger168 阅读(804) 评论(0) 推荐(0) 编辑
摘要: java为数据结构中的映射定义了一个接口java.util.Map; 它有四个实现类,:Hashtable HashMap LinkedHashMap 和TreeMap. Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了), 但允许值重复。 Hashtable继承自Dictio 阅读全文
posted @ 2020-05-25 17:47 tiger168 阅读(658) 评论(0) 推荐(0) 编辑
摘要: 一. LruCache基本原理 LRU全称为Least Recently Used,即最近最少使用。 LRU算法就是当缓存空间满了的时候,将最近最少使用的数据从缓存空间中删除,以增加可用的缓存空间来缓存新数据。 这个算法的内部有一个缓存列表,每当一个缓存数据被访问的时候,这个数据就会被提到列表尾部, 阅读全文
posted @ 2020-05-25 16:20 tiger168 阅读(2396) 评论(0) 推荐(0) 编辑