自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 redis常用命令

[Redis] redis-cli 命令总结Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用。在编程时,比如使用Redis 的Java语言包,这些命令都有对应的方法。下面将Redis提供的命令做一总结。 官网命令列表:http://redis.io/commands (英文)

2016-06-27 09:31:38 5300 1

原创 JMM指令重排

指令重排对于编译器的编写者来说,Java内存模型(JMM)主要是由禁止指令重排的规则所组成的,其中包括了字段(包括数组中的元素)的存取指令和监视器(锁)的控制指令。Volatile与监视器JMM中关于volatile和监视器主要的规则可以被看作一个矩阵。这个矩阵的单元格表示在一些特定的后续关联指令的情况下,指令不能被重排。下面的表格并不是JMM规范包含的,而是一个用来观察J

2016-05-27 11:23:09 1034

原创 block,inline和inline-block概念和区别

display:blockblock元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。block元素可以设置margin和padding属性。display:inlineinline元素不会独占一行,多个相邻的行

2016-04-14 13:50:52 1297

原创 CSS内嵌元素和块元素的区别

举例:    请把下面二行代码放进body标签里:    div1    div1    浏览器的呈现效果:    div1    div1  这二个div占据了二行空间,叫做块级元素(block)。  再把下面二行代码也放进body标签里:    span1    span2  浏览器的呈现效果:    span1 span1  这两个sp

2016-04-13 15:05:52 1569

原创 我在华勤的那些日子-----------Android的laucher3源码剖析(一)

xxxxx

2016-03-17 17:45:47 1989

转载 FragmentPagerAdapter与FragmentStatePagerAdapter区别

在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动。不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChange

2016-03-16 22:27:46 655

转载 Makefile经典教程(掌握这些足够)

目录(?)[-]Makefile 介绍1 Makefile的规则2 一个示例3 make是如何工作的4 makefile中使用变量5 让make自动推导6 另类风格的makefile7 清空目标文件的规则Makefile 总述1 Makefile里有什么2Makefile的文件名3 引用其它的Makefile4 环境变量 MAKEFILES5 make的工作方式Ma

2016-03-16 16:15:05 959

转载 ANDROID线程间通信机制

2015-03-22 21:56:47 715

转载 Android开源框架(UI)

前言好久没写博文了,最近工作比较忙,剩下的一点点时间在做自己的项目,在Android酷炫实用的开源框架(UI框架)这篇文章中提到了很多开源的UI框架,我在自己的项目开发中也使用了大部分的,但是总觉得仅仅这几个不够用啊,所以本人在此做项目期间又找到了更多优秀的开源UI框架,在此分享给大家希望能对大家有所帮助,大家记得关注我哦~!在此篇之后就给大家带来优秀的HTTP框架和DB框架了!

2015-03-22 21:41:47 1343

转载 WindowManager.LayoutParams详解

public static classWindowManager.LayoutParamsextends ViewGroup.LayoutParamsimplements Parcelablejava.lang.Object   ?android.view.ViewGroup.LayoutParams    ?

2015-03-22 21:38:45 1498

原创 NDK开发过程中有时候在eclipse里会遇到其无法处理inclusion导致symbol显示错误

在做NDK开发过程中有时候在eclipse里会遇到其无法处理inclusion导致symbol显示错误,网上有许多方法可以解决类似“Unresolved inclusion jni.h” 错误的方法,包括include path等方法,不过对我都不管用。最终的解决办法就是初始化eclipse对该project的native support:1. 在eclip

2015-02-27 16:30:17 644

原创 Android Paint和Color类介绍

要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下:    setAntiAlias: 设置画笔的锯齿效果。    setColor: 设置画笔颜色    setARGB:  设置画笔的a,r,p,g值。    setAlpha:  设置

2015-01-26 22:58:14 838

原创 protobuf 使用相关

google protobuf的介绍和使用官方地址为:https://developers.google.com/protocol-buffers/先总结一下如何在eclipse中轻松的使用protobuf.首先需要安装一个插件叫protobuf-dt,介绍及安装说明:https://code.google.com/p/protobuf-dt/These ins

2015-01-23 00:45:30 1003

转载 byte[]数组和int之间的转换

