摘要:
这本书经历了大半年的时间,终于可以和读者见面了。书籍由我和微度网http://www.microdu.com/其他两位资深开发者共同完成。最近经历了很多,应该是人生的一个转折点吧。总会有一些选择,将会影响一生。放弃了一些机会,进入了在杭州的算是国内第一梯队的互联网公司,书籍如愿面市。。。不禁有些感慨。介绍下书籍吧。书籍主要还是讲android应用开发基础。全篇都是通过实例来讲解。可以参看我写过的几篇博客,都会以模仿一些应用的某些功能来写demo,会有很强的实战性。后面会陆续放出书籍章节和样章。书籍购买链接:当当网京东卓越亚马逊书籍目录:第1章 步入Android的世界 1.1 Android平 阅读全文
摘要:
最近在个人博客上 http://foocoder.com 每天都会介绍一个vim插件,想起来园子也好久没更新了,也来更新一篇。今天按读者留言的要求,介绍下文本对象。同时还会介绍我在用的几个文本相关的插件.所谓文本对象,简单来说就是以一定标准分隔符来标识一段文本,比如一个单词,一句话,一段话。使用文本... 阅读全文
摘要:
翻看手机中的应用,就能发现大多数应用都已经使用了传感器。让微信彻底火起来的“附近的人”和“摇一摇”、碰一碰交换信息的Bump、各种运动记录app、神奇的“磁力探测仪”、火爆的游戏Temple Run……手机设备中的传感器让应用的可玩性大大增加,提供了各种创新的交互方式,以及在PC上很难实现的功能。在我看来,移动设备相对PC来说的主要优势在于随时随地的便携性,还有就是丰富的传感器。用好传感器,已经是手机应用开发的必修课。可是开始听到本书书名时,对翻译本书并没有什么兴趣。我自己也写过一本Android开发方面的书,觉得介绍传感器编程的话,一个章节足以。可是在看了英文书后,发现本书并不是简单地介绍A 阅读全文
摘要:
距离上篇博客竟然一晃就2个月过去了……最近确实太忙了,但一忙其实就容易乱,反而积累就少。今天继续介绍下我在用的mac软件。标题为效率篇,其实没有严格的限定,就是杂乱的介绍我在用的感觉能提升效率的工具软件。GTDmac下好用的GTD太多了,比如非常强大的ommniFocus,也有极其简洁的clear。在试用了各种以后(这绝对不是一件有效率的事情……),我现在用的是Things和clear。Things是标准GTD理念很好的载体。在inbox中记录各个要完成的任务,然后分类整理到不同的project或者不同的周期段。关于具体的使用方式我就不多说了,大家可以去搜索下,GTD或者Things相关的介绍 阅读全文
摘要:
今天继续介绍我的终端环境,tmux。why tmux?用一个工具的第一问自然还是为什么要用。其实当时使用tmux的原因很简单。工作中经常需要长时间的编译。总想要下班后要关机的情况下,(肯定有人问我为什么关机,我觉得环保:)而且很多时候是笔记本工作,下班还带回去。),让远超服务器继续进行编译。简单的寻觅一番之后,就发现了tmux。而且远超预期,就一直用了下来。其他让我非常喜欢的功能有:window,pane的概念可以很好地进行多窗口切换,窗口分割。状态行配置很容易。vi 模式复制粘贴缓冲区脚本化.通过脚本可以自动化窗口布局。tmux简单介绍简单来说,tmux是一个multiplexers,他可以 阅读全文
摘要:
继续上篇介绍我的终端环境。这篇介绍zsh和z,其实这不局限于os x,在所有的*nix系统中都是可用的。zshzsh作为bash的替代品,自然很多人要问:why zsh? 在Zsh Workshop有个长长的功能列表,用来回答这个问题。这里讲下我选择zsh的原因,当然,也是介绍zsh强大的功能。兼容bash。这使得切换到zsh没有任何成本。OS X默认的bash版本实在是太老了啊……拼写纠正。你总会不小心打错命令。这时,zsh会进行自动拼写纠正,如图:更强大的补全。连按两次tab会列出所有的补全列表并直接开始选择。如图:并且可以用方向键来选择,但是对我这种很少用方向键的人来说只能猛敲tab了么 阅读全文
摘要:
之前一直有朋友要我分享下在用的mac软件,今天有空就来写一下,可能不止于软件,会有一些配置或者工具,或者叫环境更合适。有些可能一句话带过,有些会详细介绍。也不分类了,想到哪个就写出来。如果已经写的足够长了,就会分几篇来写。iTerm2+zsh+tmux的终端环境iTerm2其实现在os x的terminal已经做的很好了,但是iTerm2的功能依然要更强大一些。简述下优点和常用功能:开源免费。兼容性比默认Terminal更好。对于经常要远程使用的情况下,默认的Terminal在使用vi时经常出现不兼容的问题,而iTerm2在这方面显然做的更好。快捷键丰富。⌘ + 数字: 切换标签页。⌘ + 方 阅读全文
摘要:
JavaScript中的this总是让人迷惑,应该是js众所周知的坑之一。 个人也觉得js中的this不是一个好的设计,由于this晚绑定的特性,它可以是全局对象,当前对象,或者…有人甚至因为坑大而不用this。其实如果完全掌握了this的工作原理,自然就不会走进这些坑。来看下以下这些情况中的this分别会指向什么:1.全局代码中的thisalert(this)//window全局范围内的this将会指向全局对象,在浏览器中即使window。2.作为单纯的函数调用function fooCoder(x) { this.x = x;}fooCoder(2);alert(x);// 全局变量x值为 阅读全文
摘要:
创建运行在手机上的web app时,鉴于手机用户的网络情况,我们需要考虑到用户离线使用的情况。html5支持构建离线应用程序。使用它的本地缓存机制可以将应用所需的资源文件都缓存到本地,从而实现应用的离线使用。首先要说明的是,本地缓存和传动的浏览器网页缓存是不同的,网页缓存基于网页,也就是缓存一个网页的内容,而不是整个app。同时网页缓存并不可靠,我们不知道我们的app中哪个页面已经缓存,该页面的哪些资源已经缓存,而本地缓存对于缓存内容是完全可控的。使用离线缓存,除了可以使应用可以离线使用外,还能帮助有效的加快网页加载速度(本地的自然更快),同时降低服务器负载(只需要下载更新的内容)。正如之前所 阅读全文
摘要:
android在设计理念上强调组件化,组件之间的依赖性很小。我们往往发一个intent请求就可以启动另一个应用的activity,或者一个你不知道在哪个进程的service,或者可以注册一个广播,只要有这个事件发生你都可以收到,又或者你可以查询一个contentProvider获得你想要的数据,这其实都需要跨进程通信的支持。只是android将其封装的如此简单,应用开发者甚至完全不用关注它是不是和我在一个进程里。我们有没有想过安全性问题,如此简单就可以跨进程的访问,安全性问题怎么保证。本来每个进程都是一个孤岛,而通过ipc,这个孤岛却可以和世界通信了。这里简单介绍下android中的安全机制。 阅读全文
摘要:
窗口管理是android的一个核心内容。它管理着窗口的创建和销毁,布局和大小,焦点的控制等等。窗口可以分为两类:一种是应用窗口,即由具体应用创建的窗口,其实其中还可以细分出父窗口和子窗口。窗口一般都会对应一个activity。一种是系统窗口,如状态栏,这类窗口由系统直接通过windowManager来创建,和activity无关。在这里,窗口的概念其实可以说由三部分构成,一部分是用来描述窗口信息的,由WindowState对象表示。一个WindowState对象对应一个窗口,它拥有绘制窗口所需要的信息。但是真正去绘制窗口需要另一部分内容Surface来完成,最终会通过surfaceflinge 阅读全文