git中merge和rebase的区别

最开始实习的时候是使用svn,之后正式工作就一直在使用git,这样算起来,使用git也有两年的时间了。以前带我的同事,让我在拉代码的时候要我使用git pull --rebase,一直很纳闷为什么要那样做,后来遇到拉代码的时候有许多冲突要解决,然后去查找资料,才了解到其中的一些事情。今天分享一下,顺便自己也梳理一下。

git pull

git pull 是 git fetch + git merge FETCH_HEAD 的缩写。所以,默认情况下,git pull就是先fetch,然后执行merge 操作,如果加–rebase 参数,就是使用git rebase 代替git merge。


more >>

在android中画圆形图片的几种办法

在开发中经常会有一些需求,比如显示头像,显示一些特殊的需求,将图片显示成圆角或者圆形或者其他的一些形状。但是往往我们手上的图片或者从服务器获取到的图片都是方形的。这时候就需要我们自己进行处理,将图片处理成所需要的形状。正如茴香豆的的“茴”写法大于一种,经过我的研究,画出特殊图片的方法也不是一种,我发现了三种,且听我一一道来。


more >>

intent和intent过滤以及匹配规则

在Android系统中打开Activity,Service, BroadCast 都需要使用到Intent(意图),那么作为一个开发者就需要知道怎么使用Intent,知道怎么通过Intent的匹配规则打开其他的组件,或者给其他组件提供访问接口。因此在这里总结一下Intent和Intent的匹配规则。

Intent使用示例

显式使用Intent

1
2
Intent intent = new Intent(context, XXXActivity.class);
intent.putExtra(Intent.EXTRA_TEXT, "string text");

隐式使用

1
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parser("http://blog.isming.me"));

more >>

常用有用的android adb命令

adb在开发中真的是时时都会用到,熟练使用可以帮助我们提高开发效率。前段时间看到一个外国程序员分享了一篇文章,觉得写的很好,介绍了一些很有意思的adb的命令,我就寻思着有空也写一篇,对于自己是一个总结,同时方便自己或者其他人以后查阅。

想要能够在命令行里面敲adb能够使用,先要保证你的adb所在的目录,一般是sdk/platform-tools目录,要在环境变量中,想要怎么配环境变量,自己google去。

首先要学会使用帮助,遇到不会用的命令可以直接敲adb 或者adb --help看帮助,帮助文档基本的命令都有。


more >>

android推送技术方案与原理

推送服务现在广泛的使用,几乎成了每个app的必备,现在呢,苹果上面有APNs,android上面游GCM(中国不可用)。我也是经常使用第三方的推送,比如百度云推送,个推等等。但是一直想知道推送的原理,想着自己也能做出来,到网上搜到一些推送的方案(大段内容来自网上)。

方案一:使用GCM服务(Google Cloud Messaging)

简介:Google在Android上标配了自己的推送GCM(Google Cloud Messageing),可以帮助开发人员给他们的Android应用程序发送数据。它是一个轻量级的消息,告诉Android应用程序有新的数据要获取从服务器,或者它可能是一个消息,其中包含了4KB的payload data(像即时通讯这类应用程序可以直接使用该payload消息)。GCM服务处理排队的消息,并把消息传递到目标设备上运行的Android应用程序。


more >>

发布程序时移除Android 调试Log

在Android开发中,我们使用android.util.Log来打印日志,方便我们的开发调试。但是对于正式发布的程序,我们并不希望这些Log信息显示,一方面对于用户来说影响机器性能,另一方面,其他开发者看到这些信息的时候,对我们应用程序的安全是有威胁的。所以,我们需要在正式发布时不让Log执行,或者将其移除。这里,我提供三种方法。

自己写一个Log的帮助类,在类中设置显示级别

示例代码如下,通过一个静态变量设置Log的显示级别。


more >>

一个程序员的Ubuntu安装的那些软件

鄙人程序猿一枚,Android开发,常年使用Ubuntu(主要是买不起Mac,O(∩_∩)O哈哈~)。分享一下自己使用的那些软件,如果你有什么好的软件。欢迎与我交流。

输入法:开始的时候是用的fcitx,后来搜狗出了linux版本,选择之。下载链接

办公软件:WPS Linux,真心很好用,比libreOffice好用不止一点.下载链接 注意:下载alpah版本.


more >>

使用Intent启动组件

android应用程序的三大组件——Activities、Services、Broadcast Receiver,通过消息触发,这个消息就是Intent,中文又翻译为”意图”(我感觉读着不顺畅,还是读英文)。我们可以通过Intent去启动三大组件,并且通过Intent携带数据到其他组件中。本文来看一下怎么使用Intent启动组件,以及Intent的过滤规则。

Intent对象

首先来看Intent对象中包含的成员。


more >>

android中JSON的解析

android中网络数据传输是经常被用到的,通常我们使用xml或者json,而json更加轻量,便捷,我们使用的更多。我自己在项目中使用很多,今天就说说android中怎么去解析JSON,帮助自己总结内容,同时帮助别人少走弯路。

##JSON语法
首先看JSON的语法和结构,这样我们才知道怎么去解析它。JSON语法时JavaScript对象表示语法的子集。

JSON的值可以是:

  • 数字(整数或者浮点数)

  • 字符串(在双引号内)

  • 逻辑值(true 或 false)

  • 数组(使用方括号[]包围)

  • 对象( 使用花括号{}包围)

  • null

JSON中有且只有两种结构:对象和数组。

1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,…}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。


more >>