这里简单记录下两种转换方式:第一种:1、int与byte[]之间的转换(类似的byte short,long型) /** * 将int数值转换为占四个字节的byte数组,本方法适用于(低位在前,高位在后)的顺序。 和bytesToInt()配套使用 * @param value * 要转换的int值 * @r

2015-01-22 23:26:02 730

转载 java网络编程Socket中SO_LINGER选项的用法解读

1:设置该选项: public void setSoLinger(boolean on, int seconds) throws SocketException;     读取该选项:public int getSoLinger() throws SocketException     SO_LINGER选项用来控制Socket关闭时的行为,默认情况下,执行Socket的close

2015-01-22 16:36:56 1398

原创 深入探讨TCP_NODELAY

在网络拥塞控制领域,我们知道有一个非常有名的算法叫做Nagle算法(Nagle algorithm),这是使用它的发明人John Nagle的名字来命名的,John Nagle在1984年首次用这个算法来尝试解决福特汽车公司的网络拥塞问题(RFC 896),该问题的具体描述是:如果我们的应用程序一次产生1个字节的数据,而这个1个字节数据又以网络数据包的形式发送到远端服务器,那么就很容易导致网络由于

2015-01-22 16:26:48 879

原创 Android NDK中C++调用Java

调用JAVA中的静态方法//调用静态方法jclass cls = env->FindClass("test/Demo");jmethodID mid = env->GetStaticMethodID(cls, "getHelloWorld","()Ljava/lang/String;");jstring msg = (jstring)env->CallStaticObjectMethod

2015-01-21 13:49:28 837

原创 Android中NDK单步调试

注意:1. 作者是在MAC os上面使用eclipse,我们如果没那么有钱,可以使用linux和MAC一样方便的调试ndk,但是不推荐使用windows(涉及恶心的cygwin)。2. 作者有一个坑没有遇到,我却遇到了,请看我另一篇文章http://blog.csdn.net/xingxiliang/article/details/18351307。3. ndk调试需要将g

2015-01-21 12:34:58 2690

原创 Linux中atfork的使用

#include int pthread_atfork(void (*prepare)(void), void (*parent)(void),              void (*child)(void));调用fork时,内部创建子进程前在父进程中会调用prepare,内部创建子进程成功后,父进程会调用parent,子进程会调用child。看个例子#include #

2015-01-09 16:01:32 757

原创 Linux下打印调用堆栈

废话不说直接写代码 不懂函数自己去manvoid Exception::fillStackTrace(){ const int len = 200; void* buffer[len]; int nptrs = ::backtrace(buffer, len); char** strings = ::backtrace_symbols(buffer, nptrs);

2015-01-09 12:57:20 1432

转载 【C++专题】static_cast, dynamic_cast, const_cast探讨

首先回顾一下C++类型转换:C++类型转换分为:隐式类型转换和显式类型转换第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。 int ival = 3;double dval = 3.14159;

2015-01-08 17:08:13 680

转载 如何定位Android NDK开发中遇到的错误

Android NDK是什么?Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。众所周知,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。NDK包括:从C / C++生成原生代码库所需要的工具和build files;

2014-12-31 00:31:57 915

原创 Linux下Socket编程学习(五)

这章讲下产生SIGPIPE信号的原因往一个已经收到FIN的套接字中写是允许的,接收到FIN仅仅代表对方不再发送数据。如果对方进程不存在了,你还写数据那么会返回一个RST段RST段之后,如果再调用write就会产生SIGPIPE信号,对于这个信号直接忽略就ok了singal(SIGPIPE,SIG_IGN);五种I/O模型阻塞I/O非阻塞I/OI/O复用(sele

2014-12-30 15:42:33 737

原创 Linux下Socket编程学习(四)

recv(int sockfd,void* buf,size_t len,int flags)与read基本相同异同点:1、recv只能用于套接字2、recv比read多了个flags选项   falgs:MSG_OOB  指定接收带外数据,通过紧急指针发送的数据,TCP头部有个紧急指针指定了带外数据            MSG_PEEK  接收缓冲区中数据,但是并不清除

2014-12-30 14:58:58 769

原创 Linux下Socket编程学习(三)

1、流协议与粘包2、粘包产生的原因3、粘包处理方案4、readn writenTCP 是流协议没有边界容易产生粘包。解决方案:   1、定长包   2、包尾加\r\n(ftp) 有一定问题 消息本身具有\r\n就无法区分边界   3、包头加上包体长度   4、更复杂的应用协议解决TCP粘包问题,读取指定大小的数据 size_t readn(in

2014-12-30 14:36:00 735

原创 Linux下Socket编程学习(二)

socket函数包头文件创建一个套接字用于通信int socket(int domain,int type,int protocol);domain:指定通信协议族type:指定socket类型,流失套接字SOCK_STREAM 数据报套接字SOCK_DGRAM 原始套接字SOCK_RAWprotocol:协议类型返回值:成功返回非负整数,它与文件描述符类似,失败返回-

2014-12-30 14:10:47 674

原创 Linux下Socket编程学习(一)

sockaddr_in详细讲解IPV4套接口地址结构通常也称为”网际套接字地址结构“,它以"sockaddr_in"命名,定义在头文件中struct sockaddr_in{   uint8_t sin_len;    //整个sockaddr_in结构体的长度   sa_family_t sin_family;    //指定地址家族,AF_INET使用的是ipv4协议 

2014-12-30 13:50:43 748

转载 ETL的增量抽取机制

要实现增量抽取,关键是如何准确快速的捕获变化的数据。优秀的增量抽取机制要求ETL能够将业务系统中的变化数据按一定的频率准确地捕获到,同时不能对业务系统造成太大的压力,影响现有业务。相对全量抽取而言,增量抽取的设计更复杂,有一种将全量抽取过程自动转换为增量抽取过程的ETL设计思路,前提是必须捕获变化的数据,增量数据抽取中常用的捕获变化数据的方法有以下几种:    2.1 触发器方式 

2013-11-13 14:39:25 1257

转载 Android中shape的使用

本人在美工方面一直是比较白痴的,对于一些颜色什么乱七八糟的非常头痛,但是在Android编程中这又是经常涉及到的东西,没办法,只有硬着头皮上。Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结:先看下面的代码:

2013-01-29 10:53:44 655

转载 linxu 启动过程分析

linxu 启动过程分析Linux启动过程如下:当用户打开PC的电源,BIOS开机自检,按BIOS中设置的启动设备(通常是硬盘)启动,接着启动设备上安装的引导程序lilo或grub开始引导Linux,Linux首先进行内核的引导,接下来执行init程序,init程序调用了rc.sysinit和rc等程序,rc.sysinit和rc当完成系统初始化和运行服务的任务后,返回init;init启

2013-01-19 00:05:57 748

转载 android 使用GridView实现Gallery的效果,并且从最左边开始

1.首先设计man.xml这里使用HorizontalScrollView结合GridView实现Gallery的左右滚动效果,并且解决了Gallery从中间开始的问题,GridView可以从最左边开始显示。代码如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:ori

2012-12-19 10:11:59 4347 1

转载 android下图片压缩

第一:我们先看下质量压缩方法:private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩

2012-12-19 10:06:10 14498 3

原创 android一些不常用的事件

Android里有两个类     android.view.GestureDetector   android.view.GestureDetector.SimpleOnGestureListener   (另外android.widget.Gallery好像是更牛x的OnGestureListener )     1)新建一个类继承SimpleOnGestureListener,Ha

2012-11-27 19:15:06 1233

转载 Android ListView反复调用getView和getCount

最近做项目发现一个界面当有ListView是,getView和getCount中的log被疯狂调用。一个5个Item的ListView,getView竟然会被反复调用7组。尤其是当ItemView中需要加载图片时,很容易造成GC过多,很容易出现ANR。原因就在于measure过程,ListView一般都会有好多个Item,而且也会同时显示若干组Item,这些Item的父元素都是这个List

2012-11-07 17:45:31 5788 1

转载 GPS开发常用方法和Criteria确定android location providerGPS

GPS常用方法总结 取得LocationProviderpublic void getLocationProvider() { try { Criteria mCriteria01 = new Criteria(); mCriteria01.setAccuracy(Criteria.ACCURACY_FINE);

2012-11-02 10:09:59 1373

原创 android.app.instrumentation解析

已经在Android SDK中学习了很多关于JUnit的内容,但是感觉一直有几个问题没有解决(不知道大家是否有同样的感受)JUnit的测试都自动化的,完全是不需要任何操作的,有2个问题我一直都还没有找到答案,这2个问题如下:JUnit可以用来测试Android的基本组成元素:Activity、Service、Provider,那么我们如何控制这些基本元素运行的,这需要Android系统提供

2012-08-17 14:40:08 11329 2

转载 android:windowSoftInputMode属性使用

在AndroidManifest.xml文件中的android:windowSoftInputMode属性使用The AndroidManifest.xml File                                     "stateUnchanged", "stateHidden",

2012-07-30 11:05:30 901

原创 MeasureSpec介绍及使用详解

一个MeasureSpec封装了父布局传递给子布局的布局要求,每个MeasureSpec代表了一组宽度和高度的要求。一个MeasureSpec由大小和模式组成。它有三种模式:UNSPECIFIED(未指定),父元素部队自元素施加任何束缚,子元素可以得到任意想要的大小;EXACTLY(完全),父元素决定自元素的确切大小,子元素将被限定在给定的边界里而忽略它本身大小;AT_MOST(至多),子元素至多

2012-07-29 17:31:16 1546

转载 Java:对象的强、软、弱和虚引用

本文介绍对象的强、软、弱和虚引用的概念、应用及其在UML中的表示。 1.对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、

2012-07-09 15:51:00 660

转载 declare-styleable:自定义控件的属性

以launcher为例说明自定义控件的属性: 1、  在layout里面定义控件,如:          android:id="@+id/workspace"        android:layout_width="fill_parent"        android:layout_height="fill_parent"         launcher:d

2012-07-09 15:14:00 677

android图片的滤镜处理

android图片特效,图片过滤 首先实选择列表从最左边开始排序并且默认选中第一项,这里为了实现从最左边开始所以使用HorizontalScrollView结合GridView实现Gallery view 图片效果图

2012-12-19

android实现横向滑动解决Gallery从中间滑动的问题

android 使用GridView实现Gallery的效果,并且从最左边开始

2012-12-19

java实现托盘处理

利用Java实现托盘,支持声音和图标的闪动非常经典。

2010-12-19

Linux内核完全剖析基于0.11内核.pdf

介绍linux源代码,详细分析了linux0.11linux内核源代码,学完此书你的能力将会上一个大的台阶

2010-10-28

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除