数据单位

MB 和 Mb 有啥区别?

单位 比特(bit):最小单位,由 0/1 组成; 字节(Byte):1 Byte = 8 bit; 日常使用 一个英文字母占用 1 Byte; 一个中文汉字占用 3 Byte(UTF-8编码); Java 中 int 型占用 4 Byte 日常所说的 100M 宽带指的是 100Mbps 的宽带,而我们说的下载速度是 MB/s(MBps);这之间有8倍的...

Http 缓存

Cache-Control Expired:仅在 HTTP/1.0 使用; max-age:缓存的最长“新鲜”时长; s-maxage: 会覆盖 max-age 以及 Expires 数据(但仅对 shared/public 缓存有效); max-stale: 缓存的最长保留时长,当缓存不在新鲜,会从网络获取新鲜数据,但是当获取数据发生异常,会获取还在 max-stale ...

CPU 指令集

CPU 指令集 大体上CPU指令集可以分为“复杂指令集”和“精简指令集”两大阵营 复杂指令集(CISC) 精简指令集(RISC) x86 ARM(armeabi,v7a,v8a) x86_64 PowerPC IA64...

Git

git rebase 合并未提交到远程的多个 commit 1 2 git rebase -i 89fahe8 // 合并从当前 head 到 89fahe8 git rebase -i HEAD~3 // 合并最近3次提交 然后修改 pick 为 s/e/m 等等,可以查看命令下面的提示。 合并同一个分支的多次提交冲突 ...

kotlin 协程

最简单的使用 1 2 3 GlobalScope.launch(Dispatchers.IO) { ... } 什么是协程 在程序中处理并发任务的方案,也是这种方案的一个组件。 协程和线程属于同一个层级的概念。 协程中不存在线程,也不存在并行。 并发 1 2 3 4 5 GlobalScope.launch(Dispatchers....

SDK 对外打包

暴露接口,隐藏细节

暴露 API 工程 单独抽取一个 api 模块,用来放给用户使用的接口文件,以及数据 Bean。 保留方法参数命名,方便使用者查看(要不然使用者在调用接口的时候,看到的参数都是 var1,var2 这样不可读的)。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25...

OAuth2 流程

知识以及图片来自于henCoder plus,感谢凯哥。 预备 下面将举例第三方 接入 Github 登陆。 在开发人员接入 Github 登陆之前,需要在 Github 填写信息,比如网站,图标等等;Github 会返回给开发者 client_id,以及 client_secret,一般 client_id 可以泄露没关系,但是 client_secret 不能泄露,...

Kotlin 学习笔记

让我们荡起双桨

笔记来自学习即刻时间 – 快速上手Kotlin开发,扔物线 – 码上开学,等等… 内联函数 一般在比较小的方法上,以及频繁使用的方法上使用,而不会随意使用。 内联函数可以中断外部调用的。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 fun test() { inlineTest { println...

Android Q-A

自问自答

可以在 Service 中启动 Activity 么? 可以的 需要 addFlag( FLAG_ACTIVITY_NEW_TASK). 弊端:会在系统的“最近任务”中显示,可以通过 android:excludeFromRecents="true" 解决 兼容:在 oppo, vivo 手机中,默认不能跳转,需要引导用户开启“...

Android stack and launch mode

概述 启动新的 Activity,该把它放到哪个 stack 中呢?这是由启动模式以及 taskAffinity 共同作用的。 在一个 stack 中,可以放来自不同应用的 activity。 如果 ActivityA 要启动 ActivityB: 如果 ActivityB 是 standard 或者 singleTop,那么 ActivityB 会被直接放到 Ac...