`
ipjmc
  • 浏览: 702894 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
Thrift  是什么?   Thrift源于大名鼎鼎的facebook之手,在2007年facebook提交Apache基金会将Thrift作为一个开源项目,对于当时的 facebook来说创造thrift是为了解决facebook系统中各系统间大数据量的传 输通信以及系统之间语言环境不同需要跨平台的特性。所以thrift可以支持多种程序语言,例如:  C++, C#, Cocoa, Erlang, Haskell, Java, Ocami, Perl, PHP, Python, Ruby, Smalltalk. 在多种不同的语言之间通信thrift可以作为二进制的高 ...
        在Android里Touch是很常用的事件,尤其实在自定义控件中,要实现一些动态的效果,往往要对Touch进行处理。Android中主要有3个地方可以处理Touch事件:         一、在View里,有两个回调函数 public boolean dispatchTouchEvent(MotionEvent ev); public boolean onTouchEvent(MotionEvent ev);         二、在ViewGroup里,有三个回调函数 public boolean dispatchTouchEvent(MotionEvent ev); p ...
思路:         自定义CustomView,重写onTouch(),和onDraw()。在onTouch中识别触屏事件,并记录触屏发生的位置。为了在ACTION_DOWN发生后能够接收到后续的触屏事件,我们需要让onTouch()返回true。         在onDraw()中,将上一次触屏的Point和这一次触屏发生的Point,连成一条直线。因为invalidate()后,canvas被清空了,我们需要用mBitmap保存每一次绘画的结果。 package com.ipjmc.hello; import android.content.Context; impo ...
思路: 自定义控件ReflectTextView继承TextView,重写onDraw()方法,在onDraw()中得到canvas,将其转化为Bitmap,再创建Bitmap的倒影,最后将Bitmap倒影重绘到canvas上。 需要注意的是:要在onMeasure()中将高度增加为原来的2倍。而且只能支持文本长度为一行的情况。 /* * Copyright (C) 2011 TC Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this fi ...
DisplayMetrics packageMetrics = getResources().getDisplayMetrics(); int windowWidth = packageMetrics.widthPixels; int windowHeight = packageMetrics.heightPixels;
        最近写一个应用(A),需要拦截短信分析。一般是这样实现的:注册一个接受短信Intent-Filter,获取短信广播,分析短信内容然后相应处理。对特定短信终止广播继续(abort方法),阻止其进入收件箱。大致就是这么一个过程。 但上述方式,在QQ通讯录/360/飞信存在的情况下,拦截短信失败~也就是说它们抢先拿到了收短信的广播,并将其中断了。那么如何解决这个问题呢~ 本来以为腾讯是拦截ril层的消息,然后阻止广播继续,但是这种方式要修改framework才能实现。 后来发现存在广播接收器(Receiver)的Intent-Filter的优先级(priority),SDK里说P ...
     Subversion有一个很标准的目录结构,是这样的。比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是    svn://proj/   |   +-trunk   +-branches   +-tags     这 是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使 用,svn并没有明确的规范,更多的还是用户自己的习惯。    对于这几个开发目录,一般的使用方法有两种。我更多的是从软件产品的角度出发 (比如freebsd),因为互联网的开发模式是完全不一样 ...
      Android里Scroller类是为了实现View平滑滚动的一个Helper类。通常在自定义的View时使用,在View中定义一个私有成员mScroller = new Scroller(context)。设置mScroller滚动的位置时,并不会导致View的滚动,通常是用mScroller记录/计算View滚动的位置,再重写View的computeScroll(),完成实际的滚动。       相关API介绍如下 mScroller.getCurrX() //获取mScroller当前水平滚动的位置 mScroller.getCurrY() //获取mScroller当前 ...
      博主在使用WebView的loadData方法时发现会乱码,比如: public static final String source = "This is a 中文 test "; mWebView.loadData(source, "text/html", "utf-8");       这是因为博主手机的WebView的默认编码是“Latin-1” Log.i(TAG, "Default Encoding = " + mWebView.getSettings().getDefaultTextE ...
      HttpOnly Cookie是一种特殊的Cookie,就是在普通的Cookie后面添加一个字段HTTPOnly,例如: Set-Cookie: RMID=732423sdfs73242; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=.example.net; HttpOnly 作用:       HttpOnly Cookie和普通的Cookie一样,在浏览器和服务器的每一次交互中,都会被传送到服务器。但是HttpOnly Cookie不能被客户端JavaScript获取,所以可以防止被XSS攻击获取。 参考: ...

Git分支管理策略

    博客分类:
  • git
如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System)。 眼下最流行的"版本管理系统",非Git莫属。 相比同类软件,Git有很多优点。其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便。有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称"快照")的指针,因此非常快捷易用。 但是,太方便了也会产生副作用。如果你不加注意,很可能会留下一个枝节蔓生、四处开放的版本库,到处都是分支,完全看不出主干发展的脉络。 ...
这里只介绍如何使用HttpClient发起GET或者POST请求   GET 方式   //先将参数放入List,再对参数进行URL编码 List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>(); params.add(new BasicNameValuePair("param1", "中国")); params.add(new BasicNameValuePair("param2", "val ...
为npm设在代理 npm config set proxy="http://192.168.1.1:8080"   为npm默认选择http方式,不选用https npm config set registry http://registry.npmjs.org
原文链接:Backgrounds In CSS: Everything You Need To Know 译文链接:css 背景全攻略 转载请保留版权以及链接 —————————————————————————————— 背景(background)是css中一个重要的的部分,也是需要知道的css的基础知识之一。这篇文章将会涉及css背景(background)的基本用法,包括诸如 background-attachment 等的属性,也会介绍一些有关背景(background)的常用技巧,以及 css3 中的 背景(background)(包含4个新的背景(background) ...
CSS是对网页设计师可用的最强大的工具之一。使用它我们可以在几分钟内改变一个网站的界面,而不用改变页面的标签。但是尽管事实上,我们每个人也都意识到了它是有用的,CSS 选择器远未发挥它们的潜力,有的时候我们还 ...
Global site tag (gtag.js) - Google Analytics