- 博客(55)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 redis常用命令
[Redis] redis-cli 命令总结Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用。在编程时,比如使用Redis 的Java语言包,这些命令都有对应的方法。下面将Redis提供的命令做一总结。 官网命令列表:http://redis.io/commands (英文)
2016-06-27 09:31:38 5323 1
原创 JMM指令重排
指令重排对于编译器的编写者来说,Java内存模型(JMM)主要是由禁止指令重排的规则所组成的,其中包括了字段(包括数组中的元素)的存取指令和监视器(锁)的控制指令。Volatile与监视器JMM中关于volatile和监视器主要的规则可以被看作一个矩阵。这个矩阵的单元格表示在一些特定的后续关联指令的情况下,指令不能被重排。下面的表格并不是JMM规范包含的,而是一个用来观察J
2016-05-27 11:23:09 1061
原创 block,inline和inline-block概念和区别
display:blockblock元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。block元素可以设置margin和padding属性。display:inlineinline元素不会独占一行,多个相邻的行
2016-04-14 13:50:52 1324
原创 CSS内嵌元素和块元素的区别
举例: 请把下面二行代码放进body标签里: div1 div1 浏览器的呈现效果: div1 div1 这二个div占据了二行空间,叫做块级元素(block)。 再把下面二行代码也放进body标签里: span1 span2 浏览器的呈现效果: span1 span1 这两个sp
2016-04-13 15:05:52 1590
转载 FragmentPagerAdapter与FragmentStatePagerAdapter区别
在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动。不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChange
2016-03-16 22:27:46 679
转载 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 983
转载 Android开源框架(UI)
前言好久没写博文了,最近工作比较忙,剩下的一点点时间在做自己的项目,在Android酷炫实用的开源框架(UI框架)这篇文章中提到了很多开源的UI框架,我在自己的项目开发中也使用了大部分的,但是总觉得仅仅这几个不够用啊,所以本人在此做项目期间又找到了更多优秀的开源UI框架,在此分享给大家希望能对大家有所帮助,大家记得关注我哦~!在此篇之后就给大家带来优秀的HTTP框架和DB框架了!
2015-03-22 21:41:47 1372
转载 WindowManager.LayoutParams详解
public static classWindowManager.LayoutParamsextends ViewGroup.LayoutParamsimplements Parcelablejava.lang.Object ?android.view.ViewGroup.LayoutParams ?
2015-03-22 21:38:45 1549
原创 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 666
原创 Android Paint和Color类介绍
要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下: setAntiAlias: 设置画笔的锯齿效果。 setColor: 设置画笔颜色 setARGB: 设置画笔的a,r,p,g值。 setAlpha: 设置
2015-01-26 22:58:14 865
原创 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 1035
转载 byte[]数组和int之间的转换
这里简单记录下两种转换方式:第一种:1、int与byte[]之间的转换(类似的byte short,long型) /** * 将int数值转换为占四个字节的byte数组,本方法适用于(低位在前,高位在后)的顺序。 和bytesToInt()配套使用 * @param value * 要转换的int值 * @r
2015-01-22 23:26:02 752
转载 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 1457
原创 深入探讨TCP_NODELAY
在网络拥塞控制领域,我们知道有一个非常有名的算法叫做Nagle算法(Nagle algorithm),这是使用它的发明人John Nagle的名字来命名的,John Nagle在1984年首次用这个算法来尝试解决福特汽车公司的网络拥塞问题(RFC 896),该问题的具体描述是:如果我们的应用程序一次产生1个字节的数据,而这个1个字节数据又以网络数据包的形式发送到远端服务器,那么就很容易导致网络由于
2015-01-22 16:26:48 905
原创 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 862
原创 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 2719
原创 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 788
原创 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 1470
转载 【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 712
转载 如何定位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 943
原创 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 769
原创 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 798
原创 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 761
原创 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 701
原创 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 774
转载 ETL的增量抽取机制
要实现增量抽取,关键是如何准确快速的捕获变化的数据。优秀的增量抽取机制要求ETL能够将业务系统中的变化数据按一定的频率准确地捕获到,同时不能对业务系统造成太大的压力,影响现有业务。相对全量抽取而言,增量抽取的设计更复杂,有一种将全量抽取过程自动转换为增量抽取过程的ETL设计思路,前提是必须捕获变化的数据,增量数据抽取中常用的捕获变化数据的方法有以下几种: 2.1 触发器方式
2013-11-13 14:39:25 1286
转载 Android中shape的使用
本人在美工方面一直是比较白痴的,对于一些颜色什么乱七八糟的非常头痛,但是在Android编程中这又是经常涉及到的东西,没办法,只有硬着头皮上。Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结:先看下面的代码:
2013-01-29 10:53:44 685
转载 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 773
转载 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 4375 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 14555 3
原创 android一些不常用的事件
Android里有两个类 android.view.GestureDetector android.view.GestureDetector.SimpleOnGestureListener (另外android.widget.Gallery好像是更牛x的OnGestureListener ) 1)新建一个类继承SimpleOnGestureListener,Ha
2012-11-27 19:15:06 1260
转载 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 5851 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 1399
原创 android.app.instrumentation解析
已经在Android SDK中学习了很多关于JUnit的内容,但是感觉一直有几个问题没有解决(不知道大家是否有同样的感受)JUnit的测试都自动化的,完全是不需要任何操作的,有2个问题我一直都还没有找到答案,这2个问题如下:JUnit可以用来测试Android的基本组成元素:Activity、Service、Provider,那么我们如何控制这些基本元素运行的,这需要Android系统提供
2012-08-17 14:40:08 11381 2
转载 android:windowSoftInputMode属性使用
在AndroidManifest.xml文件中的android:windowSoftInputMode属性使用The AndroidManifest.xml File "stateUnchanged", "stateHidden",
2012-07-30 11:05:30 927
原创 MeasureSpec介绍及使用详解
一个MeasureSpec封装了父布局传递给子布局的布局要求,每个MeasureSpec代表了一组宽度和高度的要求。一个MeasureSpec由大小和模式组成。它有三种模式:UNSPECIFIED(未指定),父元素部队自元素施加任何束缚,子元素可以得到任意想要的大小;EXACTLY(完全),父元素决定自元素的确切大小,子元素将被限定在给定的边界里而忽略它本身大小;AT_MOST(至多),子元素至多
2012-07-29 17:31:16 1596
转载 Java:对象的强、软、弱和虚引用
本文介绍对象的强、软、弱和虚引用的概念、应用及其在UML中的表示。 1.对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、
2012-07-09 15:51:00 684
转载 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 706
android图片的滤镜处理
2012-12-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人