自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Joseph Zhong

不折腾不舒服

  • 博客(25)
  • 收藏
  • 关注

转载 Android杂谈--ListView之BaseAdapter的使用

前言        话说开发用了各种Adapter之后感觉用的最舒服的还是BaseAdapter,尽管使用起来比其他适配器有些麻烦,但是使用它却能实现很多自己喜欢的列表布局,比如ListView、GridView、Gallery、Spinner等等。它是直接继承自接口类Adapter的,使用BaseAdapter时需要重写很多方法,其中最重要的当属getView,因为这会涉及到ListView

2014-07-16 16:55:24 581

转载 Android UI开发 ——Creating a Navigation Drawer

2013-10-10 16:10 6946人阅读 评论(15)收藏 举报目录(?)[-]Create a Drawer LayoutInitialize the Drawer ListHandle Navigation Click EventsListen for Open and Close EventsOpen and Close with the App Icon

2014-06-11 16:17:30 520

转载 深入解析AsyncTask

AsyncTask是Android 1.5 Cubake加入的用于实现异步操作的一个类,在此之前只能用Java SE库中的Thread来实现多线程异步,AsyncTask是Android平台自己的异步工具,融入了Android平台的特性,让异步操作更加的安全,方便和实用。实质上它也是对Java SE库中Thread的一个封装,加上了平台相关的特性,所以对于所有的多线程异步都强烈推荐使用AsyncT

2014-06-03 15:40:50 575

转载 浅析 Java Thread.join()

一、在研究join的用法之前,先明确两件事情。1.join方法定义在Thread类中,则调用者必须是一个线程,例如:Thread t = new CustomThread();//这里一般是自定义的线程类t.start();//线程起动t.join();//此处会抛出InterruptedException异常 2.上面的两行代码也是在一个线程里面执行的。 以上

2014-05-29 17:29:15 467

转载 Java中hashcode()和equals()的详解

1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。 equals()方法在object类中定义如下:   public boolean equals(Object obj) { return (this == obj); } 很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们必需清楚,当String 、Math、还有I

2014-02-28 14:06:31 463

转载 vlan, tag, untag(基本是转的)

vlan, tag, untag(基本是转的)  untag: 普通ethernet报文,普通PC机只能识别这种类型的报文进行通讯tag报文:在普通以太网帧结构的src addr之后加入了4bytes的vlan信息,即vlan tag头。普通PC机一般不能识别这样的报文。下图是802.1Q标准tag报文帧结构: 以太网端口有三种链路类型:Access

2014-02-24 16:14:17 4605

转载 JAVA 原始类型和引用类型

使用原始类型无须调用new,也无须创建对象。这节省了时间和空间。混合使用原始类型和对象也可能导致与赋值有关的意外结果。原始类型是类,引用类型是对象 原始类型大小比较用"==",引用类型大小比较用"equals"原始类型 封装类=================boolean Booleanchar    Characterbyte    Byteshort   Sh

2014-02-22 18:26:22 506

转载 JAVA 对象引用,以及对象赋值

Java对象及其引用关于对象与引用之间的一些基本概念。       初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用,       那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。       为便于说明,我们先定义一个简单的

2014-02-22 18:06:42 408

原创 用ioctl获得本地ip地址

用ioctl获得本地ip地址时要用到两个结构体ifconf和ifreq,它们对于大多数人来说都是比较陌生的,这里给大家一种比较简单的理解方法,当然只一种帮助理解的方法,在描述中可能会有一些地方与真实定义有所出入,仅供参考. 首先先认识一下ifconf和ifreq: //ifconf通常是用来保存所有接口信息的//if.hstruct ifco

2010-04-28 16:14:00 381

转载 Linux内核同步介绍和方法

Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访问会导致竞态,linux提供了多种解决竞态问题的方式,这些方式适合不同的应用场景。 Linux内核是多进程、多线程的操作系统,它提供了相当完整的内核同步方法。内核同步方法列表如下:中断屏蔽原子操作自旋锁读写自

2009-09-10 16:33:00 645

转载 Spinlock 简介

在这篇文章中,我将会介绍 Kernel 提供用来使用 spinlock 的function。除此之外,我还会告诉各位,为何在 SMP 的环境里,使用 spinlock 会比将所有 CPU 的中断 disable这个方法来的有效率,我也会告诉各位如何针对不同的使用需求,使 spinlock 的 cost 再降低,进而使系统的效能更好... 前言 在Linu

2009-09-10 16:32:00 282

转载 关于module_param()宏

在用户态下编程可以通过main()的来传递命令行参数,而编写一个内核模块则通过module_param() module_param宏是Linux 2.6内核中新增的,该宏被定义在include/linux/moduleparam.h文件中,具体定义如下:#define module_param(name, type, perm) modul

