街题系列 - 启动一个不在 AndroidManifest 中注册的 Activity

这个也是一个面试题。 本文是参考插件化入门篇-如何启动一个未注册过的Activity,只是加上自己的了解,原理还有代码都是插件化入门篇-如何启动一个未注册过的Activity他里面的, 我把 attachBaseContext() 里面的代码提取出来一个新的方法,命名为 relaceActivity() ,经过证实, relaceActivity() 方法其他方法,例如 onCreat() 或者 onStart() 中也可以,我之前一直以为必须得放到 att...

阅读更多

我的代码块也能显示行数,滑动,高亮和一键复制

代码块滑动 使用现在这个模板后,一直对一个地方不满意,那就是代码显示这一块,他不能滚动, 可以参照下面这个图片,这是我以前的代码块显示 主要是在红框那一段,我很不喜欢原本一行的代码给我折行的,特别喜欢那种带有滑块的效果,怎么处理呢,怎么才能不让折行。大学学的那点 HTML , CSS , JS 早考试完都物归原主,还给老师了,那就先看看网上有没有现成的能滑动博客吧,然后就找到了我之前用的那个模板中发现还真是这样的, 这个代码块就能滑动,而且看上去比我的代码块好...

阅读更多

扫盲系列 - Java 多线程

多线程 多线程不是为了提高执行速度,而是为了提高程序的应用效率。 程序在运行的时候,都是在抢 CPU 执行权,如果是多线程程序,那么抢到 CPU 的执行权比单线程的要大,也就是说 CPU 在多线程程序中执行的时间比在单线程中的要长,所以提高了程序的应用效率,但是就算是多线程程序,哪个能抢到 CPU 执行权,也是不确定的,多线程具有随机性。 线程的调度模型 分时调度模型 所有线程轮流使用 CPU ,平均分配每个线程占有的 CPU 时间片 抢占式调...

阅读更多

扫盲系列 - Java 锁机制

乐观锁 认为竞争不会经常发生。任务读多写的少,因此拿数据不上锁。但是在更新的时候会判断在此期间有没有人去更新这个数据,采取在写时先读取版本号,然后加锁操作,比较上一次版本号,如果一样则更新,如果失败则重复比较写的操作。适用于多读场景 java 中的乐观锁都是通过 CAS 操作的, CAS 是一种更新的原子操作,比较当前值跟穿入值是否一样,一样则更新,否则失败。 悲观锁 认为竞争经常发生,认为写的多,遇到并发的可能性高,所以每次拿数据都会上锁,这样别人读写这个数...

阅读更多

View 的事件分发机制

触摸事件 点击事件,也称为触摸事件,是捕获触摸屏幕产生后的事件。 所谓事件的分发,其实就是对 MotionEvent 事件的分发过程,即当一个 MotionEvent 产生后,系统需要把这个事件传递给具体的 view ,这个传递的过程就是分发过程 MotionEvent 触摸事件封装的类,可以得到触摸的坐标, getX() 和 getRawX() ;得到触摸的类型,例如 ACTION_DOWN , ACTION_UP , ACTION_MOVE 等 g...

阅读更多

扫盲系列 - Groovy 语法

构建工具是一个可编程的工具,能够以执行和有序的任务来表达满足需要的自动化过程 构建工具就是用来让我们不在做机械重复的事情,解放我们的双手 DSL 领域特定语言,基本思想是“求专不求全”,不像通用目的语言那样目标覆盖一切软件问题,而是专门针对某一特定问题的计算机语言,通俗的讲就是行话 Gradle 是一个构建工具,基于 groovy ,并且是一种 DSL , Gradle 样板文件的代码少,这是因为它的 DSL 被设计用于解决特定的问题:贯穿软件的生命周期,从编译...

阅读更多

街题系列 - HashMap 实现原理。

特点: 基于 Map 接口实现 允许 null 键/值,但是最多允许一条键为 null 的记录 ,可以允许多条值为null的记录 非同步 不保证有序,比如插入的顺序 不保证顺序不随时间变化 HashMap 的数据结构 Java 中常见的两种结构是数组和模拟指针(引用),几乎所有的数据结构都可以用这两种结构组合实现, HashMap 也不例外,实际上 HashMap 是一个“链表散列”,结构如下 从图中可以看出, HashMap 底层还是...

阅读更多

adb 常用资源

常用指令 得到设备的尺寸和密度 adb shell wm size //设备的尺寸 adb shell wm density // 设备的密度 截图,并且导出 adb shell screencap -p /sdcard/screen.png ; adb pull /sdcard/screen.png ~/ -p 后面跟的是截屏保存的 sdcard 路径 adb shell dumpsys acti...

阅读更多