数据库 Room Room 在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库 1.Room 入门 1.gradle添...
数据库 Room Room 在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库 1.Room 入门 1.gradle添...
前面学习了Android自定义View(一) -- 初识Android自定义View(二) -- Paint详解 今天继续学习第三篇内容drawText(),本文是对第二篇文...
随着前端技术发展,越来越多的技术框架考虑使用 Js 脚本语言来作为实现动态化,跨平台方案的开发语言。而 Js 脚本的解析,执行的效率决定了框架的性能,所以高性能的 Js 引擎...
混淆(Proguard)用法 最近项目中遇到一些混淆相关的问题,由于之前对proguard了解不多,所以每次都是面向Stackoverflow的编程。copy别人的答案内心还...
代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。 为什么要加代码混淆------------...
调用Looper.quit()和Looper.quitsafely()的时候发生了什么? 根据官方文档: Looper.quit() 调用后直接终止Looper,不在处理任何...
我一定会爱上你 - 谢春花 ActivityLifecycleCallbacks 是用来监听所有 Activity 的生命周期回调。接口定义如下: Activity 的每一个...
本文已授权 微信公众号 玉刚说 (@任玉刚)独家发布。 前言 在不久前的Google 2018 I/O大会上,Google正式推出了AndroidJetpack ——这是一...
1)、三阶贝塞尔曲线2)、Path的Measure 一、动画分析 小鱼的行走不是简单的位移,不难看出在小鱼位移的同时身体的角度还随着前进的方向而变化,所以本篇要解决如下两部分...
引言 在开发中经常会遇到,一个列表(RecyclerView)中有多种布局类型的情况。前段时间,看到了这篇文章 [译]关于 Android Adapter,你的实现方式可能一...
希望作者改一下,你确实写反了,会影响其他读者的。Lrucache源码trimToSize()方法 Map.Entry<K, V> toEvict = map.eldest();在LinkHashMap中的源码 public Map.Entry<K, V> eldest() {
return head;
},LinkHashMap的get方法源码public V get(Object key) {
Node<K,V> e;
if ((e = getNode(hash(key), key)) == null)
return null;
if (accessOrder)
afterNodeAccess(e);
return e.value;
},
void afterNodeAccess(Node<K,V> e) { // move node to last(这里是源码自己的注释)
Outline [TOC] 前言 大家喜闻乐见的Backpressure来啦. 这一节中我们将来学习Backpressure. 我看好多吃瓜群众早已坐不住了, 别急, 我们先...
Outline [TOC] 前言 在上一节中, 我们找到了上下游流速不均衡的源头 , 在这一节里我们将学习如何去治理它 . 可能很多看过其他人写的文章的朋友都会觉得只有F...