2009-09-10 16:32:00 782

原创 Linux slab 分配器剖析

良好的操作系统性能部分依赖于操作系统有效管理资源的能力。在过去,堆内存管理器是实际的规范,但是其性能会受到内存碎片和内存回收需求的影响。现在,Linux® 内核使用了源自于 Solaris的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配。本文将探索 slab分配器背后所采用的思想,并介绍这种方法提供的接口和用法。 动态内存

2009-09-10 16:31:00 248

转载 内核编程中的EXPORT_SYMBOL

EXPORT_SYMBOL标签内定义的函数或者符号对全部内核代码公开,不用修改内核代码就可以在您的内核模块中直接调用,即使用EXPORT_SYMBOL可以将一个函数以符号的方式导出给其他模块使用。您还可以手工修改内核源代码来导出另外的函数,用于重新编译并加载新内核后的测试。Linux symbol export method:[1] If we want e

2009-09-10 16:31:00 415

转载 linux2.6中的原子操作

原子操作,顾名思义,就是说像原子一样不可再细分。一个操作是原子操作,意思就是说这个操作是以原子的方式被执行,要一口气执行完,执行过程不能够被OS的其他行为打断,是一个整体的过程,在其执行过程中,OS的其它行为是插不进来的。在linux中提供了两种形式的原子操作: 一种是对整数进行的操作 一种是对单独的位进行操作在linux中有一个专门的atomic_t类型(一个

2009-09-10 16:30:00 819

转载 什么是实模式、保护模式和虚拟8086方式

1:实模式:寻址采用和8086相同的16位段和偏移量,最大寻址空间1MB,最大分段64KB。可以使用32位指令。32位的x86 CPU用做高速的8086。2:保护模式:寻址采用32位段和偏移量,最大寻址空间4GB,最大分段4GB (Pentium Pre及以后为64GB)。在保护模式下CPU可以进入虚拟8086方式,这是在保护模式下的实模式程序运行环境。第一:实模式下程序的运行回顾.

2009-09-10 16:29:00 1440 1

转载 C/C++语言中Static的作用详述

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = A; // global variable

2009-09-10 16:29:00 403

原创 IO::Socket简介

导入IO::Socket包:use IO::Socket;讲解:     IO::Socket下又有两个子类IO::Socket::INET与IO::Socket::UNIX,我们现在用的当然是IO::Socket::INET了。-------------------------------------------------------------------------

2009-09-10 16:28:00 447

转载 关于extern用法说明

extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字.它告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。1。对于extern变量来说,仅仅是一个变量的声明,其并不是在定义分配内存空间。如果该变量定义多次,会有连接错误2。通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern

2009-09-10 16:28:00 616

转载 我理解的逻辑地址、线性地址、物理地址和虚拟地址

本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到

2009-09-10 16:27:00 308

转载 乱序执行和内存屏障

乱序执行和内存屏障最近写的一些关于在驱动程序开发中会遇到的关于乱序执行问题的短文,都是些通用的技术,贴上来share。另外,禁止转载。 ps:这玩意原本是用Docbook写得,转过来还真是麻烦~~处理器的乱序和并发执行目前的高级处理器,为了提高内部逻辑元件的利用率以提高运行速度,通常会采用多指令发射、乱序执行等各种措施。现在普遍使用的一些超标量处理器通常

2009-09-10 16:26:00 1171

转载 GNU-ld链接脚本浅析

0. Contents1. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIONS命令8. MEMORY命令9. PHDRS命令10. VERSION命令11. 脚本内的表达式12. 暗含的连接脚本1. 概论每一个链接过程都由链接脚本(linker script, 一般

2009-09-10 16:26:00 345

转载 RCU(Read-Copy Update)

RCU(Read-CopyUpdate),对于被RCU保护的共享数据结构,读者不需要获得任何锁就可以访问它,但写者在访问它时首先拷贝一个副本,然后对副本进行修改,最后使用一个回调(callback)机制在适当的时机把指向原来数据的指针重新指向新的被修改的数据。这个时机就是所有引用该数据的CPU都退出对共享数据的操作。RCU实际上是一种改进的rwlock,读者几乎没有什么同步

2009-09-10 16:23:00 400

转载 Linux 信号signal处理机制

信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。

2009-09-10 16:22:00 229

原创 Linux下Makefile的automake生成全攻略

作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。   在本文中,将给大家介绍如何使用 <!-- -->autoconf和au

2009-09-10 16:16:00 216

空空如也

空空如也

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

TA关注的人

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