由于这个学期学校有Linux课程,我也一直期待着这门课,为了练习在Linux上搭建一些应用,so 我把原来的Windows2012的云服务器换成了CentOS7(其实有很多其他原因,比如mstsc传输速度慢的可怕,而且服务器带宽本来就不行)。在学习过程中遇到了很多问题,主要在于很多Linux命令在CentOS7中有了替代品,也就是所谓的新特性,其中最“坑”的就是Systemd进程取代init进程(很多书籍资料讲的都是init作为启动进程)。这个主要体现在service
和chkconfig
命令上,在CentOS7中使用systemctl
代替service
和chkconfig
两个命令。
在CentOS7上安装MySQL的心路历程
今天突然心血来潮,想把博客转移到到自己的云服务器上,嗯,想法不错,正好能练练手(后来找到了别的解决方案Hexo,才发现自己有多幼稚,果然是脑子一热,啥事想的出来,但是在这个过程中也学到了一些东西)。CentOS上安装MySQL数据库,linux配mysql,哎哟,不错哦。(→_→在找到别的解决方案后,马上就被我给卸了)。
二话不说上yum安装大法
SurfaceView、SurfaceHolder、Surface
按照官方文档的说法,SurfaceView继承自View,并提供了一个独立的绘图层,你可以完全控制这个绘图层,比如说设定它的大小,所以SurfaceView可以嵌入到View结构树中,但是需要注意的是,由于SurfaceView直接将绘图表层绘制到屏幕上,所以和普通的View不同的地方就在与它不能执行Transition,Rotation,Scale等转换,也不能进行Alpha透明度运算。SurfaceView的Surface排在Window的Surface(也就是View树所在的绘图层)的下面,SurfaceView嵌入到Window的View结构树中就好像在Window的Surface上强行打了个洞让自己显示到屏幕上,而且SurfaceView另起一个线程对自己的Surface进行刷新。特别需要注意的是SurfaceHolder.Callback的所有回调方法都是在主线程中回调的。
SurfaceView、SurfaceHolder、Surface的关系可以概括为以下几点:
TextureView、SurfaceTexture、Surface的关系
上篇文章我们说了SurfaceView,接下来我们对Texture进行一下分析。
SurfaceView由于使用的是独立的绘图层,并且使用独立的线程去进行绘制。前面的文章中也说到SurfaceView不能进行Transition,Rotation,Scale等变换,这就导致一个问题SurfaceView在滑动的时候,SurfaceView的刷新由于不受主线程控制导致SurfaceView在滑动的时候会出现黑边的情况,看下面的效果图。
这个Demo里的SurfaceView是上篇文章中定义的DrawSurfaceView,不了解的同学可以看上一篇文章
如果这里的SurfaceView是VideoView,由于视频刷新的速度比这个DrawSurfaceView速度大好几倍,那么这个黑边的情况将更恶劣,同学可以将DrawSurfaceView的刷新延时DELAY设置的更小一点,看的效果更明显。这里要讲到的TextureView就是用来解决这种问题的。
Android Handler消息机制源码分析——第一部分:Looper与MessageQueue
由于在Android中,网络请求不能运行在主线程中,同时一些耗时的操作也不建议运行在主线程中。因此多线程以及线程间通信在Android中显得更为重要了,而安卓SDK中也提供给我们很多的多线程机制,譬如:Handler,AsyncTask,以及基于这些机制而来的IntentService,AsyncService,Loader等常用类,其中AsyncTask又是基于Java的Concurrent框架而来的,虽然有些人对AsyncTask抱有怨言,但后面的文章中我们也会以学习的态度对AsyncTask进行深入剖析。这里我们先来对常用的Handler做更深层次的了解。Handler机制可以说是Android开发过程中最常用到的线程通信机制,比如说Activity.runOnUiThread方法,View.post,View.postDelayed等方法底层使用的都是该机制。但是在分析源码之前我们先来对整个框架机制中的几个相关类简单的说明一下。
Handler机制相关类的概括
安卓常用第三方框架-FastJson
简介
上次我们讲到Google的Gson库,作为国际大公司的阿里巴巴也不敢示弱,出了一款号称速度最快的Fastjson,这里有第三方给出的测试结果https://github.com/eishay/jvm-serializers/wiki, 虽然FastJson在Github上戏称Gson的“G”是“龟速”的意思,但FastJson在文档方面确实做得不如Gson(没办法天朝软件行业的通病)。废话不多说下面先给地址。