自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1647)
  • 收藏
  • 关注

线程访问控制

为什么要进行线程控制呢?就如同我和媳妇买了一辆车,我和我媳妇是共享这辆车的,就类似于线程共享进程的资源。当我们开车去拉萨的时候,我可以开车,她也可以开车,但是两个人不能同时开车,只能一个人来开,要不就会出问题。所以当我需要开车时,我就坐在驾驶的位置上,就相当于给线程上锁了,一旦我坐在驾驶座上,就是我来开车了,别人谁也别想开车,自己媳妇也是不行的。很明显,这是为了安全,是啊,线程控制也是为了安全,省...

2013-10-14 18:26:00 453

Linux 信号和信号集

信号是linux所使用的进程间通信的最古老的方式。它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式 。一个完整的信号周期包括三个部分,信号的产生,信号在进程中的注册,信号在进程中的注销,执行信号处理函数。如下图所示:注意:这里信号的产生,注册,注销时信号的内部机制,而不是信号的函数实现。对信号的响应由三种方式:1、忽略信号,即对信号不做任何的处理。处SIGKILL和SIG...

2013-10-14 14:08:00 528

百度地图SDK for iOS v2.1.0全新发布

2013年10月12日 百度地图iOS SDK : V2.1.0矢量版SDK上线新增:全面接入LBS.云V2.0,全面开放LBS.云检索能力在BMKCloudSearchInfo中新增类BMKBaseCloudSearchInfo,BMKCloudSearchInfo,BMKCloudLocalSearchInfo,BMKCloudNearbySearchInfo,BMK...

2013-10-14 10:45:00 528

Android Developers:优化布局结构

这是一个普遍的误解,使用基本的布局结构是最高效率的布局。然而,每个你加入你的应用程序的组件和布局都需要初始化,布局,和绘制。例如,使用嵌套的LinearLayout实例能导致一个过深的视图结构。而且,嵌入几个使用laytou_wight参数的LinearLyaout实例,由于每个孩子需要被测量两次导致特别昂贵的开销。当布局是一个反复的填充的时候,这个特别重要,例如当被使用在一个ListVi...

2013-10-14 09:19:00 288

STM32单片机用FSMC接口控制SRAM

STM32单片机用FSMC接口控制SRAM本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.环境:主机:WIN7开发环境:MDK4.72MCU:STM32F103ZE说明:sram型号:IS62WV51216BLL连接方式:FSMC大小:1M字节.512K *...

2013-10-14 09:16:00 1455

如何建立基于CocoaPods的ReactiveCocoa工程

ReactiveCocoa 和 CocoaPods 一样也是目前很流行的 能方便和提高效率的框架.其实不光ios 学习任何一门语音最快最直接的方法就是上手. 如果单单是看看文档只能是走马观花得到一个感性认识罢了.前两天之前一个公司的测试人员跟我联系说如何学习JAVA,我问他是怎么学的,他说从网上下了好多视频教程,一直在看视频教程,也买了一些书. 我问他敲了多少代码,他说很少. 其...

2013-10-14 01:58:00 148

Android实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音

转载请注明出处:http://blog.csdn.net/xiaanming/article/details/12684155前段时间因为换工作的缘故又恰巧碰到国庆节,所以有段时间自己没有更新博客了,过完国庆到新公司报道,感觉还不错,就是现在住的地方离新公司有点远,地铁20站,伤不起啊,我每天早上7点多就要起床,然后屁颠屁颠的去挤地铁上班,晚上下班还要挤地铁,先不说路程远,车费一天就要10几块...

2013-10-13 21:46:00 1521

Linux 添加环境变量和删除环境变量

环境变量是一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如PATH.在交叉编译中,会经常运用到环境变量的设置。在linux中,查看当前全部的环境变量的命令式env.当然也可使用 echo来查看环境变量的值。例如查看PATH的内容:echo $PATH例如要将/home/rongdeguo/Code 加入到环境变量中,可以在shell中输入e...

2013-10-12 17:10:00 2339

Linux 的进程组、会话、守护进程

一、进程组ID每个进程都属于一个进程组。每个进程组有一个领头进程。进程组是一个或多个进程的集合,通常它们与一组作业相关联,可以接受来自同一终端的各种信号。每个进程组都有唯一的进程组ID(整数,也可以存放在pid_t类型中)。进程组由进程组ID来唯一标识。除了进程号外(PID)之外,进程组ID也是一个进程的必备属性之一。getpgrp: 获得进程组 id, 即领头进程...

