Hsia Blog

发现更大的世界

Linux硬链接和软连接的区别与总结

图示软硬链接的区别 硬链接 具有相同inode节点号的多个文件互为硬链接文件; 删除硬链接文件或者删除源文件任意之一,文件实体并未被删除; 只有删除了源文件和所有对应的硬链接文件,文件实体才会被删除; 硬链接文件是文件的另一...

文件描述符(file descriptor)

概述 句柄,熟悉Windows编程的人知道:句柄是Windows用来标识被应用程序所建立或使用的对象的唯一整数,windows使用各种各样的句柄标识诸如应用程序实例、窗口、控制、位图等。Windows的句柄有点像C语言中的文件句柄。更通俗的理解,句柄是一种指向指针的指针。在linux系统中文件句柄(file handles)和文件描述符(file descriptor)是一个一一对应的关系...

Linux下僵尸进程的处理

一、什么是僵尸进程 僵尸进程是指它的父进程已经退出(父进程没有等待(调用wait/waitpid)它),而该进程dead之后没有进程接受,就成为僵尸进程,也就是(zombie)进程。 二、僵尸进程是怎么样产生 一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于...

【Repost】Android开发之Fragment懒加载

TabLayout+Viewpager

一、简介      玩过微信的都知道,微信用的是懒加载的模式,之所以使用懒加载是因为:当使用viewpager+adapter作为应用大的布局时,viewpager会通过setOffscreenPageLimit来设置预加载的项目,不设置setOffscreenPageLimit,则默认为1(设置0无效,可以查看该方法源码知道),也就是当我们打开应用看到的时候fragmentOne时,实际上...

Android开发之RxJava和Retrofit的结合

为了使Rxjava2与retrofit2结合,我们需要在Retrofit对象建立的时候添加一句代码 1 addCallAdapterFactory(RxJava2CallAdapterFactory.create()) 当然你还需要在build.gradle文件中添加如下依赖: 1 2 3 4 5 implementation 'io.reactivex.rxjava2:rxjava...

Dart之Mixins的with用法

前言 Mixins 混入其中( ̄. ̄)! 是的,Flutter 使用的是 Dart 支持 Mixin ,而 Mixin 能够更好的解决 多继承 中容易出现的问题,如: 方法优先顺序混乱、参数冲突、类结构变得复杂化等等。 Mixin 的定义解释起来会比较绕,我们直接代码从中来解释。 Dart语言的解析可以使用在线 https://dartpad.dartlang.org/ 来解决。 W...

Flutter中的国际化

Flutter 中的国际化 一、前言 从 Google Live 2018开始接触 Flutter Stable 1.0 开始,慢慢的接触这款神奇的框架。实际接触了跨平台多端开发的便利性。 一款好的移动应用该具备什么品质?戳中用户痛点的功能,炫酷的 UI 还是流畅的操作体验?这些都很重要,少了其中任何一点都是得不到用户青睐的。但今天我要说的虽然不是前面这三个中的哪一个,但也是少了它就不...

Flutter异步执行之FutureBuilder

前言 最近在学习Flutter,看了很多的App Demo,阅读代码中的一些技术特性记录下来,加深自己的理解学习。 Flutter异步 Flutter将异步执行也进行了控件化处理,即:Future。在一些相对耗时的操作中可以使用异步操作来提升用户体验,异步比如IO操作的HTTP请求。除了通过async和await关键字以外,还可以用一个更方便的控件,可生成代码在异步执行时间轴上的快照,...

2018年终总结

Annual Review

前言 迎接不知道会发生什么的2019 没有新闻,就是最好的新闻。 2018年,离开了干了6年的主流IT行业(4年安防监控+2年分布式存储),进了现在这家国企,压力一下子减少到了没有,告别了原先的差不多每天的披星带月,基本每天加班到晚上九点多才开车回家的生活,感觉可以看到自己离退休前的30年的生活了。 技术 告别了6年的Linux + Cpp,现在每天写写SQL语句,搞搞二次开...

依赖倒置原则

Dependence Inversion Principle

前言 最近抽空搞Android App, 因为自己没有这方面的经验,所以github上面找相应的别人实现的app来做参考, 所以很多app基于MVP摸索使用了Dagger2来做了很多的工作,为了加深理解,所以看了下Dagger的一些使用 和实现,发现了依赖注入这个名词,搞C++多年,好像很少听到这个名词,所以抽空研究了下依赖倒置和注入, 其实最后发现是一种设计模式,在C++中用的很多,只是...