AndroidX
题外话:比起支持,果然还是开发适合我,内心平静了好多。
官方介绍:AndroidX
迁移步骤:
将 Android Studio 升级到 3.2 以上的版本,project 下的 gradle 里面 com.android.tools.build:gradle 的版本号要改成 3.2.1
修改 gradle.properties
android.useAndroidX=true
android.enableJetifier=true
打开 module 下面的 build.gralde 文件
compileSdkVersion 更改为 28
targetSdkVersion 更改为 28
在AndroidStudio 中执行如下操作:Refactor > Migrate to AndroidX
迁移后续:
由于 Migrate to AndroidX 执行之后,部分控件的包名/路径名的自动转换是有问题的,所以还需要我们手动调整。如:ViewPager,RecyclerView 等,这些内容在迁移完成之后,Android Studio 帮我们自动转换的包 ...
hexo 问题
每次隔一段时间不发布博客,总会冒出新问题。
这次是执行 hexo d 的时候提示:
于是上网搜,反正就是先测试 ssh 是否可以连接,ssh -T git@github.com,然后就可以了:
github.io 拒绝了我们的连接请求
通过站长之家 DNS 查询,查询自己博客可用的 ip。
使用管理员权限打开记事本,然后在记事本中打开 C:\Windows\System32\drivers\etc\hosts 文件,将上面查询到的 ip 带上自己博客的域名加到 hosts 文件中,保存即可。
CA 证书
一些概念
CA 是 Certificate Authority 的缩写,也叫“证书授权中心”。
CA 证书就是由 CA 机构发布的数字证书。
SSL(security sockets layer,安全套接层)是为网络通信提供安全及数据完整性的一种安全协议。SSL3.0 版本以后又被称为 TLS。SSL 采用了两种手段:身份认证和数据加密,来保证网络通信的安全和数据的完整性。身份认证就需要用到 CA 证书了。
证书之间的信任关系:就是用一个证书来证明另一个证书是真实可信的。
证书信任链:证书之间的信任关系是可以嵌套的。比如,C 信任 A1,A1 信任 A2,A2 信任 A3……这个叫做证书的信任链。只要你信任链上的头一个证书,那后续的证书,都是可以信任的。
根证书:假设 C 证书信任 A 和 B,然后 A 信任 A1 和 A2,B 信任 B1 和 B2,则它们之间构成如下的一个树形关系(一个倒立的树):
处于最顶上的树根位置的那个证书,就是根证书。除了根证书,其它证书都要依靠上一级的证书,来证明自己。那谁来证明根证书的可靠呢?实际上,根证书自己证明自己是可靠的(或者换句话说 ...
sublime
安装 Package Controlhttps://packagecontrol.io/installation
台湾个人游材料准备
虽然是因为出差要去台湾,但是办的是台湾个人游的手续。由于福州人滞留台湾的名声比较坏,所以福州人要去台湾旅游是非常不容易的,有些旅行社为了保证福州人不会滞留台湾,办证都要先交 2 万押金,等到从台湾回来了才会返还这 2 万押金。
需要办理去台湾旅行需要 2 证 1 签注:
台湾通行证:这是大陆签发的允许大陆居民去台湾的证
入台证:这是台湾签发的允许大陆居民进入台湾的证
签注:个人游是办 G 签
关于通行证和签注台湾通行证和签注比较好办理,一般拿着户口本和身份证去出入境就可以办理。
如果已经有通行证了,在微信上关注“福建省公安厅出入境管理局”公众号,选择:“业务办理” -> “往来台湾旅行签注申请”,填写签注申请以后,可以选择快递服务,邮政就会派人上门收证(台湾通行证),大概 3 个工作日以后会把签注好的通行证再送回来,来回快递只需 20。
关于入台证比较麻烦的是入台证,需要准备很多材料。我这次就提交了以下这些材料:
本人身份证正反、面扫描件
本人户口簿页,户口簿首页,户口簿户主页
紧急联系人身份证正、反面扫描件
紧急联系人户口簿页
台湾通行证个人信息页,签注页
2 寸白底证件 ...
H5 桌面应用开发
我打算自学开发一个 H5 桌面应用出来。目前只是对 js 有些了解,这里先记录一下需要学习的技术:
HTML5
Electron:包装 HTML 页面,为网页提供一个本地运行环境。https://electronjs.org/docs
Node.js:这个之前用过,相对来说还是比较了解一点
CSS
UI
《Head First Java》学习笔记
对象
创建对象时,它会被存放在称为堆的内存区域中,此区域并非普通的堆,它是可回收垃圾的堆。
没有对象变量这样的东西存在,只有引用到对象的变量,它并不是对象的容器(因为对象都是保存在堆里),而是类似指向对象的指针,或者可以说是地址。
Dog myDog = new Dog(); 这样一个语句,其实包含了三个步骤:
Dog myDog 声明了一个引用变量,java 虚拟机会分配空间给引用变量。
new Dog() 创建一个对象,java 虚拟机会分配堆空间给新建立的 Dog 对象。
= 将新的 Dog 对象与引用变量连接起来了。
对于任意一个 java 虚拟机来说,所有引用变量的大小都一样,不管它实际上所引用的对象大小。但是,不同的 java 虚拟机间可能会以不同的方式来表示引用,因此某个 java 虚拟机的引用大小可能会大于或者小于另一个 java 虚拟机的引用变量。
一个引用变量如果被标记成 final 的,一旦被指派给某个对象了,就被固定下来了,不能再指派除了这个对象以外的对象给这个引用变量了。
数组是一个对象,不管里面放的是基础数据类型,还是对象引用。
实例变量(类的属性字段) ...
完全卸载 parallels desktop
sudo rm -rf /Users/这里改成你的系统用户名/Library/Preferences/com.parallel*
sudo rm -rf /Users/这里改成你的系统用户名/Library/Parallels
sudo rm -rf /private/var/db/Parallels
sudo rm -rf /Library/Logs/parallels*
sudo rm -rf /Library/Preferences/Parallels
sudo rm -rf /private/var/.Parallels_swap
《RxJava2.x 实战》学习笔记
本文中的学习测试代码:https://github.com/AnnieCyl/rxjavastudy
RxRx = Observables + LINQ + Schedulers
RxJava 使用三步骤
创建 Observable
创建 Observer
使用 subscribe() 进行订阅
subscribe 重载方法
subscribe(onNext)
subscribe(onNext, onError)
subscribe(onNext, onError, onComplete)
subscribe(onNext, onError, onComplete, onSubscribe)
5 种被观察者类型
Observable:能够发射 0 或 n 个数据,并以成功或者错误事件终止。
Flowable:能够发射 0 或 n 个数据,并以成功或者错误事件终止。支持背压,可以控制数据源发射的速度。
Maybe:能够发射 0 或者 1 个数据,要么成功,要么失败。只有 onComplete、onSuccess 和 onError 事件,三者选其一。
Single:只发射单 ...
gitlab 镜像工程
有时候需要在两个 gitlab 服务器之间做镜像文件,这样,在一个服务器上的更改可以同步到另一个服务器上。假设有两个服务器,A 服务器和 B 服务器:
pull 镜像:在 B 上开发的工程,在 A 上做此工程的 pull 镜像,每次 B 的这个工程有更新,A 会自动 pull 过来。步骤:
push 镜像:在 A 上开发的工程,做 push 镜像到 B 上,每次 A 的这个工程有更新,A 会自动 push 到 B 上。操作步骤如下:
在 B 上创建一个用户,例如 autopush
如果 B 上还没有对应工程,创建一个对应工程,将 autopush 用户添加到该工程中。然后复制该工程的 http 地址。
在 A 上进入工程的 Repository 配置 push 镜像
将 B 上的工程地址和 autopush 用户组合起来,例如,http://autopush:password@github.com/annie/demo.git
如果 B 上这个工程是在某个 group 下,则这个 group 的成员都有对此工程的访问权限,此时需要在此工程的 Member 下把 group 中的每个成 ...