指尖上的艺术

学习的热情,不应为季节的变化而改变


  • 首页

  • 分类

  • 归档

  • 标签

  • 搜索
close

Hexo博客的搭建记录

发表于 2016-04-18   |   分类于 Code

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站点

阅读全文 »

博客迁移

发表于 2016-03-18   |   分类于 Code

因为近段时间工作繁忙的原因, 很久没有更新博客了.
博客是自己学习的见证, 进步的阶石, 所以一直以来没有放弃它, 有时因为时间很紧就没有进行更新, 而是将要说的内容短暂性的写到了印象里面去了.
之前的博客是搭建在SAE上面, 使用wordpress, 使用这种方式的缺点就是迁移比较麻烦, 需要去配置数据库, 已经一些环境, 弄的不好很容易丢失数据.
记得有一台使用了很长时间的主机, 到期后, 准备迁移到SAE上面去, 当时是一位老师告诉我可以在SAE上面免费搭建PHP程序. 迁移的过程相对有些麻烦, 后来因为我的不小心, 配置上去后, wordpress的路由和其中的一个插件冲突了, 又很难把插件删除了, 无奈, 只得重新建一个新的wordpress, 然后将数据库中的数据导入进去.
去年就向使用Hexo在Github上面搭建这样的一个博客了, 这两天终于完成了!
欢迎访问我的新博客: http://FingerArt.me
久博客入口: http://FingerArt.sinaapp.com

Android事件传递机制分析

发表于 2016-03-02

一直想写一篇关于事件传递的分析博文,因工作的原因,现在才有时间。

当前博文的源码分析是参考SDK19,示例代码是精简过的伪代码,具体以源码为准。

事件的开始

用户触摸手机屏幕时,系统会将事件传递给当前 Activity,在 dispatchTouchEvent 中调用当前 Window(PhoneWindow).superDispatchTouchEvent 方法将事件继续往下传递。

1
2
3
4
5
6
7
8
class Activity {
boolean dispatchTouchEvent(MotionEvent ev) {
if (getWindow().superDispatchTouchEvent(ev)) {
return true;
}
return onTouchEvent(ev);
}
}
阅读全文 »

Android Studio 实用插件集

发表于 2016-02-29   |   分类于 Code

android-butterknife-zelezny

ButterKnife是一个专注于Android系统的View注入框架,让你从此从这些烦人臃肿的代码中解脱出来。

android-butterknife-zelezny

阅读全文 »

android studio快速修改包名

发表于 2016-02-27   |   分类于 Code

开始转向Android Studio了, 记得去年就已经学习AS了, 可是公司的项目是在eclipse上面构建的, 加上外包那边也是eclipse开发, 所以也不敢将它轻易的转过去.
一直在技术总监耳边说AS如何如何的好, 终于, 他要求我将这个项目转到AS上面去了.万分欣喜, 终于要告别eclipse了.
在eclipse上面修改包名是我遇到非常懊恼的一件事, 公司的APP需要给别的公司定制, 但是包名不能和我们的相同, 所以就得修改包名了. 选中包名然后rename->enter. 确实是被修改了, 可是eclipse在替换XML文件中自定义的View时, 却出现乱掉, 错位的情况.
编译成apk时却没有错误, 运行时就Crash, 最后只得去XML中去搜索, 然后手动改掉!
因为最初构建这个项目的人, 不知道怎么想的, 将子包名作为主包名来命名, 让我包名改的非常dt.

现在用上AS了, 用它修改包名方便多了

阅读全文 »

使用Android的adb命令录制视频

发表于 2015-11-07   |   分类于 Code

之前一直寻找录制的软件, 并且还有一些模拟器也有自带的, 其实在 Android4.4 Kitkat(API level 19)以上 就提供了这样的功能, 在Android Studio 中也有一个录屏的功能按钮.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
shell@sltechn:/ $ screenrecord --help

Usage: screenrecord [options] <filename>

Records the device's display to a .mp4 file.

Options:
--size WIDTHxHEIGHT
Set the video size, e.g. "1280x720". Default is the device's main
display resolution (if supported), 1280x720 if not. For best results,
use a size supported by the AVC encoder.
--bit-rate RATE
Set the video bit rate, in megabits per second. Default 4Mbps.
--time-limit TIME
Set the maximum recording time, in seconds. Default / maximum is 180.
--rotate
Rotate the output 90 degrees.
--verbose
Display interesting information on stdout.
--help
Show this message.

Recording continues until Ctrl-C is hit or the time limit is reached.
阅读全文 »

AsyncTask原理

发表于 2015-09-19   |   分类于 Code

AsyncTask的来源

我们知道执行耗时任务需要在子线程中去操作, 完成后通过MessageQueue让主线程去更新UI, 不能在子线程操作UI, 原因在Handler的消息机制中已经讲过了; 而每一个子线程的开启和执行都是很消耗资源的, 线程是非常宝贵的资源, 可以进行复用, 避免重复创建和销毁, 于是Google的工程师就开发了一个ThreadPollExecutor(线程池的执行器), AsyncTask的底层使用的就是ThreadPollExecutor, 这样我们只需要使用AsyncTask就不需要再去手动的创建线程了.

阅读全文 »

Android文件命名规范

发表于 2015-09-03   |   分类于 Code

以下基于 开发代码规范

Layout命名

  1. contentview命名:layout功能模块描述.xml
    例如:layout_apps_category.xml layout_appsdetail.xml
  2. Dialog命名:dialog描述.xml
    例如:dlghint.xml
  3. PopupWindow命名:ppw描述.xml
    例如:pop info.xml
  4. 列表项命item描述.xml
    例如:itemcity.xml
    5.包含项:include模块.xml
    例如:include_head.xml include_bottom.xml
阅读全文 »

开发代码规范

发表于 2015-09-03   |   分类于 Code

命名规范(Naming Conventions)

命名规范使程序更易读,从而更易于理解。它们也可以提供一些有关标识符功能的信息,以助于理解代码,例如,不论它是一个常量,包,还是类。

阅读全文 »

Android-任务栈

发表于 2015-08-12   |   分类于 Code

Android中Activity是以栈的形式进行管理的, 先进后出.

每一个Activity就像是一颗弹夹中的子弹一样, 先压进弹夹中的子弹后被打出, 后压入弹夹中的子弹先被打出去, Activity同理, 先打开的Activity后被关闭, 后打开的Activity会先被关闭.

打开一个界面, 在任务栈中存放一个任务, 当关闭一个界面的时候, 就会在任务栈中清除这个对应的任务, 当这个任务栈中的任务被清除完时, 这个应用程序就退出了.

阅读全文 »
1234…8
George

George

George's blog

74 日志
3 分类
33 标签
RSS
GitHub 微博
© 2018 George
由 Hexo 强力驱动
主题 - NexT.Pisces