hexo快速安装指南
使用npm工具安装hexo
1 | sudo npm install -g hexo |
初始化hexo
1 | hexo init <folder> |
安装Hexo依赖包,根据blog文件夹中的package.json配置下载
1 | npm install |
生成静态页面
1 | hexo g #generate |
预览
1 | hexo s #server |
访问localhost:4000,预览本地的hexo站点
学习的热情,不应为季节的变化而改变
使用npm工具安装hexo
1 | $ sudo npm install -g hexo |
初始化hexo
1 | $ hexo init <folder> |
安装Hexo依赖包,根据blog文件夹中的package.json配置下载
1 | $ npm install |
生成静态页面
1 | $ hexo g #generate |
预览
1 | $ hexo s #server |
访问localhost:4000,预览本地的hexo站点
因为近段时间工作繁忙的原因, 很久没有更新博客了.
博客是自己学习的见证, 进步的阶石, 所以一直以来没有放弃它, 有时因为时间很紧就没有进行更新, 而是将要说的内容短暂性的写到了印象里面去了.
之前的博客是搭建在SAE上面, 使用wordpress, 使用这种方式的缺点就是迁移比较麻烦, 需要去配置数据库, 已经一些环境, 弄的不好很容易丢失数据.
记得有一台使用了很长时间的主机, 到期后, 准备迁移到SAE上面去, 当时是一位老师告诉我可以在SAE上面免费搭建PHP程序. 迁移的过程相对有些麻烦, 后来因为我的不小心, 配置上去后, wordpress的路由和其中的一个插件冲突了, 又很难把插件删除了, 无奈, 只得重新建一个新的wordpress, 然后将数据库中的数据导入进去.
去年就向使用Hexo在Github上面搭建这样的一个博客了, 这两天终于完成了!
欢迎访问我的新博客: http://FingerArt.me
久博客入口: http://FingerArt.sinaapp.com
一直想写一篇关于事件传递的分析博文,因工作的原因,现在才有时间。
当前博文的源码分析是参考SDK19,示例代码是精简过的伪代码,具体以源码为准。
用户触摸手机屏幕时,系统会将事件传递给当前 Activity
,在 dispatchTouchEvent
中调用当前 Window(PhoneWindow).superDispatchTouchEvent
方法将事件继续往下传递。
1 | class Activity { |
开始转向Android Studio了, 记得去年就已经学习AS了, 可是公司的项目是在eclipse上面构建的, 加上外包那边也是eclipse开发, 所以也不敢将它轻易的转过去.
一直在技术总监耳边说AS如何如何的好, 终于, 他要求我将这个项目转到AS上面去了.万分欣喜, 终于要告别eclipse了.
在eclipse上面修改包名是我遇到非常懊恼的一件事, 公司的APP需要给别的公司定制, 但是包名不能和我们的相同, 所以就得修改包名了. 选中包名然后rename->enter. 确实是被修改了, 可是eclipse在替换XML文件中自定义的View时, 却出现乱掉, 错位的情况.
编译成apk时却没有错误, 运行时就Crash, 最后只得去XML中去搜索, 然后手动改掉!
因为最初构建这个项目的人, 不知道怎么想的, 将子包名作为主包名来命名, 让我包名改的非常dt.
现在用上AS了, 用它修改包名方便多了
之前一直寻找录制的软件, 并且还有一些模拟器也有自带的, 其实在 Android4.4 Kitkat(API level 19)以上 就提供了这样的功能, 在Android Studio 中也有一个录屏的功能按钮.
1 | shell@sltechn:/ $ screenrecord --help |
我们知道执行耗时任务需要在子线程中去操作, 完成后通过MessageQueue让主线程去更新UI, 不能在子线程操作UI, 原因在Handler的消息机制中已经讲过了; 而每一个子线程的开启和执行都是很消耗资源的, 线程是非常宝贵的资源, 可以进行复用, 避免重复创建和销毁, 于是Google的工程师就开发了一个ThreadPollExecutor(线程池的执行器), AsyncTask的底层使用的就是ThreadPollExecutor, 这样我们只需要使用AsyncTask就不需要再去手动的创建线程了.
以下基于 开发代码规范
Android中Activity是以栈的形式进行管理的, 先进后出.
每一个Activity就像是一颗弹夹中的子弹一样, 先压进弹夹中的子弹后被打出, 后压入弹夹中的子弹先被打出去, Activity同理, 先打开的Activity后被关闭, 后打开的Activity会先被关闭.
打开一个界面, 在任务栈中存放一个任务, 当关闭一个界面的时候, 就会在任务栈中清除这个对应的任务, 当这个任务栈中的任务被清除完时, 这个应用程序就退出了.