Floating Cat
首页
归档
分类
标签
关于
一个程序员的日常书单(2018)
今日元宵节,祝各位节日快乐.本想谈谈读书这个话题,想来想起觉得无从下手,就此作罢.毕业这几年,一直不敢放松,在现代这个互联网时代更加认同萧抡谓的”一日不读书,胸臆无佳想;一月不读书,耳目失清爽”.如果非要给自己找个读书的理由的话,这句诗就是最好的理由:”胸藏文墨虚若骨,腹有诗书气自华”. 与书结缘应该要感谢我的父亲和母亲.小时候,母亲嫌我捣蛋就有意的培养我读书.刚上小学时,父亲便从他战友哪里弄来几
2017-02-11
technology
书单
Rust包管理
基本概念module模块 Module 用于将函数或结构体按照功能分组。我们通常把相似的函数或者实现相同功能的或者共同实现一个功能的函数和结构体划分到一个模块中。 Rust中模块的概念类似其他语言中模块或者包的概念,以我们常用的Java为例,Rust模块等价于Java中的一个Package. crate在Java中我们可以将Package组织为为Module,在Rust中同样如此:我们可以将Rus
2020-06-04
rust
rust
Vim高级使用技巧
Vim重复命令.命令.命令用于”重复上次的修改”,可以通过:h .来查看其更多用法,实际上.命令是一个微型的宏:从进入插入模式的那一刻起(例如输入i),直到返回普通模式为止(输入),Vim会记录每一个按键的操作.做出这样的一个修改后再通.命令的话,它将会执行所有这些按键的操作. 可重复的操作 目的 操作 重复 回退 做出一个修改 {edit} . u 在行内查找下一个指定字符 f{
2020-05-04
vim
vim
深入Flutter技术内幕:Platform Channel设计与实现(一)
Flutter作为一个灵活的UI框架,引入Platform Channel机制来支持不同平台的API调用,无论是Android上的由Java或Kotlin开发的API,还是IOS上用Objective-C或Swift开发API.需要注意的是Platform Channel不依赖代码生成,而是建立在消息传递方式上.实际上,它的工作模式和原理非常类似基于二进制协议开发的网络服务,在下文中,我们会对此有
2019-02-09
technology
Android
Flutter
Platform Channel
Dart
思考快与慢(一):高效开发之Intellij IDEA
在15年开始从Eclipse转入IDEA时,为了兼容当时的使用习惯,自定义了许多快捷键.但随着后面MacOS逐渐成为我主要的开发平台,原先在Windows平台上定义的很多快捷键与MacOS原生快捷键有很多的冲突,经过一个阶段的思考与实践之后,我决定放弃原有的习惯,以全新的视角接受Intellij IDEA中的快捷键. 下述快捷键适用于MacOS平台,基于Mac 10.5+. 编辑 快捷键
2019-01-27
technology
高效
开发
快与慢
OpenJDK系列(四):从JVM谈C/C++编译流程
编译器的这点事gcc和g++还傻傻分不清楚?clang与gcc有什么关系?llvm又是什么?下面将对一些常见的名词进行说明以免在后续阅读中感到疑惑. gcc和g++gcc 即 GNU C Compiler, 刚开始它就是一个c编译器项目。后来越来越多的其他语言编译器也被添加到这个项目中,如用于编译c++代码的cc1plus.此时的gcc代表的是一堆编译器的集合(the GNU Compiler C
2018-09-25
technology
gcc
clang
llvm
预处理
编译
汇编
链接
OpenJDK系列(三):JVM对CAS的设计与实现
CAS简介CAS即Compare-and-Swap的缩写,即比较并交换,它是一种实现乐观锁的技术.在CAS中包含三个操作数: V: 需要读写的内存位置,从java角度你可以把它当成一个变量 A: 预期值,也就是要进行比较的值 B: 拟写入的新值 当且仅当V的值等于A时,CAS才会通过原子方式用新值B来更新V的值,否则不会执行任何操作.无论位置V的值是否等于A,最终都会返回V原有的值.换句话说:
2018-06-27
technology
OpenJDK
HotSpot
CAS
OpenJDK系列(二):从ClassFileParser谈Endian
EndianEndian即所谓的字节序,通俗点说就是多于一个类型的数据在内存中存取的顺序目前有两种字节序. Big-Endian: 也称为大端序:高位字节存放在内存的低地址端,低位字节存放在内存的高地址端. Little-Endian: 也称为小端序:高位字节存放在内存的高地址端,低位字节存放在内存的低地址端. Endian与内存单元对于0x12345678而言,1234是高四位,5678是低
2018-06-22
technology
OpenJDK
HotSpot
Endian
OpenJDK系列(一):编译/调试与项目结构
OpenJDK编译之前的基于OpenJDK8的资料由于人为因素丢失了,索性就重新来过:以OpenJDK10为例.此外,如无特殊说明,开发平台皆为MacOS. 源码下载在mac平台上,可以通过HomeBrew进行OpenJDK源码的下载,以OpenJDK10为例.由于OpenJDK的源码采用mercurial进行管理,因此需要安装mercurial,另外由于编译需要,我们同时安装ccache和fre
2018-06-20
technology
OpenJDK
HotSpot
深入Android辅助服务架构与设计
首先我们需要明确在整个AccessibilityService体系中共包含三个部分,其结构基本如下: 被监控应用端: 即我们需要监控的应用,比如微信,系统某些界面等等; 监控服务端: 用来实时接受来自被监控应用端的事件,并作出处理,即我们自行实现的AccessibilityService AccessibilityManagerService: 由于被监控应用端和监控服务端涉涉及跨进程通信,同
2018-03-22
technology
AccessibilityService
ViewRootImpl
AccessibilityManagerService
1
2
3
4
搜索
×
关键词