<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_大树的Blog</title><subtitle type="text">.NET 爱好者,android爱好者。</subtitle><id>http://feed.cnblogs.com/blog/u/31911/rss</id><updated>2011-07-19T08:54:15Z</updated><author><name>大树2</name><uri>http://www.cnblogs.com/csj007523/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/csj007523/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/31911/rss"/><entry><id>http://www.cnblogs.com/csj007523/archive/2011/07/19/2110773.html</id><title type="text">Linux命令整理</title><summary type="text">Linux命令整理 Linux提供了大量的命令，利用它可以有效地完成大量的工作，如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以，在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统，就必须从Linux命令学起，通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样，但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令，按照它们在系统中的作用分成下面六个部分一一介绍。本文主要参考曹元其先生的《Linux必学的60个命令》。◆ 安装和登录命令：login、shutdown、halt、reboot、i</summary><published>2011-07-19T08:52:00Z</published><updated>2011-07-19T08:52:00Z</updated><author><name>大树2</name><uri>http://www.cnblogs.com/csj007523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/csj007523/archive/2011/07/19/2110773.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/csj007523/archive/2011/07/19/2110773.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span &gt;&lt;a title="Linux命令整理" href="http://blog.csdn.net/sikinzen/article/details/5503769"&gt;Linux命令整理&lt;/a&gt;&lt;/span&gt; &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div  sizset="28" sizcache="1"&gt;&#xD;
&lt;p&gt;Linux提供了大量的命令，利用它可以有效地完成大量的工作，如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以，在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统，就必须从Linux命令学起，通过基础的命令学习可以进一步理解Linux系统。&lt;/p&gt;&#xD;
&lt;p&gt;不同Linux发行版的命令数量不一样，但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令，按照它们在系统中的作用分成下面六个部分一一介绍。本文主要参考曹元其先生的《Linux必学的60个命令》。&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; 安装和登录命令：login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last；&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; 文件处理命令：file、mkdir、grep、dd、find、mv、ls、diff、cat、ln；&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; 系统管理相关命令：df、top、free、quota、at、lp、adduser、groupadd、kill、crontab；&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; 网络操作命令：ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup；&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; 系统安全相关命令：passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who；&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; 其它命令：tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;strong&gt;命令整理（&lt;/strong&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;strong&gt;）&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;strong&gt;安装与登陆&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例，介绍Linux下的安装和登录命令。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;login &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用&lt;/p&gt;&#xD;
&lt;p&gt;login的作用是登录系统，它的使用权限是所有用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;login [name][－p ][－h 主机名称]&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数&lt;/p&gt;&#xD;
&lt;p&gt;－p:通知login保持现在的环境参数。&lt;/p&gt;&#xD;
&lt;p&gt;－h:用来向远程登录的之间传输用户名。&lt;/p&gt;&#xD;
&lt;p&gt;如果选择用命令行模式登录Linux的话，那么看到的第一个Linux命令就是login：。&lt;/p&gt;&#xD;
&lt;p&gt;一般界面是这样的：&lt;/p&gt;&#xD;
&lt;p&gt;Manddrake Linux release 9.1(Bamboo) for i586&amp;nbsp; &lt;br /&gt;renrel 2.4.21－0.13mdk on i686 / tty1 &lt;br /&gt;localhost login:root&lt;/p&gt;&#xD;
&lt;p&gt;password:&lt;/p&gt;&#xD;
&lt;p&gt;上面代码中，第一行是Linux发行版本号，第二行是内核版本号和登录的虚拟控制台，我们在第三行输入登录名，按&amp;#8220;Enter&amp;#8221;键在Password后输入账户密码，即可登录系统。出于安全考虑，输入账户密码时字符不会在屏幕上回显，光标也不移动。&lt;/p&gt;&#xD;
&lt;p&gt;登录后会看到下面这个界面（以超级用户为例）：&lt;/p&gt;&#xD;
&lt;p&gt;[root@localhost root]# &lt;br /&gt;last login:Tue ,Nov 18 10:00:55 on vc/1&lt;/p&gt;&#xD;
&lt;p&gt;上面显示的是登录星期、月、日、时间和使用的虚拟控制台。&lt;/p&gt;&#xD;
&lt;p&gt;4.应用技巧&lt;/p&gt;&#xD;
&lt;p&gt;Linux是一个真正的多用户操作系统，可以同时接受多个用户登录，还允许一个用户进行多次登录。这是因为Linux和许多版本的Unix一样，提供了虚拟控制台的访问方式，允许用户在同一时间从控制台（系统的控制台是与系统直接相连的监视器和键盘）进行多次登录。每个虚拟控制台可以看作是一个独立的工作站，工作台之间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实现，通常使用F1-F6 。&lt;/p&gt;&#xD;
&lt;p&gt;例如，用户登录后，按一下&amp;#8220;Alt+F2&amp;#8221;键，用户就可以看到上面出现的&amp;#8220;login:&amp;#8221;提示符，说明用户看到了第二个虚拟控制台。然后只需按&amp;#8220;Alt+F1&amp;#8221;键，就可以回到第一个虚拟控制台。 一个新安装的Linux系统允许用户使用&amp;#8220;Alt+F1&amp;#8221;到&amp;#8220;Alt+F6&amp;#8221;键来访问前六个虚拟控制台。虚拟控制台最有用的是，当一个程序出错造成系统死锁时，可以切换到其它虚拟控制台工作，关闭这个程序。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;shutdown &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用&lt;/p&gt;&#xD;
&lt;p&gt;shutdown命令的作用是关闭计算机，它的使用权限是超级用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;shutdown [－h][－i][－k][－m][－t]&lt;/p&gt;&#xD;
&lt;p&gt;3.重要参数&lt;/p&gt;&#xD;
&lt;p&gt;－t：在改变到其它运行级别之前，告诉init程序多久以后关机。&lt;/p&gt;&#xD;
&lt;p&gt;－k：并不真正关机，只是送警告信号给每位登录者。&lt;/p&gt;&#xD;
&lt;p&gt;－h：关机后关闭电源。&lt;/p&gt;&#xD;
&lt;p&gt;－c：cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数，但是可以输入一个用来解释的讯息，而这信息将会送到每位使用者。&lt;/p&gt;&#xD;
&lt;p&gt;－F：在重启计算机时强迫fsck。&lt;/p&gt;&#xD;
&lt;p&gt;－time：设定关机前的时间。&lt;/p&gt;&#xD;
&lt;p&gt;－m: 将系统改为单用户模式。&lt;/p&gt;&#xD;
&lt;p&gt;－i：关机时显示系统信息。&lt;/p&gt;&#xD;
&lt;p&gt;4.命令说明&lt;/p&gt;&#xD;
&lt;p&gt;shutdown命令可以安全地将系统关机。有些用户会使用直接断掉电源的方式来关闭Linux系统，这是十分危险的。因为Linux与Windows不同，其后台运行着许多进程，所以强制关机可能会导致进程的数据丢失，使系统处于不稳定的状态，甚至在有的系统中会损坏硬件设备（硬盘）。在系统关机前使用shutdown命令，系统管理员会通知所有登录的用户系统将要关闭，并且login指令会被冻结，即新的用户不能再登录。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;halt &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用&lt;/p&gt;&#xD;
&lt;p&gt;halt命令的作用是关闭系统，它的使用权限是超级用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;halt [－n] [－w] [－d] [－f] [－i] [－p]&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数说明&lt;/p&gt;&#xD;
&lt;p&gt;－n：防止sync系统调用，它用在用fsck修补根分区之后，以阻止内核用老版本的超级块覆盖修补过的超级块。&lt;/p&gt;&#xD;
&lt;p&gt;－w：并不是真正的重启或关机,只是写wtmp（/var/log/wtmp）纪录。&lt;/p&gt;&#xD;
&lt;p&gt;－f：没有调用shutdown，而强制关机或重启。&lt;/p&gt;&#xD;
&lt;p&gt;－i：关机（或重启）前，关掉所有的网络接口。&lt;/p&gt;&#xD;
&lt;p&gt;－f：强迫关机，不呼叫shutdown这个指令。&lt;/p&gt;&#xD;
&lt;p&gt;－p: 当关机的时候顺便做关闭电源的动作。&lt;/p&gt;&#xD;
&lt;p&gt;－d：关闭系统，但不留下纪录。 &lt;/p&gt;&#xD;
&lt;p&gt;4.命令说明&lt;/p&gt;&#xD;
&lt;p&gt;halt就是调用shutdown －h。halt执行时，杀死应用进程，执行sync(将存于buffer中的资料强制写入硬盘中)系统调用，文件系统写操作完成后就会停止内核。若系统的运行级别为0或6，则关闭系统；否则以shutdown指令（加上－h参数）来取代。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;reboot &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用&lt;/p&gt;&#xD;
&lt;p&gt;reboot命令的作用是重新启动计算机，它的使用权限是系统管理者。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;reboot [－n] [－w] [－d] [－f] [－i]&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数&lt;/p&gt;&#xD;
&lt;p&gt;－n: 在重开机前不做将记忆体资料写回硬盘的动作。&lt;/p&gt;&#xD;
&lt;p&gt;－w: 并不会真的重开机，只是把记录写到/var/log/wtmp文件里。&lt;/p&gt;&#xD;
&lt;p&gt;－d: 不把记录写到/var/log/wtmp文件里（－n这个参数包含了－d）。&lt;/p&gt;&#xD;
&lt;p&gt;－i: 在重开机之前先把所有与网络相关的装置停止。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;install &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用&lt;/p&gt;&#xD;
&lt;p&gt;install命令的作用是安装或升级软件或备份数据，它的使用权限是所有用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;(1)install [选项]... 来源 目的地&lt;/p&gt;&#xD;
&lt;p&gt;(2)install [选项]... 来源... 目录&lt;/p&gt;&#xD;
&lt;p&gt;(3)install －d [选项]... 目录... &lt;/p&gt;&#xD;
&lt;p&gt;在前两种格式中，会将&amp;lt;来源&amp;gt;复制至&amp;lt;目的地&amp;gt;或将多个&amp;lt;来源&amp;gt;文件复制至已存在的&amp;lt;目录&amp;gt;，同时设定权限模式及所有者/所属组。在第三种格式中，会创建所有指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也是必须的。&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数&lt;/p&gt;&#xD;
&lt;p&gt;－－backup[=CONTROL]：为每个已存在的目的地文件进行备份。&lt;/p&gt;&#xD;
&lt;p&gt;－b：类似 －－backup，但不接受任何参数。&lt;/p&gt;&#xD;
&lt;p&gt;－c：(此选项不作处理)。&lt;/p&gt;&#xD;
&lt;p&gt;－d，－－directory：所有参数都作为目录处理，而且会创建指定目录的所有主目录。&lt;/p&gt;&#xD;
&lt;p&gt;－D：创建&amp;lt;目的地&amp;gt;前的所有主目录，然后将&amp;lt;来源&amp;gt;复制至 &amp;lt;目的地&amp;gt;；在第一种使用格式中有用。&lt;/p&gt;&#xD;
&lt;p&gt;－g，－－group=组：自行设定所属组，而不是进程目前的所属组。&lt;/p&gt;&#xD;
&lt;p&gt;－m，－－mode=模式：自行设定权限模式 (像chmod)，而不是rwxr－xr－x。&lt;/p&gt;&#xD;
&lt;p&gt;－o，－－owner=所有者：自行设定所有者 (只适用于超级用户)。&lt;/p&gt;&#xD;
&lt;p&gt;－p，－－preserve－timestamps：以&amp;lt;来源&amp;gt;文件的访问/修改时间作为相应的目的地文件的时间属性。&lt;/p&gt;&#xD;
&lt;p&gt;－s，－－strip：用strip命令删除symbol table，只适用于第一及第二种使用格式。&lt;/p&gt;&#xD;
&lt;p&gt;－S，－－suffix=后缀：自行指定备份文件的&amp;lt;后缀&amp;gt;。&lt;/p&gt;&#xD;
&lt;p&gt;－v，－－verbose：处理每个文件/目录时印出名称。&lt;/p&gt;&#xD;
&lt;p&gt;－－help：显示此帮助信息并离开。&lt;/p&gt;&#xD;
&lt;p&gt;－－version：显示版本信息并离开。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;mount &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用&lt;/p&gt;&#xD;
&lt;p&gt;mount命令的作用是加载文件系统，它的用权限是超级用户或/etc/fstab中允许的使用者。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;mount －a [－fv] [－t vfstype] [－n] [－rw] [－F] device dir&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数&lt;/p&gt;&#xD;
&lt;p&gt;－h：显示辅助信息。&lt;/p&gt;&#xD;
&lt;p&gt;－v：显示信息，通常和－f用来除错。&lt;/p&gt;&#xD;
&lt;p&gt;－a：将/etc/fstab中定义的所有文件系统挂上。&lt;/p&gt;&#xD;
&lt;p&gt;－F：这个命令通常和－a一起使用，它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。&lt;/p&gt;&#xD;
&lt;p&gt;－f：通常用于除错。它会使mount不执行实际挂上的动作，而是模拟整个挂上的过程，通常会和－v一起使用。&lt;/p&gt;&#xD;
&lt;p&gt;－t vfstype：显示被加载文件系统的类型。&lt;/p&gt;&#xD;
&lt;p&gt;－n：一般而言，mount挂上后会在/etc/mtab中写入一笔资料，在系统中没有可写入文件系统的情况下，可以用这个选项取消这个动作。&lt;/p&gt;&#xD;
&lt;p&gt;4.应用技巧&lt;/p&gt;&#xD;
&lt;p&gt;在Linux和Unix系统上，所有文件都是作为一个大型树（以/为根）的一部分访问的。要访问CD-ROM上的文件，需要将CD-ROM设备挂装在文件树中的某个挂装点。如果发行版安装了自动挂装包，那么这个步骤可自动进行。在Linux中，如果要使用硬盘、光驱等储存设备 ，就得先将它加载，当储存设备挂上了之后，就可以把它当成一个目录来访问。挂上一个设备使用mount命令。 在使用mount这个指令时，至少要先知道下列三种信息：要加载对象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。&lt;/p&gt;&#xD;
&lt;p&gt;（1）Linux可以识别的文件系统&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; Windows 95/98常用的FAT 32文件系统：vfat ；&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; Win NT/2000 的文件系统：ntfs ；&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; OS/2用的文件系统：hpfs；&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; Linux用的文件系统：ext2、ext3；&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; CD-ROM光盘用的文件系统：iso9660。&lt;/p&gt;&#xD;
&lt;p&gt;虽然vfat是指FAT 32系统，但事实上它也兼容FAT 16的文件系统类型。&lt;/p&gt;&#xD;
&lt;p&gt;（2）确定设备的名称&lt;/p&gt;&#xD;
&lt;p&gt;在Linux中，设备名称通常都存在/dev里。这些设备名称的命名都是有规则的，可以用&amp;#8220;推理&amp;#8221;的方式把设备名称找出来。例如，/dev/hda1这个IDE设备，hd是Hard Disk(硬盘)的，sd是SCSI Device，fd是Floppy Device(或是Floppy Disk?)。a代表第一个设备，通常IDE接口可以接上4个IDE设备(比如4块硬盘)。所以要识别IDE硬盘的方法分别就是hda、hdb、hdc、hdd。hda1中的&amp;#8220;1&amp;#8221;代表hda的第一个硬盘分区 (partition)，hda2代表hda的第二主分区，第一个逻辑分区从hda5开始，依此类推。 此外，可以直接检查/var/log/messages文件，在该文件中可以找到计算机开机后系统已辨认出来的设备代号。&lt;/p&gt;&#xD;
&lt;p&gt;（3）查找挂接点&lt;/p&gt;&#xD;
&lt;p&gt;在决定将设备挂接之前，先要查看一下计算机是不是有个/mnt的空目录，该目录就是专门用来当作挂载点(Mount Point)的目录。建议在/mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录，当作目录的专用挂载点。举例而言，如要挂载下列5个设备，其执行指令可能如下 (假设都是Linux的ext2系统，如果是Windows XX请将ext2改成vfat)：&lt;/p&gt;&#xD;
&lt;p&gt;软盘 ===&amp;gt;mount －t ext2 /dev/fd0 /mnt/floppy&amp;nbsp; &lt;br /&gt;cdrom ===&amp;gt;mount －t iso9660 /dev/hdc /mnt/cdrom&amp;nbsp; &lt;br /&gt;SCSI cdrom ===&amp;gt;mount －t iso9660 /dev/sdb /mnt/scdrom&amp;nbsp; &lt;br /&gt;SCSI cdr ===&amp;gt;mount －t iso9660 /dev/sdc /mnt/scdr&lt;/p&gt;&#xD;
&lt;p&gt;不过目前大多数较新的Linux发行版本（包括红旗 Linux、中软Linux、Mandrake Linux等）都可以自动挂装文件系统，但Red Hat Linux除外。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;umount &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用&lt;/p&gt;&#xD;
&lt;p&gt;umount命令的作用是卸载一个文件系统，它的使用权限是超级用户或/etc/fstab中允许的使用者。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;unmount －a [－fFnrsvw] [－t vfstype] [－n] [－rw] [－F] device dir&lt;/p&gt;&#xD;
&lt;p&gt;3.使用说明&lt;/p&gt;&#xD;
&lt;p&gt;umount命令是mount命令的逆操作，它的参数和使用方法和mount命令是一样的。Linux挂装CD-ROM后，会锁定CD&amp;#8212;ROM，这样就不能用CD-ROM面板上的Eject按钮弹出它。但是，当不再需要光盘时，如果已将/cdrom作为符号链接，请使用umount/cdrom来卸装它。仅当无用户正在使用光盘时，该命令才会成功。该命令包括了将带有当前工作目录当作该光盘中的目录的终端窗口。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;chsh &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用&lt;/p&gt;&#xD;
&lt;p&gt;chsh命令的作用是更改使用者shell设定，它的使用权限是所有使用者。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;chsh [ －s ] [ －list] [ －－help ] [ －v ] [ username ]&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数&lt;/p&gt;&#xD;
&lt;p&gt;－l：显示系统所有Shell类型。&lt;/p&gt;&#xD;
&lt;p&gt;－v：显示Shell版本号。&lt;/p&gt;&#xD;
&lt;p&gt;4.应用技巧&lt;/p&gt;&#xD;
&lt;p&gt;前面介绍了Linux下有多种Shell，一般缺省的是Bash，如果想更换Shell类型可以使用chsh命令。先输入账户密码，然后输入新Shell类型，如果操作正确系统会显示&amp;#8220;Shell change&amp;#8221;。其界面一般如下：&lt;/p&gt;&#xD;
&lt;p&gt;Changing fihanging shell for cao &lt;br /&gt;Password:&amp;nbsp; &lt;br /&gt;New shell [/bin/bash]: /bin/tcsh&lt;/p&gt;&#xD;
&lt;p&gt;上面代码中，[ ]内是目前使用的Shell。普通用户只能修改自己的Shell，超级用户可以修改全体用户的Shell。要想查询系统提供哪些Shell，可以使用chsh -l 命令。笔者系统中可以使用的Shell有bash（缺省）、csh、sh、tcsh四种。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;exit &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用&lt;/p&gt;&#xD;
&lt;p&gt;exit命令的作用是退出系统，它的使用权限是所有用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;exit &lt;/p&gt;&#xD;
&lt;p&gt;3.参数&lt;/p&gt;&#xD;
&lt;p&gt;exit命令没有参数，运行后退出系统进入登录界面。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;last &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用&lt;/p&gt;&#xD;
&lt;p&gt;last命令的作用是显示近期用户或终端的登录情况，它的使用权限是所有用户。通过last命令查看该程序的log，管理员可以获知谁曾经或企图连接系统。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;1ast[&amp;#8212;n][－f file][－t tty] [&amp;#8212;h 节点][－I &amp;#8212;IP][&amp;#8212;1][－y][1D]&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数&lt;/p&gt;&#xD;
&lt;p&gt;－n：指定输出记录的条数。&lt;/p&gt;&#xD;
&lt;p&gt;－f file：指定用文件file作为查询用的log文件。&lt;/p&gt;&#xD;
&lt;p&gt;－t tty：只显示指定的虚拟控制台上登录情况。&lt;/p&gt;&#xD;
&lt;p&gt;－h 节点：只显示指定的节点上的登录情况。&lt;/p&gt;&#xD;
&lt;p&gt;－i IP：只显示指定的IP上登录的情况。&lt;/p&gt;&#xD;
&lt;p&gt;－1：用IP来显示远端地址。&lt;/p&gt;&#xD;
&lt;p&gt;－y：显示记录的年、月、日。&lt;/p&gt;&#xD;
&lt;p&gt;－ID：知道查询的用户名。&lt;/p&gt;&#xD;
&lt;p&gt;－x:显示系统关闭、用户登录和退出的历史。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;动手练习&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;上面介绍了Linux安装和登录命令，下面介绍几个实例，动手练习一下刚才讲过的命令。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt;&lt;strong&gt;一次运行多个命令 &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在一个命令行中可以执行多个命令，用分号将各个命令隔开即可，例如：&lt;/p&gt;&#xD;
&lt;p&gt;＃last －x；halt&lt;/p&gt;&#xD;
&lt;p&gt;上面代码表示在显示系统关闭、用户登录和退出的历史后关闭计算机。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt;&lt;strong&gt;利用mount&lt;/strong&gt;&lt;strong&gt;挂装文件系统访问Windows&lt;/strong&gt;&lt;strong&gt;系统 &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;许多Linux发行版本现在都可以自动加载Vfat分区来访问Windows系统，而Red Hat各个版本都没有自动加载Vfat分区，因此还需要进行手工操作。&lt;/p&gt;&#xD;
&lt;p&gt;mount可以将Windows分区作为Linux的一个&amp;#8220;文件&amp;#8221;挂接到Linux的一个空文件夹下，从而将Windows的分区和/mnt这个目录联系起来。因此，只要访问这个文件夹就相当于访问该分区了。首先要在/mnt下建立winc文件夹，在命令提示符下输入下面命令：&lt;/p&gt;&#xD;
&lt;p&gt;＃mount -t vfat /dev/hda1 /mnt/winc&lt;/p&gt;&#xD;
&lt;p&gt;即表示将Windows的C分区挂到Liunx的/mnt/winc目录下。这时，在/mnt/winc目录下就可以看到Windows中C盘的内容了。使用类似的方法可以访问Windows系统的D、E盘。在Linux系统显示Windows的分区一般顺序这样的：hda1为C盘、hda5为D盘、hda6为E盘&amp;#8230;&amp;#8230;以此类推。上述方法可以查看Windows系统有一个很大的问题，就是Windows中的所有中文文件名或文件夹名全部显示为问号&amp;#8220;？&amp;#8221;，而英文却可以正常显示。我们可以通过加入一些参数让它显示中文。还以上面的操作为例，此时输入命令：&lt;/p&gt;&#xD;
&lt;p&gt;＃mount -t vfat -o iocharset=cp936 /dev/hda1 /mnt/winc&lt;/p&gt;&#xD;
&lt;p&gt;现在它就可以正常显示中文了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt;&lt;strong&gt;使用mount&lt;/strong&gt;&lt;strong&gt;加挂闪盘上的文件系统 &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在Linux下使用闪盘非常简单。Linux对USB设备有很好的支持，当插入闪盘后，闪盘被识别为一个SCSI盘，通常输入以下命令：&lt;/p&gt;&#xD;
&lt;p&gt;＃ mount /dev/sda1 /usb&lt;/p&gt;&#xD;
&lt;p&gt;就能够加挂闪盘上的文件系统。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;小知识&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;strong&gt;命令与Shell &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;所谓Shell，就是命令解释程序，它提供了程序设计接口，可以使用程序来编程。学习Shell对于Linux初学者理解Linux系统是非常重要的。Linux系统的Shell作为操作系统的外壳，为用户提供了使用操作系统的接口。Shell是命令语言、命令解释程序及程序设计语言的统称，是用户和Linux内核之间的接口程序。如果把Linux内核想象成一个球体的中心，Shell就是围绕内核的外层。当从Shell或其它程序向Linux传递命令时，内核会做出相应的反应。Shell在Linux系统的作用和MS DOS下的COMMAND.COM和Windows 95/98 的 explorer.exe相似。Shell虽然不是系统核心的一部分，只是系统核心的一个外延，但它能够调用系统内核的大部分功能。因此，可以说Shell是Unux/Linux最重要的实用程序。&lt;/p&gt;&#xD;
&lt;p&gt;Linux中的Shell有多种类型，其中最常用的是Bourne Shell(sh)、C Shell(csh)和Korn Shell(ksh)。大多数Linux发行版本缺省的Shell是Bourne Again Shell，它是Bourne Shell的扩展，简称bash，与Bourne Shell完全向后兼容，并且在Bourne Shell的基础上增加了很多特性。bash放在/bin/bash中，可以提供如命令补全、命令编辑和命令历史表等功能。它还包含了很多C Shell和Korn Shell中的优点，有灵活和强大的编程接口，同时又有很友好的用户界面。Linux系统中200多个命令中有40个是bash的内部命令，主要包括exit、less、lp、kill、 cd、pwd、fc、fg等。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;strong&gt;命令整理&lt;/strong&gt;&lt;strong&gt;（2） 文件处理&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Linux系统信息存放在文件里，文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息，如文件的用户、文件的大小等。文件可以是一封信、一个通讯录，或者是程序的源语句、程序的数据，甚至可以包括可执行的程序和其它非正文内容。 Linux文件系统具有良好的结构，系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。 &lt;br /&gt;&lt;strong&gt;file &lt;/strong&gt;&lt;br /&gt;1.作用 &lt;br /&gt;file通过探测文件内容判断文件类型，使用权限是所有用户。 &lt;br /&gt;2.格式 &lt;br /&gt;file [options] 文件名 &lt;br /&gt;3.[options]主要参数 &lt;br /&gt;-v：在标准输出后显示版本信息，并且退出。 &lt;br /&gt;-z：探测压缩过的文件类型。 &lt;br /&gt;-L：允许符合连接。 &lt;br /&gt;-f name：从文件namefile中读取要分析的文件名列表。 &lt;br /&gt;4.简单说明 &lt;br /&gt;使用file命令可以知道某个文件究竟是二进制（ELF格式）的可执行文件, 还是Shell Script文件，或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。 &lt;br /&gt;5.应用实例 &lt;br /&gt;如果我们看到一个没有后缀的文件grap，可以使用下面命令： &lt;br /&gt;$ file grap &lt;br /&gt;grap： English text &lt;br /&gt;此时系统显示这是一个英文文本文件。需要说明的是，file命令不能探测包括图形、音频、视频等多媒体文件类型。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;mkdir &lt;/strong&gt;&lt;br /&gt;1.作用 &lt;br /&gt;mkdir命令的作用是建立名称为dirname的子目录，与MS DOS下的md命令类似，它的使用权限是所有用户。 &lt;br /&gt;2.格式 &lt;br /&gt;mkdir [options] 目录名 &lt;br /&gt;3.[options]主要参数 &lt;br /&gt;－m, －－mode=模式：设定权限&amp;lt;模式&amp;gt;;，与chmod类似。 &lt;br /&gt;－p, －－parents：需要时创建上层目录；如果目录早已存在，则不当作错误。 &lt;br /&gt;－v, －－verbose：每次创建新目录都显示信息。 &lt;br /&gt;－－version：显示版本信息后离开。 &lt;br /&gt;4.应用实例 &lt;br /&gt;在进行目录创建时可以设置目录的权限，此时使用的参数是&amp;#8220;－m&amp;#8221;。假设要创建的目录名是&amp;#8220;tsk&amp;#8221;，让所有用户都有rwx(即读、写、执行的权限)，那么可以使用以下命令： &lt;br /&gt;$ mkdir －m 777 tsk &lt;br /&gt;&lt;strong&gt;grep&lt;/strong&gt; &lt;br /&gt;1.作用 &lt;br /&gt;grep命令可以指定文件中搜索特定的内容，并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print，表示全局正则表达式版本，它的使用权限是所有用户。 &lt;br /&gt;2.格式 &lt;br /&gt;grep [options] &lt;br /&gt;3.主要参数 &lt;br /&gt;[options]主要参数： &lt;br /&gt;－c：只输出匹配行的计数。 &lt;br /&gt;－I：不区分大小写（只适用于单字符）。 &lt;br /&gt;－h：查询多文件时不显示文件名。 &lt;br /&gt;－l：查询多文件时只输出包含匹配字符的文件名。 &lt;br /&gt;－n：显示匹配行及行号。 &lt;br /&gt;－s：不显示不存在或无匹配文本的错误信息。 &lt;br /&gt;－v：显示不包含匹配文本的所有行。 &lt;br /&gt;pattern正则表达式主要参数： &lt;br /&gt;/：忽略正则表达式中特殊字符的原有含义。 &lt;br /&gt;^：匹配正则表达式的开始行。 &lt;br /&gt;$: 匹配正则表达式的结束行。 &lt;br /&gt;/&amp;lt;：从匹配正则表达式的行开始。 &lt;br /&gt;/&amp;gt;;：到匹配正则表达式的行结束。 &lt;br /&gt;[ ]：单个字符，如[A]即A符合要求 。 &lt;br /&gt;[ - ]：范围，如[A-Z]，即A、B、C一直到Z都符合要求 。 &lt;br /&gt;。：所有的单个字符。 &lt;br /&gt;* ：有字符，长度可以为0。 &lt;br /&gt;正则表达式是Linux/Unix系统中非常重要的概念。正则表达式（也称为&amp;#8220;regex&amp;#8221;或&amp;#8220;regexp&amp;#8221;）是一个可以描述一类字符串的模式（Pattern）。如果一个字符串可以用某个正则表达式来描述，我们就说这个字符和该正则表达式匹配（Match）。这和DOS中用户可以使用通配符&amp;#8220;*&amp;#8221;代表任意字符类似。在Linux系统上，正则表达式通常被用来查找文本的模式，以及对文本执行&amp;#8220;搜索－替换&amp;#8221;操作和其它功能。 &lt;br /&gt;4.应用实例 &lt;br /&gt;查询DNS服务是日常工作之一，这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址，但是却忘了第二部分中的其余部分，只知到有两个句点，例如nnn nn..。要抽取其中所有nnn.nnn IP地址，使用[0－9 ]/{3 /}/.[0－0/{3/}/。含义是任意数字出现3次，后跟句点，接着是任意数字出现3次，后跟句点。 &lt;br /&gt;$grep '[0－9 ]/{3 /}/.[0－0/{3/}/' ipfile &lt;br /&gt;补充说明，grep家族还包括fgrep和egrep。fgrep是fix grep，允许查找字符串而不是一个模式；egrep是扩展grep，支持基本及扩展的正则表达式，但不支持/q模式范围的应用及与之相对应的一些更加规范的模式。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;dd &lt;/strong&gt;&lt;br /&gt;1.作用 &lt;br /&gt;dd命令用来复制文件，并根据参数将数据转换和格式化。 &lt;br /&gt;2.格式 &lt;br /&gt;dd [options] &lt;br /&gt;3.[opitions]主要参数 &lt;br /&gt;bs=字节：强迫 ibs=&amp;lt;字节&amp;gt;;及obs=&amp;lt;字节&amp;gt;;。 &lt;br /&gt;cbs=字节：每次转换指定的&amp;lt;字节&amp;gt;;。 &lt;br /&gt;conv=关键字：根据以逗号分隔的关键字表示的方式来转换文件。 &lt;br /&gt;count=块数目：只复制指定&amp;lt;块数目&amp;gt;;的输入数据。 &lt;br /&gt;ibs=字节：每次读取指定的&amp;lt;字节&amp;gt;;。 &lt;br /&gt;if=文件：读取&amp;lt;文件&amp;gt;;内容，而非标准输入的数据。 &lt;br /&gt;obs=字节：每次写入指定的&amp;lt;字节&amp;gt;;。 &lt;br /&gt;of=文件：将数据写入&amp;lt;文件&amp;gt;;，而不在标准输出显示。 &lt;br /&gt;seek=块数目：先略过以obs为单位的指定&amp;lt;块数目&amp;gt;;的输出数据。 &lt;br /&gt;skip=块数目：先略过以ibs为单位的指定&amp;lt;块数目&amp;gt;;的输入数据。 &lt;br /&gt;4.应用实例 &lt;br /&gt;dd命令常常用来制作Linux启动盘。先找一个可引导内核，令它的根设备指向正确的根分区，然后使用dd命令将其写入软盘： &lt;br /&gt;$ rdev vmlinuz /dev/hda &lt;br /&gt;$dd if＝vmlinuz of＝/dev/fd0 &lt;br /&gt;上面代码说明，使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda，请把&amp;#8220;hda&amp;#8221;换成自己的根分区，接下来用dd命令将该内核写入软盘。 &lt;br /&gt;&lt;strong&gt;find&lt;/strong&gt; &lt;br /&gt;1.作用 &lt;br /&gt;find命令的作用是在目录中搜索文件，它的使用权限是所有用户。 &lt;br /&gt;2.格式 &lt;br /&gt;find [path][options][expression] &lt;br /&gt;path指定目录路径，系统从这里开始沿着目录树向下查找文件。它是一个路径列表，相互用空格分离，如果不写path，那么默认为当前目录。 &lt;br /&gt;3.主要参数 &lt;br /&gt;[options]参数： &lt;br /&gt;－depth：使用深度级别的查找过程方式，在某层指定目录中优先查找文件内容。 &lt;br /&gt;－maxdepth levels：表示至多查找到开始目录的第level层子目录。level是一个非负数，如果level是0的话表示仅在当前目录中查找。 &lt;br /&gt;－mindepth levels：表示至少查找到开始目录的第level层子目录。 &lt;br /&gt;－mount：不在其它文件系统（如Msdos、Vfat等）的目录和文件中查找。 &lt;br /&gt;－version：打印版本。 &lt;br /&gt;[expression]是匹配表达式，是find命令接受的表达式，find命令的所有操作都是针对表达式的。它的参数非常多，这里只介绍一些常用的参数。 &lt;br /&gt;&amp;#8212;name：支持统配符*和?。 &lt;br /&gt;－atime n：搜索在过去n天读取过的文件。 &lt;br /&gt;－ctime n：搜索在过去n天修改过的文件。 &lt;br /&gt;－group grpoupname：搜索所有组为grpoupname的文件。 &lt;br /&gt;－user 用户名：搜索所有文件属主为用户名（ID或名称）的文件。 &lt;br /&gt;－size n：搜索文件大小是n个block的文件。 &lt;br /&gt;－print：输出搜索结果，并且打印。 &lt;br /&gt;4.应用技巧 &lt;br /&gt;find命令查找文件的几种方法： &lt;br /&gt;（1）根据文件名查找 &lt;br /&gt;例如，我们想要查找一个文件名是lilo.conf的文件，可以使用如下命令： &lt;br /&gt;find / －name lilo.conf &lt;br /&gt;find命令后的&amp;#8220;/&amp;#8221;表示搜索整个硬盘。 &lt;br /&gt;（2）快速查找文件 &lt;br /&gt;根据文件名查找文件会遇到一个实际问题，就是要花费相当长的一段时间，特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中，那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件，从它的文件后缀&amp;#8220;.conf&amp;#8221;可以判断这是一个配置文件，那么它应该在/etc目录内，此时可以使用下面命令： &lt;br /&gt;find /etc －name smb.conf &lt;br /&gt;这样，使用&amp;#8220;快速查找文件&amp;#8221;方式可以缩短时间。 &lt;br /&gt;（3）根据部分文件名查找方法 &lt;br /&gt;有时我们知道只某个文件包含有abvd这4个字，那么要查找系统中所有包含有这4个字符的文件可以输入下面命令： &lt;br /&gt;find / －name '*abvd*' &lt;br /&gt;输入这个命令以后，Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件（其中*是通配符），比如abvdrmyz等符合条件的文件都能显示出来。 &lt;br /&gt;(4) 使用混合查找方式查找文件 &lt;br /&gt;find命令可以使用混合查找的方法，例如，我们想在/etc目录中查找大于500000字节，并且在24小时内修改的某个文件，则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。 &lt;br /&gt;find /etc -size +500000c -and -mtime +1 &lt;br /&gt;&lt;strong&gt;mv &lt;/strong&gt;&lt;br /&gt;1.作用 &lt;br /&gt;mv命令用来为文件或目录改名，或者将文件由一个目录移入另一个目录中，它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组合。 &lt;br /&gt;2.格式 &lt;br /&gt;mv[options] 源文件或目录 目标文件或目录 &lt;br /&gt;3.[options]主要参数 &lt;br /&gt;－i：交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖，此时系统询问是否重写，要求用户回答&amp;#8220;y&amp;#8221;或&amp;#8220;n&amp;#8221;，这样可以避免误覆盖文件。 &lt;br /&gt;－f：禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示，指定此参数后i参数将不再起作用。 &lt;br /&gt;4.应用实例 &lt;br /&gt;（1）将/usr/cbu中的所有文件移到当前目录（用&amp;#8220;.&amp;#8221;表示）中： &lt;br /&gt;$ mv /usr/cbu/ * . &lt;br /&gt;（2）将文件cjh.txt重命名为wjz.txt： &lt;br /&gt;$ mv cjh.txt wjz.txt&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;ls&lt;/strong&gt; &lt;br /&gt;1.作用 &lt;br /&gt;ls命令用于显示目录内容，类似DOS下的dir命令，它的使用权限是所有用户。 &lt;br /&gt;2.格式 &lt;br /&gt;ls [options][filename] &lt;br /&gt;3.options主要参数 &lt;br /&gt;－a, －－all：不隐藏任何以&amp;#8220;.&amp;#8221; 字符开始的项目。 &lt;br /&gt;－A, －－almost－all：列出除了&amp;#8220; . &amp;#8221;及 &amp;#8220;.. &amp;#8221;以外的任何项目。 &lt;br /&gt;－－author：印出每个文件著作者。 &lt;br /&gt;－b, －－escape：以八进制溢出序列表示不可打印的字符。 &lt;br /&gt;－－block－size=大小：块以指定&amp;lt;大小&amp;gt;;的字节为单位。 &lt;br /&gt;－B, －－ignore－backups：不列出任何以 ~ 字符结束的项目。 &lt;br /&gt;－f：不进行排序，－aU参数生效，－lst参数失效。 &lt;br /&gt;－F, －－classify：加上文件类型的指示符号 (*/=@| 其中一个)。 &lt;br /&gt;－g：like －l, but do not list owner。 &lt;br /&gt;－G, －－no－group：inhibit display of group information。 &lt;br /&gt;－i, －－inode：列出每个文件的inode号。 &lt;br /&gt;－I, －－ignore=样式：不印出任何符合Shell万用字符&amp;lt;样式&amp;gt;;的项目。 &lt;br /&gt;－k：即－－block－size=1K。 &lt;br /&gt;－l：使用较长格式列出信息。 &lt;br /&gt;－L, －－dereference：当显示符号链接的文件信息时，显示符号链接所指示的对象，而并非符号链接本身的信息。 &lt;br /&gt;－m：所有项目以逗号分隔，并填满整行行宽。 &lt;br /&gt;－n, －－numeric－uid－gid：类似－l，但列出UID及GID号。 &lt;br /&gt;－N, －－literal：列出未经处理的项目名称，例如不特别处理控制字符。 &lt;br /&gt;－p, －－file－type：加上文件类型的指示符号 (/=@| 其中一个)。 &lt;br /&gt;－Q, －－quote－name：将项目名称括上双引号。 &lt;br /&gt;－r, －－reverse：依相反次序排列。 &lt;br /&gt;－R, －－recursive：同时列出所有子目录层。 &lt;br /&gt;－s, －－size：以块大小为序。 &lt;br /&gt;4.应用举例 &lt;br /&gt;ls命令是Linux系统使用频率最多的命令，它的参数也是Linux命令中最多的。使用ls命令时会有几种不同的颜色，其中蓝色表示是目录，绿色表示是可执行文件，红色表示是压缩文件，浅蓝色表示是链接文件，加粗的黑色表示符号链接，灰色表示是其它格式文件。ls最常使用的是ls- l。 &lt;br /&gt;使用ls-l命令 &lt;br /&gt;文件类型开头是由10个字符构成的字符串。其中第一个字符表示文件类型，它可以是下述类型之一：－（普通文件）、d（目录）、l（符号链接）、b（块设备文件）、c（字符设备文件）。后面的9个字符表示文件的访问权限，分为3组，每组3位。第一组表示文件属主的权限，第二组表示同组用户的权限，第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读（r）、写（w）和执行权限（x）。对于目录，表示进入权限。s表示当文件被执行时，把该文件的UID或GID赋予执行进程的UID（用户ID）或GID（组 ID）。t表示设置标志位（留在内存，不被换出）。如果该文件是目录，那么在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执行文件，那么在该文件执行后，指向其正文段的指针仍留在内存。这样再次执行它时，系统就能更快地装入该文件。接着显示的是文件大小、生成时间、文件或命令名称。 &lt;br /&gt;&lt;strong&gt;diff&lt;/strong&gt; &lt;br /&gt;1.作用 &lt;br /&gt;diff命令用于两个文件之间的比较，并指出两者的不同，它的使用权限是所有用户。 &lt;br /&gt;2.格式 &lt;br /&gt;diff [options] 源文件 目标文件 &lt;br /&gt;3.[options]主要参数 &lt;br /&gt;-a：将所有文件当作文本文件来处理。 &lt;br /&gt;-b：忽略空格造成的不同。 &lt;br /&gt;-B：忽略空行造成的不同。 &lt;br /&gt;-c：使用纲要输出格式。 &lt;br /&gt;-H：利用试探法加速对大文件的搜索。 &lt;br /&gt;-I：忽略大小写的变化。 &lt;br /&gt;-n --rcs：输出RCS格式。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;cmp&lt;/strong&gt; &lt;br /&gt;1.作用 &lt;br /&gt;cmp（&amp;#8220;compare&amp;#8221;的缩写）命令用来简要指出两个文件是否存在差异，它的使用权限是所有用户。 &lt;br /&gt;2.格式 &lt;br /&gt;cmp[options] 文件名 &lt;br /&gt;3.[options]主要参数 &lt;br /&gt;-l: 将字节以十进制的方式输出，并方便将两个文件中不同的以八进制的方式输出。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;cat&lt;/strong&gt; &lt;br /&gt;1.作用 &lt;br /&gt;cat（&amp;#8220;concatenate&amp;#8221;的缩写）命令用于连接并显示指定的一个和多个文件的有关信息，它的使用权限是所有用户。 &lt;br /&gt;2.格式 &lt;br /&gt;cat [options] 文件1 文件2&amp;#8230;&amp;#8230; &lt;br /&gt;3.[options]主要参数 &lt;br /&gt;－n：由第一行开始对所有输出的行数编号。 &lt;br /&gt;－b：和－n相似，只不过对于空白行不编号。 &lt;br /&gt;－s：当遇到有连续两行以上的空白行时，就代换为一行的空白行。 &lt;br /&gt;4.应用举例 &lt;br /&gt;（1）cat命令一个最简单的用处是显示文本文件的内容。例如，我们想在命令行看一下README文件的内容，可以使用命令： &lt;br /&gt;$ cat README &lt;br /&gt;（2）有时需要将几个文件处理成一个文件，并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件，并将它们作为一个单独的文件打印到它的输出。例如，把README和INSTALL的文件内容加上行号（空白行不加）之后，将内容附加到一个新文本文件File1 中： &lt;br /&gt;$ cat README INSTALL File1 &lt;br /&gt;（3）cat还有一个重要的功能就是可以对行进行编号，这种功能对于程序文档的编制，以及法律和科学文档的编制很方便，打印在左边的行号使得参考文档的某一部分变得容易，这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。 &lt;br /&gt;例如 使用cat命令/etc/named.conf文件进行编号 &lt;br /&gt;对行进行编号功能有-b（只能对非空白行进行编号）和-n（可以对所有行进行编号）两个参数： &lt;br /&gt;$ cat -b /etc/named.conf &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;ln&lt;/strong&gt; &lt;br /&gt;1.作用 &lt;br /&gt;ln命令用来在文件之间创建链接，它的使用权限是所有用户。 &lt;br /&gt;2.格式 &lt;br /&gt;ln [options] 源文件 [链接名] &lt;br /&gt;3.参数 &lt;br /&gt;－f：链结时先将源文件删除。 &lt;br /&gt;－d：允许系统管理者硬链结自己的目录。 &lt;br /&gt;－s：进行软链结(Symbolic Link)。 &lt;br /&gt;－b：将在链结时会被覆盖或删除的文件进行备份。 &lt;br /&gt;链接有两种，一种被称为硬链接（Hard Link），另一种被称为符号链接（Symbolic Link）。默认情况下，ln命令产生硬链接。 &lt;br /&gt;硬连接指通过索引节点来进行的连接。在Linux的文件系统中，保存在磁盘分区中的文件不管是什么类型都给它分配一个编号，称为索引节点号(Inode Index)。在Linux中，多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名，这样用户就可以建立硬连接到重要文件，以防止&amp;#8220;误删&amp;#8221;的功能。其原因如上所述，因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接，只有当最后一个连接被删除后，文件的数据块及目录的连接才会被释放。也就是说，文件才会被真正删除。 &lt;br /&gt;与硬连接相对应，Lnux系统中还存在另一种连接，称为符号连接（Symbilc Link），也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中，文件实际上是一个文本文件，其中包含的有另一文件的位置信息。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;cd&lt;/strong&gt; &lt;br /&gt;使用权限: 所有使用者 &lt;br /&gt;使用方式: cd [dirName] &lt;br /&gt;说明: 变换工作目录至dirName。其中dirName 表示法可为绝对路径或相对路径。若目录名称省略，则变换至使用者的home directory (也就是刚login 时所在的目录)。 &lt;br /&gt;另外，"~" 也表示为home directory 的意思，"." 则是表示目前所在的目录，".." 则表示目前目录位置的上一层目录。 &lt;br /&gt;范例: 跳到/usr/bin/ : &lt;br /&gt;cd /usr/bin &lt;br /&gt;跳到自己的home directory : &lt;br /&gt;cd .. &lt;br /&gt;跳到目前目录的上上两层: &lt;br /&gt;cd ../&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;动手联系&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br /&gt;上面我们介绍了Linux文件处理命令，下面介绍几个实例，大家可以动手练习一下刚才讲过的命令。 &lt;br /&gt;&lt;strong&gt;1.&lt;/strong&gt;&lt;strong&gt;利用符号链接快速访问关键目录&lt;/strong&gt;&lt;strong&gt; &lt;br /&gt;&lt;/strong&gt;符号链接是一个非常实用的功能。假设有一些目录或文件需要频繁使用，但由于Linux的文件和目录结构等原因，这个文件或目录在很深的子目录中。比如，Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中，并且不想每次都要从主目录进入这样一个长的路径之中(实际上，这个路径也非常不容易记忆)。 &lt;br /&gt;为了解决这个问题，可以在主目录中创建一个符号链接，这样在需要进入该目录时，只需进入这个链接即可。 &lt;br /&gt;为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录，在主目录下可以使用以下命令： &lt;br /&gt;$ ln -s /usr/local/httpd/htdocs gg &lt;br /&gt;这样每次进入gg目录就可访问Web服务器的文档，以后如果不再访问Web服务器的文档时，删除gg即可，而真正的Web服务器的文档并没有删除。 &lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt;&lt;strong&gt;使用&lt;/strong&gt;&lt;strong&gt;dd&lt;/strong&gt;&lt;strong&gt;命令将&lt;/strong&gt;&lt;strong&gt;init.rd&lt;/strong&gt;&lt;strong&gt;格式的&lt;/strong&gt;&lt;strong&gt;root.ram&lt;/strong&gt;&lt;strong&gt;内容导入内存&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br /&gt;dd if=/dev/fd0 of=floppy.fd &lt;br /&gt;dd if=root.ram of=/dev/ram0 # &lt;br /&gt;&lt;strong&gt;3.grep&lt;/strong&gt;&lt;strong&gt;命令系统调用&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br /&gt;grep是Linux/Unix中使用最广泛的命令之一，许多Linux系统内部都可以调用它。 &lt;br /&gt;(1)如果要查询目录列表中的目录，方法如下： &lt;br /&gt;$ ls -l | grep '&amp;#8743;d' &lt;br /&gt;(2)如果在一个目录中查询不包含目录的所有文件，方法如下： &lt;br /&gt;$ ls -l | grep '&amp;#8743;[&amp;#8743;d]' &lt;br /&gt;(3)用find命令调用grep，如所有C源代码中的&amp;#8220;Chinput&amp;#8221;，方法如下： &lt;br /&gt;$find /ZhXwin -name *.c -exec grep -q -s Chinput {} /;-print&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;strong&gt;命令整理（&lt;/strong&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;strong&gt;）&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;strong&gt;系统管理&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;对于Linux系统来说，无论是中央处理器、内存、磁盘驱动器、键盘、鼠标，还是用户等都是文件，Linux系统管理的命令是它正常运行的核心。熟悉了Linux常用的文件处理命令以后，这一讲介绍对系统和用户进行管理的命令。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;df&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;br /&gt;df命令用来检查文件系统的磁盘空间占用情况，使用权限是所有用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式 &lt;br /&gt;df [options]&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &lt;br /&gt;－s：对每个Names参数只给出占用的数据块总数。 &lt;br /&gt;－a：递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定－s，也不指定－a，则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。 &lt;br /&gt;－k：以1024字节为单位列出磁盘空间使用情况。 &lt;br /&gt;－x：跳过在不同文件系统上的目录不予统计。 &lt;br /&gt;－l：计算所有的文件大小，对硬链接文件则计算多次。 &lt;br /&gt;－i：显示inode信息而非块使用量。 &lt;br /&gt;－h：以容易理解的格式印出文件系统大小，例如136KB、254MB、21GB。 &lt;br /&gt;－P：使用POSIX输出格式。 &lt;br /&gt;－T：显示文件系统类型。&lt;/p&gt;&#xD;
&lt;p&gt;4.说明 &lt;br /&gt;df命令被广泛地用来生成文件系统的使用统计数据，它能显示系统中所有的文件系统的信息，包括总容量、可用的空闲空间、目前的安装点等。&lt;/p&gt;&#xD;
&lt;p&gt;超级权限用户使用df命令时会发现这样的情况：某个分区的容量超过了100％。这是因为Linux系统为超级用户保留了10％的空间，由其单独支配。也就是说，对于超级用户而言，他所见到的硬盘容量将是110％。这样的安排对于系统管理而言是有好处的，当硬盘被使用的容量接近100％时系统管理员还可以正常工作。&lt;/p&gt;&#xD;
&lt;p&gt;5.应用实例 &lt;br /&gt;Linux支持的文件系统非常多，包括JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、vfat、MSDOS等。使用df -T命令查看磁盘空间时还可以得到文件系统的信息：&lt;/p&gt;&#xD;
&lt;p&gt;＃df －T &lt;br /&gt;文件系统 类型 容量 已用 可用 已用% 挂载点 &lt;br /&gt;/dev/hda7 reiserfs 5.2G 1.6G 3.7G 30% / &lt;br /&gt;/dev/hda1 vfat 2.4G 1.6G 827M 66% /windows/C &lt;br /&gt;/dev/hda5 vfat 3.0G 1.7G 1.3G 57% /windows/D &lt;br /&gt;/dev/hda9 vfat 3.0G 2.4G 566M 82% /windows/E &lt;br /&gt;/dev/hda10 NTFS 3.2G 573M 2.6G 18% /windows/F &lt;br /&gt;/dev/hda11 vfat 1.6G 1.5G 23M 99% /windows/G&lt;/p&gt;&#xD;
&lt;p&gt;从上面除了可以看到磁盘空间的容量、使用情况外，分区的文件系统类型、挂载点等信息也一览无遗。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;top&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;br /&gt;top命令用来显示执行中的程序进程，使用权限是所有用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式 &lt;br /&gt;top [－] [d delay] [q] [c] [S] [s] [i] [n]&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &lt;br /&gt;d：指定更新的间隔，以秒计算。 &lt;br /&gt;q：没有任何延迟的更新。如果使用者有超级用户，则top命令将会以最高的优先序执行。 &lt;br /&gt;c：显示进程完整的路径与名称。 &lt;br /&gt;S：累积模式，会将己完成或消失的子行程的CPU时间累积起来。 &lt;br /&gt;s：安全模式。 &lt;br /&gt;i：不显示任何闲置(Idle)或无用(Zombie)的行程。 &lt;br /&gt;n：显示更新的次数，完成后将会退出top。&lt;/p&gt;&#xD;
&lt;p&gt;4.说明 &lt;br /&gt;top命令是Linux系统管理的一个主要命令，通过它可以获得许多信息。这里我们结合图1来说明它给出的信息。&lt;/p&gt;&#xD;
&lt;p&gt;图1 top命令的显示&lt;/p&gt;&#xD;
&lt;p&gt;在图1中，第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。第二行显示的是所有启动的进程、目前运行的、挂起 (Sleeping)的和无用(Zombie)的进程。第三行显示的是目前CPU的使用情况，包括系统占用的比例、用户使用比例、闲置(Idle)比例。第四行显示物理内存的使用情况，包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行显示交换分区使用情况，包括总的交换分区、使用的、空闲的和用于高速缓存的大小。第六行显示的项目最多，下面列出了详细解释。 &lt;br /&gt;PID（Process ID）：进程标示号。 &lt;br /&gt;USER：进程所有者的用户名。 &lt;br /&gt;PR：进程的优先级别。 &lt;br /&gt;NI：进程的优先级别数值。 &lt;br /&gt;VIRT：进程占用的虚拟内存值。 &lt;br /&gt;RES：进程占用的物理内存值。 &lt;br /&gt;SHR：进程使用的共享内存值。 &lt;br /&gt;S：进程的状态，其中S表示休眠，R表示正在运行，Z表示僵死状态，N表示该进程优先值是负数。 &lt;br /&gt;%CPU：该进程占用的CPU使用率。 &lt;br /&gt;%MEM：该进程占用的物理内存和总内存的百分比。 &lt;br /&gt;TIME＋：该进程启动后占用的总的CPU时间。 &lt;br /&gt;Command：进程启动的启动命令名称，如果这一行显示不下，进程会有一个完整的命令行。 &lt;br /&gt;top命令使用过程中，还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。 &lt;br /&gt;&amp;lt;空格&amp;gt;：立刻刷新。 &lt;br /&gt;P：根据CPU使用大小进行排序。 &lt;br /&gt;T：根据时间、累计时间排序。 &lt;br /&gt;q：退出top命令。 &lt;br /&gt;m：切换显示内存信息。 &lt;br /&gt;t：切换显示进程和CPU状态信息。 &lt;br /&gt;c：切换显示命令名称和完整命令行。 &lt;br /&gt;M：根据使用内存大小进行排序。 &lt;br /&gt;W：将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。&lt;/p&gt;&#xD;
&lt;p&gt;可以看到，top命令是一个功能十分强大的监控系统的工具，对于系统管理员而言尤其重要。但是，它的缺点是会消耗很多系统资源。&lt;/p&gt;&#xD;
&lt;p&gt;5.应用实例 &lt;br /&gt;使用top命令可以监视指定用户，缺省情况是监视所有用户的进程。如果想查看指定用户的情况，在终端中按&amp;#8220;U&amp;#8221;键，然后输入用户名，系统就会切换为指定用户的进程运行界面，见图2所示。&lt;/p&gt;&#xD;
&lt;p&gt;图2 使用top命令监视指定用户&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;free&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;br /&gt;free命令用来显示内存的使用情况，使用权限是所有用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式 &lt;br /&gt;free [－b|－k|－m] [－o] [－s delay] [－t] [－V]&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &lt;br /&gt;－b －k －m：分别以字节（KB、MB）为单位显示内存使用情况。 &lt;br /&gt;－s delay：显示每隔多少秒数来显示一次内存使用情况。 &lt;br /&gt;－t：显示内存总和列。 &lt;br /&gt;－o：不显示缓冲区调节列。&lt;/p&gt;&#xD;
&lt;p&gt;4.应用实例 &lt;br /&gt;free命令是用来查看内存使用情况的主要命令。和top命令相比，它的优点是使用简单，并且只占用很少的系统资源。通过－S参数可以使用free命令不间断地监视有多少内存在使用，这样可以把它当作一个方便实时监控器。 &lt;br /&gt;＃free －b －s5&lt;/p&gt;&#xD;
&lt;p&gt;使用这个命令后终端会连续不断地报告内存使用情况（以字节为单位），每5秒更新一次。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;quota&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;br /&gt;quota命令用来显示磁盘使用情况和限制情况，使用权限超级用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式 &lt;br /&gt;quota [－g][－u][－v][－p] 用户名 组名&lt;/p&gt;&#xD;
&lt;p&gt;3.参数 &lt;br /&gt;－g：显示用户所在组的磁盘使用限制。 &lt;br /&gt;－u：显示用户的磁盘使用限制。 &lt;br /&gt;－v：显示没有分配空间的文件系统的分配情况。 &lt;br /&gt;－p：显示简化信息。&lt;/p&gt;&#xD;
&lt;p&gt;4.应用实例 &lt;br /&gt;在企业应用中磁盘配额非常重要，普通用户要学会看懂自己的磁盘使用情况。要查询自己的磁盘配额可以使用下面命令（下例中用户账号是caojh)：&lt;/p&gt;&#xD;
&lt;p&gt;＃quota caojh &lt;br /&gt;Disk quotas for user caojh(uid 502): &lt;br /&gt;Filesystem blocks quota limit grace files quota limit grace &lt;br /&gt;/dev/hda3 58 200000 400000 41 500 1000&lt;/p&gt;&#xD;
&lt;p&gt;以上显示ID号为502的caojh账号，文件个数设置为500～1000个，硬盘空间限制设置为200MB～400MB。一旦磁盘配额要用完时，就需要删除一些垃圾文件或向系统管理员请求追加配额。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;at&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;br /&gt;at命令用来在指定时刻执行指定的命令序列。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式 &lt;br /&gt;at [－V] [－q x] [－f file] [－m] time&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &lt;br /&gt;－V：显示标准错误输出。 &lt;br /&gt;－q：许多队列输出。 &lt;br /&gt;－f：从文件中读取作业。 &lt;br /&gt;－m：执行完作业后发送电子邮件到用户。 &lt;br /&gt;time：设定作业执行的时间。time格式有严格的要求，由小时、分钟、日期和时间的偏移量组成，其中日期的格式为MM.DD.YY，MM是分钟，DD是日期，YY是指年份。偏移量的格式为时间＋偏移量，单位是minutes、hours和days。&lt;/p&gt;&#xD;
&lt;p&gt;4.应用实例 &lt;br /&gt;＃at －f data 15:30 +2 days&lt;/p&gt;&#xD;
&lt;p&gt;上面命令表示让系统在两天后的17：30执行文件data中指明的作业。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;lp&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;br /&gt;lp是打印文件的命令，使用权限是所有用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式 &lt;br /&gt;lp [－c][－d][－m][－number][－title][-p]&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &lt;br /&gt;－c：先拷贝文件再打印。 &lt;br /&gt;－d：打印队列文件。 &lt;br /&gt;－m：打印结束后发送电子邮件到用户。 &lt;br /&gt;－number：打印份数。 &lt;br /&gt;－title：打印标题。 &lt;br /&gt;－p：设定打印的优先级别，最高为100。&lt;/p&gt;&#xD;
&lt;p&gt;4.应用实例 &lt;br /&gt;（1）使用lp命令打印多个文件 &lt;br /&gt;＃lp 2 3 4 &lt;br /&gt;request id is 11 (3 file(s))&lt;/p&gt;&#xD;
&lt;p&gt;其中2、3、4分别是文件名；&amp;#8220;request id is 11 (3 file(s)) &amp;#8221;表示这是第11个打印命令，依次打印这三个文件。&lt;/p&gt;&#xD;
&lt;p&gt;（2）设定打印优先级别 &lt;br /&gt;＃lp lp -d LaserJet -p 90 /etc/aliases&lt;/p&gt;&#xD;
&lt;p&gt;通过添加&amp;#8220;-p 90&amp;#8221;，规定了打印作业的优先级为90。它将在优先级低于90的打印作业之前打印，包括没有设置优先级的作业，缺省优先级是50&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;useradd&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;br /&gt;useradd命令用来建立用户帐号和创建用户的起始目录，使用权限是超级用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式 &lt;br /&gt;useradd [－d home] [－s shell] [－c comment] [－m [－k template]] [－f inactive] [－e expire ] [－p passwd] [－r] name&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &lt;br /&gt;－c：加上备注文字，备注文字保存在passwd的备注栏中。 &lt;br /&gt;－d：指定用户登入时的启始目录。 &lt;br /&gt;－D：变更预设值。 &lt;br /&gt;－e：指定账号的有效期限，缺省表示永久有效。 &lt;br /&gt;－f：指定在密码过期后多少天即关闭该账号。 &lt;br /&gt;－g：指定用户所属的群组。 &lt;br /&gt;－G：指定用户所属的附加群组。 &lt;br /&gt;－m：自动建立用户的登入目录。 &lt;br /&gt;－M：不要自动建立用户的登入目录。 &lt;br /&gt;－n：取消建立以用户名称为名的群组。 &lt;br /&gt;－r：建立系统账号。 &lt;br /&gt;－s：指定用户登入后所使用的shell。 &lt;br /&gt;－u：指定用户ID号。&lt;/p&gt;&#xD;
&lt;p&gt;4.说明 &lt;br /&gt;useradd可用来建立用户账号，它和adduser命令是相同的。账号建好之后，再用passwd设定账号的密码。使用useradd命令所建立的账号，实际上是保存在/etc/passwd文本文件中。&lt;/p&gt;&#xD;
&lt;p&gt;5.应用实例 &lt;br /&gt;建立一个新用户账户，并设置ID： &lt;br /&gt;＃useradd caojh －u 544&lt;/p&gt;&#xD;
&lt;p&gt;需要说明的是，设定ID值时尽量要大于500，以免冲突。因为Linux安装后会建立一些特殊用户，一般0到499之间的值留给bin、mail这样的系统账号。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;groupadd&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;br /&gt;groupadd命令用于将新组加入系统。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式 &lt;br /&gt;groupadd [－g gid] [－o]] [－r] [－f] groupname&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &lt;br /&gt;－g gid：指定组ID号。 &lt;br /&gt;－o：允许组ID号，不必惟一。 &lt;br /&gt;－r：加入组ID号，低于499系统账号。 &lt;br /&gt;－f：加入已经有的组时，发展程序退出。&lt;/p&gt;&#xD;
&lt;p&gt;4.应用实例 &lt;br /&gt;建立一个新组，并设置组ID加入系统： &lt;br /&gt;＃groupadd －g 344 cjh&lt;/p&gt;&#xD;
&lt;p&gt;此时在/etc/passwd文件中产生一个组ID（GID）是344的项目。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;kill&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;br /&gt;kill命令用来中止一个进程。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式 &lt;br /&gt;kill [ －s signal | －p ] [ －a ] pid ... &lt;br /&gt;kill －l [ signal ]&lt;/p&gt;&#xD;
&lt;p&gt;3.参数 &lt;br /&gt;－s：指定发送的信号。 &lt;br /&gt;－p：模拟发送信号。 &lt;br /&gt;－l：指定信号的名称列表。 &lt;br /&gt;pid：要中止进程的ID号。 &lt;br /&gt;Signal：表示信号。&lt;/p&gt;&#xD;
&lt;p&gt;4.说明 &lt;br /&gt;进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统，系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分配的，或者是内核如何管理分配时间片的，所关心的是如何去控制这些进程，让它们能够很好地为用户服务。&lt;/p&gt;&#xD;
&lt;p&gt;Linux 操作系统包括三种不同类型的进程，每种进程都有自己的特点和属性。交互进程是由一个Shell启动的进程。交互进程既可以在前台运行，也可以在后台运行。批处理进程和终端没有联系，是一个进程序列。监控进程（也称系统守护进程）是Linux系统启动时启动的进程，并在后台运行。例如，httpd是著名的 Apache服务器的监控进程。&lt;/p&gt;&#xD;
&lt;p&gt;kill命令的工作原理是，向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号，然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中，我们看到系统运行许多进程，有时就需要使用kill中止某些进程来提高系统资源。在讲解安装和登陆命令时，曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统死锁时，可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill，因为kill是大多数Shell内部命令可以直接调用的。&lt;/p&gt;&#xD;
&lt;p&gt;5.应用实例 &lt;br /&gt;（1）强行中止（经常使用杀掉）一个进程标识号为324的进程： &lt;br /&gt;＃kill －9 324&lt;/p&gt;&#xD;
&lt;p&gt;（2）解除Linux系统的死锁 &lt;br /&gt;在Linux 中有时会发生这样一种情况：一个程序崩溃，并且处于死锁的状态。此时一般不用重新启动计算机，只需要中止(或者说是关闭)这个有问题的程序即可。当 kill处于X-Window界面时，主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端，在那里中止有问题的程序。比如，如果 Mozilla浏览器程序出现了锁死的情况，可以使用kill命令来中止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的PID，然后使用kill命令停止这个程序： &lt;br /&gt;＃kill －SIGKILL XXX &lt;br /&gt;其中，XXX是包含有Mozolla浏览器的程序的进程标识号。&lt;/p&gt;&#xD;
&lt;p&gt;（3）使用命令回收内存 &lt;br /&gt;我们知道内存对于系统是非常重要的，回收内存可以提高系统资源。kill命令可以及时地中止一些&amp;#8220;越轨&amp;#8221;的程序或很长时间没有相应的程序。例如，使用top命令发现一个无用 (Zombie) 的进程，此时可以使用下面命令： &lt;br /&gt;＃kill －9 XXX &lt;br /&gt;其中，XXX是无用的进程标识号。&lt;/p&gt;&#xD;
&lt;p&gt;然后使用下面命令： &lt;br /&gt;＃free &lt;br /&gt;此时会发现可用内存容量增加了。&lt;/p&gt;&#xD;
&lt;p&gt;（4）killall命令 &lt;br /&gt;Linux下还提供了一个killall命令，可以直接使用进程的名字而不是进程标识号，例如： &lt;br /&gt;＃ killall -HUP inetd&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;crontab&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;br /&gt;使用crontab命令可以修改crontab配置文件，然后该配置由cron公用程序在适当的时间执行，该命令使用权限是所有用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式 &lt;br /&gt;crontab [ －u user ] 文件 &lt;br /&gt;crontab [ －u user ] { －l | －r | －e }&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &lt;br /&gt;－e：执行文字编辑器来设定时程表，内定的文字编辑器是vi。 &lt;br /&gt;－r：删除目前的时程表。 &lt;br /&gt;－l：列出目前的时程表。&lt;/p&gt;&#xD;
&lt;p&gt;crontab 文件的格式为&amp;#8220;M H D m d cmd&amp;#8221;。其中，M代表分钟（0～59），H代表小时（0～23），D代表天（1～31），m代表月（1～12），d代表一星期内的天（0～6，0为星期天）。cmd表示要运行的程序，它被送入sh执行，这个Shell只有USER、HOME、SHELL三个环境变量。&lt;/p&gt;&#xD;
&lt;p&gt;4.说明 &lt;br /&gt;和at命令相比，crontab命令适合完成固定周期的任务。&lt;/p&gt;&#xD;
&lt;p&gt;5.应用实例 &lt;br /&gt;设置一个定时、定期的系统提示： &lt;br /&gt;[cao @www cao]#crontab －e &lt;br /&gt;此时系统会打开一个vi编辑器。&lt;/p&gt;&#xD;
&lt;p&gt;如果输入以下内容：35 17 * * 5 wall "Tomorrow is Saturday I will go CS"，然后存盘退出。这时在/var/spool/cron/目录下会生产一个cao的文件，内容如下：&lt;/p&gt;&#xD;
&lt;p&gt;# DO NOT EDIT THIS FILE － edit the master and reinstall. &lt;br /&gt;# (/tmp/crontab.2707 installed on Thu Jan 1 22:01:51 2004) &lt;br /&gt;# (Cron version －－ $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) &lt;br /&gt;35 17 * * 5 wall "Tomorrow is Saturday I will play CS "&lt;/p&gt;&#xD;
&lt;p&gt;这样每个星期五17：35系统就会弹出一个终端，提醒星期六可以打打CS了！显示结果见图3所示。&lt;/p&gt;&#xD;
&lt;p&gt;图3 一个定时、定期的系统提示&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;locate &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;使用权限：所有使用者&lt;/p&gt;&#xD;
&lt;p&gt;使用方式： locate [-q] [-d ] [--database=] locate [-r ] [--regexp=] locate [-qv] [-o ] [--output=] locate [-e ] [-f ] &amp;lt;[-l ] [-c] &amp;lt;[-U ] [-u]&amp;gt; locate [-Vh] [--version] [--help] &lt;/p&gt;&#xD;
&lt;p&gt;说明： &lt;br /&gt;locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有文件名称及路径的数据库，之后当寻找时就只需查询这个数据库，而不必实际深入档案系统之中了。 &lt;br /&gt;在一般的distribution 之中，数据库的建立都被放在contab 中自动执行。一般使用者在使用时只要用 # locate your_file_name 的型式就可以了。&lt;/p&gt;&#xD;
&lt;p&gt;参数： &lt;br /&gt;-u -U 建立数据库，-u 会由根目录开始，-U 则可以指定开始的位置。 &lt;br /&gt;-e 将排除在寻找的范围之外。 &lt;br /&gt;-l 如果 是1．则激活安全模式。在安全模式下，使用者不会看到权限无法看到的档案。这会始速度减慢，因为locate 必须至实际的档案系统中取得档案的权限资料。 &lt;br /&gt;-f 将特定的档案系统排除在外，例如我们没有到理要把proc 档案系统中的档案放在数据库中。 &lt;br /&gt;-q 安静模式，不会显示任何错误讯息。 &lt;br /&gt;-n 至多显示 个输出。 &lt;br /&gt;-r 使用正规表达式 做寻找的条件。 &lt;br /&gt;-o 指定数据库存的名称。 &lt;br /&gt;-d 指定数据库的路径 &lt;br /&gt;-h 显示辅助讯息 &lt;br /&gt;-v 显示更多的讯息 &lt;br /&gt;-V 显示程序的版本讯息范例： &lt;br /&gt;locate chdrv : 寻找所有叫chdrv 的档案locate -n 100 a.out : 寻找所有叫a.out 的档案，但最多只显示100 个locate -u : 建立数据库 &lt;br /&gt;名称: sync 使用权限: 系统管理者使用方式: sync 说明: Linux 系统中欲写入硬盘的资料有的时候会了效率起见，会写到filesystem buffer 中，这个buffer 是一块内存空间，如果欲写入硬盘的资料存于此buffer 中，而系统又突然断电的话，那么资料就会流失了，sync 指令会将存于buffer 中的资料强制写入硬盘中。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;动手练习&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt;&lt;strong&gt;联合使用&lt;/strong&gt;&lt;strong&gt;kill&lt;/strong&gt;&lt;strong&gt;和&lt;/strong&gt;&lt;strong&gt;top&lt;/strong&gt;&lt;strong&gt;命令观察系统性能的变化&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;首先启动一个终端运行top命令，然后再启动一个终端使用kill命令，见图4所示。&lt;/p&gt;&#xD;
&lt;p&gt;图4 观察kill命令对top终端的影响&lt;/p&gt;&#xD;
&lt;p&gt;这时利用上面介绍的kill命令来中止一些程序： &lt;br /&gt;＃kill SIGKILL XXX&lt;/p&gt;&#xD;
&lt;p&gt;然后再看top命令终端的变化，包括内存容量、CPU使用率、系统负载等。注意，有些进程是不能中止的，不过学习Linux命令时可以试试，看看系统有什么反应。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt;&lt;strong&gt;使用&lt;/strong&gt;&lt;strong&gt;at&lt;/strong&gt;&lt;strong&gt;和&lt;/strong&gt;&lt;strong&gt;halt&lt;/strong&gt;&lt;strong&gt;命令定时关机&lt;/strong&gt; &lt;br /&gt;首先设定关机时间是17:35，输入下面代码：&lt;/p&gt;&#xD;
&lt;p&gt;＃at 17:35 &lt;br /&gt;warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh &lt;br /&gt;at&amp;gt;halt `-i －p &lt;br /&gt;at&amp;gt; &lt;br /&gt;job 6 at 2004－01－01 17:35&lt;/p&gt;&#xD;
&lt;p&gt;此时实际上就已经进入Linux系统的Shell，并且编写一个最简单程序：halt －i －p。上面Shell中的文本结束符号表示按&amp;#8220;Ctrl＋D&amp;#8221;组合键关闭命令，提交任务退出Shell。&amp;#8220;Job 6 at 2004－01－01 17:35&amp;#8221;表示系统接受第6个at命令，在&amp;#8220;2004－01－01 17:35&amp;#8221;时执行命令：先把所有网络相关的装置停止，关闭系统后关闭电源。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt;&lt;strong&gt;用&lt;/strong&gt;&lt;strong&gt;crontab&lt;/strong&gt;&lt;strong&gt;命令实现每天定时的病毒扫描&lt;/strong&gt; &lt;br /&gt;前面已经介绍了一个简单的crontab命令操作，这里看一些更重要的操作。&lt;/p&gt;&#xD;
&lt;p&gt;（1）建立一个文件，文件名称自己设定，假设为caoproject： &lt;br /&gt;＃crontab －e&lt;/p&gt;&#xD;
&lt;p&gt;（2）文件内容如下： &lt;br /&gt;05 09 * * * antivir &lt;br /&gt;用vi编辑后存盘退出。antivir是一个查杀Linux病毒的软件，当然需要时先安装在系统中。&lt;/p&gt;&#xD;
&lt;p&gt;（3）使用crontab命令添加到任务列表中： &lt;br /&gt;＃crontab caoproject &lt;br /&gt;这样系统内所有用户在每天的9点05分会自动进行病毒扫描。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt;&lt;strong&gt;用&lt;/strong&gt;&lt;strong&gt;kill&lt;/strong&gt;&lt;strong&gt;使修改的配置文件马上生效&lt;/strong&gt; &lt;br /&gt;Windows用户一般都知道，重要配置文件修改后往往都要重新启动计算机才能使修改生效。而Linux由于采用了模块化设计，可以自己根据需要实时设定服务。这里以网络服务inetd为例介绍一些操作技巧。&lt;/p&gt;&#xD;
&lt;p&gt;inetd 是一个监听守护进程，监听与提供互联网服务进程（如rlogin、telnet、ftp、rsh）进行连接的要求，并扩展所需的服务进程。默认情况下，inetd监听的这些daemon均列于/etc /inetd.conf文件中。编辑/etc/inetd.conf文件，可以改变inetd启动服务器守护进程的选项，然后驱使inetd以 SIGHUP（signal 1）向当前的inetd进程发送信号，使inetd重读该文件。这一过程由kill命令来实现。 &lt;br /&gt;用vi或其它编辑器修改inetd.conf后，首先使用下面命令： &lt;br /&gt;＃ps -ef |grep inetd&lt;/p&gt;&#xD;
&lt;p&gt;上面代码表明查询inetd.conf的进程号(PID)，这里假设是1426，然后使用下面命令： &lt;br /&gt;＃ kill -1426 inetd &lt;br /&gt;这样配置文件就生效了。&lt;/p&gt;&#xD;
&lt;p&gt;这一讲介绍的系统管理命令都是比较重要的，特别是crontab命令和quota命令使用起来会有一定难度，需要多做一些练习。另外，使用kill命令要注意&amp;#8220;－9&amp;#8220;这个参数，练习时最好不要运行一些重要的程序。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;strong&gt;命令整理&lt;/strong&gt;&lt;strong&gt;（&lt;/strong&gt;&lt;strong&gt;4&lt;/strong&gt;&lt;strong&gt;）&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;网络操作&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;因为Linux系统是在Internet上起源和发展的，它与生俱来拥有强大的网络功能和丰富的网络应用软件，尤其是TCP/IP网络协议的实现尤为成熟。Linux的网络命令比较多，其中一些命令像ping、ftp、telnet、route、netstat等在其它操作系统上也能看到，但也有一些Unix/Linux系统独有的命令，如ifconfig、finger、mail等。Linux网络操作命令的一个特点是，命令参数选项和功能很多，一个命令往往还可以实现其它命令的功能。 &lt;br /&gt;&lt;strong&gt;ifconfig&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifconfig用于查看和更改网络接口的地址和参数，包括IP地址、网络掩码、广播地址，使用权限是超级用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifconfig -interface [options] address &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-interface：指定的网络接口名，如eth0和eth1。&lt;/p&gt;&#xD;
&lt;p&gt;up：激活指定的网络接口卡。&lt;/p&gt;&#xD;
&lt;p&gt;down：关闭指定的网络接口。&lt;/p&gt;&#xD;
&lt;p&gt;broadcast address：设置接口的广播地址。&lt;/p&gt;&#xD;
&lt;p&gt;pointopoint：启用点对点方式。&lt;/p&gt;&#xD;
&lt;p&gt;address：设置指定接口设备的IP地址。&lt;/p&gt;&#xD;
&lt;p&gt;netmask address：设置接口的子网掩码。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4.应用说明 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifconfig是用来设置和配置网卡的命令行工具。为了手工配置网络，这是一个必须掌握的命令。使用该命令的好处是无须重新启动机器。要赋给eth0接口IP地址207.164.186.2，并且马上激活它，使用下面命令： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127 &lt;br /&gt;该命令的作用是设置网卡eth0的IP地址、网络掩码和网络的本地广播地址。若运行不带任何参数的ifconfig命令，这个命令将显示机器所有激活接口的信息。带有&amp;#8220;-a&amp;#8221;参数的命令则显示所有接口的信息，包括没有激活的接口。注意，用ifconfig命令配置的网络设备参数，机器重新启动以后将会丢失。 &lt;br /&gt;如果要暂停某个网络接口的工作，可以使用down参数： &lt;br /&gt;#ifconfig eth0 down &lt;br /&gt;&lt;strong&gt;ip&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip是iproute2软件包里面的一个强大的网络配置工具，它能够替代一些传统的网络管理工具，例如ifconfig、route等，使用权限为超级用户。几乎所有的Linux发行版本都支持该命令。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPTIONS是修改ip行为或改变其输出的选项。所有的选项都是以-字符开头，分为长、短两种形式。目前，ip支持如表1所示选项。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OBJECT是要管理者获取信息的对象。目前ip认识的对象见表2所示。 &lt;br /&gt;表1 ip支持的选项 &#xD;
&lt;table cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-V,-Version&lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;打印ip的版本并退出。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-s,-stats,-statistics&lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;输出更为详尽的信息。如果这个选项出现两次或多次，则输出的信息将更为详尽。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-f,-family&lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;这个选项后面接协议种类，包括inet、inet6或link，强调使用的协议种类。如果没有足够的信息告诉ip使用的协议种类，ip就会使用默认值inet或any。link比较特殊，它表示不涉及任何网络协议。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-4&lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;是-family inet的简写。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-6&lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;是-family inet6的简写。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-0&lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;是-family link的简写。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-o,-oneline &lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;对每行记录都使用单行输出，回行用字符代替。如果需要使用wc、grep等工具处理ip的输出，则会用到这个选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-r,-resolve&lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;查询域名解析系统，用获得的主机名代替主机IP地址&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p sizset="28" sizcache="1"&gt;&lt;a href="http://hi.csdn.net/attachment/201004/19/0_127167362779lU.gif"&gt;&lt;img title="clip_image002" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="157" alt="clip_image002" src="http://hi.csdn.net/attachment/201004/19/0_1271673627WLM0.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;COMMAND设置针对指定对象执行的操作，它和对象的类型有关。一般情况下，ip支持对象的增加(add)、删除(delete)和展示(show或list)。有些对象不支持这些操作，或者有其它的一些命令。对于所有的对象，用户可以使用help命令获得帮助。这个命令会列出这个对象支持的命令和参数的语法。如果没有指定对象的操作命令，ip会使用默认的命令。一般情况下，默认命令是list，如果对象不能列出，就会执行help命令。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ARGUMENTS是命令的一些参数，它们倚赖于对象和命令。ip支持两种类型的参数：flag和parameter。flag由一个关键词组成；parameter由一个关键词加一个数值组成。为了方便，每个命令都有一个可以忽略的默认参数。例如，参数dev是ip link命令的默认参数，因此ip link ls eth0等于ip link ls dev eth0。我们将在后面的详细介绍每个命令的使用，命令的默认参数将使用default标出。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.应用实例 &lt;br /&gt;添加IP地址192.168.2.2/24到eth0网卡上： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #ip addr add 192.168.1.1/24 dev eth0 &lt;br /&gt;丢弃源地址属于192.168.2.0/24网络的所有数据报： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #ip rule add from 192.168.2.0/24 prio 32777 reject &lt;br /&gt;&lt;strong&gt;ping&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ping检测主机网络接口状态，使用权限是所有用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t] IP地址 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-d：使用Socket的SO_DEBUG功能。&lt;/p&gt;&#xD;
&lt;p&gt;-c：设置完成要求回应的次数。&lt;/p&gt;&#xD;
&lt;p&gt;-f：极限检测。&lt;/p&gt;&#xD;
&lt;p&gt;-i：指定收发信息的间隔秒数。&lt;/p&gt;&#xD;
&lt;p&gt;-I：网络界面使用指定的网络界面送出数据包。&lt;/p&gt;&#xD;
&lt;p&gt;-l：前置载入，设置在送出要求信息之前，先行发出的数据包。&lt;/p&gt;&#xD;
&lt;p&gt;-n：只输出数值。&lt;/p&gt;&#xD;
&lt;p&gt;-p：设置填满数据包的范本样式。&lt;/p&gt;&#xD;
&lt;p&gt;-q：不显示指令执行过程，开头和结尾的相关信息除外。&lt;/p&gt;&#xD;
&lt;p&gt;-r：忽略普通的Routing Table，直接将数据包送到远端主机上。&lt;/p&gt;&#xD;
&lt;p&gt;-R：记录路由过程。&lt;/p&gt;&#xD;
&lt;p&gt;-s：设置数据包的大小。&lt;/p&gt;&#xD;
&lt;p&gt;-t：设置存活数值TTL的大小。&lt;/p&gt;&#xD;
&lt;p&gt;-v：详细显示指令的执行过程。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;ping命令是使用最多的网络指令，通常我们使用它检测网络是否连通，它使用ICMP协议。但是有时会有这样的情况，我们可以浏览器查看一个网页，但是却无法ping通，这是因为一些网站处于安全考虑安装了防火墙。另外，也可以在自己计算机上试一试，通过下面的方法使系统对ping没有反应： &lt;br /&gt;# echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_all &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;netstat&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;检查整个Linux网络状态。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; netstat [-acCeFghilMnNoprstuvVwx][-A][--ip] &lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-a--all：显示所有连线中的Socket。&lt;/p&gt;&#xD;
&lt;p&gt;-A：列出该网络类型连线中的IP相关地址和网络类型。&lt;/p&gt;&#xD;
&lt;p&gt;-c--continuous：持续列出网络状态。&lt;/p&gt;&#xD;
&lt;p&gt;-C--cache：显示路由器配置的快取信息。&lt;/p&gt;&#xD;
&lt;p&gt;-e--extend：显示网络其它相关信息。&lt;/p&gt;&#xD;
&lt;p&gt;-F--fib：显示FIB。&lt;/p&gt;&#xD;
&lt;p&gt;-g--groups：显示多重广播功能群组组员名单。&lt;/p&gt;&#xD;
&lt;p&gt;-h--help：在线帮助。&lt;/p&gt;&#xD;
&lt;p&gt;-i--interfaces：显示网络界面信息表单。&lt;/p&gt;&#xD;
&lt;p&gt;-l--listening：显示监控中的服务器的Socket。&lt;/p&gt;&#xD;
&lt;p&gt;-M--masquerade：显示伪装的网络连线。&lt;/p&gt;&#xD;
&lt;p&gt;-n--numeric：直接使用IP地址，而不通过域名服务器。&lt;/p&gt;&#xD;
&lt;p&gt;-N--netlink--symbolic：显示网络硬件外围设备的符号连接名称。&lt;/p&gt;&#xD;
&lt;p&gt;-o--timers：显示计时器。&lt;/p&gt;&#xD;
&lt;p&gt;-p--programs：显示正在使用Socket的程序识别码和程序名称。&lt;/p&gt;&#xD;
&lt;p&gt;-r--route：显示Routing Table。&lt;/p&gt;&#xD;
&lt;p&gt;-s--statistice：显示网络工作信息统计表。&lt;/p&gt;&#xD;
&lt;p&gt;-t--tcp：显示TCP传输协议的连线状况。&lt;/p&gt;&#xD;
&lt;p&gt;-u--udp：显示UDP传输协议的连线状况。&lt;/p&gt;&#xD;
&lt;p&gt;-v--verbose：显示指令执行过程。&lt;/p&gt;&#xD;
&lt;p&gt;-V--version：显示版本信息。&lt;/p&gt;&#xD;
&lt;p&gt;-w--raw：显示RAW传输协议的连线状况。&lt;/p&gt;&#xD;
&lt;p&gt;-x--unix：和指定&amp;#8220;-A unix&amp;#8221;参数相同。&lt;/p&gt;&#xD;
&lt;p&gt;--ip--inet：和指定&amp;#8220;-A inet&amp;#8221;参数相同。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4.应用实例 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; netstat主要用于Linux察看自身的网络状况，如开启的端口、在为哪些用户服务，以及服务的状态等。此外，它还显示系统路由表、网络接口状态等。可以说，它是一个综合性的网络状态的察看工具。在默认情况下，netstat只显示已建立连接的端口。如果要显示处于监听状态的所有端口，使用-a参数即可： &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;#netstat -a&lt;/p&gt;&#xD;
&lt;p&gt;Active Internet connections (only servers)&lt;/p&gt;&#xD;
&lt;p&gt;Proto Recv-Q Send-Q Local Address Foreign Address State&lt;/p&gt;&#xD;
&lt;p&gt;tcp 0 0 *:32768 *:* LISTEN&lt;/p&gt;&#xD;
&lt;p&gt;tcp 0 0 *:32769 *:* LISTEN&lt;/p&gt;&#xD;
&lt;p&gt;tcp 0 0 *:nfs *:* LISTEN&lt;/p&gt;&#xD;
&lt;p&gt;tcp 0 0 *:32770 *:* LISTEN&lt;/p&gt;&#xD;
&lt;p&gt;tcp 0 0 *:868 *:* LISTEN&lt;/p&gt;&#xD;
&lt;p&gt;tcp 0 0 *:617 *:* LISTEN&lt;/p&gt;&#xD;
&lt;p&gt;tcp 0 0 *:mysql *:* LISTEN&lt;/p&gt;&#xD;
&lt;p&gt;tcp 0 0 *:netbios-ssn *:* LISTEN&lt;/p&gt;&#xD;
&lt;p&gt;tcp 0 0 *:sunrpc *:* LISTEN&lt;/p&gt;&#xD;
&lt;p&gt;tcp 0 0 *:10000 *:* LISTEN&lt;/p&gt;&#xD;
&lt;p&gt;tcp 0 0 *:http *:* LISTEN&lt;/p&gt;&#xD;
&lt;p&gt;......&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;上面显示出，这台主机同时提供HTTP、FTP、NFS、MySQL等服务。 &lt;br /&gt;&lt;strong&gt;telnet&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; telnet表示开启终端机阶段作业，并登入远端主机。telnet是一个Linux命令，同时也是一个协议（远程登陆协议）。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; telnet [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][主机名称IP地址&amp;lt;通信端口&amp;gt;] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-8：允许使用8位字符资料，包括输入与输出。&lt;/p&gt;&#xD;
&lt;p&gt;-a：尝试自动登入远端系统。&lt;/p&gt;&#xD;
&lt;p&gt;-b：使用别名指定远端主机名称。&lt;/p&gt;&#xD;
&lt;p&gt;-c：不读取用户专属目录里的.telnetrc文件。&lt;/p&gt;&#xD;
&lt;p&gt;-d：启动排错模式。&lt;/p&gt;&#xD;
&lt;p&gt;-e：设置脱离字符。&lt;/p&gt;&#xD;
&lt;p&gt;-E：滤除脱离字符。&lt;/p&gt;&#xD;
&lt;p&gt;-f：此参数的效果和指定&amp;#8220;-F&amp;#8221;参数相同。&lt;/p&gt;&#xD;
&lt;p&gt;-F：使用Kerberos V5认证时，加上此参数可把本地主机的认证数据上传到远端主机。&lt;/p&gt;&#xD;
&lt;p&gt;-k：使用Kerberos认证时，加上此参数让远端主机采用指定的领域名，而非该主机的域名。&lt;/p&gt;&#xD;
&lt;p&gt;-K：不自动登入远端主机。&lt;/p&gt;&#xD;
&lt;p&gt;-l：指定要登入远端主机的用户名称。&lt;/p&gt;&#xD;
&lt;p&gt;-L：允许输出8位字符资料。&lt;/p&gt;&#xD;
&lt;p&gt;-n：指定文件记录相关信息。&lt;/p&gt;&#xD;
&lt;p&gt;-r：使用类似rlogin指令的用户界面。&lt;/p&gt;&#xD;
&lt;p&gt;-S：服务类型，设置telnet连线所需的IP TOS信息。&lt;/p&gt;&#xD;
&lt;p&gt;-x：假设主机有支持数据加密的功能，就使用它。&lt;/p&gt;&#xD;
&lt;p&gt;-X：关闭指定的认证形态。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4.应用说明 &lt;br /&gt;用户使用telnet命令可以进行远程登录，并在远程计算机之间进行通信。用户通过网络在远程计算机上登录，就像登录到本地机上执行命令一样。为了通过telnet登录到远程计算机上，必须知道远程机上的合法用户名和口令。虽然有些系统确实为远程用户提供登录功能，但出于对安全的考虑，要限制来宾的操作权限，因此，这种情况下能使用的功能是很少的。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; telnet只为普通终端提供终端仿真，而不支持X-Window等图形环境。当允许远程用户登录时，系统通常把这些用户放在一个受限制的Shell中，以防系统被怀有恶意的或不小心的用户破坏。用户还可以使用telnet从远程站点登录到自己的计算机上，检查电子邮件、编辑文件和运行程序，就像在本地登录一样。 &lt;br /&gt;&lt;strong&gt;ftp&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftp命令进行远程文件传输。FTP是ARPANet的标准文件传输协议，该网络就是现今Internet的前身，所以ftp既是协议又是一个命令。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftp [-dignv][主机名称IP地址] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-d：详细显示指令执行过程，便于排错分析程序执行的情形。&lt;/p&gt;&#xD;
&lt;p&gt;-i：关闭互动模式，不询问任何问题。&lt;/p&gt;&#xD;
&lt;p&gt;-g：关闭本地主机文件名称支持特殊字符的扩充特性。&lt;/p&gt;&#xD;
&lt;p&gt;-n：不使用自动登陆。&lt;/p&gt;&#xD;
&lt;p&gt;-v：显示指令执行过程。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4.应用说明 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftp命令是标准的文件传输协议的用户接口，是在TCP/IP网络计算机之间传输文件简单有效的方法，它允许用户传输ASC&amp;#8545;文件和二进制文件。为了使用ftp来传输文件，用户必须知道远程计算机上的合法用户名和口令。这个用户名/口令的组合用来确认ftp会话，并用来确定用户对要传输的文件进行什么样的访问。另外，用户需要知道对其进行ftp会话的计算机名字的IP地址。 &lt;br /&gt;用户可以通过使用ftp客户程序，连接到另一台计算机上；可以在目录中上下移动、列出目录内容；可以把文件从远程计算机机拷贝到本地机上；还可以把文件从本地机传输到远程系统中。ftp内部命令有72个，下面列出主要几个内部命令： &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;ls：列出远程机的当前目录。&lt;/p&gt;&#xD;
&lt;p&gt;cd：在远程机上改变工作目录。&lt;/p&gt;&#xD;
&lt;p&gt;lcd：在本地机上改变工作目录。&lt;/p&gt;&#xD;
&lt;p&gt;close：终止当前的ftp会话。&lt;/p&gt;&#xD;
&lt;p&gt;hash：每次传输完数据缓冲区中的数据后就显示一个#号。&lt;/p&gt;&#xD;
&lt;p&gt;get（mget）：从远程机传送指定文件到本地机。&lt;/p&gt;&#xD;
&lt;p&gt;put（mput）：从本地机传送指定文件到远程机。&lt;/p&gt;&#xD;
&lt;p&gt;quit：断开与远程机的连接，并退出ftp。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;route&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; route表示手工产生、修改和查看路由表。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;#route [-add][-net|-host] targetaddress [-netmask Nm][dev]If] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #route [－delete][-net|-host] targetaddress [gw Gw] [-netmask Nm] [dev]If] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-add：增加路由。&lt;/p&gt;&#xD;
&lt;p&gt;-delete：删除路由。&lt;/p&gt;&#xD;
&lt;p&gt;-net：路由到达的是一个网络，而不是一台主机。&lt;/p&gt;&#xD;
&lt;p&gt;-host：路由到达的是一台主机。&lt;/p&gt;&#xD;
&lt;p&gt;-netmask Nm：指定路由的子网掩码。&lt;/p&gt;&#xD;
&lt;p&gt;gw：指定路由的网关。&lt;/p&gt;&#xD;
&lt;p&gt;[dev]If：强迫路由链指定接口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4.应用实例 &lt;br /&gt;route命令是用来查看和设置Linux系统的路由信息，以实现与其它网络的通信。要实现两个不同的子网之间的通信，需要一台连接两个网络的路由器，或者同时位于两个网络的网关来实现。 &lt;br /&gt;在Linux系统中，设置路由通常是为了解决以下问题：该Linux系统在一个局域网中，局域网中有一个网关，能够让机器访问Internet，那么就需要将这台机器的IP地址设置为Linux机器的默认路由。使用下面命令可以增加一个默认路由： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; route add 0.0.0.0 192.168.1.1 &lt;br /&gt;&lt;strong&gt;rlogin&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rlogin用来进行远程注册。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -8：此选项始终允许8位输入数据通道。该选项允许发送格式化的ANSI字符和其它的特殊代码。如果不用这个选项，除非远端的不是终止和启动字符，否则就去掉奇偶校验位。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -E：停止把任何字符当作转义字符。当和-8选项一起使用时，它提供一个完全的透明连接。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -K：关闭所有的Kerberos确认。只有与使用Kerberos 确认协议的主机连接时才使用这个选项。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -L：允许rlogin会话在litout模式中运行。要了解更多信息，请查阅tty联机帮助。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -d：打开与远程主机进行通信的TCP sockets的socket调试。要了解更多信息，请查阅setsockopt的联机帮助。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -e：为rlogin会话设置转义字符，默认的转义字符是&amp;#8220;～&amp;#8221;。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -k：请求rlogin获得在指定区域内远程主机的Kerberos许可，而不是获得由krb_realmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -x：为所有通过rlogin会话传送的数据打开DES加密。这会影响响应时间和CPU利用率，但是可以提高安全性。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.使用说明 &lt;br /&gt;如果在网络中的不同系统上都有账号，或者可以访问别人在另一个系统上的账号，那么要访问别的系统中的账号，首先就要注册到系统中，接着通过网络远程注册到账号所在的系统中。rlogin可以远程注册到别的系统中，它的参数应是一个系统名。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;rcp&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rcp代表远程文件拷贝，用于计算机之间文件拷贝，使用权限是所有用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -r：递归地把源目录中的所有内容拷贝到目的目录中。要使用这个选项，目的必须是一个目录。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -p：试图保留源文件的修改时间和模式，忽略umask。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -k：请求rcp获得在指定区域内的远程主机的Kerberos许可，而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -x：为传送的所有数据打开DES加密。 &lt;br /&gt;&lt;strong&gt;finger&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; finger用来查询一台主机上的登录账号的信息，通常会显示用户名、主目录、停滞时间、登录时间、登录Shell等信息，使用权限为所有用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; finger [选项] [使用者] [用户@主机] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -s：显示用户注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -l：除了用-s选项显示的信息外，还显示用户主目录、登录Shell、邮件状态等信息，以及用户主目录下的.plan、.project和.forward文件的内容。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -p：除了不显示.plan文件和.project文件以外，与-l选项相同。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.应用实例 &lt;br /&gt;在计算机上使用finger： &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;[root@localhost root]# Finger&lt;/p&gt;&#xD;
&lt;p&gt;Login Name Tty Idle Login Time Office Office Phone&lt;/p&gt;&#xD;
&lt;p&gt;root root tty1 2 Dec 15 11&lt;/p&gt;&#xD;
&lt;p&gt;root root pts/0 1 Dec 15 11&lt;/p&gt;&#xD;
&lt;p&gt;root root *pts/1 Dec 15 11&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;5.应用说明 &lt;br /&gt;如果要查询远程机上的用户信息，需要在用户名后面接&amp;#8220;@主机名&amp;#8221;，采用[用户名@主机名]的格式，不过要查询的网络主机需要运行finger守护进程的支持。 &lt;br /&gt;&lt;strong&gt;mail&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mail作用是发送电子邮件，使用权限是所有用户。此外，mail还是一个电子邮件程序。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;mail [-s subject] [-c address] [-b address] &lt;/p&gt;&#xD;
&lt;p&gt;mail -f [mailbox]mail [-u user]&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-b address：表示输出信息的匿名收信人地址清单。&lt;/p&gt;&#xD;
&lt;p&gt;-c address：表示输出信息的抄送（）收信人地址清单。&lt;/p&gt;&#xD;
&lt;p&gt;-f [mailbox]：从收件箱者指定邮箱读取邮件。&lt;/p&gt;&#xD;
&lt;p&gt;-s subject：指定输出信息的主体行。&lt;/p&gt;&#xD;
&lt;p&gt;[-u user]：端口指定优化的收件箱读取邮件。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;nslookup&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nslookup命令的功能是查询一台机器的IP地址和其对应的域名。使用权限所有用户。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器，就可以用这个命令查看不同主机的IP地址对应的域名。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nslookup ［IP地址/域名］ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.应用实例 &lt;br /&gt;（1）在本地计算机上使用nslookup命令 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;$ nslookup&lt;/p&gt;&#xD;
&lt;p&gt;Default Server: name.cao.com.cn&lt;/p&gt;&#xD;
&lt;p&gt;Address: 192.168.1.9&lt;/p&gt;&#xD;
&lt;p&gt;&amp;gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在符号&amp;#8220;&amp;gt;&amp;#8221;后面输入要查询的IP地址域名，并回车即可。如果要退出该命令，输入&amp;#8220;exit&amp;#8221;，并回车即可。 &lt;br /&gt;（2）使用nslookup命令测试named &lt;br /&gt;输入下面命令： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nslookup &lt;br /&gt;然后就进入交换式nslookup环境。如果named正常启动，则nslookup会显示当前DNS服务器的地址和域名，否则表示named没能正常启动。 &lt;br /&gt;下面简单介绍一些基本的DNS诊断。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#9670;检查正向DNS解析，在nslookup提示符下输入带域名的主机名，如hp712.my.com，nslookup应能显示该主机名对应的IP地址。如果只输入hp712，nslookup会根据/etc/resolv.conf的定义，自动添加my.com域名，并回答对应的IP地址。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#9670;检查反向DNS解析，在nslookup提示符下输入某个IP地址，如192.22.33.20，nslookup应能回答该IP地址所对应的主机名。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#9670;检查MX邮件地址记录在nslookup提示符下输入： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set q=mx &lt;br /&gt;然后输入某个域名，输入my.com和mail.my.com，nslookup应能够回答对应的邮件服务器地址，即support.my.com和support2.my.com。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;动手练习&lt;/strong&gt; &lt;br /&gt;&lt;strong&gt;1.&lt;/strong&gt;&lt;strong&gt;危险的网络命令&lt;/strong&gt; &lt;br /&gt;互联网的发展使安全成为一个不能忽视的问题，finger、ftp、rcp和telnet在本质上都是不安全的，因为它们在网络上用明文传送口令和数据，嗅探器可以非常容易地截获这些口令和数据。而且，这些服务程序的安全验证方式也是有弱点的，很容易受到&amp;#8220;中间服务器&amp;#8221;方式的攻击。这里笔者把一些不安全的命令根据危险等级列出，见表3所示。&lt;/p&gt;&#xD;
&lt;p sizset="29" sizcache="1"&gt;&lt;a href="http://hi.csdn.net/attachment/201004/19/0_1271673628wm8d.gif"&gt;&lt;img title="clip_image004" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="94" alt="clip_image004" src="http://hi.csdn.net/attachment/201004/19/0_1271673628pf5L.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在ftp、telnet可以被SSH命令代替绑定在端口22上，其连接采用协商方式，使用RSA加密。身份鉴别完成之后，后面的所有流量都使用IDEA进行加密。SSH（Secure Shell）程序可以通过网络登录到远程主机，并执行命令。rcp、rlogin等远程调用命令也逐渐被VNC软件代替。 &lt;br /&gt;&lt;strong&gt;&amp;nbsp; 2.&lt;/strong&gt;&lt;strong&gt;在一张网卡上绑定多个IP地址 &lt;br /&gt;&lt;/strong&gt;在Linux下，可以使用ifconfig方便地绑定多个IP地址到一张网卡。例如，eth0接口的原有IP地址为192.168.0 .254，可以执行下面命令： &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;ifconfig eth0:0 192.168.0.253 netmask 255.255.255.0 &lt;/p&gt;&#xD;
&lt;p&gt;ifconfig eth0:1 192.168.0.252 netmask 255.255.255.0 &lt;/p&gt;&#xD;
&lt;p&gt;......&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&amp;nbsp; 3.&lt;/strong&gt;&lt;strong&gt;修改网卡MAC地址&lt;/strong&gt; &lt;br /&gt;首先必须关闭网卡设备，命令如下： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /sbin/ifconfig eth0 down &lt;br /&gt;修改MAC地址，命令如下： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE &lt;br /&gt;重新启用网卡： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /sbin/ifconfig eht0 up &lt;br /&gt;这样网卡的MAC地址就更改完成了。每张网卡的MAC地址是惟一，但不是不能修改的，只要保证在网络中的MAC地址的惟一性就可以了。 &lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt;&lt;strong&gt;初步部署IPv6 &lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPv4技术在网络发展中起到了巨大的作用，不过随着时间的流逝它无论在网络地址的提供、服务质量、安全性等方面都越来越力不从心，IPv6呼之欲出。Linux是所有操作系统中最先支持IPv6的，一般Linux基于2.4内核的Linux发行版本都可以直接使用IPv6，不过主要发行版本没有加载IPv6模块，可以使用命令手工加载，需要超级用户的权限。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1)加载IPv6模块 &lt;br /&gt;使用命令检测，其中inet6 addr: fe80::5054:abff:fe34:5b09/64，就是eth0网卡的IPv6地址。 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;# modprobe IPv6&lt;/p&gt;&#xD;
&lt;p&gt;＃ifconfig &lt;/p&gt;&#xD;
&lt;p&gt;eth0 Link encap:Ethernet HWaddr 52:54:AB:34:5B:09&lt;/p&gt;&#xD;
&lt;p&gt;inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0&lt;/p&gt;&#xD;
&lt;p&gt;inet6 addr: fe80::5054:abff:fe34:5b09/64 Scope:Link&lt;/p&gt;&#xD;
&lt;p&gt;UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1&lt;/p&gt;&#xD;
&lt;p&gt;RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;/p&gt;&#xD;
&lt;p&gt;TX packets:21 errors:0 dropped:0 overruns:0 carrier:0&lt;/p&gt;&#xD;
&lt;p&gt;collisions:0 txqueuelen:100&lt;/p&gt;&#xD;
&lt;p&gt;RX bytes:0 (0.0 b) TX bytes:1360 (1.3 Kb)&lt;/p&gt;&#xD;
&lt;p&gt;Interrupt:5 Base address:0xec00&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;(2)使用ping命令检测网卡的IPv6地址是否有效 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #ping6 -I eth0 -c 2 fe80::200:e8ff:fea0:2586 &lt;br /&gt;和IPv4不一样，使用ping6命令时必须指定一个网卡界面，否则系统不知道将数据包发送到哪个网络设备。I表示Interface、eth0是第一个网卡，－c表示回路，2表示ping6操作两次。结果见图1所示。&lt;/p&gt;&#xD;
&lt;p sizset="30" sizcache="1"&gt;&lt;a href="http://hi.csdn.net/attachment/201004/19/0_1271673629TTzz.gif"&gt;&lt;img title="clip_image006" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="117" alt="clip_image006" src="http://hi.csdn.net/attachment/201004/19/0_1271673629onog.gif" width="244" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;图1 IPv6网络下的ping6命令&lt;/p&gt;&#xD;
&lt;p&gt;(3)使用ip命令在IPv6下为eth0增加一个IP地址 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0 &lt;br /&gt;使用ifconfig命令，查看网卡是否出现第二个IPv6地址。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Linux网络的主要优点是能够实现资源和信息的共享，并且用户可以远程访问信息。Linux提供了一组强有力的网络命令来为用户服务，这些工具能够帮助用户进行网络设定、检查网络状况、登录到远程计算机上、传输文件和执行远程命令等。 &lt;br /&gt;上面介绍了Linux中比较重要的网络命令，其实Linux还有许多命令需要学习。Linux网络操作命令的一个特点就是命令参数选项很多，并不要求全部记住，关键在于理解命令的主要用途和学会使用帮助信息&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;strong&gt;命令整理&lt;/strong&gt;&lt;strong&gt;（&lt;/strong&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;strong&gt;）&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;strong&gt;系统安全&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;虽然Linux和Windows NT/2000系统一样是一个多用户的系统，但是它们之间有不少重要的差别。对于很多习惯了Windows系统的管理员来讲，如何保证Linux操作系统安全、可靠将会面临许多新的挑战。本文将重点介绍Linux系统安全的命令。 &lt;br /&gt;&lt;strong&gt;passwd&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; passwd命令原来修改账户的登陆密码，使用权限是所有用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; passwd [选项] 账户名称 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -l：锁定已经命名的账户名称，只有具备超级用户权限的使用者方可使用。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -u：解开账户锁定状态，只有具备超级用户权限的使用者方可使用。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -x, --maximum=DAYS：最大密码使用时间（天），只有具备超级用户权限的使用者方可使用。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -n, --minimum=DAYS：最小密码使用时间（天），只有具备超级用户权限的使用者方可使用。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -d：删除使用者的密码, 只有具备超级用户权限的使用者方可使用。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -S：检查指定使用者的密码认证种类, 只有具备超级用户权限的使用者方可使用。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.应用实例 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;$ passwd&lt;/p&gt;&#xD;
&lt;p&gt;Changing password for user cao.&lt;/p&gt;&#xD;
&lt;p&gt;Changing password for cao&lt;/p&gt;&#xD;
&lt;p&gt;(current) UNIX password:&lt;/p&gt;&#xD;
&lt;p&gt;New UNIX password:&lt;/p&gt;&#xD;
&lt;p&gt;Retype new UNIX password:&lt;/p&gt;&#xD;
&lt;p&gt;passwd: all authentication tokens updated successfully.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;从上面可以看到，使用passwd命令需要输入旧的密码，然后再输入两次新密码。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;su&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; su的作用是变更为其它使用者的身份，超级用户除外，需要键入该使用者的密码。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; su [选项]... [-] [USER [ARG]...] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -f ， --fast：不必读启动文件（如 csh.cshrc 等），仅用于csh或tcsh两种Shell。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -l ， --login：加了这个参数之后，就好像是重新登陆为该使用者一样，大部分环境变量（例如HOME、SHELL和USER等）都是以该使用者（USER）为主，并且工作目录也会改变。如果没有指定USER，缺省情况是root。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -m， -p ，--preserve-environment：执行su时不改变环境变数。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -c command：变更账号为USER的使用者，并执行指令（command）后再变回原来使用者。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; USER：欲变更的使用者账号，ARG传入新的Shell参数。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.应用实例 &lt;br /&gt;变更账号为超级用户，并在执行df命令后还原使用者。&amp;nbsp;&amp;nbsp;&amp;nbsp; su -c df root &lt;br /&gt;&lt;strong&gt;umask&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; umask设置用户文件和目录的文件创建缺省屏蔽值，若将此命令放入profile文件，就可控制该用户后续所建文件的存取许可。它告诉系统在创建文件时不给谁存取许可。使用权限是所有用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; umask [-p] [-S] [mode] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.参数 &lt;br /&gt;－S：确定当前的umask设置。 &lt;br /&gt;－p：修改umask 设置。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [mode]：修改数值。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.说明 &lt;br /&gt;传统Unix的umask值是022，这样就可以防止同属于该组的其它用户及别的组的用户修改该用户的文件。既然每个用户都拥有并属于一个自己的私有组，那么这种&amp;#8220;组保护模式&amp;#8221;就不在需要了。严密的权限设定构成了Linux安全的基础，在权限上犯错误是致命的。需要注意的是，umask命令用来设置进程所创建的文件的读写权限，最保险的值是0077，即关闭创建文件的进程以外的所有进程的读写权限，表示为-rw-------。在～/.bash_profile中，加上一行命令umask 0077可以保证每次启动Shell后, 进程的umask权限都可以被正确设定。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.应用实例 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;umask -S&lt;/p&gt;&#xD;
&lt;p&gt;u=rwx,g=rx,o=rx&lt;/p&gt;&#xD;
&lt;p&gt;umask -p 177&lt;/p&gt;&#xD;
&lt;p&gt;umask -S&lt;/p&gt;&#xD;
&lt;p&gt;u=rw,g=,o=&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;上述5行命令，首先显示当前状态，然后把umask值改为177，结果只有文件所有者具有读写文件的权限，其它用户不能访问该文件。这显然是一种非常安全的设置。 &lt;br /&gt;&lt;strong&gt;chgrp&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chgrp表示修改一个或多个文件或目录所属的组。使用权限是超级用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chgrp [选项]... 组 文件... 或&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chgrp [选项]... --reference=参考文件 文件... &lt;br /&gt;将每个&amp;lt;文件&amp;gt;的所属组设定为&amp;lt;组&amp;gt;。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.参数 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -c, --changes ：像 --verbose，但只在有更改时才显示结果。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --dereference：会影响符号链接所指示的对象，而非符号链接本身。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -h, --no-dereference：会影响符号链接本身，而非符号链接所指示的目的地(当系统支持更改符号链接的所有者，此选项才有效)。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -f, --silent, --quiet：去除大部分的错误信息。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --reference=参考文件：使用&amp;lt;参考文件&amp;gt;的所属组，而非指定的&amp;lt;组&amp;gt;。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -R, --recursive：递归处理所有的文件及子目录。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -v, --verbose：处理任何文件都会显示信息。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.应用说明 &lt;br /&gt;该命令改变指定指定文件所属的用户组。其中group可以是用户组ID，也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表，支持通配符。如果用户不是该文件的属主或超级用户，则不能改变该文件的组。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.应用实例 &lt;br /&gt;改变/opt/local /book/及其子目录下的所有文件的属组为book，命令如下： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ chgrp - R book /opt/local /book &lt;br /&gt;&lt;strong&gt;chmod&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chmod命令是非常重要的，用于改变文件或目录的访问权限，用户可以用它控制文件或目录的访问权限，使用权限是超级用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chmod命令有两种用法。一种是包含字母和操作符表达式的字符设定法（相对权限设定）；另一种是包含数字的数字设定法（绝对权限设定）。 &lt;br /&gt;（1）字符设定法 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chmod [who] [+ | - | =] [mode] 文件名 &lt;br /&gt;&amp;#9670;操作对象who可以是下述字母中的任一个或它们的组合 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; u：表示用户，即文件或目录的所有者。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g：表示同组用户，即与文件属主有相同组ID的所有用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; o：表示其它用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a：表示所有用户，它是系统默认值。 &lt;br /&gt;&amp;#9670;操作符号 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; +：添加某个权限。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -：取消某个权限。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; =：赋予给定权限，并取消其它所有权限（如果有的话）。 &lt;br /&gt;&amp;#9670;设置mode的权限可用下述字母的任意组合 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; r：可读。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; w：可写。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x：可执行。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X：只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; s：文件执行时把进程的属主或组ID置为该文件的文件属主。方式&amp;#8220;u＋s&amp;#8221;设置文件的用户ID位，&amp;#8220;g＋s&amp;#8221;设置组ID位。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t：保存程序的文本到交换设备上。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; u：与文件属主拥有一样的权限。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g：与和文件属主同组的用户拥有一样的权限。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; o：与其它用户拥有一样的权限。 &lt;br /&gt;文件名：以空格分开的要改变权限的文件列表，支持通配符。 &lt;br /&gt;一个命令行中可以给出多个权限方式，其间用逗号隔开。 &lt;br /&gt;（2） 数字设定法 &lt;br /&gt;数字设定法的一般形式为： chmod [mode] 文件名 &lt;br /&gt;数字属性的格式应为3个0到7的八进制数，其顺序是(u)(g)(o)文件名，以空格分开的要改变权限的文件列表，支持通配符。 &lt;br /&gt;数字表示的权限的含义如下：0001为所有者的执行权限；0002为所有者的写权限；0004为所有者的读权限；0010为组的执行权限；0020为组的写权限；0040为组的读权限；0100为其他人的执行权限；0200为其他人的写权限；0400为其他人的读权限；1000为粘贴位置位；2000表示假如这个文件是可执行文件，则为组ID为位置位，否则其中文件锁定位置位；4000表示假如这个文件是可执行文件，则为用户ID为位置位。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.实例 &lt;br /&gt;如果一个系统管理员写了一个表格(tem)让所有用户填写，那么必须授权用户对这个文件有读写权限，可以使用命令：＃chmod 666 tem &lt;br /&gt;上面代码中，这个666数字是如何计算出来的呢？0002为所有者的写权限，0004为所有者的读权限，0020为组的写权限，0040为组的读权限，0200为其他人的写权限，0400为其他人的读权限，这6个数字相加就是666（注以上数字都是八进制数），结果见图1所示。&lt;/p&gt;&#xD;
&lt;p sizset="31" sizcache="1"&gt;&lt;a href="http://hi.csdn.net/attachment/201004/19/0_12716736306L6I.gif"&gt;&lt;img title="clip_image008" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="84" alt="clip_image008" src="http://hi.csdn.net/attachment/201004/19/0_1271673630j22E.gif" width="244" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;图1 用chmod数字方法设定文件权限&lt;/p&gt;&#xD;
&lt;p&gt;从图1可以看出，tem文件的权限是-rw-rw-rw-，即用户对这个文件有读写权限。 &lt;br /&gt;如果用字符权限设定使用下面命令： &lt;br /&gt;＃chmod a =wx tem&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;chown&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;更改一个或多个文件或目录的属主和属组。使用权限是超级用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chown [选项] 用户或组 文件 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --dereference：受影响的是符号链接所指示的对象，而非符号链接本身。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -h, --no-dereference：会影响符号链接本身，而非符号链接所指示的目的地(当系统支持更改符号链接的所有者，此选项才有效)。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --from=目前所有者:目前组只当每个文件的所有者和组符合选项所指定的，才会更改所有者和组。其中一个可以省略，这已省略的属性就不需要符合原有的属性。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -f, --silent, --quiet：去除大部分的错误信息。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -R, --recursive：递归处理所有的文件及子目录。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -v, --verbose：处理任何文件都会显示信息。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.说明 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chown将指定文件的拥有者改为指定的用户或组，用户可以是用户名或用户ID；组可以是组名或组ID；文件是以空格分开的要改变权限的文件列表，支持通配符。系统管理员经常使用chown命令，在将文件拷贝到另一个用户的目录下以后，让用户拥有使用该文件的权限。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.应用实例 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.把文件shiyan.c的所有者改为wan &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ chown wan shiyan.c &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.把目录/hi及其下的所有文件和子目录的属主改成wan，属组改成users。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ chown - R wan.users /hi &lt;br /&gt;&lt;strong&gt;chattr&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;修改ext2和ext3文件系统属性(attribute)，使用权限超级用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &lt;br /&gt;－R：递归处理所有的文件及子目录。 &lt;br /&gt;－V：详细显示修改内容，并打印输出。 &lt;br /&gt;－：失效属性。 &lt;br /&gt;＋：激活属性。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ：指定属性。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; A：Atime，告诉系统不要修改对这个文件的最后访问时间。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; S：Sync，一旦应用程序对这个文件执行了写操作，使系统立刻把修改的结果写到磁盘。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a：Append Only，系统只允许在这个文件之后追加数据，不允许任何进程覆盖或截断这个文件。如果目录具有这个属性，系统将只允许在这个目录下建立和修改文件，而不允许删除任何文件。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i：Immutable，系统不允许对这个文件进行任何的修改。如果目录具有这个属性，那么任何的进程只能修改目录之下的文件，不允许建立和删除文件。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; D：检查压缩文件中的错误。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; d：No dump，在进行文件系统备份时，dump程序将忽略这个文件。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; C：Compress，系统以透明的方式压缩这个文件。从这个文件读取时，返回的是解压之后的数据；而向这个文件中写入数据时，数据首先被压缩之后才写入磁盘。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; s：Secure Delete，让系统在删除这个文件时，使用0填充文件所在的区域。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; u：Undelete，当一个应用程序请求删除这个文件，系统会保留其数据块以便以后能够恢复删除这个文件。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.说明 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chattr命令的作用很大，其中一些功能是由Linux内核版本来支持的，如果Linux内核版本低于2.2，那么许多功能不能实现。同样－D检查压缩文件中的错误的功能，需要2.5.19以上内核才能支持。另外，通过chattr命令修改属性能够提高系统的安全性，但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.应用实例 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.恢复/root目录,即子目录的所有文件 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # chattr -R +u/root &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.用chattr命令防止系统中某个关键文件被修改 &lt;br /&gt;在Linux下，有些配置文件(passwd ,fatab)是不允许任何人修改的，为了防止被误删除或修改，可以设定该文件的&amp;#8220;不可修改位(immutable)&amp;#8221;，命令如下： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # chattr +i /etc/fstab &lt;br /&gt;&lt;strong&gt;sudo&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo是一种以限制配置文件中的命令为基础，在有限时间内给用户使用，并且记录到日志中的命令，权限是所有用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;sudo [-bhHpV] [-s ] [-u &amp;lt;用户&amp;gt;] [指令]&lt;/p&gt;&#xD;
&lt;p&gt;sudo [-klv]&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;－b：在后台执行命令。&lt;/p&gt;&#xD;
&lt;p&gt;-h：显示帮助。&lt;/p&gt;&#xD;
&lt;p&gt;-H：将HOME环境变量设为新身份的HOME环境变量。&lt;/p&gt;&#xD;
&lt;p&gt;-k：结束密码的有效期，即下次将需要输入密码。&lt;/p&gt;&#xD;
&lt;p&gt;-l：列出当前用户可以使用的命令。&lt;/p&gt;&#xD;
&lt;p&gt;-p：改变询问密码的提示符号。&lt;/p&gt;&#xD;
&lt;p&gt;-s ：执行指定的Shell。&lt;/p&gt;&#xD;
&lt;p&gt;-u &amp;lt;用户&amp;gt;：以指定的用户为新身份，不使用时默认为root。&lt;/p&gt;&#xD;
&lt;p&gt;-v：延长密码有效期5分钟。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4.说明 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo命令的配置在/etc/sudoers文件中。当用户使用sudo时，需要输入口令以验证使用者身份。随后的一段时间内可以使用定义好的命令，当使用配置文件中没有的命令时，将会有报警的记录。sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序。一个明显的用途是增强了站点的安全性，如果需要每天以超级用户的身份做一些日常工作，经常执行一些固定的几个只有超级用户身份才能执行的命令，那么用sudo是非常适合的。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;ps&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ps显示瞬间进程 (process) 的动态，使用权限是所有使用者。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式&lt;/p&gt;&#xD;
&lt;p&gt;ps [options] [--help] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ps的参数非常多, 此出仅列出几个常用的参数。 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-A：列出所有的进程。&lt;/p&gt;&#xD;
&lt;p&gt;-l：显示长列表。&lt;/p&gt;&#xD;
&lt;p&gt;-m：显示内存信息。&lt;/p&gt;&#xD;
&lt;p&gt;-w：显示加宽可以显示较多的信息。&lt;/p&gt;&#xD;
&lt;p&gt;-e：显示所有进程。&lt;/p&gt;&#xD;
&lt;p&gt;a：显示终端上的所有进程,包括其它用户的进程。&lt;/p&gt;&#xD;
&lt;p&gt;-au：显示较详细的信息。&lt;/p&gt;&#xD;
&lt;p&gt;-aux：显示所有包含其它使用者的进程。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4.说明 &lt;br /&gt;要对进程进行监测和控制，首先要了解当前进程的情况，也就是需要查看当前进程。ps命令就是最基本、也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行、运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等。图2给出了ps-aux命令详解。大部分信息都可以通过执行该命令得到。最常用的三个参数是u、a、x。下面就结合这三个参数详细说明ps命令的作用：ps aux &lt;/p&gt;&#xD;
&lt;p sizset="32" sizcache="1"&gt;&lt;a href="http://hi.csdn.net/attachment/201004/19/0_12716736314fdC.gif"&gt;&lt;img title="clip_image010" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="164" alt="clip_image010" src="http://hi.csdn.net/attachment/201004/19/0_12716736322Hp1.gif" width="244" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;图2 ps-aux命令详解&lt;/p&gt;&#xD;
&lt;p&gt;图2第2行代码中，USER表示进程拥有者；PID表示进程标示符；%CPU表示占用的CPU使用率；%MEM占用的物理内存使用率；VSZ表示占用的虚拟内存大小；RSS为进程占用的物理内存值；TTY为终端的次要装置号码。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STAT表示进程的状态，其中D为不可中断的静止（I/O动作）；R正在执行中；S静止状态；T暂停执行；Z不存在，但暂时无法消除；W没有足够的内存分页可分配；高优先序的进程；N低优先序的进程；L有内存分页分配并锁在内存体内 (实时系统或 I/O)。START为进程开始时间。TIME为执行的时间。COMMAND是所执行的指令。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.应用实例 &lt;br /&gt;在进行系统维护时，经常会出现内存使用量惊人，而又不知道是哪一个进程占用了大量进程的情况。除了可以使用top命令查看内存使用情况之外，还可以使用下面的命令： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ps aux | sort +5n &lt;br /&gt;&lt;strong&gt;who &lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.作用 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; who显示系统中有哪些用户登陆系统，显示的资料包含了使用者ID、使用的登陆终端、上线时间、呆滞时间、CPU占用，以及做了些什么。 使用权限为所有用户。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.格式 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; who - [husfV] [user] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.主要参数 &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;-h：不要显示标题列。&lt;/p&gt;&#xD;
&lt;p&gt;-u：不要显示使用者的动作/工作。&lt;/p&gt;&#xD;
&lt;p&gt;-s：使用简短的格式来显示。&lt;/p&gt;&#xD;
&lt;p&gt;-f：不要显示使用者的上线位置。&lt;/p&gt;&#xD;
&lt;p&gt;-V：显示程序版本。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4.说明 &lt;br /&gt;该命令主要用于查看当前在线上的用户情况。如果用户想和其它用户建立即时通信，比如使用talk命令，那么首先要确定的就是该用户确实在线上,不然talk进程就无法建立起来。又如，系统管理员希望监视每个登录的用户此时此刻的所作所为，也要使用who命令。who命令应用起来非常简单，可以比较准确地掌握用户的情况,所以使用非常广泛。 &lt;br /&gt;&lt;strong&gt;动手练习&lt;/strong&gt; &lt;br /&gt;&lt;strong&gt;1.&lt;/strong&gt;&lt;strong&gt;使用&lt;/strong&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;strong&gt;命令检测系统入侵者&lt;/strong&gt; &lt;br /&gt;安装过Mandrake Linux和Red Hat Linux的用户都会知道，Linux系统会内置三种不同级别（标准、高、更高）的防火墙，当进行了Linux服务器的安装和一些基本的设置后，服务器应该说是比较安全的，但是也会有黑客通过各种方法利用系统管理员的疏忽侵入系统。如何快速查找黑客非常重要。一般来说，可以使用命令查询黑客是否入侵，见表1。&lt;/p&gt;&#xD;
&lt;p sizset="33" sizcache="1"&gt;表1 查询黑客入侵现象的命令对应表 &lt;br /&gt;&lt;a href="http://hi.csdn.net/attachment/201004/19/0_1271673632tT53.gif"&gt;&lt;img title="clip_image011" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="138" alt="clip_image011" src="http://hi.csdn.net/attachment/201004/19/0_12716736334FaQ.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;举例说明，如果黑客嗅探网络，那么它必须使网卡接口处于混杂模式，使用下面命令进行查询： &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;＃ifconfig -a&lt;/p&gt;&#xD;
&lt;p&gt;eth0 Link encap:Ethernet HWaddr 00:00:E8:A0:25:86&lt;/p&gt;&#xD;
&lt;p&gt;inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0&lt;/p&gt;&#xD;
&lt;p&gt;UP BROADCAST RUNNING PROMISCUOUS MTU:1500 Metric:1&lt;/p&gt;&#xD;
&lt;p&gt;......&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;从这个命令的输出中，可以看到上面讲到的这些概念。第一行的00:00:E8:A0:25:86是mac地址，第二行的192.168.1.7是IP地址，第四行讲的是接收数据状态，这时正在被黑客嗅探。一般而言，网卡有几种接收数据帧的状态，如Broadcast、Multicast、Promiscuous等。Broadcast是指接收所有类型为广播报文的数据帧；Multicast是指接收特定的组播报文；Promiscuous则是通常说的混杂模式，是指对报文中的目的硬件地址不加任何检查、全部接收的工作模式。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt;&lt;strong&gt;限制&lt;/strong&gt;&lt;strong&gt;su&lt;/strong&gt;&lt;strong&gt;命令的滥用&lt;/strong&gt; &lt;br /&gt;我们知道，超级用户在Linux中有最大的权利，几乎所有黑客都想得到这个目标。Linux可以增加对切换到超级用户的限制。使用PAM（Pluggable Authentication Modules）可以禁止除在wheel组以外的任何人su成root，修改/etc/pam.d/su文件，除去屏蔽标识#。使用/usr/sbin/usermod G10 bjecadm将bjecadm这个账号加入gid为10的组，就是wheel组。命令如下： &#xD;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;p&gt;/etc/pam.d/su # 使用密码验证＃&lt;/p&gt;&#xD;
&lt;p&gt;auth sufficient /lib/security/pam_wheel.so debug &lt;/p&gt;&#xD;
&lt;p&gt;# 限制只有wheel组用户才可以切换到root＃&lt;/p&gt;&#xD;
&lt;p&gt;auth required /lib/security/pam_wheel.so use_uid&lt;/p&gt;&#xD;
&lt;p&gt;chmod -G10 bjecadm&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;另外，每当用户试图使用su命令进入系统用户时,命令将在/usr/adm/sulog文件中写一条信息,若该文件记录了大量试图用su进入root的无效操作信息,则表明了可能有人企图破译root口令。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Linux命令有着强大的功能。对于Linux系统管理员来说，往往只需要通过各种安全命令技巧，组合构成安全防线。从计算机安全的角度看，世界上没有绝对安全的计算机系统，Linux系统也不例外&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;strong&gt;命令整理&lt;/strong&gt;&lt;strong&gt;(6) &lt;/strong&gt;&lt;strong&gt;其他&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在前面几讲中，我们把Linux命令按照在系统中的作用分成几个部分分别予以介绍。但是，还有一些命令不好划分，然而学习它们同样是比较重要的。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;tar&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;/p&gt;&#xD;
&lt;p&gt;tar命令是Unix/Linux系统中备份文件的可靠方法，几乎可以工作于任何环境中，它的使用权限是所有用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;tar [主选项+辅选项] 文件或目录&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数&lt;/p&gt;&#xD;
&lt;p&gt;使用该命令时，主选项是必须要有的，它告诉tar要做什么事情，辅选项是辅助使用的，可以选用。主选项：&lt;/p&gt;&#xD;
&lt;p&gt;-c 创建新的档案文件。如果用户想备份一个目录或是一些文件，就要选择这个选项。-r 把要存档的文件追加到档案文件的未尾。例如用户已经做好备份文件，又发现还有一个目录或是一些文件忘记备份了，这时可以使用该选项，将忘记的目录或文件追加到备份文件中。&lt;/p&gt;&#xD;
&lt;p&gt;-t 列出档案文件的内容，查看已经备份了哪些文件。&lt;/p&gt;&#xD;
&lt;p&gt;-u 更新文件。就是说，用新增的文件取代原备份文件，如果在备份文件中找不到要更新的文件，则把它追加到备份文件的最后。&lt;/p&gt;&#xD;
&lt;p&gt;-x 从档案文件中释放文件。辅助选项：&lt;/p&gt;&#xD;
&lt;p&gt;-b 该选项是为磁带机设定的，其后跟一数字，用来说明区块的大小，系统预设值为20（20&amp;#215;512 bytes）。&lt;/p&gt;&#xD;
&lt;p&gt;-f 使用档案文件或设备，这个选项通常是必选的。&lt;/p&gt;&#xD;
&lt;p&gt;-k 保存已经存在的文件。例如把某个文件还原，在还原的过程中遇到相同的文件，不会进行覆盖。&lt;/p&gt;&#xD;
&lt;p&gt;-m 在还原文件时，把所有文件的修改时间设定为现在。&lt;/p&gt;&#xD;
&lt;p&gt;-M 创建多卷的档案文件，以便在几个磁盘中存放。&lt;/p&gt;&#xD;
&lt;p&gt;-v 详细报告tar处理的文件信息。如无此选项，tar不报告文件信息。&lt;/p&gt;&#xD;
&lt;p&gt;-w 每一步都要求确认。&lt;/p&gt;&#xD;
&lt;p&gt;-z 用gzip来压缩/解压缩文件，加上该选项后可以将档案文件进行压缩，但还原时也一定要使用该选项进行解压缩。&lt;/p&gt;&#xD;
&lt;p&gt;4.应用说明 &lt;/p&gt;&#xD;
&lt;p&gt;tar 是Tape Archive（磁带归档）的缩写，最初设计用于将文件打包到磁带上。如果下载过Linux的源代码，或许已经碰到过tar文件&lt;/p&gt;&#xD;
&lt;p&gt;请注意，不要忘了Linux是区分大小写的。例如，tar命令应该总是以小写的形式执行。命令行开关可以是大写、小写或大小写的混合。例如，-t和-T执行不同的功能。文件或目录名称可以混合使用大小写，而且就像命令和命令行开关一样是区分大小写的。&lt;/p&gt;&#xD;
&lt;p&gt;5.应用实例 &lt;/p&gt;&#xD;
&lt;p&gt;tar是一个命令行的工具，没有图形界面。使用Konsole打开一个终端窗口，接下来是一个简单的备份命令（在/temp目录中创建一个back.tar的文件，/usr目录中所有内容都包含在其中。）：&lt;/p&gt;&#xD;
&lt;p&gt;$tar cvf - /usr &amp;gt; /temp/back.tar另外，tar命令支持前面第三讲中讲过的crontab命令，可以用crontab工具设置成基于时间的有规律地运行。例如，每晚6点把/usr目录备份到hda&amp;#8212;第一个IDE接口的主驱动器 (总是位于第一个硬盘)中，只要将下面语句添加到root的crontab中即可： $00 06 * * * tar cvf /dev/hda1/usrfiles.tar - /usr&lt;/p&gt;&#xD;
&lt;p&gt;一般情况下，以下这些目录是需要备份的：&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670;/etc 包含所有核心配置文件，其中包括网络配置、系统名称、防火墙规则、用户、组，以及其它全局系统项。&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; /var 包含系统守护进程（服务）所使用的信息，包括DNS配置、DHCP租期、邮件缓冲文件、HTTP服务器文件、dB2实例配置等。&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670;/home 包含所有默认用户的主目录，包括个人设置、已下载的文件和用户不希望失去的其它信息。&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670;/root 根（root）用户的主目录。&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670;/opt 是安装许多非系统文件的地方。IBM软件就安装在这里。OpenOffice、JDK和其它软件在默认情况下也安装在这里。有些目录是可以不备份的：&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670; /proc 应该永远不要备份这个目录。它不是一个真实的文件系统，而是运行内核和环境的虚拟化视图，包括诸如/proc/kcore这样的文件，这个文件是整个运行内存的虚拟视图。备份这些文件只是在浪费资源。&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#9670;/dev 包含硬件设备的文件表示。如果计划还原到一个空白的系统，就可以备份/dev。然而，如果计划还原到一个已安装的Linux 系统，那么备份/dev是没有必要的。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;unzip&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;/p&gt;&#xD;
&lt;p&gt;unzip 命令位于/usr/bin目录中，它们和MS DOS下的pkzip、pkunzip及MS Windows中的Winzip软件功能一样，将文件压缩成.zip文件，以节省硬盘空间，当需要的时候再将压缩文件用unzip命令解开。该命令使用权限是所有用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式 &lt;/p&gt;&#xD;
&lt;p&gt;unzip [-cflptuvz][-agCjLMnoqsVX][-P &amp;lt;密码&amp;gt;][.zip文件][文件][-d &amp;lt;目录&amp;gt;][-x &amp;lt;文件&amp;gt;]&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &lt;/p&gt;&#xD;
&lt;p&gt;-c：将解压缩的结果显示到屏幕上，并对字符做适当的转换。&lt;/p&gt;&#xD;
&lt;p&gt;-f：更新现有的文件。&lt;/p&gt;&#xD;
&lt;p&gt;-l：显示压缩文件内所包含的文件。&lt;/p&gt;&#xD;
&lt;p&gt;-p：与-c参数类似，会将解压缩的结果显示到屏幕上，但不会执行任何的转换。&lt;/p&gt;&#xD;
&lt;p&gt;-t：检查压缩文件是否正确。&lt;/p&gt;&#xD;
&lt;p&gt;-u：与-f参数类似，但是除了更新现有的文件外，也会将压缩文件中的其它文件解压缩到目录中。&lt;/p&gt;&#xD;
&lt;p&gt;-v：执行是时显示详细的信息。&lt;/p&gt;&#xD;
&lt;p&gt;-z：仅显示压缩文件的备注文字。&lt;/p&gt;&#xD;
&lt;p&gt;-a：对文本文件进行必要的字符转换。&lt;/p&gt;&#xD;
&lt;p&gt;-b：不要对文本文件进行字符转换。&lt;/p&gt;&#xD;
&lt;p&gt;-C：压缩文件中的文件名称区分大小写。&lt;/p&gt;&#xD;
&lt;p&gt;-j：不处理压缩文件中原有的目录路径。&lt;/p&gt;&#xD;
&lt;p&gt;-L：将压缩文件中的全部文件名改为小写。&lt;/p&gt;&#xD;
&lt;p&gt;-M：将输出结果送到more程序处理。&lt;/p&gt;&#xD;
&lt;p&gt;-n：解压缩时不要覆盖原有的文件。&lt;/p&gt;&#xD;
&lt;p&gt;-o：不必先询问用户，unzip执行后覆盖原有文件。&lt;/p&gt;&#xD;
&lt;p&gt;-P&amp;lt;密码&amp;gt;：使用zip的密码选项。&lt;/p&gt;&#xD;
&lt;p&gt;-q：执行时不显示任何信息。&lt;/p&gt;&#xD;
&lt;p&gt;-s：将文件名中的空白字符转换为底线字符。&lt;/p&gt;&#xD;
&lt;p&gt;-V：保留VMS的文件版本信息。&lt;/p&gt;&#xD;
&lt;p&gt;-X：解压缩时同时回存文件原来的UID/GID。&lt;/p&gt;&#xD;
&lt;p&gt;[.zip文件]：指定.zip压缩文件。&lt;/p&gt;&#xD;
&lt;p&gt;[文件]：指定要处理.zip压缩文件中的哪些文件。&lt;/p&gt;&#xD;
&lt;p&gt;-d&amp;lt;目录&amp;gt;：指定文件解压缩后所要存储的目录。&lt;/p&gt;&#xD;
&lt;p&gt;-x&amp;lt;文件&amp;gt;：指定不要处理.zip压缩文件中的哪些文件。&lt;/p&gt;&#xD;
&lt;p&gt;-Z unzip：-Z等于执行zipinfo指令。在Linux中，还提供了一个叫zipinfo的工具，能够察看zip压缩文件的详细信息。unzip最新版本是5.50。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;gunzip&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用&lt;/p&gt;&#xD;
&lt;p&gt;gunzip命令作用是解压文件，使用权限是所有用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;gunzip [-acfhlLnNqrtvV][-s &amp;lt;压缩字尾字符串&amp;gt;][文件...] &lt;/p&gt;&#xD;
&lt;p&gt;或者&lt;/p&gt;&#xD;
&lt;p&gt;gunzip [-acfhlLnNqrtvV][-s &amp;lt;压缩字尾字符串&amp;gt;][目录]&lt;/p&gt;&#xD;
&lt;p&gt;3.主要参数 &lt;/p&gt;&#xD;
&lt;p&gt;-a或--ascii：使用ASCII文字模式。&lt;/p&gt;&#xD;
&lt;p&gt;-c或--stdout或--to-stdout：把解压后的文件输出到标准输出设备。&lt;/p&gt;&#xD;
&lt;p&gt;-f或-force：强行解开压缩文件，不理会文件名称或硬连接是否存在，以及该文件是否为符号连接。&lt;/p&gt;&#xD;
&lt;p&gt;-h或--help：在线帮助。&lt;/p&gt;&#xD;
&lt;p&gt;-l或--list：列出压缩文件的相关信息。&lt;/p&gt;&#xD;
&lt;p&gt;-L或--license：显示版本与版权信息。&lt;/p&gt;&#xD;
&lt;p&gt;-n或--no-name：解压缩时，若压缩文件内含有原来的文件名称及时间戳记，则将其忽略不予处理。&lt;/p&gt;&#xD;
&lt;p&gt;-N或--name：解压缩时，若压缩文件内含有原来的文件名称及时间戳记，则将其回存到解开的文件上。&lt;/p&gt;&#xD;
&lt;p&gt;-q或--quiet：不显示警告信息。&lt;/p&gt;&#xD;
&lt;p&gt;-r或--recursive：递归处理，将指定目录下的所有文件及子目录一并处理。&lt;/p&gt;&#xD;
&lt;p&gt;-S&amp;lt;压缩字尾字符串&amp;gt;或--suffix&amp;lt;压缩字尾字符串&amp;gt;：更改压缩字尾字符串。&lt;/p&gt;&#xD;
&lt;p&gt;-t或--test：测试压缩文件是否正确无误。&lt;/p&gt;&#xD;
&lt;p&gt;-v或--verbose：显示指令执行过程。&lt;/p&gt;&#xD;
&lt;p&gt;-V或--version：显示版本信息。4.说明&lt;/p&gt;&#xD;
&lt;p&gt;gunzip是个使用广泛的解压缩程序，它用于解开被gzip压缩过的文件，这些压缩文件预设最后的扩展名为&amp;#8220;.gz&amp;#8221;。事实上，gunzip就是gzip的硬连接，因此不论是压缩或解压缩，都可通过gzip指令单独完成。gunzip最新版本是1.3.3 。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;unarj&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;/p&gt;&#xD;
&lt;p&gt;unarj解压缩格式为.arj格式的文件，使用权限是所有用户。2.格式&lt;/p&gt;&#xD;
&lt;p&gt;unarj [eltx][.arj压缩文件]3.主要参数&lt;/p&gt;&#xD;
&lt;p&gt;e：解压缩.arj文件。&lt;/p&gt;&#xD;
&lt;p&gt;l：显示压缩文件内所包含的文件。&lt;/p&gt;&#xD;
&lt;p&gt;t：检查压缩文件是否正确。&lt;/p&gt;&#xD;
&lt;p&gt;x：解压缩时保留原有的路径。4.说明&lt;/p&gt;&#xD;
&lt;p&gt;带有.arj扩展名的文件是由用于MS DOS和Windows的ARJ实用程序创建的。因为ARJ是一种不能免费获得源代码的共享件程序，所以在Linux平台上几乎不存在与其功能匹配的工具，要解压缩.arj文件，就要使用unarj实用程序。unarj比ARJ慢，能力也不如ARJ，但至少能够顺利地抽取大多数.arj文件。unarj 只能将文件抽取到当前的工作目录、列出档案内容，或者测试档案。从ARJ Software的站点或携带所需Linux发行版的FTP服务器上可以下载 unarj源码。另外，unarj通常是基本Linux发行版的一部分，因此可以在主要发行版本的 CD-ROM上找到它。如果需要可到所有Linux发行版链接的列表下载，ARJ软件网址为&lt;/p&gt;&#xD;
&lt;p sizset="34" sizcache="1"&gt;http: //www.arjsoft.com，ARJ的下载页面为&lt;a href="http://www.arjsoft.com/files.htm"&gt;http://www.arjsoft.com/files.htm&lt;/a&gt; 。unarj最新版本是2.65，注意unarj选项不是以减号(-)开头的。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;mtools&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;/p&gt;&#xD;
&lt;p&gt;mtools 实际上是一个命令集合，是DOS文件系统的工具程序，它可以模拟许多DOS命令，使用起来非常方便。使用权限是所有用户。Linux系统提供了一组称为 mtools的可移植工具，可以让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件非常有用。mtools的使用非常简单，如果想把软盘里所有的文件都拷贝到硬盘上，那么就可以执行以下命令：&lt;/p&gt;&#xD;
&lt;p&gt;mcopy a:*.*也就是说，只需要在相应的DOS命令之前加上一个字母&amp;#8220;m&amp;#8221;，就可以完成对应的功能了。一般Linux发行版本中都有这个软件，可以使用下面命令检查一下。&lt;/p&gt;&#xD;
&lt;p&gt;rpm -qa|grep mtools &lt;/p&gt;&#xD;
&lt;p sizset="35" sizcache="1"&gt;如果没有安装，也没有关系，可以从网上下载(http://mtools.linux.lu/)一个最新版本来安装。目前可供下载的最新mtools版本是3.9.9，下载链接为 &lt;br /&gt;&lt;a href="http://mtools.linux.lu/mtools-3.9.9-3.i386.rpm。下载后安装一下即可。"&gt;http://mtools.linux.lu/mtools-3.9.9-3.i386.rpm。下载后安装一下即可。&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;2.包括的命令&lt;/p&gt;&#xD;
&lt;p&gt;mcd 目录名：改变MS DOS下的目录。&lt;/p&gt;&#xD;
&lt;p&gt;mcopy 源文件 目标文件：在MS DOS和Unix之间复制文件。&lt;/p&gt;&#xD;
&lt;p&gt;mdel 文件名：删除MS DOS下的文件。&lt;/p&gt;&#xD;
&lt;p&gt;mdir 目录名：显示MS DOS下的目录。&lt;/p&gt;&#xD;
&lt;p&gt;mformat 驱动器号：在低级格式化的软盘上创建MS DOS文件系统。&lt;/p&gt;&#xD;
&lt;p&gt;rnlabel 驱动器号：产生MS DOS下的卷标。&lt;/p&gt;&#xD;
&lt;p&gt;mmd 目录名：建立MS DOS下的目录。&lt;/p&gt;&#xD;
&lt;p&gt;mrd 目录名：删除MS DOS下的目录。&lt;/p&gt;&#xD;
&lt;p&gt;mren 源文件 目标文件：重新命名已存在的MS DOS文件。&lt;/p&gt;&#xD;
&lt;p&gt;mtype 文件名：显示MS DOS文件的内容。&lt;/p&gt;&#xD;
&lt;p&gt;请注意，这些命令和对应的MS DOS命令非常相似。在mtools命令中，&amp;#8220;/&amp;#8221;和&amp;#8220;/&amp;#8221;是可以混用的。因为文件列表的是DOS系统下的文档，对大小写并不敏感，所以&amp;#8220;CDE&amp;#8221;和&amp;#8220;cde&amp;#8221;在这里是一样的。&lt;/p&gt;&#xD;
&lt;p&gt;3.应用实例 &lt;/p&gt;&#xD;
&lt;p&gt;(1)如果把软盘进行快速格式化，可以使用命令mformat：&lt;/p&gt;&#xD;
&lt;p&gt;mformat A：&lt;/p&gt;&#xD;
&lt;p&gt;mtools 当初发展的目的是用来处理DOS文件系统的，所以只能用在FAT文件格式的分区上。需要注意的是，如果用mount命令来挂载了FAT16/32分区，那么就不能使用mtools的指令来处理这些分区上的文件。这是因为一旦FAT16/32分区挂到了Linux文件目录下，Linux就会将其视为文件系统本身的一部分，这时如果要对其操作就必须使用Linux本身所附带的指令集。&lt;/p&gt;&#xD;
&lt;p&gt;(2)将DOS盘上的文件htca.c复制到当前目录下，并用ls命令进行验证。&lt;/p&gt;&#xD;
&lt;p&gt;$ mcopy a:/htca.c &lt;/p&gt;&#xD;
&lt;p&gt;$ ls -l htca.c &lt;/p&gt;&#xD;
&lt;p&gt;-rw-r- -r- - 1 xxq xxq 27136 Jan 1 01:80 htca.c &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;man&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用&lt;/p&gt;&#xD;
&lt;p&gt;man命令用来提供在线帮助，使用权限是所有用户。在Linux系统中存储着一部联机使用的手册，以供用户在终端上查找。使用man命令可以调阅其中的帮助信息，非常方便和实用。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;man 命令名称&lt;/p&gt;&#xD;
&lt;p&gt;man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M path] [-P pager] [-S section_list] [section] name ...3.参数&lt;/p&gt;&#xD;
&lt;p&gt;-C config_file：指定设定文件man.conf，缺省值是/etc/man.conf。&lt;/p&gt;&#xD;
&lt;p&gt;-M path：指定了联机手册的搜寻路径, 如果没有指定则使用环境变数MANPATH的设定；如果没有使用MANPATH， 则会使用/usr/lib/man.conf内的设定；如果MANPATH是空字串，则表示使用缺省值。&lt;/p&gt;&#xD;
&lt;p&gt;-P pager：指定使用何种pager.man会优先使用此选项设定，然后是依环境变数MANPAGER设定，然后是环境变数PAGER；man缺省使用/usr/bin/less -is。&lt;/p&gt;&#xD;
&lt;p&gt;-S section_list man：所搜寻的章节列表(以冒号分隔)，此选项会覆盖环境变数MANSECT的设定。&lt;/p&gt;&#xD;
&lt;p&gt;-a man：缺省情况是在显示第一个找到的手册之后，就会停止搜寻，使用此选项会强迫man继续显示所有符合name的联机手册。&lt;/p&gt;&#xD;
&lt;p&gt;-c：即使有最新的cat page，也继续对联机手册重新作排版，本选项在屏幕的行列数改变时或已排版的联机手册损坏时特别有意义。&lt;/p&gt;&#xD;
&lt;p&gt;-d：不要真的显示联机手册，只显示除错讯息。&lt;/p&gt;&#xD;
&lt;p&gt;-D：同时显示联机手册与除错讯息。&lt;/p&gt;&#xD;
&lt;p&gt;-h：显示求助讯息然后结束程式 。&lt;/p&gt;&#xD;
&lt;p&gt;-K：对所有的联机手册搜寻所指定的字串。请注意，本功能回应速度可能很慢，如果指定section（区域）会对速度有帮助。&lt;/p&gt;&#xD;
&lt;p&gt;-m system：依所指定的system名称而指定另一组的联机手册。&lt;/p&gt;&#xD;
&lt;p&gt;man：是manual（手册）的缩写。在输入命令有困难时，可以立刻得到这个文档。例如, 如果使用ps命令时遇到困难，可以输入man ps得到帮助信息，此时会显示出ps的手册页。&lt;/p&gt;&#xD;
&lt;p&gt;由于手册页（man page）是用less程序来看的(可以方便地使屏幕上翻和下翻), 所以在man page里可以使用less的所有选项。&lt;/p&gt;&#xD;
&lt;p&gt;less中比较重要的功能键有: &lt;/p&gt;&#xD;
&lt;p&gt;[q] 退出；&lt;/p&gt;&#xD;
&lt;p&gt;[Enter] 一行行地下翻；&lt;/p&gt;&#xD;
&lt;p&gt;[Space] 一页页地下翻；&lt;/p&gt;&#xD;
&lt;p&gt;[b] 上翻一页；&lt;/p&gt;&#xD;
&lt;p&gt;[/] 后跟一个字符串和[Enter]来查找字符串；&lt;/p&gt;&#xD;
&lt;p&gt;[n] 发现上一次查找的下一个匹配。4.阅读手册页&lt;/p&gt;&#xD;
&lt;p&gt;手册页在很少的空间里提供了很多的信息， 这里简单介绍一下大多数手册页中都有的部分内容。Linux手册页主要有九个部分：用户指令、系统调用、程序库、设备说明、文件格式、游戏、杂项、系统指令、内核。&lt;/p&gt;&#xD;
&lt;p&gt;5.应用实例 &lt;/p&gt;&#xD;
&lt;p&gt;Linux 命令中有一些基础的、重要的命令，例如ps、find、cat和ls等。下面来举一个综合应用的例子，由此可以看出man的地位在Linux中可谓至关重要。但是，man所显示的信息却不是普通的文本，如果直接将这些文字重定向到一个文本文件，就会发现在man中高亮显示的文字就变成了两个，而且有不计其数的制表符，使打印、编辑都变得非常不便。不过，使用下面这样一条语句就能得到ps命令打印。&lt;/p&gt;&#xD;
&lt;p&gt;# man ps | col -b | lpr &lt;/p&gt;&#xD;
&lt;p&gt;这条命令同时运用了输出重定向和管道两种技巧，作用是将ps命令的帮助信息可以直接打印出来。更多的Man文件可以查看Linux Man&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;unencode&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;/p&gt;&#xD;
&lt;p&gt;unencode命令可以把一个二进制文件表编码为一个文本文件，使用权限是所有用户。&lt;/p&gt;&#xD;
&lt;p&gt;2.格式&lt;/p&gt;&#xD;
&lt;p&gt;uuencode [-hv] [源文件] 目标文件3.主要参数&lt;/p&gt;&#xD;
&lt;p&gt;－h：列出指令使用格式(help) 。&lt;/p&gt;&#xD;
&lt;p&gt;－v：列出版本信息。4.应用说明&lt;/p&gt;&#xD;
&lt;p&gt;uuencode指令可以将二进制文件转化成可使用电子邮件发送的ASCII编码形式。uuencode编码后的资料都以 begin开始，以end作为结束，且通常其中的每一行的开始均为&amp;#8220;M&amp;#8221;，中间部分是编码过的文件，编码后的文件比源文件要大一些。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;uudecode&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.作用 &lt;/p&gt;&#xD;
&lt;p&gt;uudecode命令用来将uuencode编码后的档案还原，uudecode只会将begin与end标记之间的编码资料还原，程序会跳过标记以外的资料。它的使用权限为所有用户。2.格式&lt;/p&gt;&#xD;
&lt;p&gt;uuencode [-hv] [file1 ...]3.主要参数&lt;/p&gt;&#xD;
&lt;p&gt;－h：列出指令使用格式(help)。&lt;/p&gt;&#xD;
&lt;p&gt;－v：列出版本信息。4.应用实例&lt;/p&gt;&#xD;
&lt;p&gt;使用下面命令一次还原几个文件：&lt;/p&gt;&#xD;
&lt;p&gt;uuencode file1.uud file2.uud file3.uud &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;动手练习&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt;&lt;strong&gt;在Linux命令行下发送邮件 &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;虽然Linux桌面应用发展很快，但是命令行（Shell）在Linux中依然有很强的生命力。如果能确认电子邮件服务器支持8bit的字节，就可以直接使用下面命令：&lt;/p&gt;&#xD;
&lt;p&gt;cat ＜附件文件名＞ | mail ＜邮件地址＞&lt;/p&gt;&#xD;
&lt;p&gt;cat（cat是concatenate的缩写）命令是将几个文件处理成一个文件，并将这种处理的结果保存到一个单独的输出文件，这里我们用它来合并邮件的文本。&lt;/p&gt;&#xD;
&lt;p&gt;写好邮件名称，比如叫cjkmail，然后使用下面命令：&lt;/p&gt;&#xD;
&lt;p&gt;$uuencode ＜附件文件名＞ ＜附件文件名＞ &amp;gt;&amp;gt;cjkmail &lt;/p&gt;&#xD;
&lt;p&gt;这样就可以用vi编辑器写cjkmail文件，并在前面写上信的正文，然后寄出。&lt;/p&gt;&#xD;
&lt;p&gt;对方收到信后，把信中属于cjkmail中的内容拷贝出来，存为themail.uue。如果对方是在Windows下，就可以用WinRAR或WinZip解压，这样就可以看到附件。&lt;/p&gt;&#xD;
&lt;p&gt;如果对方也使用Linux，可以用undecode命令还原：&lt;/p&gt;&#xD;
&lt;p&gt;$ uudencode -o＜附件文件名＞ themail.uue&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt;&lt;strong&gt;实现tar的分卷 &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;笔者想把一个378MB的文件压缩成多个63MB的文件（笔者的USB为64MB），使用下面命令：&lt;/p&gt;&#xD;
&lt;p&gt;$tar czvf - dir | split -d -b 63m然后合并命令：&lt;/p&gt;&#xD;
&lt;p&gt;$cat x* &amp;gt; dir.tgz &lt;/p&gt;&#xD;
&lt;p&gt;以上例子实际是由三个命令组合完成的，即用tar打包，用split分割，用cat合并。&amp;#8220;tar czvf - dir&amp;#8221;的意思是把dir目录打包，并输出到标准输出（argv），这样就可以直接用管道输出给split。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt;&lt;strong&gt;连续执行一个命令 &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;使用watch命令，可以反复执行命令。如果和ls配合，可以达到观察某文件大小变化的效果。&lt;/p&gt;&#xD;
&lt;p&gt;$watch ls －l file.name&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt;&lt;strong&gt;用tar命令导出一个文件 &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;有一个tar格式的DVD文件GLvPro6.4_linux.tar，因为该文件非常大（4.7GB），如果全部解压比较麻烦，可以用下面命令先导出readme.txt看看。&lt;/p&gt;&#xD;
&lt;p&gt;tar xvf GLvPro6.4_linux.tar readme.txt &lt;/p&gt;&#xD;
&lt;p&gt;这样readme.txt就单独被导出了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;5.&lt;/strong&gt;&lt;strong&gt;用tar打包一个目录时只备份其中的几个子目录 &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;tar cf --exclude home/cjh home/cao &lt;/p&gt;&#xD;
&lt;p&gt;这样home目录下只有cjh和cao两个子目录备份。&lt;/p&gt;&#xD;
&lt;p&gt;到此为止，Linux必学的60个命令已经全部介绍完了。Linux的命令行方式功能强大，如果熟练掌握了Linux的常用命令，往往只需要通过各种技巧就可以组合构成一条复杂的命令，从而完成用户任务。Linux系统中的命令实在是太多了，不可能像在MS DOS中把所有的命令及参数都记住。Linux系统提供了一些方法，比如可以通过&amp;#8220;help&amp;#8221;和&amp;#8220;man&amp;#8221;来查询名令。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Source&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;source命令的作用就是用来执行一个脚本，那么：source a.sh 同直接执行 ./a.sh 有什么不同呢，比如你在一个脚本里export $KKK=111 ,如果你用./a.sh执行该脚本，执行完毕后，你运行 echo $KKK ,发现没有值，如果你用source来执行 ，然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的，所以执行后，结构并没有反应到父shell里，但是source不同它就是在本shell中执行的，所以可以看到结果。&lt;/p&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/csj007523/aggbug/2110773.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/csj007523/archive/2011/07/19/2110773.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/csj007523/archive/2011/07/19/2110765.html</id><title type="text">掌握Linux编程的10个步骤</title><summary type="text">掌握Linux编程的10个步骤 转载做linux c语言开发有一小阵子了，在这边自己总结了些心得，相信能让不懂得Linux编程的人慢慢步入Linux殿堂。有任何不对或不准确之处欢迎讨论。1. 安装 linux 操作系统既然要学习linux下的c语言开发，那么安装个linux操作系统是必须的。建议安装Ubuntu，这是我目前见过界面最友好的linux操作系统了。关于如何使用Ubuntu以及在其上作开发，可参考我的另外一篇敝作《Ubuntu使用心得》：http://download.csdn.net/source/22062892. 熟悉 linux 操作系统下的命令Linux提供了大量的命令，利</summary><published>2011-07-19T08:48:00Z</published><updated>2011-07-19T08:48:00Z</updated><author><name>大树2</name><uri>http://www.cnblogs.com/csj007523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/csj007523/archive/2011/07/19/2110765.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/csj007523/archive/2011/07/19/2110765.html"/><content type="html">&lt;h3 sizcache="1" sizset="23"&gt;&lt;span  sizcache="1" sizset="23"&gt;&lt;a title="掌握Linux编程的10个步骤" href="http://blog.csdn.net/sikinzen/article/details/5503883"&gt;掌握Linux编程的10个步骤&lt;/a&gt;&lt;/span&gt; 转载&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div  sizcache="1" sizset="28"&gt;&#xD;
&lt;p&gt;做linux c语言开发有一小阵子了，在这边自己总结了些心得，相信能让不懂得Linux编程的人慢慢步入Linux殿堂。有任何不对或不准确之处欢迎讨论。&lt;/p&gt;&#xD;
&lt;p&gt;1. 安装 linux 操作系统&lt;/p&gt;&#xD;
&lt;p sizcache="1" sizset="28"&gt;既然要学习linux下的c语言开发，那么安装个linux操作系统是必须的。建议安装Ubuntu，这是我目前见过界面最友好的linux操作系统了。关于如何使用Ubuntu以及在其上作开发，可参考我的另外一篇敝作《&lt;a href="http://blog.csdn.net/sikinzen/archive/2010/04/05/5452742.aspx"&gt;Ubuntu使用心得&lt;/a&gt;》：&lt;a title="http://download.csdn.net/source/2206289" href="http://download.csdn.net/source/2206289"&gt;http://download.csdn.net/source/2206289&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;2. 熟悉 linux 操作系统下的命令&lt;/p&gt;&#xD;
&lt;p&gt;Linux提供了大量的命令，利用它可以有效地完成大量的工作，如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以，在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统，就必须从Linux命令学起，通过基础的命令学习可以进一步理解Linux系统。&lt;/p&gt;&#xD;
&lt;p sizcache="1" sizset="30"&gt;关于linux下的命令，欢迎参考我blog上一篇文章《&lt;a href="http://blog.csdn.net/sikinzen/archive/2010/04/19/5503769.aspx"&gt;Linux命令整理&lt;/a&gt;》：&lt;a title="http://blog.csdn.net/sikinzen/archive/2010/04/19/5503769.aspx" href="http://blog.csdn.net/sikinzen/archive/2010/04/19/5503769.aspx"&gt;http://blog.csdn.net/sikinzen/archive/2010/04/19/5503769.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;3. 学会一种源码编辑器&lt;/p&gt;&#xD;
&lt;p&gt;很多大牛推荐使用 vim/emacs之类的工具，但我还是用着不习惯，应该是我能力未到。我个人比较喜欢的开发方式是：在windows下编辑代码，在linux下编译。&lt;/p&gt;&#xD;
&lt;p sizcache="1" sizset="32"&gt;我自己非常喜欢用SourceInsight来编辑代码，这个工具的使用可参考我blog上一篇文章《Source Insight的应用技巧、宏功能》：&lt;a title="http://blog.csdn.net/sikinzen/archive/2010/04/09/5468511.aspx" href="http://blog.csdn.net/sikinzen/archive/2010/04/09/5468511.aspx"&gt;http://blog.csdn.net/sikinzen/archive/2010/04/09/5468511.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4. 掌握gcc和gdb&lt;/p&gt;&#xD;
&lt;p&gt;掌握gcc的基本用法，并且会用gdb来调试程序。 &lt;/p&gt;&#xD;
&lt;p&gt;5. 用好 C 语言&lt;/p&gt;&#xD;
&lt;p&gt;工作中发现：C语言大家都会，但核心思想就不一定都能理会。我自己觉得也只是摸到了门径，还需要实践锻炼。&lt;/p&gt;&#xD;
&lt;p&gt;推荐：《C陷阱与缺陷》、《C专家编程》、《C程序设计语言》。&lt;/p&gt;&#xD;
&lt;p&gt;6. 学会写makefile，以及用它来组织源码&lt;/p&gt;&#xD;
&lt;p&gt;当项目大了后，用命令行逐个逐个编译、link文件的工作量是非常恐怖的，这时候make就起作用，即使是很小的项目，我认为也应该采用make组织。&lt;/p&gt;&#xD;
&lt;p&gt;关于makefile，请参考网上文章《跟我一起写Makefile》或《GNU make中文手册》。这两篇文章都相当得好。&lt;/p&gt;&#xD;
&lt;p&gt;7. Linux应用编程&lt;/p&gt;&#xD;
&lt;p&gt;终于说到正题了，呵呵。&lt;/p&gt;&#xD;
&lt;p&gt;Linux上的应用编程基本上两本书就搞定了：《APUE》和《UNP》，前者锻炼基本功，后者学习网络编程。&lt;/p&gt;&#xD;
&lt;p&gt;这边我直接引用网上某位先生的评论：&lt;/p&gt;&#xD;
&lt;p&gt;如果想学习UNIX/LINUX的编程，《APUE》绝对经典的教材，加深一下功底，学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。 然后再看Douglus E. Comer的《用TCP/IP进行网际互连》第一卷，学习一下网络的知识，再看《UNP》的第一卷，不仅学习网络编程，而且对系统编程的一些常用的技巧就很熟悉了，如果继续网络编程，建议看《TCP/IP进行网际互连》的第三卷，里面有很多关于应用协议telnet、ftp等协议的编程。&lt;/p&gt;&#xD;
&lt;p&gt;8. Linux驱动与内核编程 &lt;br /&gt;驱动程序的门槛较高，首先你要学会Linux应用编程，至少看过《APUE》。&lt;/p&gt;&#xD;
&lt;p&gt;驱动编程的主要工作我认为至少有两点：理解linux内核框架和模块的概念、懂得看芯片datasheet。&lt;/p&gt;&#xD;
&lt;p&gt;第一点其实就是先学会编写一个测试驱动程序。&lt;/p&gt;&#xD;
&lt;p&gt;推荐经典教材：《linux设备驱动程序》。&lt;/p&gt;&#xD;
&lt;p&gt;另外，还有 《深入理解Linux内核》。&lt;/p&gt;&#xD;
&lt;p&gt;最重要的是：手头要有一块嵌入式板子进行实践。&lt;/p&gt;&#xD;
&lt;p&gt;9. 掌握一种 cvs 工具&lt;/p&gt;&#xD;
&lt;p&gt;如果不懂cvs的话，赶紧到 baidu 搜索下。不用cvs的项目很容易面临代码丢失的问题，且不易做bug回归。&lt;/p&gt;&#xD;
&lt;p&gt;10. 数据结构和算法&lt;/p&gt;&#xD;
&lt;p&gt;上过计算机基础课的人都知道：程序=数据结构+算法。这两项才是程序员的根本，如同武侠小说中的&amp;#8220;内功&amp;#8221;。&amp;nbsp; 有时间的话建议重温这两部分。推荐书籍：《Algorithms in C》、《算法导论》&lt;/p&gt;&#xD;
&lt;p&gt;呵呵，其实这一小块我没有发言权，我自己是从自动化专业转行来写程序的，数据结构和算法都没学过，目前正在自学恶补中。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;后记：&lt;/p&gt;&#xD;
&lt;p&gt;通过上面几个步骤，我想成为一个称职的linux程序员是没问题了。但如果要成为专家的话，我自己觉得还应该为自己选好方向并努力前进。&lt;/p&gt;&#xD;
&lt;p&gt;让我们一块努力！&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/csj007523/aggbug/2110765.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/csj007523/archive/2011/07/19/2110765.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/csj007523/archive/2011/07/04/2097510.html</id><title type="text">Android 之自定义组件</title><summary type="text">1、如何在一个按钮上放上一张图片？把按钮和图片套在一个FrameLayout中&amp;lt;!-- 必须将button和ImageView分别嵌套在两个LinearLayout中才能 实现将图片放在按钮上 --&amp;gt;&amp;lt;FrameLayoutandroid:orientation=&amp;quot;horizontal&amp;quot;android:layout_width=&amp;quot;wrap_content&amp;quot;android:layout_height=&amp;quot;wrap_content&amp;quot;&amp;gt;&amp;lt;LinearLayoutandroid:layout_width=&amp;quot</summary><published>2011-07-04T08:10:00Z</published><updated>2011-07-04T08:10:00Z</updated><author><name>大树2</name><uri>http://www.cnblogs.com/csj007523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/csj007523/archive/2011/07/04/2097510.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/csj007523/archive/2011/07/04/2097510.html"/><content type="html">&lt;div &gt;&#xD;
&lt;p&gt;1、如何在一个按钮上放上一张图片？&lt;br /&gt;把按钮和图片套在一个FrameLayout中&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;!-- 必须将button和ImageView分别嵌套在两个LinearLayout中才能 实现将图片放在按钮上 --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;FrameLayout&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:orientation="horizontal"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:layout_width="wrap_content"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:layout_height="wrap_content"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;LinearLayout&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:layout_width="wrap_content"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:layout_height="wrap_content"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Button&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;style="@style/menu_btn_style"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:id="@+id/fan_us"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:text="@string/mainmenu_facebook_fan_us" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;LinearLayout&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:layout_width="wrap_content"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:layout_height="wrap_content"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ImageView&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:layout_width="wrap_content"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:layout_height="wrap_content"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:layout_marginLeft="16dp"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:layout_marginTop="13dp"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:src="@drawable/facebookicon" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/FrameLayout&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;2、如何自定义组件&lt;br /&gt;自定义一个下划线形式的输入框&lt;/p&gt;&#xD;
&lt;p&gt;第一：确定要画多少条下划线&lt;br /&gt;第二：每条线的宽度&lt;br /&gt;第三：下划线的间距&lt;/p&gt;&#xD;
&lt;p&gt;（1）自定义文本输入框&lt;br /&gt;package com.heima.guesswho.util;&lt;/p&gt;&#xD;
&lt;p&gt;import com.heima.android.guesswho.R;&lt;/p&gt;&#xD;
&lt;p&gt;import android.content.Context;&lt;br /&gt;import android.content.res.TypedArray;&lt;br /&gt;import android.graphics.Canvas;&lt;br /&gt;import android.graphics.Color;&lt;br /&gt;import android.graphics.Paint;&lt;br /&gt;import android.util.AttributeSet;&lt;br /&gt;import android.widget.EditText;&lt;/p&gt;&#xD;
&lt;p&gt;public class DashlineEditText extends EditText {&lt;br /&gt;&amp;nbsp;/*&lt;br /&gt;&amp;nbsp; * 假设下划线总长100个单位，要画7条下划线，每条下划线间距为2个单位&lt;br /&gt;&amp;nbsp; * 具体算法如下：&lt;br /&gt;&amp;nbsp; * 每条下划线的长度：(100+2)/7-2&lt;br /&gt;&amp;nbsp; * for(int i = 0;i&amp;lt;7,i++){&lt;br /&gt;&amp;nbsp; * &amp;nbsp;&amp;nbsp;&amp;nbsp; 第i条线&lt;br /&gt;&amp;nbsp; * &amp;nbsp; x1 = ((100+2)/7)*i&lt;br /&gt;&amp;nbsp; * &amp;nbsp; y1 = getHeight()&lt;br /&gt;&amp;nbsp; * &amp;nbsp; x2 = ((100+2)/7)*i+(100+2)/7-2&lt;br /&gt;&amp;nbsp; * &amp;nbsp; y2 = getHeight()&lt;br /&gt;&amp;nbsp; * }&lt;br /&gt;&amp;nbsp; * &lt;br /&gt;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;private Paint linePaint = new Paint();&lt;br /&gt;&amp;nbsp;private&amp;nbsp; int segmentCount = 8;//总共画8条分割线，可以作为默认值&lt;br /&gt;&amp;nbsp;private&amp;nbsp; int distance = 5;//每个分割线的间距为4个单位，可以作为默认值&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;/*&lt;br /&gt;&amp;nbsp; * 从布局文件中得到对应属性的值&lt;br /&gt;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;public DashlineEditText(Context context, AttributeSet attrs) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;super(context, attrs);&lt;br /&gt;&amp;nbsp;&amp;nbsp;setBackgroundDrawable(null);//消除文本框效果的作用&lt;br /&gt;&amp;nbsp;&amp;nbsp;//linePaint.setColor(Color.RED);//设置画笔的颜色&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.DashLineET);&lt;br /&gt;&amp;nbsp;&amp;nbsp;segmentCount = array.getInt(R.styleable.DashLineET_segment_count, segmentCount);//从指定属性中拿到对应的值，若没设置，则用默认值&lt;br /&gt;&amp;nbsp;&amp;nbsp;distance = array.getInt(R.styleable.DashLineET_distance, distance);&lt;br /&gt;&amp;nbsp;&amp;nbsp;int color = array.getInt(R.styleable.DashLineET_dashline_color, Color.RED);&lt;br /&gt;&amp;nbsp;&amp;nbsp;linePaint.setColor(color);&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;@Override&lt;br /&gt;&amp;nbsp;protected void onDraw(Canvas canvas) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;super.onDraw(canvas);&lt;br /&gt;&amp;nbsp;&amp;nbsp;int width = getWidth();//自定义控件的宽度&lt;br /&gt;&amp;nbsp;&amp;nbsp;int height = getHeight()-3;//必须减去数才能显示出下划线&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//画出每一条下划线&lt;br /&gt;&amp;nbsp;&amp;nbsp;for(int i = 0; i &amp;lt; segmentCount; i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;int oneSegmentWidth = (width+distance)/segmentCount - distance;//每条下划线的长度&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;int startX = (segmentCount+distance)*i ;//每条下划线的起点位置&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;int stopX = startX+oneSegmentWidth ;//每条下划线的终点位置&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;canvas.drawLine(startX, height, stopX, height, linePaint);&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;（2）布局文件&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;LinearLayout&lt;br /&gt;&amp;nbsp;xmlns:android="&lt;a href="http://schemas.android.com/apk/res/android"&gt;&lt;font color="#336699"&gt;http://schemas.android.com/apk/res/android&lt;/font&gt;&lt;/a&gt;"&lt;br /&gt;&amp;nbsp;android:orientation="vertical"&lt;br /&gt;&amp;nbsp;android:layout_width="fill_parent"&lt;br /&gt;&amp;nbsp;android:layout_height="fill_parent"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;TextView&lt;br /&gt;&amp;nbsp;&amp;nbsp;android:layout_width="fill_parent"&lt;br /&gt;&amp;nbsp;&amp;nbsp;android:layout_height="wrap_content"&lt;br /&gt;&amp;nbsp;&amp;nbsp;android:text="@string/debug_name" /&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;com.heima.guesswho.util.DashlineEditText&lt;br /&gt;&amp;nbsp;&amp;nbsp;android:layout_width="100dp"&lt;br /&gt;&amp;nbsp;&amp;nbsp;android:layout_height="12dp"&lt;br /&gt;&amp;nbsp;&amp;nbsp;android:text="test" /&amp;gt;&lt;br /&gt;&amp;lt;/LinearLayout&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;定义自定义组件的属性&lt;/p&gt;&#xD;
&lt;p&gt;第一步：在string.xml文件中配置declare-styleable&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;!-- 定义DashLineEditText的属性 --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;declare-styleable&lt;br /&gt;&amp;nbsp;&amp;nbsp;name="DashLineET"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;attr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;name="segments_cnt"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;format="integer" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;attr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;name="distance"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;format="dimension" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;attr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;name="dashline_color"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;format="color" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;attr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;name="hint_msg"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;format="reference" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;attr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;name="hint_color"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;format="color" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;/declare-styleable&amp;gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;第二步：在自定义组件中复写构造方法，用来获取布局文件中属性的值&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;/*&lt;br /&gt;&amp;nbsp; * 从布局文件中得到对应属性的值&lt;br /&gt;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;public DashlineEditText(Context context, AttributeSet attrs) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;super(context, attrs);&lt;br /&gt;&amp;nbsp;&amp;nbsp;setBackgroundDrawable(null);//消除文本框效果的作用&lt;br /&gt;&amp;nbsp;&amp;nbsp;//linePaint.setColor(Color.RED);//设置画笔的颜色&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.DashLineET);&lt;br /&gt;&amp;nbsp;&amp;nbsp;segmentCount = array.getInt(R.styleable.DashLineET_segment_count, segmentCount);//从指定属性中拿到对应的值，若没设置，则用默认值&lt;br /&gt;&amp;nbsp;&amp;nbsp;distance = array.getInt(R.styleable.DashLineET_distance, distance);&lt;br /&gt;&amp;nbsp;&amp;nbsp;int color = array.getInt(R.styleable.DashLineET_dashline_color, Color.RED);&lt;br /&gt;&amp;nbsp;&amp;nbsp;linePaint.setColor(color);&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;第三步：在使用自定义组件的布局文件中加入命名空间&lt;/p&gt;&#xD;
&lt;p&gt;如xmlns:heima="&lt;a href="http://schemas.android.com/apk/res/com.heima.android.guesswho"&gt;&lt;font color="#336699"&gt;http://schemas.android.com/apk/res/com.heima.android.guesswho&lt;/font&gt;&lt;/a&gt;"&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;heima 为我们使用属性时使用的前缀，相当于使用Android属性时要使用android前缀一样&lt;br /&gt;其中com.heima.android.guesswho，为清单文件标识应用的包名&lt;/p&gt;&#xD;
&lt;p&gt;布局文件如下&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;LinearLayout&lt;br /&gt;&amp;nbsp;xmlns:android="&lt;a href="http://schemas.android.com/apk/res/android"&gt;&lt;font color="#336699"&gt;http://schemas.android.com/apk/res/android&lt;/font&gt;&lt;/a&gt;"&lt;br /&gt;&amp;nbsp;xmlns:heima="&lt;a href="http://schemas.android.com/apk/res/com.heima.android.guesswho"&gt;&lt;font color="#336699"&gt;http://schemas.android.com/apk/res/com.heima.android.guesswho&lt;/font&gt;&lt;/a&gt;"&lt;br /&gt;&amp;nbsp;android:orientation="vertical"&lt;br /&gt;&amp;nbsp;android:layout_width="fill_parent"&lt;br /&gt;&amp;nbsp;android:layout_height="fill_parent"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;TextView&lt;br /&gt;&amp;nbsp;&amp;nbsp;android:layout_width="fill_parent"&lt;br /&gt;&amp;nbsp;&amp;nbsp;android:layout_height="wrap_content"&lt;br /&gt;&amp;nbsp;&amp;nbsp;android:text="@string/debug_name" /&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;com.heima.guesswho.util.DashlineEditText&lt;br /&gt;&amp;nbsp;&amp;nbsp;android:layout_width="100dp"&lt;br /&gt;&amp;nbsp;&amp;nbsp;android:layout_height="12dp"&lt;br /&gt;&amp;nbsp;&amp;nbsp;heima:segment_count="10"&lt;br /&gt;&amp;nbsp;&amp;nbsp;heima:distance="3"&lt;br /&gt;&amp;nbsp;&amp;nbsp;android:text="test" /&amp;gt;&lt;br /&gt;&amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;lt;com.heima.guesswho.util.DashlineEditText&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:layout_width="210dip"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;heima:segment_count="9"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;heima:distance="4dip"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;heima:dashline_color="@color/font_white"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:layout_height="wrap_content"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:textColor="#FF0000"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:hint="@string/input_name_prompt"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android:text="" /&amp;gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/csj007523/aggbug/2097510.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/csj007523/archive/2011/07/04/2097510.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/csj007523/archive/2011/07/04/2097504.html</id><title type="text">android 之手机拨号器，以及短信发送器的简单实现</title><summary type="text">android手机拨号器，以及短信发送器的简单实现其中本例中的手机拨号器并不是我们自己完全去实现，而是通过intent让android系统自带的拨号器去实现拨号的功能，一、电话拨号器第一步：对资源文件夹values中的string.xml文件进行配置，（在应用程序中需用到的字符串资源如button按钮上的名字、TextView中的内容都在此定义，然后再布局文件中可以进行使用）&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&amp;lt;resources&amp;gt; &amp;lt;string name=&amp;quot;hello&amp;q</summary><published>2011-07-04T08:06:00Z</published><updated>2011-07-04T08:06:00Z</updated><author><name>大树2</name><uri>http://www.cnblogs.com/csj007523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/csj007523/archive/2011/07/04/2097504.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/csj007523/archive/2011/07/04/2097504.html"/><content type="html">&lt;p&gt;android手机拨号器，以及短信发送器的简单实现&lt;/p&gt;&#xD;
&lt;p&gt;其中本例中的手机拨号器并不是我们自己完全去实现，而是通过intent让android系统自带的拨号器去实现拨号的功能，&lt;/p&gt;&#xD;
&lt;p&gt;一、电话拨号器&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;第一步：对资源文件夹values中的string.xml文件进行配置，（在应用程序中需用到的字符串资源如button按钮上的名字、TextView中的内容都在此定义，然后再布局文件中可以进行使用）&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;resources&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string name="hello"&amp;gt;Hello World, PhoneActivity!&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string name="app_name"&amp;gt;电话拨号器&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string name="textview_name"&amp;gt;请输入电话号码&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string name="button_name"&amp;gt;拨号&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;lt;/resources&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;第二步：对资源中布局文件夹下的main.xml文件进行配置，该文件控制Activity的布局&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;LinearLayout xmlns:android="&lt;a href="http://schemas.android.com/apk/res/android"&gt;&lt;font color="#336699"&gt;http://schemas.android.com/apk/res/android&lt;/font&gt;&lt;/a&gt;"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:orientation="vertical"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width="fill_parent"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height="fill_parent"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;TextView&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width="fill_parent" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height="wrap_content" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:text="@string/textview_name"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;EditText&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width="fill_parent" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height="wrap_content" &lt;br /&gt;&amp;nbsp; &amp;nbsp;android:id="@+id/edittext_id"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width="fill_parent" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height="wrap_content" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:text="@string/button_name"&lt;br /&gt;&amp;nbsp; &amp;nbsp;android:id="@+id/button_id"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;lt;/LinearLayout&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;第三步：实现包含业务逻辑的具体的Activity&lt;/p&gt;&#xD;
&lt;p&gt;package com.heima.phone;&lt;/p&gt;&#xD;
&lt;p&gt;import android.app.Activity;&lt;br /&gt;import android.content.Intent;&lt;br /&gt;import android.net.Uri;&lt;br /&gt;import android.os.Bundle;&lt;br /&gt;import android.view.View;&lt;br /&gt;import android.widget.Button;&lt;br /&gt;import android.widget.EditText;&lt;/p&gt;&#xD;
&lt;p&gt;public class PhoneActivity extends Activity {&lt;br /&gt;&amp;nbsp;EditText editText;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onCreate(savedInstanceState);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setContentView(R.layout.main);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; editText = (EditText) this.findViewById(R.id.edittext_id);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Button button = (Button) this.findViewById(R.id.button_id);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; button.setOnClickListener(new PhoneListener());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final class PhoneListener implements View.OnClickListener{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;lt;action android:name="android.intent.action.CALL" /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;lt;category android:name="android.intent.category.DEFAULT" /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;lt;data android:scheme="tel" /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;@Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;public void onClick(View v) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;String telephone = editText.getText().toString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Intent intent = new Intent();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;intent.setAction("android.intent.action.CALL");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;intent.setData(Uri.parse("tel:"+telephone));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;startActivity(intent);// 隐式注册android.intent.category.DEFAULT，因此无需显示调用intent.setAction("android.intent.action.CALL");&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;二、短信发送器&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://hi.csdn.net/attachment/201104/6/0_1302108890LQsb.gif" /&gt;&lt;img alt="" src="http://hi.csdn.net/attachment/201104/6/0_1302108923rNDd.gif" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;第一步：配置资源文件string.xml&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;resources&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string name="hello"&amp;gt;Hello World, SMSActivity!&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string name="app_name"&amp;gt;短信发送器&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string name="telephone_number"&amp;gt;请输入手机号码&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string name="sms_content"&amp;gt;请输入短信内容&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string name="buttonname"&amp;gt;发送短信&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string name="show"&amp;gt;发送成功&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;lt;/resources&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;第二步：配置布局文件&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;LinearLayout xmlns:android="&lt;a href="http://schemas.android.com/apk/res/android"&gt;&lt;font color="#336699"&gt;http://schemas.android.com/apk/res/android&lt;/font&gt;&lt;/a&gt;"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:orientation="vertical"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width="fill_parent"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height="fill_parent"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;TextView&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width="fill_parent" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height="wrap_content" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:text="@string/telephone_number"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;EditText&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width="fill_parent" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height="wrap_content" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:id="@+id/phone_id"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextView&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width="fill_parent" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height="wrap_content" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:text="@string/sms_content"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;EditText&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width="fill_parent" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height="wrap_content" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:maxLines="3"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:id="@+id/sms_id"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width="wrap_content" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height="wrap_content" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:id="@+id/button_id"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;lt;/LinearLayout&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;第三步：实现Activity&lt;/p&gt;&#xD;
&lt;p&gt;package com.heima.sms;&lt;/p&gt;&#xD;
&lt;p&gt;import java.util.ArrayList;&lt;/p&gt;&#xD;
&lt;p&gt;import android.app.Activity;&lt;br /&gt;import android.os.Bundle;&lt;br /&gt;import android.telephony.gsm.SmsManager;&lt;br /&gt;import android.view.View;&lt;br /&gt;import android.widget.Button;&lt;br /&gt;import android.widget.EditText;&lt;br /&gt;import android.widget.Toast;&lt;/p&gt;&#xD;
&lt;p&gt;public class SMSActivity extends Activity {&lt;br /&gt;&amp;nbsp;EditText phone;&lt;br /&gt;&amp;nbsp;EditText sms;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onCreate(savedInstanceState);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setContentView(R.layout.main);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phone = (EditText) this.findViewById(R.id.phone_id);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sms = (EditText) this.findViewById(R.id.sms_id);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Button button = (Button) this.findViewById(R.id.button_id);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; button.setOnClickListener(new SMSListener());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final class SMSListener implements View.OnClickListener{&lt;/p&gt;&#xD;
&lt;p&gt;@Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;public void onClick(View v) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;String phoneNumber = phone.getText().toString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;String smscontent = sms.getText().toString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//得到短信管理器&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SmsManager manager = SmsManager.getDefault();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//divideMessage方法用于分割内容过长的短信&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ArrayList&amp;lt;String&amp;gt; contents = manager.divideMessage(smscontent);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(String content:contents){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* 各个参数的含义&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * destinationAddress 短信接收者号码、&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * scAddress 短信转发中心号码，一般为默认为null即可&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * text 短信内容sentIntent 不太清楚，暂时设为null&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * deliveryIntent 不太清楚，暂时设为null&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;manager.sendTextMessage(phoneNumber, null, content, null, null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//不要忘记写show方法，否则没有信息发送状态提示，Toast.LENGTH_LONG标示显示时间稍长&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Toast.makeText(getApplicationContext(), R.string.show, Toast.LENGTH_LONG).show();&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;特别注意在短信发送器的例子中一定要注意在AndroidManifest.xml文件中配置属性，&lt;br /&gt;&amp;lt;uses-permission android:name="android.permission.SEND_SMS"/&amp;gt;&lt;br /&gt;否则老是报程序异常终止异常&lt;/p&gt;&lt;img src="http://www.cnblogs.com/csj007523/aggbug/2097504.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/csj007523/archive/2011/07/04/2097504.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/csj007523/archive/2011/07/04/2097500.html</id><title type="text">Android SDCard操作(文件读写,容量计算)</title><summary type="text">Android SDCard操作(文件读写,容量计算) android.os.Environment提供访问环境变量java.lang.Objectandroid.os.EnvironmentEnvironment静态方法：方法 :getDataDirectory()返回 :File解释 : 返回Data的目录方法 :getDownloadCacheDirectory()返回 :File解释 : 返回下载缓冲区目录方法 :getExternalStorageDirectory()返回 :File解释 : 返回扩展存储区目录(SDCard)方法 :getExternalStoragePublic</summary><published>2011-07-04T08:04:00Z</published><updated>2011-07-04T08:04:00Z</updated><author><name>大树2</name><uri>http://www.cnblogs.com/csj007523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/csj007523/archive/2011/07/04/2097500.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/csj007523/archive/2011/07/04/2097500.html"/><content type="html">&lt;div &gt;&lt;a  id="ctl02_TitleUrl" href="http://www.cnblogs.com/playing/archive/2010/09/15/1827006.html"&gt;&lt;span style="color: #333333"&gt;Android SDCard操作(文件读写,容量计算)&lt;/span&gt;&lt;/a&gt; &lt;/div&gt;&#xD;
&lt;div id="cnblogs_post_body"&gt;&#xD;
&lt;p&gt;&lt;span&gt;android.os.Environment&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;提供访问环境变量&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;table  border="0"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td  colspan="2"&gt;&lt;a href="http://ophone8.com/doc/android10doc-oms8/docs/reference/java/lang/Object.html"&gt;&lt;span style="color: #525252"&gt;java.lang.Object&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;android.os.Environment&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Environment&amp;nbsp;静态方法：&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span&gt;方法 :&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#getDataDirectory%28%29"&gt;&lt;span style="color: #525252"&gt;getDataDirectory&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;()&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;返回 :&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;a href="http://ophone8.com/doc/android10doc-oms8/docs/reference/java/io/File.html"&gt;&lt;span style="color: #525252"&gt;File&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 返回Data的目录&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;方法 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#getDownloadCacheDirectory%28%29"&gt;&lt;span style="color: #525252"&gt;getDownloadCacheDirectory&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;()&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;返回 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://ophone8.com/doc/android10doc-oms8/docs/reference/java/io/File.html"&gt;&lt;span style="color: #525252"&gt;File&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 返回下载缓冲区目录&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;方法 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#getExternalStorageDirectory%28%29"&gt;&lt;span style="color: #525252"&gt;getExternalStorageDirectory&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;()&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;返回 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://ophone8.com/doc/android10doc-oms8/docs/reference/java/io/File.html"&gt;&lt;span style="color: #525252"&gt;File&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 返回扩展存储区目录(SDCard)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;方法 :&amp;nbsp;&lt;span &gt;getExternalStoragePublicDirectory&lt;/span&gt;&amp;nbsp;(&lt;/span&gt;&lt;a href="http://ophone8.com/doc/android10doc-oms8/docs/reference/java/lang/String.html"&gt;&lt;span style="color: #525252"&gt;String&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;type)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;返回 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://ophone8.com/doc/android10doc-oms8/docs/reference/java/io/File.html"&gt;&lt;span style="color: #525252"&gt;File&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 返回一个高端的公用的外部存储器目录来摆放某些类型的文件(来自网上)&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;方法 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#getRootDirectory%28%29"&gt;&lt;span style="color: #525252"&gt;getRootDirectory&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;()&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;返回 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://ophone8.com/doc/android10doc-oms8/docs/reference/java/io/File.html"&gt;&lt;span style="color: #525252"&gt;File&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 返回Android的根目录&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;方法 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#getExternalStorageState%28%29"&gt;&lt;span style="color: #525252"&gt;getExternalStorageState&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;()&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;返回 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://ophone8.com/doc/android10doc-oms8/docs/reference/java/lang/String.html"&gt;&lt;span style="color: #525252"&gt;String&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 返回外部存储设备的当前状态&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#getExternalStorageState%28%29"&gt;&lt;span style="color: #525252"&gt;getExternalStorageState&lt;/span&gt;&lt;/a&gt;&lt;strong&gt;&amp;nbsp;() 返回的状态&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: 16px; line-height: 24px"&gt;&lt;a href="http://ophone8.com/doc/android10doc-oms8/docs/reference/java/lang/String.html"&gt;&lt;span style="color: #525252"&gt;String&lt;/span&gt;&lt;/a&gt;&lt;strong&gt;&amp;nbsp;类型常量 :&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;常量 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#MEDIA_BAD_REMOVAL"&gt;&lt;span style="color: #525252"&gt;MEDIA_BAD_REMOVAL&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;值&amp;nbsp;&amp;nbsp;&amp;nbsp; : "bad_removal"&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 在没有正确卸载SDCard之前移除了&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;常量 : MEDIA_CHECKING&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;值&amp;nbsp;&amp;nbsp;&amp;nbsp; : "checking"&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 正在磁盘检查&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;常量 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#MEDIA_MOUNTED"&gt;&lt;span style="color: #525252"&gt;MEDIA_MOUNTED&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;值&amp;nbsp;&amp;nbsp;&amp;nbsp; : "mounted"&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 已经挂载并且拥有可读可写权限&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;常量 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#MEDIA_MOUNTED_READ_ONLY"&gt;&lt;span style="color: #525252"&gt;MEDIA_MOUNTED_READ_ONLY&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;值&amp;nbsp;&amp;nbsp;&amp;nbsp; : "mounted_ro"&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 已经挂载,但只拥有可读权限&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;常量 : MEDIA_NOFS&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;值&amp;nbsp;&amp;nbsp;&amp;nbsp; : "nofs"&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 对象空白,或者文件系统不支持&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;常量 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#MEDIA_REMOVED"&gt;&lt;span style="color: #525252"&gt;MEDIA_REMOVED&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;值&amp;nbsp;&amp;nbsp;&amp;nbsp; : "removed"&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 已经移除扩展设备&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;常量 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#MEDIA_SHARED"&gt;&lt;span style="color: #525252"&gt;MEDIA_SHARED&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;值&amp;nbsp;&amp;nbsp;&amp;nbsp; : "shared"&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 如果SDCard未挂载,并通过USB大容量存储共享&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;常量 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#MEDIA_UNMOUNTABLE"&gt;&lt;span style="color: #525252"&gt;MEDIA_UNMOUNTABLE&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;值&amp;nbsp;&amp;nbsp;&amp;nbsp; : "unmountable"&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 不可以挂载任何扩展设备&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;常量 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/Environment.html#MEDIA_UNMOUNTED"&gt;&lt;span style="color: #525252"&gt;MEDIA_UNMOUNTED&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;值&amp;nbsp;&amp;nbsp;&amp;nbsp; : "unmounted"&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 已经卸载&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-weight: bold; font-size: 21px; line-height: 31px"&gt;使用时只需先判断SDCard当前的状态然后取得SdCard的目录即可(见源代码)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;---------------------------------------------------------------------------------------------------------&lt;/p&gt;&#xD;
&lt;ol &gt;&lt;li&gt;&lt;span &gt;//SDcard&amp;nbsp;操作&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;span&gt;ublic&amp;nbsp;&lt;span &gt;void&lt;/span&gt;&amp;nbsp;SDCardTest()&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span &gt;//&amp;nbsp;获取扩展SD卡设备状态&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;span&gt;String&amp;nbsp;sDStateString&amp;nbsp;=&amp;nbsp;android.os.Environment.getExternalStorageState();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span &gt;//&amp;nbsp;拥有可读可写权限&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;span &gt;if&lt;/span&gt;&amp;nbsp;(sDStateString.equals(android.os.Environment.MEDIA_MOUNTED))&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;try&lt;/span&gt;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;//&amp;nbsp;获取扩展存储设备的文件目录&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File&amp;nbsp;SDFile&amp;nbsp;=&amp;nbsp;android.os.Environment&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.getExternalStorageDirectory();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;//&amp;nbsp;打开文件&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File&amp;nbsp;myFile&amp;nbsp;=&amp;nbsp;&lt;span &gt;new&lt;/span&gt;&amp;nbsp;File(SDFile.getAbsolutePath()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&amp;nbsp;File.separator&amp;nbsp;+&amp;nbsp;&lt;span &gt;"MyFile.txt"&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;//&amp;nbsp;判断是否存在,不存在则创建&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;if&lt;/span&gt;&amp;nbsp;(!myFile.exists())&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myFile.createNewFile();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;//&amp;nbsp;写数据&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;szOutText&amp;nbsp;=&amp;nbsp;&lt;span &gt;"Hello,&amp;nbsp;World!"&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileOutputStream&amp;nbsp;outputStream&amp;nbsp;=&amp;nbsp;&lt;span &gt;new&lt;/span&gt;&amp;nbsp;FileOutputStream(myFile);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;outputStream.write(szOutText.getBytes());&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;outputStream.close();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span &gt;catch&lt;/span&gt;&amp;nbsp;(Exception&amp;nbsp;e)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;//&amp;nbsp;TODO:&amp;nbsp;handle&amp;nbsp;exception&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;span &gt;//&amp;nbsp;end&amp;nbsp;of&amp;nbsp;try&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;}&lt;span &gt;//&amp;nbsp;end&amp;nbsp;of&amp;nbsp;if(MEDIA_MOUNTED)&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span &gt;//&amp;nbsp;拥有只读权限&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;span &gt;else&lt;/span&gt;&amp;nbsp;&lt;span &gt;if&lt;/span&gt;&amp;nbsp;(sDStateString&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.endsWith(android.os.Environment.MEDIA_MOUNTED_READ_ONLY))&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;//&amp;nbsp;获取扩展存储设备的文件目录&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File&amp;nbsp;SDFile&amp;nbsp;=&amp;nbsp;android.os.Environment.getExternalStorageDirectory();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;//&amp;nbsp;创建一个文件&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File&amp;nbsp;myFile&amp;nbsp;=&amp;nbsp;&lt;span &gt;new&lt;/span&gt;&amp;nbsp;File(SDFile.getAbsolutePath()&amp;nbsp;+&amp;nbsp;File.separator&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&amp;nbsp;&lt;span &gt;"MyFile.txt"&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;//&amp;nbsp;判断文件是否存在&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;if&lt;/span&gt;&amp;nbsp;(myFile.exists())&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;try&lt;/span&gt;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;//&amp;nbsp;读数据&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInputStream&amp;nbsp;inputStream&amp;nbsp;=&amp;nbsp;&lt;span &gt;new&lt;/span&gt;&amp;nbsp;FileInputStream(myFile);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;byte&lt;/span&gt;[]&amp;nbsp;buffer&amp;nbsp;=&amp;nbsp;&lt;span &gt;new&lt;/span&gt;&amp;nbsp;&lt;span &gt;byte&lt;/span&gt;[&lt;span &gt;&lt;font color="#c00000"&gt;1024&lt;/font&gt;&lt;/span&gt;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;inputStream.read(buffer);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;inputStream.close();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span &gt;catch&lt;/span&gt;&amp;nbsp;(Exception&amp;nbsp;e)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;//&amp;nbsp;TODO:&amp;nbsp;handle&amp;nbsp;exception&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;span &gt;//&amp;nbsp;end&amp;nbsp;of&amp;nbsp;try&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;span &gt;//&amp;nbsp;end&amp;nbsp;of&amp;nbsp;if(myFile)&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;}&lt;span &gt;//&amp;nbsp;end&amp;nbsp;of&amp;nbsp;if(MEDIA_MOUNTED_READ_ONLY)&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span &gt;//&amp;nbsp;end&amp;nbsp;of&amp;nbsp;func&lt;/span&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span&gt;计算SDCard的容量大小&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span&gt;android.os.StatFs&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;table  border="0"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td  colspan="2"&gt;&lt;a href="http://ophone8.com/doc/android10doc-oms8/docs/reference/java/lang/Object.html"&gt;&lt;span style="color: #525252"&gt;java.lang.Object&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;android.os.StatFs&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;构造方法:&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/StatFs.html#StatFs%28java.lang.String%29"&gt;&lt;span style="color: #525252"&gt;StatFs&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;a href="http://ophone8.com/doc/android10doc-oms8/docs/reference/java/lang/String.html"&gt;&lt;span style="color: #525252"&gt;String&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;path)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;公用方法:&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;方法 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/StatFs.html#getAvailableBlocks%28%29"&gt;&lt;span style="color: #525252"&gt;getAvailableBlocks&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;()&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;返回 : int&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 :返回文件系统上剩下的可供程序使用的块&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;方法 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/StatFs.html#getBlockCount%28%29"&gt;&lt;span style="color: #525252"&gt;getBlockCount&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;()&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;返回 : int&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 返回文件系统上总共的块&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;方法 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/StatFs.html#getBlockSize%28%29"&gt;&lt;span style="color: #525252"&gt;getBlockSize&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;()&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;返回 : int&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 返回文件系统 一个块的大小单位byte&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;方法 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/StatFs.html#getFreeBlocks%28%29"&gt;&lt;span style="color: #525252"&gt;getFreeBlocks&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;()&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;返回 : int&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 返回文件系统上剩余的所有块 包括预留的一般程序无法访问的&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;方法 :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.chinaup.org/docs/reference/android/os/StatFs.html#restat%28java.lang.String%29"&gt;&lt;span style="color: #525252"&gt;restat&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;a href="http://ophone8.com/doc/android10doc-oms8/docs/reference/java/lang/String.html"&gt;&lt;span style="color: #525252"&gt;String&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;path)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;返回 : void&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;解释 : 执行一个由该对象所引用的文件系统雷斯塔特.(Google翻译)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span&gt;想计算SDCard大小和使用情况时, 只需要得到SD卡总共拥有的Block数或是剩余没用的Block数,再乘以每个Block的大小就是相应的容量大小了单位byte.(见代码)&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;span&gt;Java代码&amp;nbsp;&lt;/span&gt;&#xD;
&lt;object type="application/x-shockwave-flash" height="15" width="14" data="http://crackren.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf"&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;ol &gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;strong&gt;&lt;span style="color: #006699"&gt;public&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;&lt;span &gt;&lt;strong&gt;&lt;span style="color: #006699"&gt;void&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;SDCardSizeTest()&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span &gt;&lt;span style="color: #008200"&gt;//&amp;nbsp;取得SDCard当前的状态&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;span&gt;String&amp;nbsp;sDcString&amp;nbsp;=&amp;nbsp;android.os.Environment.getExternalStorageState();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span &gt;&lt;strong&gt;&lt;span style="color: #006699"&gt;if&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;(sDcString.equals(android.os.Environment.MEDIA_MOUNTED))&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;span style="color: #008200"&gt;//&amp;nbsp;取得sdcard文件路径&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File&amp;nbsp;pathFile&amp;nbsp;=&amp;nbsp;android.os.Environment&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.getExternalStorageDirectory();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;android.os.StatFs&amp;nbsp;statfs&amp;nbsp;=&amp;nbsp;&lt;span &gt;&lt;strong&gt;&lt;span style="color: #006699"&gt;new&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;android.os.StatFs(pathFile.getPath());&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;span style="color: #008200"&gt;//&amp;nbsp;获取SDCard上BLOCK总数&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;strong&gt;&lt;span style="color: #006699"&gt;long&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;nTotalBlocks&amp;nbsp;=&amp;nbsp;statfs.getBlockCount();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;span style="color: #008200"&gt;//&amp;nbsp;获取SDCard上每个block的SIZE&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;strong&gt;&lt;span style="color: #006699"&gt;long&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;nBlocSize&amp;nbsp;=&amp;nbsp;statfs.getBlockSize();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;span style="color: #008200"&gt;//&amp;nbsp;获取可供程序使用的Block的数量&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;strong&gt;&lt;span style="color: #006699"&gt;long&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;nAvailaBlock&amp;nbsp;=&amp;nbsp;statfs.getAvailableBlocks();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;span style="color: #008200"&gt;//&amp;nbsp;获取剩下的所有Block的数量(包括预留的一般程序无法使用的块)&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;strong&gt;&lt;span style="color: #006699"&gt;long&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;nFreeBlock&amp;nbsp;=&amp;nbsp;statfs.getFreeBlocks();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;span style="color: #008200"&gt;//&amp;nbsp;计算SDCard&amp;nbsp;总容量大小MB&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;strong&gt;&lt;span style="color: #006699"&gt;long&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;nSDTotalSize&amp;nbsp;=&amp;nbsp;nTotalBlocks&amp;nbsp;*&amp;nbsp;nBlocSize&amp;nbsp;/&amp;nbsp;&lt;span &gt;&lt;font color="#c00000"&gt;1024&lt;/font&gt;&lt;/span&gt;&amp;nbsp;/&amp;nbsp;&lt;span &gt;&lt;font color="#c00000"&gt;1024&lt;/font&gt;&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;span style="color: #008200"&gt;//&amp;nbsp;计算&amp;nbsp;SDCard&amp;nbsp;剩余大小MB&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&lt;strong&gt;&lt;span style="color: #006699"&gt;long&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;nSDFreeSize&amp;nbsp;=&amp;nbsp;nAvailaBlock&amp;nbsp;*&amp;nbsp;nBlocSize&amp;nbsp;/&amp;nbsp;&lt;span &gt;&lt;font color="#c00000"&gt;1024&lt;/font&gt;&lt;/span&gt;&amp;nbsp;/&amp;nbsp;&lt;span &gt;&lt;font color="#c00000"&gt;1024&lt;/font&gt;&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;}&lt;span &gt;&lt;span style="color: #008200"&gt;//&amp;nbsp;end&amp;nbsp;of&amp;nbsp;if&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span &gt;&lt;span style="color: #008200"&gt;//&amp;nbsp;end&amp;nbsp;of&amp;nbsp;func&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/csj007523/aggbug/2097500.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/csj007523/archive/2011/07/04/2097500.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/csj007523/archive/2011/06/30/2094035.html</id><title type="text">android 之互联网应用(socket,url,http,httpurlconnection,apache http,webview)</title><summary type="text">android 之互联网应用1&amp;gt; socket;2&amp;gt; url;3&amp;gt; http;4&amp;gt; httpurlconnection;5&amp;gt; apache http;6&amp;gt; webview &amp;amp; javascript；7&amp;gt; wifi无线传输；8&amp;gt; 蓝牙无线传输.1&amp;gt; socket介绍，用法 Socket通常也称做”套接字“，用于描述IP地址和端口，废话不多说，它就是网络通信过程中端点的抽象表示。值得一提的是，Java在包java.net中提供了两个类Socket和ServerSocket，分别用来表示双向连接的客户端和服务端。这是两个封装得非常好的类，</summary><published>2011-06-30T01:34:00Z</published><updated>2011-06-30T01:34:00Z</updated><author><name>大树2</name><uri>http://www.cnblogs.com/csj007523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/csj007523/archive/2011/06/30/2094035.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/csj007523/archive/2011/06/30/2094035.html"/><content type="html">&lt;p&gt;android 之互联网应用&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1&amp;gt; socket;&lt;/p&gt;&#xD;
&lt;p&gt;2&amp;gt; url;&lt;/p&gt;&#xD;
&lt;p&gt;3&amp;gt; http;&lt;/p&gt;&#xD;
&lt;p&gt;4&amp;gt; httpurlconnection;&lt;/p&gt;&#xD;
&lt;p&gt;5&amp;gt; apache http;&lt;/p&gt;&#xD;
&lt;p&gt;6&amp;gt; webview &amp;amp; javascript；&lt;/p&gt;&#xD;
&lt;p&gt;7&amp;gt; wifi无线传输；&lt;/p&gt;&#xD;
&lt;p&gt;8&amp;gt; 蓝牙无线传输.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1&amp;gt; socket介绍，用法 &lt;/p&gt;&#xD;
&lt;p&gt;Socket通常也称做&amp;#8221;套接字&amp;#8220;，用于描述IP地址和端口，废话不多说，它就是网络通信过程中端点的抽象表示。值得一提的是，Java在包java.net中提供了两个类Socket和ServerSocket，分别用来表示双向连接的客户端和服务端。这是两个封装得非常好的类，使用起来很方便！ &lt;/p&gt;&#xD;
&lt;p&gt;下面将首先创建一个SocketServer的类作为服务端如下，该服务端实现了多线程机制，可以在特定端口处监听多个客户请求，一旦有客户请求，Server总是会创建一个服务纯种来服务新来的客户，而自己继续监听。程序中accept()是一个阻塞函数，所谓阻塞性方法就是说该方法被调用后将等待客户的请求，直到有一个客户启动并请求连接到相同的端口，然后accept()返回一个对应于客户的Socket。这时，客户方和服务方都建立了用于通信的Socket，接下来就是由各个Socket分别打开各自的输入、输出流。&lt;/p&gt;&#xD;
&lt;ul&gt;&lt;li&gt;SocketServer类，服务器实现： &lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;div&gt;&lt;span style="color: #008080"&gt; 1&lt;/span&gt; &lt;span style="color: #000000"&gt;package HA.Socket;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 2&lt;/span&gt; &lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 3&lt;/span&gt; &lt;span style="color: #000000"&gt;import java.io.&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 4&lt;/span&gt; &lt;span style="color: #000000"&gt;import java.net.&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 5&lt;/span&gt; &lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 6&lt;/span&gt; &lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt; SocketServer {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 7&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 8&lt;/span&gt; &lt;span style="color: #000000"&gt;    ServerSocket sever;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 9&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;10&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; SocketServer(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt; port){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;11&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;12&lt;/span&gt; &lt;span style="color: #000000"&gt;            sever &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; ServerSocket(port);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;13&lt;/span&gt; &lt;span style="color: #000000"&gt;        }&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;(IOException e){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;14&lt;/span&gt; &lt;span style="color: #000000"&gt;            e.printStackTrace();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;15&lt;/span&gt; &lt;span style="color: #000000"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;16&lt;/span&gt; &lt;span style="color: #000000"&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;17&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;18&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt; beginListen(){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;19&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;while&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;20&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;21&lt;/span&gt; &lt;span style="color: #000000"&gt;                final Socket socket &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; sever.accept();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;22&lt;/span&gt; &lt;span style="color: #000000"&gt;                &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;23&lt;/span&gt; &lt;span style="color: #000000"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; Thread(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; Runnable(){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;24&lt;/span&gt; &lt;span style="color: #000000"&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt; run(){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;25&lt;/span&gt; &lt;span style="color: #000000"&gt;                        BufferedReader &lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;26&lt;/span&gt; &lt;span style="color: #000000"&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;27&lt;/span&gt; &lt;span style="color: #000000"&gt;                            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; BufferedReader(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; InputStreamReader(socket.getInputStream(),&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;UTF-8&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;28&lt;/span&gt; &lt;span style="color: #000000"&gt;                            PrintWriter &lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; PrintWriter(socket.getOutputStream());&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;29&lt;/span&gt; &lt;span style="color: #000000"&gt;                            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;while&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;socket.isClosed()){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;30&lt;/span&gt; &lt;span style="color: #000000"&gt;                                String str;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;31&lt;/span&gt; &lt;span style="color: #000000"&gt;                                str &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;.readLine();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;32&lt;/span&gt; &lt;span style="color: #000000"&gt;                                &lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;.println(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Hello!world!! &lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; str);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;33&lt;/span&gt; &lt;span style="color: #000000"&gt;                                &lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;.flush();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;34&lt;/span&gt; &lt;span style="color: #000000"&gt;                                &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (str &lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;||&lt;/span&gt;&lt;span style="color: #000000"&gt; str.equals(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;end&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;))&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;35&lt;/span&gt; &lt;span style="color: #000000"&gt;                                    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;break&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;36&lt;/span&gt; &lt;span style="color: #000000"&gt;                                System.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;.println(str);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;37&lt;/span&gt; &lt;span style="color: #000000"&gt;                            }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;38&lt;/span&gt; &lt;span style="color: #000000"&gt;                            socket.close();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;39&lt;/span&gt; &lt;span style="color: #000000"&gt;                        }&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;(IOException e){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;40&lt;/span&gt; &lt;span style="color: #000000"&gt;                            e.printStackTrace();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;41&lt;/span&gt; &lt;span style="color: #000000"&gt;                        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;42&lt;/span&gt; &lt;span style="color: #000000"&gt;                    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;43&lt;/span&gt; &lt;span style="color: #000000"&gt;                }).start();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;44&lt;/span&gt; &lt;span style="color: #000000"&gt;            }&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;(IOException e){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;45&lt;/span&gt; &lt;span style="color: #000000"&gt;                e.printStackTrace();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;46&lt;/span&gt; &lt;span style="color: #000000"&gt;            }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;47&lt;/span&gt; &lt;span style="color: #000000"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;48&lt;/span&gt; &lt;span style="color: #000000"&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;49&lt;/span&gt; &lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&lt;ul&gt;&lt;li&gt;SocketClient类，客户端实现： &lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;div&gt;&lt;span style="color: #008080"&gt; 1&lt;/span&gt; &lt;span style="color: #000000"&gt;package HA.Socket;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 2&lt;/span&gt; &lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 3&lt;/span&gt; &lt;span style="color: #000000"&gt;import java.io.&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 4&lt;/span&gt; &lt;span style="color: #000000"&gt;import java.net.&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 5&lt;/span&gt; &lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 6&lt;/span&gt; &lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt; SocketClient {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 7&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt; Socket client;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 8&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 9&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; SocketClient(String site, &lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt; port){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;10&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;11&lt;/span&gt; &lt;span style="color: #000000"&gt;            client &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; Socket(site,port);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;12&lt;/span&gt; &lt;span style="color: #000000"&gt;            System.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;.println(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Client is created! site:&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;site&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt; port:&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;port);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;13&lt;/span&gt; &lt;span style="color: #000000"&gt;        }&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt; (UnknownHostException e){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;14&lt;/span&gt; &lt;span style="color: #000000"&gt;            e.printStackTrace();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;15&lt;/span&gt; &lt;span style="color: #000000"&gt;        }&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt; (IOException e){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;16&lt;/span&gt; &lt;span style="color: #000000"&gt;            e.printStackTrace();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;17&lt;/span&gt; &lt;span style="color: #000000"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;18&lt;/span&gt; &lt;span style="color: #000000"&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;19&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;20&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; String sendMsg(String msg){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;21&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;22&lt;/span&gt; &lt;span style="color: #000000"&gt;            BufferedReader &lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; BufferedReader(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; InputStreamReader(client.getInputStream()));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;23&lt;/span&gt; &lt;span style="color: #000000"&gt;            PrintWriter &lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; PrintWriter(client.getOutputStream());&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;24&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;.println(msg);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;25&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;.flush();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;26&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;.readLine();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;27&lt;/span&gt; &lt;span style="color: #000000"&gt;        }&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;(IOException e){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;28&lt;/span&gt; &lt;span style="color: #000000"&gt;            e.printStackTrace();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;29&lt;/span&gt; &lt;span style="color: #000000"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;30&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;""&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;31&lt;/span&gt; &lt;span style="color: #000000"&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;32&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt; closeSocket(){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;33&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;34&lt;/span&gt; &lt;span style="color: #000000"&gt;            client.close();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;35&lt;/span&gt; &lt;span style="color: #000000"&gt;        }&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;(IOException e){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;36&lt;/span&gt; &lt;span style="color: #000000"&gt;            e.printStackTrace();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;37&lt;/span&gt; &lt;span style="color: #000000"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;38&lt;/span&gt; &lt;span style="color: #000000"&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;39&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt; main(String[] args) throws Exception{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;40&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;41&lt;/span&gt; &lt;span style="color: #000000"&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;42&lt;/span&gt; &lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;43&lt;/span&gt; &lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&lt;p&gt;接下来就是来测试Socket通信了！&lt;/p&gt;&#xD;
&lt;p&gt;先运行TestSocketServer类，打开服务端，在12345端口处监听！&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;div&gt;&lt;span style="color: #008080"&gt;1&lt;/span&gt; &lt;span style="color: #000000"&gt;package HA.Socket;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;2&lt;/span&gt; &lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;3&lt;/span&gt; &lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt; TestSocketServer {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;4&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;5&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt; main(String[] argvs){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;6&lt;/span&gt; &lt;span style="color: #000000"&gt;        SocketServer server &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; SocketServer(&lt;/span&gt;&lt;span style="color: #800080"&gt;12345&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;7&lt;/span&gt; &lt;span style="color: #000000"&gt;        server.beginListen();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;8&lt;/span&gt; &lt;span style="color: #000000"&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;9&lt;/span&gt; &lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&lt;p&gt;再运行TestSocketClient类：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;div&gt;&lt;span style="color: #008080"&gt; 1&lt;/span&gt; &lt;span style="color: #000000"&gt;package HA.Socket;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 2&lt;/span&gt; &lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 3&lt;/span&gt; &lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt; TestSocketClient {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 4&lt;/span&gt; &lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 5&lt;/span&gt; &lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt; main(String[] args){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 6&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 7&lt;/span&gt; &lt;span style="color: #000000"&gt;        SocketClient client &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; SocketClient(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;127.0.0.1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800080"&gt;12345&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 8&lt;/span&gt; &lt;span style="color: #000000"&gt;        System.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;.println(client.sendMsg(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;nimei1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt; 9&lt;/span&gt; &lt;span style="color: #000000"&gt;        client.closeSocket();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;10&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;11&lt;/span&gt; &lt;span style="color: #000000"&gt;        SocketClient client1 &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; SocketClient(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;127.0.0.1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800080"&gt;12345&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;12&lt;/span&gt; &lt;span style="color: #000000"&gt;        System.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;.println(client1.sendMsg(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;nimei1111&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;13&lt;/span&gt; &lt;span style="color: #000000"&gt;        client1.closeSocket();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;14&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;15&lt;/span&gt; &lt;span style="color: #000000"&gt;        SocketClient client11 &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; SocketClient(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;127.0.0.1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800080"&gt;12345&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;16&lt;/span&gt; &lt;span style="color: #000000"&gt;        System.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;.println(client11.sendMsg(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;nimei11111111&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;17&lt;/span&gt; &lt;span style="color: #000000"&gt;        client11.closeSocket();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;18&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;19&lt;/span&gt; &lt;span style="color: #000000"&gt;        SocketClient client111 &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; SocketClient(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;127.0.0.1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800080"&gt;12345&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;20&lt;/span&gt; &lt;span style="color: #000000"&gt;        System.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;&lt;span style="color: #000000"&gt;.println(client111.sendMsg(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;nimei11111111111111111&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;21&lt;/span&gt; &lt;span style="color: #000000"&gt;        client111.closeSocket();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;22&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;23&lt;/span&gt; &lt;span style="color: #000000"&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;24&lt;/span&gt; &lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&lt;p&gt;输出结果如下：&lt;/p&gt;&#xD;
&lt;p&gt;服务端：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;div&gt;&lt;span style="color: #000000"&gt;Client &lt;/span&gt;&lt;span style="color: #0000ff"&gt;is&lt;/span&gt;&lt;span style="color: #000000"&gt; created&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt; site:&lt;/span&gt;&lt;span style="color: #800080"&gt;127.0&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #800080"&gt;0.1&lt;/span&gt;&lt;span style="color: #000000"&gt; port:&lt;/span&gt;&lt;span style="color: #800080"&gt;12345&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;Hello&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;world&lt;/span&gt;&lt;span style="color: #000000"&gt;!!&lt;/span&gt;&lt;span style="color: #000000"&gt; nimei1&lt;br /&gt;Client &lt;/span&gt;&lt;span style="color: #0000ff"&gt;is&lt;/span&gt;&lt;span style="color: #000000"&gt; created&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt; site:&lt;/span&gt;&lt;span style="color: #800080"&gt;127.0&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #800080"&gt;0.1&lt;/span&gt;&lt;span style="color: #000000"&gt; port:&lt;/span&gt;&lt;span style="color: #800080"&gt;12345&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;Hello&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;world&lt;/span&gt;&lt;span style="color: #000000"&gt;!!&lt;/span&gt;&lt;span style="color: #000000"&gt; nimei1111&lt;br /&gt;Client &lt;/span&gt;&lt;span style="color: #0000ff"&gt;is&lt;/span&gt;&lt;span style="color: #000000"&gt; created&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt; site:&lt;/span&gt;&lt;span style="color: #800080"&gt;127.0&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #800080"&gt;0.1&lt;/span&gt;&lt;span style="color: #000000"&gt; port:&lt;/span&gt;&lt;span style="color: #800080"&gt;12345&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;Hello&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;world&lt;/span&gt;&lt;span style="color: #000000"&gt;!!&lt;/span&gt;&lt;span style="color: #000000"&gt; nimei11111111&lt;br /&gt;Client &lt;/span&gt;&lt;span style="color: #0000ff"&gt;is&lt;/span&gt;&lt;span style="color: #000000"&gt; created&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt; site:&lt;/span&gt;&lt;span style="color: #800080"&gt;127.0&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #800080"&gt;0.1&lt;/span&gt;&lt;span style="color: #000000"&gt; port:&lt;/span&gt;&lt;span style="color: #800080"&gt;12345&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;Hello&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;world&lt;/span&gt;&lt;span style="color: #000000"&gt;!!&lt;/span&gt;&lt;span style="color: #000000"&gt; nimei11111111111111111&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&lt;p&gt;客户端：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;div&gt;&lt;span style="color: #000000"&gt;nimei1&lt;br /&gt;nimei1111&lt;br /&gt;nimei11111111&lt;br /&gt;nimei11111111111111111&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;2&amp;gt; url ,urlconnection,httpurlconnection,&amp;nbsp; Android通过URL获取网络资源&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;url.OpenConnection()可以创建URLConnection实例也可以创建HttpURLConnection实例.&lt;/p&gt;&#xD;
&lt;p&gt;有GET,POST获取数据方式.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;由于访问网络，所以要在AndroidManifest.xml中加入访问因特网服务的权限&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="word-spacing: 0px; font: medium Simsun; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; widows: 2; orphans: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"&gt;&lt;span  style="font-size: 12px; line-height: 18px; font-family: Tahoma; text-align: left; webkit-border-horizontal-spacing: 1px; webkit-border-vertical-spacing: 1px"&gt;&amp;lt;uses-permission android:name="android.permission.INTERNET" /&amp;gt;&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="word-spacing: 0px; font: medium Simsun; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; widows: 2; orphans: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"&gt;&lt;span  style="font-size: 12px; line-height: 18px; font-family: Tahoma; text-align: left; webkit-border-horizontal-spacing: 1px; webkit-border-vertical-spacing: 1px"&gt;&lt;span &gt;如果不加入的话，就会出现permission denied的异常&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1、首先，我们需要URL类，表示我们要获取内容的网址&lt;/p&gt;&#xD;
&lt;p&gt;URL myURL=new URL(&lt;a href="http://www.baidu.com/hello.txt"&gt;HTTP://www.baidu.com/hello.txt&lt;/a&gt;);&lt;/p&gt;&#xD;
&lt;p&gt;2、同时，用类URLConnection表示一个打开的网络连接&lt;/p&gt;&#xD;
&lt;p&gt;URLConnection ucon=myURL.openConnection();&lt;/p&gt;&#xD;
&lt;p&gt;3、对于从网络上读到的数据，用字节流的形式表示&lt;/p&gt;&#xD;
&lt;p&gt;InputStream is=ucon.getInputStream();&lt;/p&gt;&#xD;
&lt;p&gt;为了避免频繁读取字节流，提高读取效率，用BufferedInputStream缓存读到的字节流&lt;/p&gt;&#xD;
&lt;p&gt;InputStream is=ucon.getInputStream();&lt;/p&gt;&#xD;
&lt;p&gt;BufferedInputStream bis=new BufferedInputStream(is);&lt;/p&gt;&#xD;
&lt;p&gt;4、准备好BufferdInputStream后，我们就可以用read方法读入网络数据&lt;/p&gt;&#xD;
&lt;p&gt;ByteArrayBuffer baf=new ByteArrayBuffer(50);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int current=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while((current=bis.read())!=-1)&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; baf.append((byte)current);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;5、由于读到的数据只是字节流，无法直接显示到屏幕上，所以我们得在显示之前将字节流转换为可读取的字符串&lt;/p&gt;&#xD;
&lt;p&gt;myString=EncodingUtils.getString(baf.toByteArray(),"UTF-8");&lt;/p&gt;&#xD;
&lt;p&gt;如果读取的是.txt等文件是UTF-8格式的，就需要对数据进行专门的转换&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;//定义获取文件内容的URL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; URL myURL=new URL("&lt;a href="http://baike.baidu.com/view/46765.htm"&gt;http://baike.baidu.com/view/46765.htm&lt;/a&gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //打开URL链接&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; URLConnection ucon=myURL.openConnection();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //使用InputStream，从URLConnection读取数据&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputStream is=ucon.getInputStream();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BufferedInputStream bis=new BufferedInputStream(is);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //用ByteArrayBuffer缓存&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ByteArrayBuffer baf=new ByteArrayBuffer(50);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int current=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while((current=bis.read())!=-1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; baf.append((byte)current);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //将缓存的内容转化为String,用UTF-8编码&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myString=EncodingUtils.getString(baf.toByteArray(), "UTF-8");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myString=e.getMessage();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //设置屏幕显示&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tv.setText(myString);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setContentView(tv);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;6&amp;gt; webview.浏览器&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这里我们初步体验一下在android是使用webview浏览网页，在SDK的Dev Guide中有一个WebView的简单例子 。 &lt;/p&gt;&#xD;
&lt;p&gt;在开发过程中应该注意几点： &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.如果访问的页面中有Javascript，则webview必须设置支持Javascript。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webview.getSettings().setJavaScriptEnabled(true);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.如果页面中链接，如果希望点击链接继续在当前browser中响应，而不是新开Android的系统browser中响应该链接，必须覆盖 webview的WebViewClient对象。&lt;/p&gt;&#xD;
&lt;p&gt;mWebView.setWebViewClient(new WebViewClient(){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean shouldOverrideUrlLoading(WebView view, String url) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; view.loadUrl(url);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp;&amp;nbsp; &lt;br /&gt;mWebView.setWebViewClient(new WebViewClient(){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean shouldOverrideUrlLoading(WebView view, String url) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; view.loadUrl(url);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;4.如果不做任何处理，浏览网页，点击系统&amp;#8220;Back&amp;#8221;键，整个Browser会调用finish()而结束自身，如果希望浏览的网 页回退而不是推出浏览器，需要在当前Activity中处理并消费掉该Back事件。&lt;/p&gt;&#xD;
&lt;p&gt;public boolean onKeyDown(int keyCode, KeyEvent event) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((keyCode == KeyEvent.KEYCODE_BACK) &amp;amp;&amp;amp; mWebView.canGoBack()) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mWebView.goBack();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return super.onKeyDown(keyCode, event);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;public boolean onKeyDown(int keyCode, KeyEvent event) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((keyCode == KeyEvent.KEYCODE_BACK) &amp;amp;&amp;amp; mWebView.canGoBack()) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mWebView.goBack();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return super.onKeyDown(keyCode, event);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;下一步让我们来了解一下android中webview是如何支持javascripte自定义对象的，在w3c标准中js有 window，history，document等标准对象，同样我们可以在开发浏览器时自己定义我们的对象调用手机系统功能来处理，这样使用js就可以 为所欲为了。&lt;/p&gt;&#xD;
&lt;p&gt;看一个实例：&lt;/p&gt;&#xD;
&lt;p&gt;view plaincopy to clipboardprint?&lt;br /&gt;public class WebViewDemo extends Activity {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private WebView mWebView;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Handler mHandler = new Handler();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onCreate(Bundle icicle) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onCreate(icicle);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setContentView(R.layout.webviewdemo);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mWebView = (WebView) findViewById(R.id.webview);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WebSettings webSettings = mWebView.getSettings();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webSettings.setJavaScriptEnabled(true);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mWebView.addJavascriptInterface(new Object() {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void clickOnAndroid() {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mHandler.post(new Runnable() {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mWebView.loadUrl("javascript:wave()");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, "demo");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mWebView.loadUrl("&lt;a href="http://www.cnblogs.com/csj007523/admin/file:///android_asset/demo.html"&gt;http://www.cnblogs.com/csj007523/admin/file:///android_asset/demo.html&lt;/a&gt;");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;}&amp;nbsp;&amp;nbsp; &lt;br /&gt;public class WebViewDemo extends Activity {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private WebView mWebView;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Handler mHandler = new Handler();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onCreate(Bundle icicle) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onCreate(icicle);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setContentView(R.layout.webviewdemo);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mWebView = (WebView) findViewById(R.id.webview);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WebSettings webSettings = mWebView.getSettings();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webSettings.setJavaScriptEnabled(true);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mWebView.addJavascriptInterface(new Object() {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void clickOnAndroid() {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mHandler.post(new Runnable() {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mWebView.loadUrl("javascript:wave()");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, "demo");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mWebView.loadUrl("&lt;a href="http://www.cnblogs.com/csj007523/admin/file:///android_asset/demo.html"&gt;http://www.cnblogs.com/csj007523/admin/file:///android_asset/demo.html&lt;/a&gt;");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;}&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;我们看addJavascriptInterface(Object obj,String interfaceName)这个方法，该方法将一个java对象绑定到一个javascript对象中，javascript对象名就是 interfaceName（demo），作用域是Global。这样初始化webview后，在webview加载的页面中就可以直接通过 javascript:window.demo访问到绑定的java对象了。来看看在html中是怎样调用的。&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;html&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mce:script language="javascript"&amp;gt;&amp;lt;!--&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function wave() {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById("droid").src="android_waving.png";&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;// --&amp;gt;&amp;lt;/mce:script&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;a onClick="window.demo.clickOnAndroid()"&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;img id="droid" src="android_normal.png" mce_src="android_normal.png"/&amp;gt;&amp;lt;br&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Click me!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/a&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;lt;/html&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;lt;html&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mce:script language="javascript"&amp;gt;&amp;lt;!--&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function wave() {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById("droid").src="android_waving.png";&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;// --&amp;gt;&amp;lt;/mce:script&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;a onClick="window.demo.clickOnAndroid()"&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;img id="droid" src="android_normal.png" mce_src="android_normal.png"/&amp;gt;&amp;lt;br&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Click me!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/a&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;lt;/html&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;这样在javascript中就可以调用java对象的clickOnAndroid()方法了，同样我们可以在此对象中定义很多方法（比 如发短信，调用联系人列表等手机系统功能。）,这里wave()方法是java中调用javascript的例子。&lt;/p&gt;&#xD;
&lt;p&gt;这里还有几个知识点： &lt;/p&gt;&#xD;
&lt;p&gt;1)为了让WebView从apk文件中加载assets，Android SDK提供了一个schema，前缀为"&lt;a href="http://www.cnblogs.com/csj007523/admin/file:///android_asset/"&gt;http://www.cnblogs.com/csj007523/admin/file:///android_asset/&lt;/a&gt;"。WebView遇到这样的schema，就去当前包中的 assets目录中找内容。如上面的"&lt;a href="http://www.cnblogs.com/csj007523/admin/file:///android_asset/demo.html"&gt;http://www.cnblogs.com/csj007523/admin/file:///android_asset/demo.html&lt;/a&gt;" &lt;br /&gt;2)addJavascriptInterface方法中要绑定的Java对象及方法要运行另外的线程中，不能运行在构造他的线程中，这也是使用 Handler的目的。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/csj007523/aggbug/2094035.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/csj007523/archive/2011/06/30/2094035.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/csj007523/archive/2011/06/17/2083614.html</id><title type="text">增强现实(AR：Augmented Reality ) 之介绍及应用</title><summary type="text">一、什么是增强现实？当你想知道今天的天气情况的时候，还是在听新闻联播之后的天气预报吗？当你想知道哪辆公车可以回家的时候，还是要挨个公交站牌去找寻么？当你想认识一个漂亮mm的时候，还是要鼓起勇气跑上前去跟她搭讪吗？当你在街上游荡，想找到一家吃晚餐的地方的时候，你还是查完大众点评查谷歌地图吗？如果现在有一种技术，可以让你想知道天气的时候，直接仰望苍穹；想知道公车信息的时候，直接去问公车；想知道mm信息的时候，直接扫描mm本人；想找附近吃饭的地方时，直接摄像头环绕周边…会不会听上去有点离谱呢？其实这项技术已经发展的非常成熟了，就是增强现实技术。增强现实(AR)是在虚拟现实技术基础上发展起来的一种新兴</summary><published>2011-06-17T06:42:00Z</published><updated>2011-06-17T06:42:00Z</updated><author><name>大树2</name><uri>http://www.cnblogs.com/csj007523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/csj007523/archive/2011/06/17/2083614.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/csj007523/archive/2011/06/17/2083614.html"/><content type="html">&lt;p&gt;一、什么是增强现实？&lt;br /&gt;当你想知道今天的天气情况的时候，还是在听新闻联播之后的天气预报吗？当你想知道哪辆公车可以回家的时候，还是要挨个公交站牌去找寻么？当你想认识一个漂亮mm的时候，还是要鼓起勇气跑上前去跟她搭讪吗？当你在街上游荡，想找到一家吃晚餐的地方的时候，你还是查完大众点评查谷歌地图吗？如果现在有一种技术，可以让你想知道天气的时候，直接仰望苍穹；想知道公车信息的时候，直接去问公车；想知道mm信息的时候，直接扫描mm本人；想找附近吃饭的地方时，直接摄像头环绕周边&amp;#8230;会不会听上去有点离谱呢？其实这项技术已经发展的非常成熟了，就是增强现实技术。&lt;/p&gt;&#xD;
&lt;p&gt;增强现实(AR)是在虚拟现实技术基础上发展起来的一种新兴计算机应用和人机交互技术。它借助计算机和可视化技术将虚拟的信息应用到真实世界，真实的环境和虚拟的物体实时地叠加到了同一个画面或空间同时存在。简单的说就是虚实结合。&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#8220;传统的增强现实服务过于平面，无法将周围环境的有用信息完整呈现且运用，他们所发展中的接合自然网络服务（Articulated Naturality Web），则可以让人以截然不同的方式来使用科技；未来实际配合手机来用，将可以让使用者有相当多广泛的用途，例如说以相机来扫描辨识饭店外观，即可进行空房查询、订房等，若以相机扫描空荡荡、尚未装潢的办公室，则会叫出一系列的办公室装潢元素，让使用者来配对，甚是还可以照照天空，来显示一天的天气预测等等，诸如此类的应用，可以说是有相当多延伸空间。&amp;#8221;&lt;/p&gt;&#xD;
&lt;p&gt;二、基本原理&lt;br /&gt;LBS常用的POI信息会有三个维度的信息：&lt;/p&gt;&#xD;
&lt;p&gt;名称 &lt;br /&gt;类别 &lt;br /&gt;坐标 &lt;br /&gt;而通过手机摄像头定位一个虚拟物品或虚拟信息则需要这样三类数据：&lt;/p&gt;&#xD;
&lt;p&gt;GPS坐标 &lt;br /&gt;数字罗盘确定的手机朝向 &lt;br /&gt;加速器给出的手机与地面角度 &lt;br /&gt;当用户为屏幕中的景物添加标注，或者放置虚拟物品到屏幕中时，需要同时附带这三类数据，其他用户通过摄像头查看景物时，才能通过这三类数据匹配出相应的信息。&lt;/p&gt;&#xD;
&lt;p&gt;三、当虚拟照进现实&lt;br /&gt;１、Foursquare的位置层&lt;/p&gt;&#xD;
&lt;p&gt;Foursquare推出的&amp;#8220;位置层&amp;#8221;（Location-layers）功能，允许企业通过&amp;#8220;Tips&amp;#8221;想用户推送信息。该功能类似于&amp;#8220;增强现实&amp;#8221;原理，使现实世界中的信息以数字的形式反映出来。&lt;/p&gt;&#xD;
&lt;p&gt;2、Layar的开放平台&lt;/p&gt;&#xD;
&lt;p&gt;荷兰一家名叫SPRXmobile的公司推出的Layar的软件，推出的开放平台计划。随着第三方API的发布，互联网服务商们争相将在Layar平台上构建自己的数据层，而Layar软件自身的功能也因此变得更加丰富。用户只需要将手机的摄像头对准周围的建筑物或者开放空间，就能在手机屏幕下方看到与之相关的现实数据，其中包括房屋出租、餐馆打折、招聘启事以及ATM位置等实用信息。&lt;/p&gt;&#xD;
&lt;p&gt;３、Discover Anywhere Mobile&lt;/p&gt;&#xD;
&lt;p&gt;多伦多的旅行向导提供商Discover Anywhere Mobile完成一款iPhone应用程序的开发，该应用提供北美33个城市的地铁、轻轨、列车和机场信息的增强现实视图。在下一版iPhone OS推出之时，该应用将正式发布。&lt;/p&gt;&#xD;
&lt;p&gt;４、Mobizily&lt;/p&gt;&#xD;
&lt;p&gt;奥地利创业公司Mobizily开发的Wikitude世界浏览器，前身是一款增强现实旅行指南软件。这款软件的初衷是为全世界背包客建立一个手机上的虚拟旅行手册，帮助用户自行标注、分享现实世界中的景点，并通过手机上的Wikitude软件查阅其他用户提供的相关景点描述。Wikitude中所有景点信息主要由用户提供，并通过维基模式来维护。在Wikitude.me网站上，用户可以使用自己的Google、Yahoo!、Twitter或是OpenID帐号登录并提交新的注释内容，降低了产生内容的门槛。&lt;/p&gt;&#xD;
&lt;p&gt;四、目前使用场景&lt;br /&gt;1、餐馆服务&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Yelp是众所周知的第一个采用AR技术的客户端，打开手机摄像头就可以查看周围商户的信息。我推测是需要定位+方向识别技术。盛大游玩网的客户端切客也采用了这个增强现实技术。&lt;/p&gt;&#xD;
&lt;p&gt;2、旅游&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Wikitude通过用户提供的游记和和地点信息提供旅游攻略&lt;/p&gt;&#xD;
&lt;p&gt;3、测距离&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4、虚拟宠物&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;图 ARf是iPhone上一款增强现实宠物养成游戏，需要二维码扫描技术支持&lt;/p&gt;&#xD;
&lt;p&gt;5、天气查询&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;TwittARound是一款iPhone上的增强现实软件，可以利用摄像头对准天空来判断当前的天气状况。需要定位技术加上云存储的天气数据库。&lt;/p&gt;&#xD;
&lt;p&gt;６、娱乐游戏&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;AR Invaders 将AR技术引入游戏，无论你身处何处，都是真实的战场！游戏利用设备自带的摄像头捕捉周围的实时画面，利用陀螺仪和重力感应来判断玩家的动作、方向和位置变化，玩家则需要在实境中搜索着外星飞船并击毁他们，阻止外星人的入侵。AR Invaders 需要陀螺仪支持，所以仅适用于iPhone 4 和 Touch 4。&lt;/p&gt;&#xD;
&lt;p&gt;五、未来的移动用户体验&lt;br /&gt;在web2.0时代，人们迫切需要更多的互动性，更多的即时性，更多的个性化，更多的垂直化，随着AR技术跟手机发展的结合，相信一个崭新的web3.0时代已经在向我们招手，虚实结合、高度交互性以及三维定位功能，将极大程度的调用用户参与的热情，还原互联网的真实感，让互联网跟真是世界的关系更紧密，是现在lbs服务的三维化。AR也为互动营销、移动广告发展带来了巨大的商机，它创造出全新的用户体验，在一种轻松活跃的环境中，使用户与品牌产生零距离的接触。&lt;/p&gt;&#xD;
&lt;p&gt;１、全新的广告形态&lt;/p&gt;&#xD;
&lt;p&gt;用增强现实技术实现的虚拟广告投放，大大的有别于什么报纸广告、电视广告、户外广告、搜索引擎广告。&lt;/p&gt;&#xD;
&lt;p&gt;２、全新的搜索模式&lt;/p&gt;&#xD;
&lt;p&gt;之前也撰文移动搜索产品的用户体验提到过，未来的搜索将要不在局限与那一个框，摄像头搜索将会有很大的想像空间，营造全新的位置搜索引擎时代。&lt;/p&gt;&#xD;
&lt;p&gt;３、全新的游戏模式&lt;/p&gt;&#xD;
&lt;p&gt;虽然Mytown之类的已经对LBG（基于位置的游戏）进行过实践摸索，但是相信这种平面的LBS远没有AR游戏带给用户的参与感强烈。&lt;/p&gt;&#xD;
&lt;p&gt;４、全新的社交方式&lt;/p&gt;&#xD;
&lt;p&gt;现在我们还停留在纸质名片的阶段，未来每个人都可以有一个立体的社交主页，帮订自己的SNS、微博，通过人脸识别技术，用户就能利用摄像头看到你的信息、动态，添加你为社区好友。&lt;/p&gt;&#xD;
&lt;p&gt;５、全新的浏览器&lt;/p&gt;&#xD;
&lt;p&gt;只要开启摄像头，就能获得周围一切我想要的信息，通过在不同的图层中切换，找到感兴趣的垂直信息，这不是浏览器是什么？这是基于摄像头的浏览器。&lt;/p&gt;&#xD;
&lt;p&gt;６、全新的生活方式&lt;/p&gt;&#xD;
&lt;p&gt;基于位置你再也不会迷失了，周边的餐馆、今天的天气、公车的路线、周围的美女、商场的打折信息、前方漂亮的鞋是什么牌子等等，我们将要迎来一个全新的移动互联网时代。&lt;/p&gt;&#xD;
&lt;p&gt;虽然AR技术在国外已经比较成熟，并频繁并应用到商业化产品中，但是在国内还停留在学术研究阶段，出了盛大游玩网出的切客里使用到了AR技术之外，我还暂时不知道第二家。但是相信随着AR技术的不断完善，国内手机市场情况孕育到位，相信未来，Augmented Reality + Location会是一个趋势，开发者的想象力跟使用者的需求间是否能对应到，不久之后应该就会有答案了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/csj007523/aggbug/2083614.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/csj007523/archive/2011/06/17/2083614.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/csj007523/archive/2011/06/17/2083604.html</id><title type="text">移动开发之 商业价值:增强现实(AR)的进化方向</title><summary type="text">---AR技术必须和基于LBS的广告、搜索、社交应用场景相结合，才能创造出更大的商业价值行走在大街上的你在寻觅一家餐馆，你掏出手机打开某一个应用，之后将摄像头对准大街两侧的景物。手机显示屏中的景物墙体上，出现了附近若干家中餐馆的方向和距离，你走近其中的一家，这家的建筑外墙上弹出了消费点评网站上食客们对其菜品的许多条评论。你觉得还不错，于是在某一个合作网站上check-in，领到了一枚可以打折的徽章，之后走进餐馆。步入餐馆后，屏幕上的内墙上首先弹出了该餐馆的Tips，告知你今天的特色菜以及某一个菜品的暂停供应。而在等服务生上菜的过程中，你通过手机摄像头看到了同样在此店用餐过的用户“满墙”的趣味留</summary><published>2011-06-17T06:32:00Z</published><updated>2011-06-17T06:32:00Z</updated><author><name>大树2</name><uri>http://www.cnblogs.com/csj007523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/csj007523/archive/2011/06/17/2083604.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/csj007523/archive/2011/06/17/2083604.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;---AR技术必须和基于LBS的广告、搜索、社交应用场景相结合，才能创造出更大的商业价值&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;行走在大街上的你在寻觅一家餐馆，你掏出手机打开某一个应用，之后将摄像头对准大街两侧的景物。手机显示屏中的景物墙体上，出现了附近若干家中餐馆的方向和距离，你走近其中的一家，这家的建筑外墙上弹出了消费点评网站上食客们对其菜品的许多条评论。你觉得还不错，于是在某一个合作网站上check-in，领到了一枚可以打折的徽章，之后走进餐馆。步入餐馆后，屏幕上的内墙上首先弹出了该餐馆的Tips，告知你今天的特色菜以及某一个菜品的暂停供应。而在等服务生上菜的过程中，你通过手机摄像头看到了同样在此店用餐过的用户&amp;#8220;满墙&amp;#8221;的趣味留言。整个快乐的过程，都在同一款应用中实现。&lt;br /&gt;这不是科幻小说情节，而是不久即将实现的基于扩增实境（Augmented Reality，简称AR，亦称增强现实）的应用。&lt;br /&gt;&amp;nbsp;诞生于上个世纪60年代的AR技术，虽然在上世纪90年代便已出现了个人化应用和开发工具包（SDK），但它的商业化进程却十分缓慢。而在iOS和Android平台引爆移动互联网时代之后，针对AR的研究和应用实现了突飞猛进的发展。&lt;br /&gt;在2008年之前还难觅其踪影的AR应用，如今已经出现在各大终端平台。虽然这类应用尚未成为人们日常生活的必需配置，亦未在各大应用商店&amp;#8220;登顶&amp;#8221;，但业内人士当初的判断已经部分实现&amp;#8212;&amp;#8212;AR应用已经覆盖了游戏、教育、生活信息和商业运营等各个领域。特别是在苹果、英特尔、高通等产业实力巨头相继加入&amp;#8220;搭台&amp;#8221;之后，AR的应用前景被普遍看好。&lt;br /&gt;然而，普及之后，AR技术本身恐怕难以产生商业价值，又由于自身的技术革命性，AR的商业化注定不会一帆风顺。它的技术标准，它的数据来源，都将是产业势力各方博弈的焦点。&lt;br /&gt;终端引爆应用&lt;br /&gt;自诞生以来的近40年间，AR的应用环境一直局限于工业领域。2000年，科学家Bruce&amp;#183;Thomas开发出了第一款基于AR的户外游戏&amp;#8212;&amp;#8212;ARQuake，并在第四届可穿戴式电脑论坛上进行了展示。但由于当时可供大众使用的移动设备十分稀少且硬件条件不足，这使得在之后很长一段时期内，基于AR 的应用都没能走近大众。在这期间，索尼在PS3上发布的AR应用&amp;#8212;&amp;#8212;the Eye of Judgment也未取得市场认同。&lt;br /&gt;软硬件技术的瓶颈是AR走向大众化的首要制约。这一点对于基于AR的游戏（即在虚拟物体背后渲染出摄像头捕捉到的现实景观）来说，尤为重要。&lt;br /&gt;工业化应用与生活应用的最大区别在于&amp;#8220;实境&amp;#8221;的范畴&amp;#8212;&amp;#8212;对于大众来说，一项新电子技术首先应满足的是随机的娱乐和生活信息需求。这就要求AR必须突破空间局限，在随机的场合使用。显然，这在移动计算时代（智能终端）到来之前是无法实现的。&lt;br /&gt;2007年前后，iOS和Android平台的出现，宣布了移动计算时代的正式降临。第二年便出现了第一款大众化AR应用&amp;#8212;&amp;#8212;针对G1，定位于旅游景点信息展示的Wikitude AR Travel Guide，但由于没有针对性的技术支持，在此后的两年内，智能终端上的AR应用功能仍十分简单。&lt;br /&gt;苹果公司在意识到AR应用的前景后，在2009年9月发布的iOS 3.1（iPhone 3Gs）中加入了对AR的支持，开始在操作系统层面推进AR的发展。&lt;br /&gt;苹果的支持大大推动了AR的应用研发。3Gs发布之后，iPhone上出现了第一款基于LBS的AR应用&amp;#8212;&amp;#8212;Nearest Tube，用来查询伦敦的地铁口位置。在这之后，便是著名的AR研发公司Layar的建立。&lt;br /&gt;在终端厂商拉开AR大幕之后，芯片厂商也及时跟进了。2009年，高通与佐治亚学院合作成立了AR研发实验室并在2010年10月发布了新的AR软件开发工具包，还同时启动了AR开发者挑战赛。两位立陶宛开发者Paulius Liekis和Arminas Didiokas组成的团队，以其作品Paparazzi赢得冠军并获得12.5万美元的奖金。此外，高通已经亲自上场和美国著名的芭比娃娃制造商Mattel合作，将经典的Rock&amp;#8216;Em Sock&amp;#8217;Em(格斗机器人)游戏以一种全新的方式推入市场。&lt;br /&gt;值得一提的还有通用汽车。来自通用开发实验室的汽车AR系统名为G.M.Tinkers，这套系统通过在车内外安装多个摄像头和传感器，能够监视司机眼球和头部的运动并及时将一些补充信息显示在前挡风玻璃上，让司机们能够更好地了解周围的路况。&lt;br /&gt;苹果从iPhone4开始加入的陀螺仪技术，也给AR带来更加稳定和流畅的画面体验。&lt;br /&gt;实际上，从iOS上第一款AR应用Nearest Tube，到之前人们幻想中的AR星战游戏&amp;#8212;&amp;#8212;Star Wars Arcade: Falcon Gunner（运用了陀螺仪技术）登陆iOS，之间仅仅用了1年时间。&lt;br /&gt;业内人士认为，在苹果这样的终端厂商，英特尔、高通等芯片厂商以及通用汽车这样的传统行业巨头的推动下，AR产业已经到了一个引爆点。&lt;br /&gt;与应用场景适配&lt;br /&gt;实际上，AR技术的大众化或者产业化程度，取决于两个维度上的约束条件：除了软硬件技术之外，另一个是AR技术与现实应用场景的适配。&lt;br /&gt;在游戏之外，如Wikitude AR Travel Guide和Nearest Tube般，早期的AR应用仅限于指引地理方位或者介绍历史信息，过于平面，无法将周围环境的有用信息完整呈现，难以形成商业价值。&lt;br /&gt;而自2009年兴起的基于地理位置信息（LBS）的商业信息服务，已经与AR技术迅速地结合在一起。这种结合的逻辑显得一目了然：当你在街上游荡想找到一家吃晚餐的地方，你愿意查完大众点评再查谷歌地图吗？&lt;br /&gt;著名消费点评网站Yelp是第一个采用AR+LBS技术的客户端，它使得用户打开手机摄像头就可以查看周围商户的信息。比Foursquare还早的Brightkite公司是美国一家基于地理定位服务的社交网站，它与麦当劳在去年年末进行合作，开发了基于AR的项目&amp;#8212;&amp;#8212;用户拿出手机对着街景，即可以显示当前多少米范围内（用户自己设定，范围可以大到一个大城市）有麦当劳门店。此外，结合Brightkite用户系统，用户可以看到有多少好友在这里上传了照片、添加了评论等。Foursquare也在随后支持其客户端用AR的方式呈现出Tips，而不仅仅是最初的check-in。&lt;br /&gt;建立于2009年的荷兰Layar公司的业务全部是研发AR+LBS的应用，它在2010年4月发布了扩增内容商店，成为了这一领域的平台性公司。截至今年3月26日，在其商店内的1900余个应用场景之中，如果不计入大部分应用场景与他者重叠的旅行者信息，分类排名前三位的分别为饮食信息（171个）、娱乐信息114个、购物信息（111个）。&lt;br /&gt;由此可见，基于AR+LBS的商业信息服务，是AR商业化的最重要的表现形式。&lt;br /&gt;被业界普遍看好的另一个AR应用场景是基于AR+LBS的社交服务，这种应用场景可以看成AR+LBS+SNS。&lt;br /&gt;开发者Johannes la Poutr&amp;#233;在Layar 上开发的Tweeps Around应用是这类应用的杰出代表。用户可以向Twitter发布关于地理位置和商业信息的询问，之后返回的答案会以AR的方式反映在Layar浏览器里面。&lt;br /&gt;业界很多人认为，AR、LBS和SNS三者的结合，将实现一场商业模式的革命，但遗憾的是，目前的这种革命形式还不甚乐观。&lt;br /&gt;它们要么因为SNS端不够强大（比如Foursquare、盛大切客等），要么因为对接商业资源有限（如Tweeps Around ），或者因为隐私问题而畏首畏尾（比如Facebook的places服务）。但可以下结论，除了游戏之外，AR技术必须和基于LBS的广告、搜索、社交应用场景相结合，才能创造出商业价值。&lt;br /&gt;产业瓶颈&lt;br /&gt;虽然商业前景光明，但AR应用现在难以普及，最主要的还是由于技术层面问题。&lt;br /&gt;AR应用背后的核心技术就是图像渲染技术和后台数据库建设，而目前来看，这两方面的标准难以确立、数据分享难以实现，使得AR的产业化又充满了许多变数。&lt;br /&gt;曾在苹果公司供职8年、近期加入盛大创新院的多媒体专家路坚对《商业价值》表示，目前的AR有些像云计算产业，产业中各方的表述都不太一样，SDK不统一，这是影响AR产业化的最大瓶颈。路坚同时认为，底层技术的好坏并非是AR应用质量的决定性因素，比如OpenGL是早就出现的视频技术，但市场上出色的图形作品并不多。&lt;br /&gt;而数据库的分享则是更难解决的问题。将现实数据化到信息联网、再到开放数据库，这是最可能产生商业价值的AR应用&amp;#8212;&amp;#8212;AR与LBS结合应用付诸实现的前提，然而究竟有多少现实环境的数据能够向开发者开放，还是一个未知数。Layar在欧洲以外的各国落地十分缓慢就是由于此原因，这一瓶颈在国内则显得更为明显。&lt;br /&gt;不过，也有人士认为，Layar的内容商店模式为数据库的分享提供了一种思路，现实数据的持有方可以尝试用封装的方式向开发者销售数据。&lt;br /&gt;在不久前结束的主题为&amp;#8220;美梦成真&amp;#8221;的巴塞罗那移动通信大会上，Layar、高通等AR产业中的各方势力都展出了自己夺人眼球的崭新应用，然而领跑AR产业的两者能在多大程度上打破瓶颈，而非施行资源独占，恐怕决定着AR走进大众日常生活的时间表。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/csj007523/aggbug/2083604.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/csj007523/archive/2011/06/17/2083604.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/csj007523/archive/2011/06/16/2082926.html</id><title type="text">android 之MediaPlayer MP3播放,VideoView 视频播放,MediaRecorder 录音</title><summary type="text">1》MeidaPlayer播放指定路径下的MP3文件；2》MeidaPlayer播放网络上的MP3文件；3》VideoView 视频播放;4》MediaRecorder 录音;1》MeidaPlayer播放指定路径下的MP3文件；MediaPlayer mp=new MediaPlayer();mp.setDataSource(&amp;quot;path&amp;quot;);mp.prepare();mp.start();mp.isLooping;mp.pause();mp.reset();mp.release();MediaPlayer mp=new MediaPlayer();mp=MediaPlay</summary><published>2011-06-16T09:39:00Z</published><updated>2011-06-16T09:39:00Z</updated><author><name>大树2</name><uri>http://www.cnblogs.com/csj007523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/csj007523/archive/2011/06/16/2082926.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/csj007523/archive/2011/06/16/2082926.html"/><content type="html">&lt;p&gt;1》MeidaPlayer播放指定路径下的MP3文件；&lt;/p&gt;&#xD;
&lt;p&gt;2》MeidaPlayer播放网络上的MP3文件；&lt;/p&gt;&#xD;
&lt;p&gt;3》VideoView 视频播放;&lt;/p&gt;&#xD;
&lt;p&gt;4》MediaRecorder 录音;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1》MeidaPlayer播放指定路径下的MP3文件；&lt;/p&gt;&#xD;
&lt;p&gt;MediaPlayer mp=new MediaPlayer();&lt;/p&gt;&#xD;
&lt;p&gt;mp.setDataSource("path");&lt;/p&gt;&#xD;
&lt;p&gt;mp.prepare();&lt;/p&gt;&#xD;
&lt;p&gt;mp.start();&lt;/p&gt;&#xD;
&lt;p&gt;mp.isLooping;&lt;/p&gt;&#xD;
&lt;p&gt;mp.pause();&lt;/p&gt;&#xD;
&lt;p&gt;mp.reset();&lt;/p&gt;&#xD;
&lt;p&gt;mp.release();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;MediaPlayer mp=new MediaPlayer();&lt;/p&gt;&#xD;
&lt;p&gt;mp=MediaPlayer.create(demomdplayer01.this,R.Raw.test);&amp;nbsp;&amp;nbsp; &amp;nbsp;//res/Raw/test.mp3&lt;/p&gt;&#xD;
&lt;p&gt;mp.prepare();&lt;/p&gt;&#xD;
&lt;p&gt;mp.start();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;2》MeidaPlayer播放网络上的MP3文件；&lt;/p&gt;&#xD;
&lt;p&gt;MediaPlayer mp=new MediaPlayer();&lt;/p&gt;&#xD;
&lt;p&gt;Uri uri=Uri.parse(&lt;a href="http://www.cnblogs.com/team/ShenzhenAndroidClub/android.mp3"&gt;www.cnblogs.com/team/ShenzhenAndroidClub/android.mp3&lt;/a&gt;);&lt;/p&gt;&#xD;
&lt;p&gt;mp=MediaPlayer.create(demomdplayer01.this,uri);&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;mp.prepare();&lt;/p&gt;&#xD;
&lt;p&gt;mp.start();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;3》VideoView 视频播放&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;VideoView mvd=new VideoView();&lt;/p&gt;&#xD;
&lt;p&gt;mvd.setVideopath("path");&lt;font color="#008200"&gt;//这两种方法都可以 mvd.setVideoPath("&lt;/font&gt;&lt;a href="http://www.cnblogs.com/csj007523/admin/file:///sdcard/love_480320.mp4"&gt;&lt;font color="#008200"&gt;file:///sdcard/love_480320.mp4&lt;/font&gt;&lt;/a&gt;&lt;font color="#008200"&gt;"); &lt;/font&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //mvd.setVideoURI(Uri.parse(&lt;code &gt;&lt;font color="#0000ff"&gt;"/sdcard/love_480320.mp4"&lt;/font&gt;&lt;/code&gt;&lt;/font&gt;&lt;code &gt;)); &lt;/code&gt;&lt;/div&gt;&#xD;
&lt;p&gt;//定义MediaController对象&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;MediaController mediaController = new MediaController(this);&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;//把MediaController对象绑定到VideoView上&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mediaController.setAnchorView(mvd);&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;//设置VideoView的控制器是mediaController&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mvd..setMediaController(mediaController);&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mvd.requestFocus();&lt;/p&gt;&#xD;
&lt;p&gt;mvd.start();&lt;/p&gt;&#xD;
&lt;p&gt;mvd.pause();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4&amp;gt; MediaRecorder 录音;&lt;/p&gt;&#xD;
&lt;p&gt;MediaRecorder mr = new MediaRecorder();&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mr.setAudioSource(MediaRecorder.AudioSource.DEFAULT);&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mr.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mr.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;mr.setOutputFile(file.getAbsolutePath());&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mr.prepare();&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;mr.start();&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;mr.stop();&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mr.release();&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;// 创建录音对象&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;MediaRecorder mr = new MediaRecorder();&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;// 从麦克风源进行录音&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mr.setAudioSource(MediaRecorder.AudioSource.DEFAULT);&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;// 设置输出格式&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mr.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;// 设置编码格式&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mr.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 设置输出文件&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mr.setOutputFile(file.getAbsolutePath());&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;try {&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;// 创建文件&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;file.createNewFile();&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;// 准备录制&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mr.prepare();&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;} catch (IllegalStateException e) {&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;e.printStackTrace();&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;} catch (IOException e) {&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;e.printStackTrace();&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;}&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;// 开始录制&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mr.start();&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; recordButton.setText("录音中&amp;#8230;&amp;#8230;");&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;}&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;});&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;// 停止按钮点击事件&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stopButton.setOnClickListener(new View.OnClickListener() {&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;@Override &lt;/p&gt;&#xD;
&lt;p&gt;public void onClick(View v) {&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;if (mr != null) {&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mr.stop();&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;mr.release();&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mr = null;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;recordButton.setText("录音");&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;Toast.makeText(getApplicationContext(), "录音完毕", Toast.LENGTH_LONG).show();&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;}&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;}&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;}); &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/csj007523/aggbug/2082926.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/csj007523/archive/2011/06/16/2082926.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/csj007523/archive/2011/06/16/2082682.html</id><title type="text">一培训机构设计的学习android课程内容:供大家参考</title><summary type="text">一培训机构设计的学习android课程内容:供大家参考第一阶段：Linux操作系统及C语言编程课程目标:熟练Linux操作系统、熟练C语言编程模块名称阶段目标Ubuntu安装与配置掌握Ubuntu的安装与配置Linux 基本命令讲解熟练Linux系统的常用命令，并能使用其操作该系统Linux下的C编程环境配置学习Linux下C编程环境的配置和应用C基础入门C基础入门，熟练基本语法，程序基础函数与程序结构熟练C语言的核心编程单位函数的使用指针与数组熟练C语言中的难点指针和数组结构体与联合体熟练结构体和联合体的使用第二阶段：核心Java +Java数据库+Java Web开发课程目标:精通Java</summary><published>2011-06-16T06:46:00Z</published><updated>2011-06-16T06:46:00Z</updated><author><name>大树2</name><uri>http://www.cnblogs.com/csj007523/</uri></author><link rel="alternate" href="http://www.cnblogs.com/csj007523/archive/2011/06/16/2082682.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/csj007523/archive/2011/06/16/2082682.html"/><content type="html">&lt;p&gt;一培训机构设计的学习android课程内容:供大家参考&lt;/p&gt;&#xD;
&lt;p&gt;&lt;table style="color: #fff" width="100%" bgcolor="#000000" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px" width="27%" rowspan="8"&gt;&lt;span style="font-weight: bold; font-size: 14px"&gt;第一阶段：&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 12px"&gt;Linux操作系统及C语言编程&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 14px"&gt;课程目标:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 12px"&gt;熟练Linux操作系统、熟练C语言编程&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td valign="middle" align="center" width="29%"&gt;&lt;strong style="font-size: 14px"&gt;模块名称&lt;/strong&gt;&lt;/td&gt;&#xD;
&lt;td valign="middle" align="center" width="44%"&gt;&lt;strong style="font-size: 14px"&gt;阶段目标&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Ubuntu安装与配置&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;掌握Ubuntu的安装与配置&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Linux 基本命令讲解&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Linux系统的常用命令，并能使用其操作该系统&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Linux下的C编程环境配置&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;学习Linux下C编程环境的配置和应用&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;C基础入门&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;C基础入门，熟练基本语法，程序基础&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;函数与程序结构&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练C语言的核心编程单位函数的使用&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;指针与数组&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练C语言中的难点指针和数组&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;结构体与联合体&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练结构体和联合体的使用&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&#xD;
&lt;table style="color: #fff" width="100%" bgcolor="#000000" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px" width="27%" rowspan="17"&gt;&lt;span style="font-weight: bold; font-size: 14px"&gt;第二阶段：&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 12px"&gt;核心Java +Java数据库+Java Web开发&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 14px"&gt;课程目标:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 12px"&gt;精通Java核心编程、熟练Java Web 数据库编程，编写出java程序并能胜任java开发工程师的工作&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td valign="middle" align="center" width="29%"&gt;&lt;strong style="font-size: 14px"&gt;模块名称&lt;/strong&gt;&lt;/td&gt;&#xD;
&lt;td valign="middle" align="center" width="44%"&gt;&lt;strong style="font-size: 14px"&gt;阶段目标&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Java 概述&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Java 基础入门&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Java 开发环境搭建&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练开发环境搭建、使用Eclipse编译运行调试项目&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Java基本程序设计结构&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Java基本程序的书写、熟练运用数据类型、变量、流程、数组等&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;对象和类（OOP基础）&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;深刻理解面向对象思想、熟练运用类、对象、方法等Java基本程序单位&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;继承&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Java继承程序设计思想、能够使用继承思想编写Java程序&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;接口与内部类&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Java接口的定义和使用、理解使用Java接口设计系统&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;异常与调试&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;理解Java异常的机制、能够捕获常见异常、可以自定义异常&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;&lt;u&gt;集合框架&lt;/u&gt;&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练使用三种集合框架List、Map、Set；能够使用集合框架模拟数据库操作&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;多线程&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Java多线程的定义和使用，熟练Java的同步机制和通信机制，编写安全的Java多线程程序&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;网络编程&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Java网络编程客户端和服务器端类、使用Java网络编程接口实现聊天室&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Java IO 流&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练各种Java I/O流的使用、使用IO流拷贝文件、上传、下载&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;GUI&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练常见的Java GUI控件的使用、熟练Java事件的处理机制、熟练常见事件处理方法&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Java 数据库编程（JDBC）&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;能够使JDBC访问各种数据库、MySQL、Oracle&lt;br /&gt;熟练Java 的CRUD方法、使用Java调用存储过程&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Java Web 编程&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;理解Web编程思想、理解Web编程的请求响应机制，熟练Servlet Web 编程&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Java 项目&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练使用Java基础知识、多线程、网络编程、IO、GUI实现聊天室&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Java 笔试题及面试技巧&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练常见笔试题、掌握面试技巧&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&#xD;
&lt;table style="color: #fff" width="100%" bgcolor="#000000" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px" width="27%" rowspan="9"&gt;&lt;span style="font-weight: bold; font-size: 14px"&gt;第三阶段：&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 12px"&gt;J2me应用开发课程&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 14px"&gt;课程目标:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 12px"&gt;精通JavaME编程，能编写J2ME游戏急移植，能胜任J2ME游戏与应用开发移植工程师工作。&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td valign="middle" align="center" width="29%"&gt;&lt;strong style="font-size: 14px"&gt;模块名称&lt;/strong&gt;&lt;/td&gt;&#xD;
&lt;td valign="middle" align="center" width="44%"&gt;&lt;strong style="font-size: 14px"&gt;阶段目标&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;J2me概览&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;ME 基础入门&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;J2me 程序设计基础&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练ME开发环境的搭建、基本应用程序的开发&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;J2me高级UI程序设计&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练常见ME高级UI组件的使用、能够将常见UI应用到实际项目中&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;J2me低级UI程序设计&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练ME低级UI组件、可以使用低级UI绘制各种图形图像、处理创建事件&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;J2me数据存储&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练ME平台的数据存储&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;J2me多媒体信息处理&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练ME平台的多媒体处理方法&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;J2me网络编程&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练ME平台的网络编程方法&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;项目实战&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&#xD;
&lt;table style="color: #fff" width="100%" bgcolor="#000000" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px" width="27%" rowspan="23"&gt;&lt;span style="font-weight: bold; font-size: 14px"&gt;第四阶段：&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 12px"&gt;Android开发高级课程&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 14px"&gt;课程目标:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 12px"&gt;精通Android应用及游戏编程，编写出Android游戏与应用程序，并能胜任Android应用开发工程师的工作。&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td valign="middle" align="center" width="29%"&gt;&lt;strong style="font-size: 14px"&gt;模块名称&lt;/strong&gt;&lt;/td&gt;&#xD;
&lt;td valign="middle" align="center" width="44%"&gt;&lt;strong style="font-size: 14px"&gt;阶段目标&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="font-size: 18px; color: #fc0" valign="middle" align="center" bgcolor="#999999" colspan="2" height="34"&gt;&lt;strong&gt;应用开发部分&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Android 基础入门&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Android平台搭建、熟练使用Android创建命令工具、编写第一个Android应用程序&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Android 用户界面&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Android创建UI组件的应用、能够使用创建UI组件设计实际项目UI、熟练高级UI的使用，例如，MapView、WebView、Gallery、GridView等&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Android 基本组件(Activity、Intent、Service、BroadCastReceiver、ContentProvider)&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;深刻理解Android应用程序的设计思想、熟练Android平台的四大组件Activity、Service、BroadcastReceiver、ContentProvider的使用能够使用通知、Alarm等实现备忘录等真实项目&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Android 数据存储&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Android平台的数据存储、熟练使用Sqlite数据库实现CRUD操作、熟练Android文件系统的操作&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;多媒体&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练使用Android 平台的多媒体的使用，播放音频、视频、操作图片&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;互联网应用&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Android平台的网络编程接口、熟练Sock、URL、ApacheClient的各种使用方法&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;GPS定位应用&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Android平台的定位API、能够使用这些API实现定位、跟踪、查找等功能&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Android多线程&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Android平台的多线程处理方法、熟练使用Android平台的消息处理机制&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Android 应用项目&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Android手机防盗软件（守护神）、Android GPS 定位跟踪、Android 移动警务通&lt;br /&gt;Android无线智能点餐系统、韩国三星集团Android房地产、蓝鼎Android客户端&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="font-size: 18px; color: #fc0" valign="middle" align="center" bgcolor="#999999" colspan="2" height="34"&gt;&lt;strong&gt;游戏开发部分&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;图形图像&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练Android平台的图形图像处理API、能够使用这些API绘制图形、动画等&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;View、SurfaceView&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练View、SurfaceView、自定义视图&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Android 平台下的传感器&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;能够使用Android 平台API实现感应操作&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;游戏中的物理和数学&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Android 平台的物理特性实现&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;OpenGL ES初级&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练OpenGL ES的常见API的使用&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;OpenGL进阶&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;能够使用OpenGL ES API实现一些特效&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;游戏引擎初步&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练游戏引擎基础框架&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;游戏引擎音效模块&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练游戏引擎音效部分实现&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;游戏引擎实体模块&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练游戏引擎粒子系统实现&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;游戏引擎OpenGL 模块&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;熟练游戏引擎OpenGL ES 3D部分实现&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;Android 游戏项目&lt;/td&gt;&#xD;
&lt;td style="padding-right: 10px; padding-left: 10px; font-size: 12px"&gt;雷电游戏（Android版）、贪吃蛇（Android游戏引擎版）&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 12pt"&gt;&lt;strong&gt;（共16周授课，每天面授6小时，共计640课时）&lt;/strong&gt;&lt;/span&gt; &#xD;
&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr style="height: 20.7pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 34.55pt; padding-top: 0cm; border-bottom: black 1pt solid; height: 20.7pt; background-color: transparent" valign="top" width="46"&gt;&#xD;
&lt;div&gt;编号&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 195.8pt; padding-top: 0cm; border-bottom: black 1pt solid; height: 20.7pt; background-color: transparent" valign="top" width="261"&gt;&#xD;
&lt;div&gt;课程名称&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 36.2pt; padding-top: 0cm; border-bottom: black 1pt solid; height: 20.7pt; background-color: transparent" valign="top" width="48"&gt;&#xD;
&lt;div&gt;时间&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 169.35pt; padding-top: 0cm; border-bottom: black 1pt solid; height: 20.7pt; background-color: transparent" valign="top" width="226"&gt;&#xD;
&lt;div&gt;目标&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 42.4pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 34.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 42.4pt; background-color: transparent" valign="top" width="46"&gt;&#xD;
&lt;div&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 195.8pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 42.4pt; background-color: transparent" valign="top" width="261"&gt;&#xD;
&lt;div&gt;Linux操作系统&lt;span&gt;+C语言编程&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 36.2pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 42.4pt; background-color: transparent" valign="top" width="48"&gt;&#xD;
&lt;div&gt;1周&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 169.35pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 42.4pt; background-color: transparent" valign="top" width="226"&gt;&#xD;
&lt;div&gt;熟练&lt;span&gt;Linux操作系统、熟练C语言编程&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 43.5pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 34.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 43.5pt; background-color: transparent" valign="top" width="46"&gt;&#xD;
&lt;div&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 195.8pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 43.5pt; background-color: transparent" valign="top" width="261"&gt;&#xD;
&lt;div&gt;核心&lt;span&gt;Java +Java数据库+Java Web开发&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 36.2pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 43.5pt; background-color: transparent" valign="top" width="48"&gt;&#xD;
&lt;div&gt;4周&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 169.35pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 43.5pt; background-color: transparent" valign="top" width="226"&gt;&#xD;
&lt;div&gt;精通&lt;span&gt;Java核心编程、熟练Java Web 数据库编程&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 20.7pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 34.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 20.7pt; background-color: transparent" valign="top" width="46"&gt;&#xD;
&lt;div&gt;3&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 195.8pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 20.7pt; background-color: transparent" valign="top" width="261"&gt;&#xD;
&lt;div&gt;JavaME应用及游戏开发&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 36.2pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 20.7pt; background-color: transparent" valign="top" width="48"&gt;&#xD;
&lt;div&gt;2周&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 169.35pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 20.7pt; background-color: transparent" valign="top" width="226"&gt;&#xD;
&lt;div&gt;精通&lt;span&gt;JavaME编程&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 21.7pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 34.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 21.7pt; background-color: transparent" valign="top" width="46"&gt;&#xD;
&lt;div&gt;4&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 195.8pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 21.7pt; background-color: transparent" valign="top" width="261"&gt;&#xD;
&lt;div&gt;Android 应用及游戏开发&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 36.2pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 21.7pt; background-color: transparent" valign="top" width="48"&gt;&#xD;
&lt;div&gt;9周&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 169.35pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 21.7pt; background-color: transparent" valign="top" width="226"&gt;&#xD;
&lt;div&gt;精通&lt;span&gt;Android应用及游戏编程&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt"&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;Linux操作系统及C语言编程&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;课程目标: &lt;/span&gt;&lt;/strong&gt;熟练&lt;span&gt;Linux操作系统、熟练C语言编程&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; padding-top: 0cm; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="168"&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;模块名称&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 148.85pt; padding-top: 0cm; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="198"&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;模块详细&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.65pt; padding-top: 0cm; border-bottom: black 1pt solid; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;时间（天）&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.7pt; padding-top: 0cm; border-bottom: black 1pt solid; background-color: transparent" width="117" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;阶段目标&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 25.95pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 25.95pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;Ubuntu安装与配置&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 148.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 25.95pt; background-color: transparent" valign="top" width="198"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Ubuntu安装与配置&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Linux文件系统介绍&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.65pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 25.95pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;0.5&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.7pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 25.95pt; background-color: transparent" width="117" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;掌握&lt;span&gt;Ubuntu的安装与配置&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 10.85pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.85pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;Linux 基本命令讲解&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 148.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.85pt; background-color: transparent" valign="top" width="198"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;计算机相关信息类命令&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;文件管理类命令&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;进程管理类命令&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;用户管理类命令&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;权限管理类命令&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.65pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.85pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;0.5&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.7pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.85pt; background-color: transparent" width="117" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Linux系统的常用命令，并能使用其操作该系统&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 6.4pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.4pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;Linux下的&lt;span&gt;C编程环境配置&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 148.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.4pt; background-color: transparent" valign="top" width="198"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;安装配置&lt;span&gt;GCC编译器&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;VI编辑器的使用&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Eclipse for C的使用&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.65pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.4pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;0.5&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.7pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.4pt; background-color: transparent" width="117" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;学习&lt;span&gt;Linux下C编程环境的配置和应用&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 9.2pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.2pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;C基础入门&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 148.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.2pt; background-color: transparent" valign="top" width="198"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Hello C&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;数据类型、运算符、表达式&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;流程控制&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.65pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.2pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;0.5&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.7pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.2pt; background-color: transparent" width="117" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;C基础入门，熟练基本语法，程序基础&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 5.85pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.85pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;函数与程序结构&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 148.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.85pt; background-color: transparent" valign="top" width="198"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt"&gt;&lt;span&gt;1.&amp;nbsp;&lt;/span&gt;函数基础&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt"&gt;&lt;span&gt;2.&amp;nbsp;&lt;/span&gt;头文件&lt;/div&gt;&#xD;
&lt;div&gt;3.&amp;nbsp;递归&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.65pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.85pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.7pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.85pt; background-color: transparent" width="117" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;C语言的核心编程单位函数的使用&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 26.8pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 26.8pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;指针与数组&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 148.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 26.8pt; background-color: transparent" valign="top" width="198"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;指针&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;数组&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 64.45pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 26.8pt; background-color: transparent" width="86" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 86.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 26.8pt; background-color: transparent" width="116"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;C语言中的难点指针和数组&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 19.15pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 19.15pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;结构体与联合体&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 148.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 19.15pt; background-color: transparent" valign="top" width="198"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;结构体&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;联合体&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 64.45pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 19.15pt; background-color: transparent" width="86" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 86.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 19.15pt; background-color: transparent" width="116"&gt;&#xD;
&lt;div align="center"&gt;熟练结构体和联合体的使用&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 18pt; text-indent: 17.95pt"&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt"&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: 14pt"&gt;核心Java +Java数据库+Java Web开发&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt"&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;课程目标: &lt;/span&gt;&lt;/strong&gt;精通&lt;span&gt;Java核心编程、熟练Java Web 数据库编程，编写出java程序并能胜任java开发工程师的工作。&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 18pt; text-align: center" align="center"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; padding-top: 0cm; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="168"&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;模块名称&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; padding-top: 0cm; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;模块详细&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; padding-top: 0cm; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="95"&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;时间（天）&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; padding-top: 0cm; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="117"&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;阶段目标&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 25.95pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 25.95pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;Java 概述&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 25.95pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Java 简介&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Java 关键术语&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 25.95pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;0.5&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 25.95pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;Java 基础入门&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 10.85pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.85pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;Java 开发环境搭建&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.85pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;安装&lt;span&gt;jdk&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;7.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;安装&lt;span&gt;Eclipse&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;8.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;创建和运行项目&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;9.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;编译运行调试&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;10.&amp;nbsp;&lt;/span&gt;API文档学习&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.85pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;0.5&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.85pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;熟练开发环境搭建、使用&lt;span&gt;Eclipse编译运行调试项目&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 6.4pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.4pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;Java基本程序设计结构&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.4pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;数据类型&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;变量&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;运算符&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;7.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;字符串&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;8.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;格式化输出&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;9.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;流程控制&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;10.&amp;nbsp;&lt;/span&gt;数组&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.4pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.4pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Java基本程序的书写、熟练运用数据类型、变量、流程、数组等&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 9.2pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.2pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;对象和类（&lt;span&gt;OOP基础）&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.2pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;面向对象程序设计概述&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;使用现有类&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;定义新类&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;7.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;静态属性和静态方法&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;8.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;方法参数&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;9.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;对象构造&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;10.&amp;nbsp;&lt;/span&gt;包&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;11.&amp;nbsp;&lt;/span&gt;文档注释&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;12.&amp;nbsp;&lt;/span&gt;类设计技巧&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.2pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.2pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;深刻理解面向对象思想、熟练运用类、对象、方法等&lt;span&gt;Java基本程序单位&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 5.85pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.85pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;继承&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.85pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div&gt;1.类、超类和子类&lt;/div&gt;&#xD;
&lt;div&gt;2.Object类&lt;/div&gt;&#xD;
&lt;div&gt;3.泛型数组&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.85pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.85pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Java继承程序设计思想、能够使用继承思想编写Java程序&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 7.55pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.55pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;接口与内部类&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.55pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;接口&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;内部类&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.55pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.55pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Java接口的定义和使用、理解使用Java接口设计系统&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 7.55pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.55pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;异常与调试&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.55pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;处理错误&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;捕获异常&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;调试技术&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Eclipse 断点设置、跟踪与调试&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.55pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.55pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;理解&lt;span&gt;Java异常的机制、能够捕获常见异常、可以自定义异常&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 28.45pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 28.45pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;&lt;u&gt;集合框架&lt;/u&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 28.45pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;List&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Set&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Map&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;使用集合框架模拟数据库&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 28.45pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 28.45pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;熟练使用三种集合框架&lt;span&gt;List、Map、Set；能够使用集合框架模拟数据库操作&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 18.2pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.2pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;多线程&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.2pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Thread和&lt;span&gt;Runnable&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;线程同步&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;线程间通信&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.2pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.2pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Java多线程的定义和使用，熟练Java的同步机制和通信机制，编写安全的Java多线程程序&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 11.95pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 11.95pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;网络编程&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 11.95pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Socket、&lt;span&gt;ServerSocket&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;DatagramSocket、&lt;span&gt;DataGrampacket&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;URL、&lt;span&gt;URLConnection&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 11.95pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 11.95pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Java网络编程客户端和服务器端类、使用Java网络编程接口实现聊天室&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 18.4pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.4pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;Java IO &lt;/span&gt;&lt;span style="color: black"&gt;流&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.4pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;File 文件和目录编程&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;File 字节、字符流&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;转换流&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;数据流&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;缓冲流&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;对象流&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.4pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.4pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;熟练各种&lt;span&gt;Java I/O流的使用、使用IO流拷贝文件、上传、下载&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 24.25pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 24.25pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;GUI&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 24.25pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;AWT&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;SWING&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;事件处理&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 24.25pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 24.25pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;熟练常见的&lt;span&gt;Java GUI控件的使用、熟练Java事件的处理机制、熟练常见事件处理方法&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 16.75pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.75pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;Java &lt;/span&gt;&lt;span style="color: black"&gt;数据库编程（JDBC）&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.75pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;MySQL数据库安装与配置&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;使用&lt;span&gt;Java访问MySQL数据库&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Connection&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Statement&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;PreparedStatement&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;CallableStatement&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.75pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.75pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;能够使&lt;span&gt;JDBC访问各种数据库、MySQL、Oracle&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Java 的CRUD方法、使用Java调用存储过程&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 42.7pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 42.7pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;Java Web &lt;/span&gt;&lt;span style="color: black"&gt;编程&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 42.7pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Java Web 编程思想&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;B/S结构程序设计&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Servlet 应用&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 42.7pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 42.7pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;理解&lt;span&gt;Web编程思想、理解Web编程的请求响应机制，熟练Servlet Web 编程&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 16.75pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.75pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;Java &lt;/span&gt;&lt;span style="color: black"&gt;项目&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.75pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Java 仿&lt;span&gt;QQ聊天室&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.75pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;3&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.75pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;熟练使用&lt;span&gt;Java基础知识、多线程、网络编程、IO、GUI实现聊天室&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 13.6pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 125.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 13.6pt; background-color: transparent" width="168"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;Java &lt;/span&gt;&lt;span style="color: black"&gt;笔试题及面试技巧&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 5cm; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 13.6pt; background-color: transparent" valign="top" width="189"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Java常见笔试题讲解&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;面试技巧&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 70.9pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 13.6pt; background-color: transparent" width="95"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 87.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 13.6pt; background-color: transparent" width="117"&gt;&#xD;
&lt;div align="center"&gt;熟练常见笔试题、掌握面试技巧&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt"&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;J2me应用开发课程&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;课程目标：精通&lt;span&gt;JavaME编程，能编写J2ME游戏急移植，能胜任J2ME游戏与应用开发移植工程师工作。&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 7.8pt"&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 97.55pt; padding-top: 0cm; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="130"&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;模块名称&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 155.95pt; padding-top: 0cm; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="208"&gt;&#xD;
&lt;div align="left"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;模块详细&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.75pt; padding-top: 0cm; border-bottom: black 1pt solid; background-color: transparent" valign="top" width="85"&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;时间（天）&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 108.85pt; padding-top: 0cm; border-bottom: black 1pt solid; background-color: transparent" width="145"&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;阶段目标&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 25.95pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 97.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 25.95pt; background-color: transparent" width="130"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 7.8pt; text-align: center" align="center"&gt;J2me概览&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 155.95pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 25.95pt; background-color: transparent" width="208"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;J2me简介&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;J2me 应用举例&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;J2me 应用程序框架&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.75pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 25.95pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;0.5&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 108.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 25.95pt; background-color: transparent" width="145"&gt;&#xD;
&lt;div align="center"&gt;ME 基础入门&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 10.85pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 97.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.85pt; background-color: transparent" width="130"&gt;&#xD;
&lt;div style="margin: 7.8pt 0cm; text-align: center" align="center"&gt;J2me 程序设计基础&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 155.95pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.85pt; background-color: transparent" width="208"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;开发环境搭建&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;如何使用文档&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Hello World 程序讲解&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Midilet 应用程序框架&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Midlet生命周期&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;程序运行与调试&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.75pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.85pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;0.5&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 108.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.85pt; background-color: transparent" width="145"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;ME开发环境的搭建、基本应用程序的开发&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 6.4pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 97.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.4pt; background-color: transparent" width="130"&gt;&#xD;
&lt;div align="center"&gt;J2me高级&lt;span&gt;UI程序设计&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 155.95pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.4pt; background-color: transparent" width="208"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Midlet 高级&lt;span&gt;UI简介&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;容器与组件&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;侦听器与观察者模式&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Form&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Command&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;StringItem&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;7.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;TextField&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;8.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;ChoiceGroup&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;9.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;DateField&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;10.&amp;nbsp;&lt;/span&gt;Spacer&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;11.&amp;nbsp;&lt;/span&gt;Gauge&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;12.&amp;nbsp;&lt;/span&gt;CustomItem&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;13.&amp;nbsp;&lt;/span&gt;TextBox容器&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;14.&amp;nbsp;&lt;/span&gt;List容器&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;15.&amp;nbsp;&lt;/span&gt;Alert&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.75pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.4pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 108.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.4pt; background-color: transparent" width="145"&gt;&#xD;
&lt;div align="center"&gt;熟练常见&lt;span&gt;ME高级UI组件的使用、能够将常见UI应用到实际项目中&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 9.2pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 97.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.2pt; background-color: transparent" width="130"&gt;&#xD;
&lt;div align="center"&gt;J2me低级&lt;span&gt;UI程序设计&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 155.95pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.2pt; background-color: transparent" width="208"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;低级用户界面的特点&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Canvas&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Graphics&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Image&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Font&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;键盘事件处理技巧&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;7.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;动画技术&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;8.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;双缓冲技术&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;9.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;GameCanvas简介&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;10.&amp;nbsp;&lt;/span&gt;手机游戏开发介绍&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;11.&amp;nbsp;&lt;/span&gt;手机游戏开发实习&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.75pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.2pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 108.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.2pt; background-color: transparent" width="145"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;ME低级UI组件、可以使用低级UI绘制各种图形图像、处理创建事件&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 5.85pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 97.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.85pt; background-color: transparent" width="130"&gt;&#xD;
&lt;div align="center"&gt;J2me&lt;span style="font-size: 9pt"&gt;数据存储&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 155.95pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.85pt; background-color: transparent" width="208"&gt;&#xD;
&lt;div align="left"&gt;1.&amp;nbsp;Sandbox概念&lt;/div&gt;&#xD;
&lt;div align="left"&gt;2.&amp;nbsp;Rms简介&lt;/div&gt;&#xD;
&lt;div align="left"&gt;3.&amp;nbsp;RecordStore&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;RecordEnumeration&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Rms使用技巧&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Rms与移植&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.75pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.85pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 108.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.85pt; background-color: transparent" width="145"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;ME平台的数据存储&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 28.45pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 97.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 28.45pt; background-color: transparent" width="130"&gt;&#xD;
&lt;div align="center"&gt;J2me多媒体信息处理&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 155.95pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 28.45pt; background-color: transparent" width="208"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;J2me音频播放&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;J2me播放控制&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;J2me录音&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.75pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 28.45pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 108.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 28.45pt; background-color: transparent" width="145"&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;ME平台的多媒体处理方法&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 133.2pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 97.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 133.2pt; background-color: transparent" width="130"&gt;&#xD;
&lt;div align="center"&gt;J2me网络编程&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 155.95pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 133.2pt; background-color: transparent" width="208"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;计算机网络通信简介&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;tcp/ip协议&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;socket程序设计&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt"&gt;Connection&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;数据读取与写入&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;同步通信与异步通信&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;7.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;UDPDatagramConnection&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;8.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;http协议&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt; text-align: left" align="left"&gt;&lt;span&gt;9.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;http程序设计&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.75pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 133.2pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 108.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 133.2pt; background-color: transparent" width="145"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;ME平台的网络编程方法&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 8.2pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 97.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 8.2pt; background-color: transparent" width="130"&gt;&#xD;
&lt;div align="center"&gt;项目实战&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 155.95pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 8.2pt; background-color: transparent" width="208"&gt;&#xD;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt"&gt;联机对战五子棋&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 63.75pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 8.2pt; background-color: transparent" width="85"&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 108.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 8.2pt; background-color: transparent" width="145"&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;table style="border-right: medium none; border-top: medium none; margin: auto 6.75pt; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" align="left" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr style="height: 1.5pt"&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 16.2pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 1.5pt; background-color: transparent" valign="top" width="22"&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt"&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;Android开发高级课程&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;#9632; &lt;strong&gt;课程概述：&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 21pt"&gt;Android是&lt;span&gt;Google基于Linux开发的智能手机操作系统，广泛应用于3G手机、上网本等。目前处于爆发式增长阶段，HTC(宏达电 多普达)、摩托罗拉、索爱、三星等众多公司纷纷推出基于Android智能操作系统，甚至很多上网本也使用Android操作系统。目前Android是最热门的智能操作系统，凭借Linux的软件优势其应用的广泛程度已经让其他对手相形见绌。所以学习Android操作系统具有巨大的意义。中国移动的OPhone就是基于Android的深层次开发的产品，本课程的制定者为OPhone的核心开发成员之一。&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt"&gt;&lt;span&gt;&amp;#9632;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Android&lt;/strong&gt;&lt;strong&gt;的课程技术特色：&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 18pt"&gt;Android是以&lt;span&gt;Linux作为核心的智能手机操作系统，凭借Open Handset Alliance Vision（OHAV）联盟的支持，Google在Linux之上提供Dalvik 虚拟机运行Java接口的应用程序。它直接改善了Linux应用程序的开发，让其上程序员开发更高效，使得Android的市场份额立刻扩大。Android凭借优秀的体系结构，让众多的开发者加入其中，它也是目前3G/4G领域最有前途的操作系统。Android体系结构如下：&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;&amp;#9670;&lt;/span&gt;&amp;nbsp;&lt;strong&gt;课程目标：&lt;/strong&gt; 精通&lt;span&gt;Android应用及游戏编程，编写出Android游戏与应用程序，并能胜任Android应用开发工程师的工作。&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr style="height: 7.1pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; padding-top: 0cm; border-bottom: black 1pt solid; height: 7.1pt; background-color: transparent" valign="top" width="147"&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;模块名称&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; padding-top: 0cm; border-bottom: black 1pt solid; height: 7.1pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;模块详细&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 55.25pt; padding-top: 0cm; border-bottom: black 1pt solid; height: 7.1pt; background-color: transparent" valign="top" width="74" colspan="2"&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;时间（天）&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 113pt; padding-top: 0cm; border-bottom: black 1pt solid; height: 7.1pt; background-color: transparent" valign="top" width="151"&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 12pt"&gt;阶段目标&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 20.8pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt;background: gray; padding-bottom: 0cm; border-left: black 1pt solid; width: 444.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 20.8pt" valign="top" width="593" colspan="5"&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size: 14pt; color: yellow"&gt;应用开发部分&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 10.65pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.65pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;Android 基础入门&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.65pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Android 平台简介&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Android 开发环境搭建&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Android 常用工具的使用&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;第一个&lt;span&gt;Android 应用程序&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 55.25pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.65pt; background-color: transparent" width="74" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 113pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 10.65pt; background-color: transparent" width="151"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Android平台搭建、熟练使用Android创建命令工具、编写第一个Android应用程序&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 6.3pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.3pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;Android 用户界面&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.3pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div&gt;1.&amp;nbsp;Android中的资源访问&lt;span&gt;(Resource)&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 32.25pt"&gt;1.1&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;简介&lt;span&gt;&lt;br /&gt;1.2&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;颜色（Color）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 32.25pt"&gt;1.3&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;字符串&lt;span&gt;(String)&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 32.25pt"&gt;1.4&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;尺寸&lt;span&gt;(Demen)&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 32.25pt"&gt;1.5&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;原始&lt;span&gt;XML&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 32.25pt"&gt;1.6&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;布局&lt;span&gt;(Layout)&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 15.75pt"&gt;2.&amp;nbsp;Android 图形用户界面&lt;span&gt;(UI)&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2.1&amp;nbsp;&amp;nbsp; &lt;/span&gt;菜单&lt;span&gt;(Menu)&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.2&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;对话框&lt;span&gt;(Dialog)&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.3&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;提示信息&lt;span&gt;(Alert)&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.4&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;事件处理&lt;span&gt; (Event)&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.5&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;布局&lt;span&gt;(Layout)&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.6&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;常用组件&lt;span&gt;Widget)&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.7&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;自动完成文本框&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.8&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;选项卡（&lt;span&gt;Tab）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.9&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;进度条（&lt;span&gt;ProgressBar）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.10&amp;nbsp;日期、时间选择对话框&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.11&amp;nbsp;列表视图（&lt;span&gt;ListView）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.12&amp;nbsp;网格视图（&lt;span&gt;GridView）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.13&amp;nbsp;画廊视图（&lt;span&gt;Gallery）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.14&amp;nbsp;地图视图（&lt;span&gt;MapView）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 31.5pt"&gt;2.15&amp;nbsp;网页视图（&lt;span&gt;WebView）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 55.25pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.3pt; background-color: transparent" width="74" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;4&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 113pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 6.3pt; background-color: transparent" width="151"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Android创建UI组件的应用、能够使用创建UI组件设计实际项目UI、熟练高级UI的使用，例如，MapView、WebView、Gallery、GridView等&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 9.05pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.05pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;Android 基本组件&lt;span&gt;(Activity、Intent、Service、BroadCastReceiver、ContentProvider)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.05pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div&gt;&amp;nbsp;1. Activity&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1.1&amp;nbsp;Activity&lt;/span&gt;简介&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1.2&amp;nbsp;Activity&lt;/span&gt;创建&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1.3&amp;nbsp;Activity&lt;/span&gt;传递数据&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1.4&amp;nbsp;Activity &lt;/span&gt;返回结果&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; 2. Intent&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2.1&amp;nbsp;Intent &lt;/span&gt;对象及属性&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2.2&amp;nbsp;Intent &lt;/span&gt;应用&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2.3&amp;nbsp;Intent &lt;/span&gt;实现策略&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; 3. Service&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;3.1&amp;nbsp;Service &lt;/span&gt;简介&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;3.2&amp;nbsp;Service &lt;/span&gt;使用&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; 4. BroeadCastReceiver&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;4.1&amp;nbsp;BroadcastReceiver &lt;/span&gt;简介&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;4.2&amp;nbsp;&lt;/span&gt;通知&lt;span&gt;Notification和NotificationManager&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;4.3&amp;nbsp;AlarmManager&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; 5. ContentProvider&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;5.1&amp;nbsp;ContentProvider&lt;/span&gt;简介&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;5.2&amp;nbsp;ContentResovler&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;5.3&amp;nbsp;ContentProvider&lt;/span&gt;综合应用&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 55.25pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.05pt; background-color: transparent" width="74" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;5&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 113pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 9.05pt; background-color: transparent" width="151"&gt;&#xD;
&lt;div align="center"&gt;深刻理解&lt;span&gt;Android应用程序的设计思想、熟练Android平台的四大组件Activity、Service、BroadcastReceiver、ContentProvider的使用&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;能够使用通知、&lt;span&gt;Alarm等实现备忘录等真实项目&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 5.75pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.75pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;Android 数据存储&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.75pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div&gt;1.&amp;nbsp;配置（&lt;span&gt;Preference）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;2.&amp;nbsp;文件（&lt;span&gt;File）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;3.&amp;nbsp;SQLite 数据库&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;3.1&amp;nbsp;&lt;/span&gt;打开或者创建数据库&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;3.2&amp;nbsp;&lt;/span&gt;创建表&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;3.3&amp;nbsp;&lt;/span&gt;插入数据&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;3.4&amp;nbsp;&lt;/span&gt;删除数据&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;3.5&amp;nbsp;&lt;/span&gt;查询数据&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;3.6&amp;nbsp;&lt;/span&gt;修改数据&lt;/div&gt;&#xD;
&lt;div&gt;4.&amp;nbsp;网络（&lt;span&gt;NetWorking）&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 55.25pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.75pt; background-color: transparent" width="74" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;3&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 113pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 5.75pt; background-color: transparent" width="151"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Android平台的数据存储、熟练使用Sqlite数据库实现CRUD操作&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Android文件系统的操作&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 7.4pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.4pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;多媒体&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.4pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;音乐播放器&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;视频播放器&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Camera&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 55.25pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.4pt; background-color: transparent" width="74" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 113pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.4pt; background-color: transparent" width="151"&gt;&#xD;
&lt;div align="center"&gt;熟练使用&lt;span&gt;Android 平台的多媒体的使用，播放音频、视频、操作图片&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 7.4pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.4pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;互联网应用&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.4pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Socket&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;URL&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;HTTP&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;HttpURLConnection&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;使用&lt;span&gt;Apache HTTP客户端&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;WebView&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 55.25pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.4pt; background-color: transparent" width="74" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 113pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 7.4pt; background-color: transparent" width="151"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Android平台的网络编程接口、熟练Sock、URL、ApacheClient的各种使用方法&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 27.95pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 27.95pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;GPS定位应用&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 27.95pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;LocationManager和&lt;span&gt;LocationProvider简介&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;定位&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;跟踪&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 55.25pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 27.95pt; background-color: transparent" width="74" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 113pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 27.95pt; background-color: transparent" width="151"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Android平台的定位API、能够使用这些API实现定位、跟踪、查找等功能&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 17.9pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 17.9pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;Android多线程&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 17.9pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Message&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;MessageQueue&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Handler&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Looper&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;AsynchTask&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 55.25pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 17.9pt; background-color: transparent" width="74" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 113pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 17.9pt; background-color: transparent" width="151"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Android平台的多线程处理方法、熟练使用Android平台的消息处理机制&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 62.5pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 62.5pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;Android 应用项目&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 334.3pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 62.5pt; background-color: transparent" valign="top" width="446" colspan="4"&gt;&#xD;
&lt;div&gt;1、&lt;span&gt;Android手机防盗软件（守护神）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div align="left"&gt;2、&lt;span&gt;AndroidGPS 定位跟踪&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;3、&lt;span&gt;Android 移动警务通&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;4、&lt;span&gt;Android无线智能点餐系统&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;5、三星&amp;#8212;&amp;#8212;房地产&lt;/div&gt;&#xD;
&lt;div&gt;6、蓝鼎&lt;span&gt;Android客户端&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 18.1pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt;background: gray; padding-bottom: 0cm; border-left: black 1pt solid; width: 444.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.1pt" width="593" colspan="5"&gt;&#xD;
&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size: 14pt; color: yellow"&gt;游戏开发部分&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 23.85pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.85pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;图形图像&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.85pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Color&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Paint&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Canvas&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;绘制几何图形&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;动画&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Tween动画&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;7.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Frame动画&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;8.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;游戏编程基础&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 48.4pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.85pt; background-color: transparent" width="65"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 119.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.85pt; background-color: transparent" width="160" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;Android平台的图形图像处理API、能够使用这些API绘制图形、动画等&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 16.45pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.45pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;View&lt;/span&gt;&lt;span style="color: black"&gt;、SurfaceView&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.45pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;View&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;SurfaceView&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 48.4pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.45pt; background-color: transparent" width="65"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 119.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.45pt; background-color: transparent" width="160" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;View、SurfaceView、自定义视图&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 41.95pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 41.95pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;Android &lt;/span&gt;&lt;span style="color: black"&gt;平台下的传感器&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 41.95pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Sensor&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;SensorManager&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;SensorListener&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;加速传感器&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;方向传感器&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 48.4pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 41.95pt; background-color: transparent" width="65"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 119.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 41.95pt; background-color: transparent" width="160" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;能够使用&lt;span&gt;Android 平台API实现感应操作&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 16.45pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.45pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;游戏中的物理和数学&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.45pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;粒子系统&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;碰撞检测&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 48.4pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.45pt; background-color: transparent" width="65"&gt;&#xD;
&lt;div align="center"&gt;3&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 119.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.45pt; background-color: transparent" width="160" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;Android 平台的物理特性实现&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 116pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 116pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;OpenGL ES&lt;/span&gt;&lt;span style="color: black"&gt;初级&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 116pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;OpenGL ES 简介&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;绘制多边形&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;颜色&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;旋转&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;2D空间&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;纹理映射&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;7.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;光照和事件&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;8.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;混合&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 48.4pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 116pt; background-color: transparent" width="65"&gt;&#xD;
&lt;div align="center"&gt;3&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 119.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 116pt; background-color: transparent" width="160" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;熟练&lt;span&gt;OpenGL ES的常见API的使用&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 124.2pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 124.2pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;OpenGL&lt;/span&gt;&lt;span style="color: black"&gt;进阶&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 124.2pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;移动图像&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;3D世界&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;飘动的旗帜&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;显示列表&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;雾&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;粒子系统&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;7.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;蒙版&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;8.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;变形&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 48.4pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 124.2pt; background-color: transparent" width="65"&gt;&#xD;
&lt;div align="center"&gt;3&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 119.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 124.2pt; background-color: transparent" width="160" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;能够使用&lt;span&gt;OpenGL ES API实现一些特效&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 18.45pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.45pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;游戏引擎初步&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.45pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt"&gt;&lt;span&gt;1.&amp;nbsp;&lt;/span&gt;游戏引擎基础框架&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt"&gt;&lt;span&gt;2.&amp;nbsp;&lt;/span&gt;整体架构&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 48.4pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.45pt; background-color: transparent" width="65"&gt;&#xD;
&lt;div align="center"&gt;1&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 119.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 18.45pt; background-color: transparent" width="160" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;熟练游戏引擎基础框架&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 16.25pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.25pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;游戏引擎音效模块&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.25pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;MediaPlayer&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;SoundPool&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 48.4pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.25pt; background-color: transparent" width="65"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 119.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 16.25pt; background-color: transparent" width="160" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;熟练游戏引擎音效部分实现&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 14.8pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 14.8pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;游戏引擎实体模块&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 14.8pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;图层&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;场景&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;粒子系统&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;形状&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;传感器&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 48.4pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 14.8pt; background-color: transparent" width="65"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 119.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 14.8pt; background-color: transparent" width="160" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;熟练游戏引擎粒子系统实现&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 15.05pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 15.05pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;游戏引擎OpenGL 模块&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 166.05pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 15.05pt; background-color: transparent" valign="top" width="221"&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;纹理&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;缓冲&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;顶点&lt;/div&gt;&#xD;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;视图&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 48.4pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 15.05pt; background-color: transparent" width="65"&gt;&#xD;
&lt;div align="center"&gt;2&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 119.85pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 15.05pt; background-color: transparent" width="160" colspan="2"&gt;&#xD;
&lt;div align="center"&gt;熟练游戏引擎&lt;span&gt;OpenGL ES 3D部分实现&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr style="height: 39pt"&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 110.55pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 39pt; background-color: transparent" width="147"&gt;&#xD;
&lt;div align="center"&gt;&lt;span style="color: black"&gt;Android &lt;/span&gt;&lt;span style="color: black"&gt;游戏项目&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&#xD;
&lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; border-left-color: #f0f0f0; padding-bottom: 0cm; width: 334.3pt; border-top-color: #f0f0f0; padding-top: 0cm; border-bottom: black 1pt solid; height: 39pt; background-color: transparent" valign="top" width="446" colspan="4"&gt;&#xD;
&lt;div align="left"&gt;1、雷电游戏（&lt;span&gt;Android版）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div align="left"&gt;2、贪吃蛇（&lt;span&gt;Android游戏引擎版）&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/csj007523/aggbug/2082682.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/csj007523/archive/2011/06/16/2082682.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
