- 博客(16)
- 资源 (5)
- 收藏
- 关注
原创 Vim常用快捷键
Vim前后台 ctrl +z 回到后台fg %X 回到前台 X:中括号的job编号选中一个单词v iw整页删除gg 回到页首 dG 删除全部,G是到页尾的意思使复制过来的代码保持格式先执行命令 set paste翻页Ctrl+f:向文件尾翻一屏 Ctrl+b;向文件首翻一屏搜索及替换命令/pattern:从光标开始处向文件尾搜索pattern ?pattern:从光标开始处向文件首搜索p
2016-03-10 14:37:01 501
原创 何谓DSL
DSL:Domain-Specific LanguagesDSL 往往短小易读,所以非程 序员也能看懂这些驱动他们重要业务的代码。把这些真实的代码暴露在理解该领域的人们面 前,可以确保程序员和客户之间有非常顺畅的沟通渠道。领域特定语言(名词):针对某一特定领域,具有受限表达性的一种计算机程序设计语言。 这一定义包含 4 个关键元素:计算机程序设计语言(computer programming lan
2016-03-24 23:37:09 1358
原创 Groovy 之 Closure
简单的Closure:def myClosure = { println 'Hello world!' }//execute our closuremyClosure()接受一个参数的Closure:def myClosure = {String str -> println str }//execute our closuremyClosure('Hello world!')一个参数时,在
2016-03-24 22:52:07 365
原创 Android 之小技巧
小技巧,不足为专题内容TextView的drawableLeft与文本一起居中显示原始的TextView设置了LeftDrawable后,如果TextView的宽度是MATCH_PARENT,LeftDrawable是无法和TextView中的text一起居中的,而是在左边。 参见 http://www.cnblogs.com/over140/p/3464348.html 请注意这个时候设置
2016-03-23 18:18:21 332
原创 Android 之问题集锦
1.EditText java里面实例的时候自动带上下Padding.需要显式的setPadding(0,0,0,0)
2016-03-23 15:14:12 206
原创 构建安装问题
1.install_failed_duplicate_permission permCause:Android 5.0加强权限控制导致的,正要安装的App的自定义权限与手机上已有App的自定义权限名字相同,但两个App具有不同的签名信息导致安装失败。Solution:作为开发人员,可以将所有冲突的apk用相同的签名文件重新签名即可正常安装,解决燃眉之急手机已Root的用户,用文件管理器等将apk
2016-03-23 14:14:17 223
原创 【Http专题】Https
基础知识HTTPS也称作HTTP over TLS。TLS的前身是SSL,TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3。本文着重描述TLS协议的1.2版本 下图描述了在TCP/IP协议栈中TLS(各子协议)和HTTP的关系共享密钥也叫对称密钥:服务器和客户端加解密共用同一个密钥 。公开密钥也叫非对称密钥:有两个密钥,一个私有密钥,一个公开密
2016-03-09 20:12:06 523
原创 Gradle For Android
Gradle最重要概念:projects 和 tasks每项工程构建都至少由一个project组成。每个build.gradle代表一个project,Tasks被定义在编译脚本之中,Gradle在初始化构建过程中,其基于build文件编译得到Project和Task对象。而Task对象又包含Actions对象队列,他们将顺序执行。Action对象是可被执行的代码块,类似java中的方法。构建生命周
2016-03-09 10:23:20 2934
原创 Fragment之底层关键操作函数moveToState
moveToState是FM中一个相当长的函数,但Fragment任何的操作add,remove …最终都会调用这个函数,从字面上可以理解,fragment要从当前状态切到newState里面干些什么都在这个函数中。 Fragment有六种State,初始状态是INITIALIZING:static final int INITIALIZING = 0; // Not yet create
2016-03-08 23:38:44 4202
原创 【Fragment】从代码角度理解remove,detatch,hideFragment
public void removeFragment(Fragment fragment, int transition, int transitionStyle) { if (DEBUG) Log.v(TAG, "remove: " + fragment + " nesting=" + fragment.mBackStackNesting); final boole
2016-03-08 22:03:37 792
原创 Android OkHttp之 offline cache
OkHttp的执行函数execute() 拦截器部分的执行时序图,那么离线缓存就是利用在拦截器中对服务器的响应的头部做出相应的修改来达到。那么默认由服务器返回的头部数据摘录如下:Expires: Mon, 26 Jul 1997 05:00:00 GMTLast-Modified: Mon, 07 Mar 2016 12:17:39GMTCache-Control: no-cache, must
2016-03-07 21:10:04 610
原创 http之头域
Cache-Control头域max-age:其作用是:假如请求了服务器并在a时刻返回响应结果,则在max-age规定的秒数内,浏览器将不会发送对应的请求到服务器,数据由缓存直接返回;超过这一时间段才进一步由服务器决定是返回新数据还是仍由缓存提供。 如果max-age被设置为30秒。即30秒内,无论用户在浏览器地址栏上敲多少次回车,后台也不应该打印日志,而我这个信息抓取工具也不应该抓取到任何信息。m
2016-03-07 18:27:28 245
原创 Android XML 不常用属性
android:imeOptions=”actionDone”EditText 默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软键盘 设置 android:imeOptions=”actionDone” ,软键盘下方变成“完成”,点击后光标保持在原来的输入框上,并且软键盘关闭 android:imeOptions=”actionSend” 软键盘下方变成“发送”,点击后光
2016-03-07 11:16:23 234
原创 git rebase
源起:git rebase 用的还比较多,而且还常出现于面试之中,我会用,但是对其实在的意义没有深刻的理解,所以使用也非常的机械,局限,还常常混淆。 当我理解了rebase命令后,它的功能简言之就是“移花接木”,形象的比如,当一棵树的某条树枝非常的漂亮,唯独中间有个疤,办法就是将疤的地方给锯掉,然后将后面的枝给嫁接到新的根基上。所谓“变基”——rebase.git rebase –onto n
2016-03-06 19:38:02 787
原创 Android M 权限
检查权限if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {}else{ //}权限已授权则返回PackageManager.PERMISSI
2016-03-04 17:13:28 296
原创 版本管理
Snapshot VS ReleaseSnapshot版本代表不稳定、尚处于开发中的版本Release版本则代表稳定的版本什么情况下该用SNAPSHOT?协同开发时,如果A依赖构件B,由于B会更新,B应该使用SNAPSHOT来标识自己。这种做法的必要性可以反证如下: 如果B不用SNAPSHOT,而是每次更新后都使用一个稳定的版本,那版本号就会升得太快,每天一升甚至每个小时一升,这就是对版本号的滥用
2016-03-02 13:59:26 304
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人