2013-10-12 16:20:00 134

Android基本功:Handler消息传送机制

一、什么是UI线程当程序第一次启动的时候,Android会同时启动一条主线程( Main Thread)。主要负责处理与UI相关的事件。二、UI线程存在的问题出于性能优化考虑,Android的UI操作并不是线程安全的,意味着如果多个线程并发操作UI线程,可能导致线程安全问题。为了解决这个问题,...

2013-10-12 09:14:00 177

全缓冲和行缓冲

一、在linux系统中,标准的I/O提供了三种类型的缓冲。1、全缓冲:在这种情况下,在填满I/O缓冲区后再进行实际的I/O操作。对于驻留在磁盘上的文件通常由标准I/O库实施全缓冲。调用fflush函数冲洗一个流。冲洗意味着将缓冲区的内容写到磁盘上。2、行缓冲:在这种情况下,当在输入和输出遇到换行符时,标准I/O执行I/O操作。允许我们一次输出一个字符。涉及一个终端时,通常使用行缓冲。对...

2013-10-11 10:12:00 443

IOS 开发之 CocoaPods讲解

什么是CocoaPods?看看你的项目吧,肯定会用到很多第三方的开源库,比如ASI,SBJson,MBProgressHUD等等.比如下面这款APP用到的库就包含如下这样多随着你的工程越来越大,你引入的第三方的开源库可能会越来越多.这些依赖的开源库维护管理越久越来越困难.于是CocoaPods出现了,它可以帮助管理Xcode项目的依赖关系。(说到这做过java的同...

2013-10-11 01:30:00 142

文件I/O编程

一、系统调用所谓的系统的调用时操作系统提供给用户程序调用的一组“特殊”接口,用户可以同个接口获得系统提供的服务。例如用户通过系统调用可以实现创建进程、进程的管理、soket网络通信。linux用户程序是不能直接访问系统内核提供的服务的。这样做是为了保护系统内核的数据不被修改,保证了系统的安全性。用户空间和内核空间是分离的,通常情况下用户程序不允许访问内核数据和内核的函数。二、用户编...

2013-10-10 20:11:00 309

QML学习:QML文件当做组件使用

QML学习:QML文件当做组件使用本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.参考文档<<Qt及Qt Quick开发实战精解.pdf>>环境:主机:WIN7开发环境:Qt属性别名:将组件中的一个属性设置为可定义方法:用关键字property alias将一个...

2013-10-05 10:14:00 467

IOS私有API的了解

IOS的API分为四种:PublishedAPI(公开的API)(或者Documented API)还有两类:私有API:PrivateAPI和未公开API:UnPublished API(或者UndocumentedAPI)。私有API是指放在PrivateFrameworks框架中的API,未公开的API是指虽然放在Frameworks框架中,但是却没有在苹果的官方文档中有...

2013-10-04 09:22:00 181

【C语言】11-函数的声明和定义

一、函数的声明1.在C语言中,函数的定义顺序是有讲究的:默认情况下,只有后面定义的函数才可以调用前面定义过的函数1 int sum(int a, int b) {2 return a + b;3 }4 5 int main()6 {7 int c = sum(1, 4);8 return 0;9 }第5行定义的mai...

2013-09-30 23:33:00 471

【C语言】10-函数

一、基本概念1.什么是函数任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。所以,你可以说C语言程序是由函数构成的。比如你用C语言编写了一个MP3播放器程序,那么它的程序结构如下图所示:从上图可以看出:函数就是用来实现某个功能的程序段,每一个函数都有自己的功能。因此,你应该把实现某个功能所...

2013-09-30 23:30:00 179

【C语言】09-流程控制

前言1.默认的运行流程默认情况下,程序的运行流程是这样的:运行程序后,系统会按书写顺序执行程序中的每一行代码。比如下面的程序 1 #include <stdio.h> 2 3 int main() 4 { 5 6 printf("Hello-1\n"); 7 printf("Hello-2\n"); 8 ...

2013-09-30 23:27:00 173

【C语言】08-基本运算

一、算术运算符算术运算符非常地简单,就是小学数学里面的一些加减乘除操作。不过呢,还是有一些语法细节需要注意的。1.加法运算符 +1 int a = 10;2 3 int b = a + 5;在第3行利用加法运算符 + 进行了加法运算,再将和赋值给了变量b,最终变量b的值是152.减法运算符 或 负值运算符-1 int b = ...

2013-09-30 23:24:00 253

【C语言】07-基本数据类型

一、取值范围我们已经知道,不同数据类型所占的存储空间是不一样的。比如在64bit编译器环境下,char类型占用1个字节,int类型占用4个字节。字节长度不一样,包含的二进制位数就不一样,能表示的数据范围也就不一样。因此,int类型能表示的数据范围肯定比char类型大。下面来简单算算64bit编译器环境下int类型的取值范围。1.推算int类型的取值范围int类型占用4个...

2013-09-30 23:20:00 190

【C语言】06-变量与内存

一、字节和地址为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”。1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。就好像酒店是以房间为单位的,每个房间都有一个唯一的房号,我们根据房号就能找到对应的房间。里面的每个小框框就代表着内存中的一个字节,白色数字就是每个字节的地址(这里采取十六进...

2013-09-30 23:17:00 132

【C语言】05-进制

一、十进制1.概念十进制是我们最熟悉、最常用的一种计数方式,它有两个特点:由0、1、2….9十个基本数字组成;运算规则是“逢十进一”。2.运算所谓“逢十进一”,似乎在小学数学中都已经学过了,也就是当数值满十时,就要向前进一位个位数为9+1,满十了,十位数就进一。二、二进制1.概念二进制是计算机内部使用的一种计数方式...

2013-09-30 23:15:00 146

【C语言】04-常量、变量

一、数据的存储1.数据类型首先来看看计算机是怎么存储数据的。总的来说,计算机中存储的数据可以分为两种:静态数据和动态数据。1> 静态数据概念:静态数据是指一些永久性的数据,一般存储在硬盘中。硬盘的存储空间一般都比较大,现在普通计算机的硬盘都有500G左右,因此硬盘中可以存放一些比较大的文件。存储的时长:计算机关闭之后再开启,这些数据依旧还在,只要你不主动删掉或...

2013-09-30 23:11:00 125

【C语言】03-关键字、标识符、注释

一、关键字1.什么是关键字关键字就是C语言提供的有特殊含义的符号,有些地方也叫做“保留字”。2.一共有哪些关键字C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义。auto double int struct break else long switch case enum register typedef char ext...

2013-09-30 23:07:00 138

日积月累:ProguardGui进行jar包代码混淆

前面文章《Proguard进行源代码混淆》讲解过怎么使用Proguard工具对Android的源代码进行混淆的方法(感兴趣的朋友可以访问:http://blog.csdn.net/p106786860/article/details/11974863),但是在实际工作中发现,通过上述方法对导出的Jar并没有进行混淆。下面我们就介绍,如果对导出的Jar包进行代...

2013-09-30 08:44:00 376

【c语言】02第一个c语言程序

一、编写第一个C语言程序-Hello World为什么称第一个程序为“Hello Wolrd”呢?其实计算机行业里面,学习任何技术的第一个程序都可以称为“Hello World”。“Hello World”的字面意思是“你好,世界”,也就是跟世界打招呼。我们第一个程序在这世界上诞生了,那肯定要跟世界打声招呼嘛,所以就称为“Hello World”。1.用什么工具写代码首先我...

2013-09-29 22:03:00 245

假学习

什么叫做“假学习”?一、看书买一堆书,有空看看。看书,这是典型的假学习。看书看不懂还在看,就是假学习,欺骗自己,安慰自己正在学习而已。专业书都写得很好,但大都是写给已经懂的人看的。看书的最大作用就是证明自己看书是学不到东西的,然后只有寻找其他途径。建议:把书合上,想一想,你想学的东西东西到底是要干什么用的,要掌握到什么程度才够用。实在不行,快速看完,也好过慢慢磨着看完,当你觉得什...

2013-09-29 19:57:00 110

日积月累:Android项目打第三方jar包

随着Android系统的日益发展和日渐成熟,各种平台的合作就日渐频繁。现在主要互联网公司,都退出了各种各样的插件功能。如第三方支付,第三方联合登陆和微博分享等等功能。近期由于业务的需要,公司提出将项目的功能打成jar包,提供给其它客户调用。经过一段时间的调查研究和实践,先将解决办法总结如下。一、原理介绍在每个Android项目中,都会有一个R...

2013-09-29 09:36:00 226

【C语言】01-概述

一、计算机常识在学习C语言之前,先要了解一些计算机常识1.计算机只能识别0和1大家都知道,计算机要通电才能工作,说白了,它跟电视、洗衣机一样,都是电器。电器都有个共同的能力:懂得判断通电还是断电,通电就能工作,断电就停止工作。因此,从根本上讲,计算机只能识别电信号:高电平信号(通电)、低电平信号(断电),它只知道某个开关是通电还是断电。我们用1代表高电平,0代表低电平。...

2013-09-28 23:28:00 126

提高你的Java代码质量吧:多使用异常,把性能问题放一边

一、分析Java异常处理机制确实比较慢,这个“比较慢”是相对于诸如String、Integer等对象来说,单单从对象的创建上来说,new一个IOException会比String慢5倍,这从异常的处理机制上也可以解释:因为它执行fillStackTrace方法,要记录当前栈的快照,而String类则是直接申请创建一个内存创建对象,异常类慢一筹也在所难免。二、场景我们知道异常...

2013-09-28 09:37:00 241

我的Android进阶之旅------>Android之动画之Frame Animation实例

============================首先看看官网上关于Frame animation的介绍================================地址:http://developer.android.com/guide/topics/resources/animation-resource.html#FrameFrame animationAn...

2013-09-28 01:38:00 160

QML学习:Rectangle,Text,TextEdit,Flickable,Flipable元素

QML学习:Rectangle,Text,TextEdit,Flickable,Flipable元素本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.参考文档<<Qt及Qt Quick开发实战精解.pdf>>环境:主机:WIN7开发环境:QtRectangle元素...

2013-09-27 14:44:00 150

QML学习:Item元素

QML学习:Item元素本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.参考文档<<Qt及Qt Quick开发实战精解.pdf>>环境:主机:WIN7开发环境:Qt说明:QML中所有可视项目都继承于Item.Item本身并...

2013-09-27 10:05:00 1166 1

提高你的Java代码质量吧:不要在finally块中处理返回值

一、分析在finally中处理return返回值,代码上看上去很完美,都符合逻辑,但是执行起来就会产生逻辑错误,最重要的一点是finally是用来做异常处理的收尾处理的,一旦加上return语句,就会让程序的复杂程度陡然提升,而且会在一些隐蔽性非常高的错误。与return语句相似,System.exit(0)或Runtime.getRuntime().exit(0)出现在异常代码块中也会产生非常多...

2013-09-27 09:31:00 210

我的Android进阶之旅------>Android安全退出应用程序的几种方式

当应用不再使用时,通常需要关闭应用,可以使用以下几种方法关闭android应用:第一种方法:首先获取当前进程的id,然后杀死该进程。 建议使用这种方式android.os.Process.killProcess(android.os.Process.myPid())第二种方法:终止当前正在运行的Java虚拟机,导致程序终止System.exit(0);或者Run...

2013-09-26 22:57:00 159

我的Android进阶之旅------>Android视频录制小例子

============================首先看看官网上关于视频捕捉的介绍================================Capturing videosVideo capture using the Android framework requires careful management of theCameraobject and c...

2013-09-26 21:33:00 140

我的Android进阶之旅------>Android拍照小例子

今天简单的学习了一下android拍照的简单实现。当然该程序是个小例子,非常简单,没有什么复杂的操作,但是可以学习到Android 拍照API流程。1.在布局文件中添加一个 surfaceView (用来展示预览的图片)2.根据 SurfaceView 获得 Holder 3.给固定器设置 SurfaceHolder.Callback ; 这个 Callback 有一系列的周期方法,比...

2013-09-26 19:30:00 138

QML学习:对象和属性

QML学习:对象和属性本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.参考文档<<Qt及Qt Quick开发实战精解.pdf>>环境:主机:WIN7开发环境:Qt源代码:import QtQuick 1.0Rectangle{ width:32...

2013-09-26 16:51:00 150

让你不再纠结GitHub:Git起步

一、关于版本控制版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。我们通常仅对保存着软件源代码的文本文件做版本控制,但实际上,你可以对任何类型的文件进行版本控制。采用版本控制系统(VCS),你就可以将某个文件回溯到之前的状态,甚至将整个项目回退到某个时间点状态;你可以比较文件变化的细节,查查最后是谁修改了哪个地方,从而导致出...

2013-09-26 09:35:00 158

日积月累:Proguard进行Android代码混淆

在实际的开发成产品apk的发布过程中,我们经常会使用到代码混淆技术。不过在讲解如何进行代码混淆之前,我先跟大家演示一下反编译的过程,这样才能让大家明白为什么需要进行代码混淆。一、代码反编译1.准备工作首先我们准备好一个项目的apk文件(未进行混淆打包)、dex2jar工具(下载地址:http://code.google.com/p...

2013-09-25 09:12:00 259

空空如也

空空如也

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

TA关注的人

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