flash播放器,关于remove组建的问题。。

aioner1990 2013-12-11 04:51:54
播放flash是这样创建播放器
NativeInterface.open();
UIUtils.setPreferredLookAndFeel();
JFlashPlayer player = new JFlashPlayer();
....
关闭flash时,关闭掉flash同时还要remove掉加载播放器的panel
NativeInterface.close();
.....remove(flashPanel);
..现在问题是,程序中有其他地方要保持NativeInterface.open();
所以,在关闭flash的时候不能调用 NativeInterface.close();
,此时flash也能关掉,但是
double t1 = system.currentTimeMills();
remove(flashPanel);
double t2 = system.currentTimeMills();
t1 = t2 - t1;
system.out.println(t1);
测试结果,remove耗时将近10s..严重影响了性能,求大神解释一下原因,提供一个解决方法。
谢了!!
...全文
580 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aioner1990 2013-12-12
  • 打赏
  • 举报
回复
引用 3 楼 aioner1990 的回复:
[quote=引用 2 楼 aioner1990 的回复:] [quote=引用 1 楼 huxiweng 的回复:] remove public void remove(Component comp) Removes the specified component from this container. This method also notifies the layout manager to remove the component from this container's layout via the removeLayoutComponent method. Note: If a component has been removed from a container that had been displayed, validate() must be called on that container to reflect changes. If multiple components are being removed, you can improve efficiency by calling validate() only once, after all the components have been removed. Parameters: comp - the component to be removed See Also: add(java.awt.Component), validate(), remove(int)
额。。老大。。所以我是要怎么办呢?进入remove()这个函数的时间过长,所以应该不涉及remove()之后的刷新操作。。要不然把remove重载掉?不会吧。。。。还有为啥remove()这个这么慢呢?[/quote]应该是flash资源释放的时候,比较耗时间。但是不能直接调用NativeInterface.close();[/quote]有没有大神,感兴趣的,来回答一下啊。。
aioner1990 2013-12-11
  • 打赏
  • 举报
回复
引用 2 楼 aioner1990 的回复:
[quote=引用 1 楼 huxiweng 的回复:] remove public void remove(Component comp) Removes the specified component from this container. This method also notifies the layout manager to remove the component from this container's layout via the removeLayoutComponent method. Note: If a component has been removed from a container that had been displayed, validate() must be called on that container to reflect changes. If multiple components are being removed, you can improve efficiency by calling validate() only once, after all the components have been removed. Parameters: comp - the component to be removed See Also: add(java.awt.Component), validate(), remove(int)
额。。老大。。所以我是要怎么办呢?进入remove()这个函数的时间过长,所以应该不涉及remove()之后的刷新操作。。要不然把remove重载掉?不会吧。。。。还有为啥remove()这个这么慢呢?[/quote]应该是flash资源释放的时候,比较耗时间。但是不能直接调用NativeInterface.close();
aioner1990 2013-12-11
  • 打赏
  • 举报
回复
引用 1 楼 huxiweng 的回复:
remove public void remove(Component comp) Removes the specified component from this container. This method also notifies the layout manager to remove the component from this container's layout via the removeLayoutComponent method. Note: If a component has been removed from a container that had been displayed, validate() must be called on that container to reflect changes. If multiple components are being removed, you can improve efficiency by calling validate() only once, after all the components have been removed. Parameters: comp - the component to be removed See Also: add(java.awt.Component), validate(), remove(int)
额。。老大。。所以我是要怎么办呢?进入remove()这个函数的时间过长,所以应该不涉及remove()之后的刷新操作。。要不然把remove重载掉?不会吧。。。。还有为啥remove()这个这么慢呢?
teemai 2013-12-11
  • 打赏
  • 举报
回复
remove public void remove(Component comp) Removes the specified component from this container. This method also notifies the layout manager to remove the component from this container's layout via the removeLayoutComponent method. Note: If a component has been removed from a container that had been displayed, validate() must be called on that container to reflect changes. If multiple components are being removed, you can improve efficiency by calling validate() only once, after all the components have been removed. Parameters: comp - the component to be removed See Also: add(java.awt.Component), validate(), remove(int)
计算机应用技术 实用手册 Xnllz 2011.7.29 目录 第一章COMS的设置 1 1.STANDARD CMOS SETUP(标准CMOS设定)用来设定日期、时间、软硬盘规格、工作类类型。 3 2.BIOS能功设定 5 3.Advanced Chipset Features(芯片组设定) 6 4.Integrated Peripherals(集成设备设定) 8 5.PNP/PCI Configurations 即插即用与PCI设备设定,一般为默认。 9 6.POwer Management Features(电源管理模式设定) 9 7.Frequency/voltage control 超频控制 11 8.LOAD FAIL——Save defaults 恢复出厂设置 11 第二章 分区软件的应用 12 1.PQ魔术分区:首先用GHOST安装光盘引导起计算机,选择PQ分区进入工作界面。 12 2.DM分区的应用:首先用GHOST安装光盘引导起计算机,选择DM分区进入工作界面。 16 第三章 CMOS密码的清出与系统密码的清出 23 1、跳线短接法 23 2、下电池短接 23 二.系统密码清除,把CMOS第一引导设为光驱引导,用GHOST安装光盘起动,选择系统登录密码破解按回车进入 24 第四章 局域网组建 24 1.常用网络命令: 25 2.网线的制作: 27 3.局域IP地址配置: 27 4.采用TP-LINK路由器连接上网: 27 第五章 系统常用命令及格式转换 30 1.Msconfig 系统的关闭起动项命 30 2.Dxdiag系统信息查看命令 30 3.Gpedit.msc计算机管理命令 31 4.格式之间的转换,使用winavi进行转换 32 5.常用的快捷键,使用快捷可以帮助我节约时间。 33 6.开机常按F8可以进入安全模式或是带DOS命令的安全模式。 33 第六章GHOST的备份与恢复 34 第七章 综合应用 44 一.文件的后缀名, *号任意的文件名 44 二.内存出错或是系统出错引起蓝屏 48 三.本机病毒删除不了,解决方法是把硬盘拆下来换到别台主机上进行杀毒,要求挂上去的主机要采用正版杀毒软件,升过级的才可以 49 四.识别常见病毒,病毒一般是以隐藏形式藏匿在计算机的文件中,要把文件的隐藏属性打开。每一盘都有工具这个选项,如下图所示: 49 五.常用DOS命令 60 第一章COMS的设置 开机画面现在有两种,一种为AMI公司开发的,一种为Phoenix-award两家公司合并共同开发的;下面这张图为Phoenix-award开机自画面: Phoenix-award workstation BIOS V6.00PC,An Energy star Ally copyright(c) 1984-2003,Phoenix Technologies,LTD 这句英语的意思是:Phoenix-award这两家COMS芯片开发公司合并后共同开发第6号BIOS版本,采用美国电工电器省电标准,Phoenix技术有限公司,版权1984-2003 RS482-M 03/16/2006 FOR Tongfang 清华同方电脑公司选用的BIOS芯片代号为RS482-M 日期为2006年3月16号 Main Processor : AMD Athlon™64 x2 dual core Processor 3600+ CPU为AMD3600+ 速龙64位双核酷睿技术 Memory Testing: 524288k ok with 32M shared memory 内存为512兆 32兆的二级缓存 IDE Channel 0 master : None IDE Channel 0 Slave : None IDE Channel 1 master : HL-DT-STDVD-ROM GDR8164B 0L06 IDE Channel 1 Slave : None IDE Channel 2 master : WDC WD800BD-00LRA0 06.01D06 IDE Channel 2 Slave : None IDE 1号接口检测到光驱,IDE 2号接口检测到希捷硬盘为80GB,其它为NONE表示检测没有设备连接到接口上。 Warning!! Now system is in safe mode. Please re-setting CPU frequency in CMOS setup. 警告:现在系统处在安全模式,从新进入CMOS 进行设置。 CMOS checksun error-del anlts loaded 或是CMOS检查出错。 出现上面两种错是CMOS电池没电了.解决方法:打开机箱,把主板上的一节纽扣电池取出,换上一节新的既可,或是CMOS被放电了,从新进入CMOS设置时间保存并退出就可解决此问题。 Press F1 tocontinue ,DEL to enter SETUP 按F1可以继续启动,按DEL进入CMOS 下面这张图为AMI公司开发的BIOS界面: AMI BIOS (C) 2006 American megatrends,INC.ASUS P5B-Delusxe ACPI BIOS Revision 0507 CPU: INTEL(R) CORE(TM)2 CPU 6400 @ 2.13GHz Speed :4.01GHz Count :2 AMI公司2006年开发的BIOS版本信息,华硕主板采用的CMOS并修正了 0507芯片,CPU 为 英特尔 酷睿技术双核 型号为6400 主频为2.13GHz,总共处理速度为4.01GHz Press DEL TO run Setup 按del进入CMOS Press f8 for bbs popup 按F8弹出BBS网页 Press ALT+F2 to boot from system Recovery 按ALT+F2进入根录进行设置 PC2-4300 Dual Channel interleaved 双通道技术 Initializing usb Controllers..done 装载USB控制 2048MB OK 内存为2GB 开启计算机或重新启动计算机后,听见自检通过的声音后,按 “Del”键就可以进入CMOS的设置界面;要注意的是,如果按得太晚,计算机将会启动系统,这时只有重新启动计算机了。大家可在开机后立刻按DEL键直到进入CMOS。进入后,你可以用方向键移动光标选择CMOS设置界面上的选项,然后按Enter进入副选单,用ESC键来返回上一级菜单,用PAGE UP和PAGE DOWN键来选择具体选项,F10键保留并退出BIOS设置。 1.STANDARD CMOS SETUP(标准CMOS设定)用来设定日期、时间、软硬盘规格、工作类类型。 列表中存在PRIMARY MASTER 第一组IDE主设备;PRIMARY SLAVE 第一组IDE从设备;SECONDARY MASTER 第二组IDE主设备;SECONDARY SLAVE 第二组IDE从设备。这里的IDE设备包括了IDE硬盘和IDE光驱,第一、第二组设备是指主板上的第一、第二根IDE数据线,一般来说靠近芯片的是第一组IDE设备,而主设备、从设备是指在一条IDE数据线上接的两个设备,大家知道每根数据线上可以接两个不同的设备,主、从设备可以通过硬盘或者光驱的后部跳线来调整。 后面是IDE设备的类型和硬件参数,TYPE用来说明硬盘设备的类型,我们可以选择AUTO、USER、NONE的工作模式,AUTO是由系统自己检测硬盘类型,在系统中存储了1-45类硬盘参数,在使用该设置值时不必再设置其它参数;如果我们使用的硬盘是预定义以外的,那么就应该设置硬盘类型为USER,然后输入硬盘的实际参数(这些参数一般在硬盘的表面标签上);如果没有安装IDE设备,我们可以选择NONE参数,这样可以加快系统的启动速度,在一些特殊操作中,我们也可以通过这样来屏蔽系统对某些硬盘的自动检查。 图中2部分是DRIVE A和DRIVE B软驱设置,如果没有A或B驱动器,那么就设置NONE驱动器。我们可以在这里选择我们的软驱类型,当然了绝大部分情况中我们不必修改这个设置。 右下方还有系统内存的参数:BASE MEMORY:基本内存;extended 扩展内存;other 其它内存;total MEMORY 全部内存。 2.BIOS能功设定 在用光盘安装系统时就需要对此部分进设置,第一驱动改为光驱引导(First Boot Device),否则光驱不会引导装系统。 Quick Power On Self Test(快速启动选择): 当设定为[Enabled](启动)时,这个项目在系统电源开启之后,可加速POST(Power On Self Test)的程序。BIOS会在POST过程当中缩短或是跳过一些检查项目,从而加速启动等待的时间! Hard Disk Boot Priority(硬盘引导顺序): 此项目可选择硬盘开机的优先级,按下的按键,你可以进入它的子选单,它会显示出已侦测到可以让您选择开机顺序的硬盘,以用来启动系统。当然,这个选项要在你安装了两块或者两块以上的系统才能选择! HDD Change Message: 当设定为[Enabled](启动)时,如果你的系统中所安装的硬盘有更动,在POST的开机过程中,屏幕会出现一道提示讯息。 First Boot Device / Second Boot Device / Third Boot Device / Boot Other Device: 在[First Boot Device]、[Second Boot Device]以及[Third Boot Device]的项目当中选择要做为第一、第二以及第三顺序开机的装置。BIOS将会依据你所选择的开机装置,依照顺序来启动操作系统!其中可以选择的设备根据你安装的设备而定! BOOT UP FLOPPY SEEK(开机时是否自动检测软驱); BOOT UP NUMLOCK STATUS(开机时小键盘区情况设定) SECURITY OPTION(检测密码方式)如设定为SETUP,则每次打开机器时屏幕均会提示输入口令(普通用户口令或超级用户口令,普通用户无权修改BIOS设置),不知道口令则无法使用机器;如设定为SYSTEM则只有在用户想进入BIOS设置时才提示用户输入超级用户口令。 3.Advanced Chipset Features(芯片组设定) 芯片组设定也是Bios设置里面的一个重点设置,这里就详细说明一下! DRAM Timing Selectable(内存参数设置选项): 这个项目会视内存模块的不同,为接下来四个项目设定最佳的计时方式。默认值为「By SPD」。这个默认值会读取SPD (Serial Presence Detect) 装置的内容,并且依据SPD内容设定这四个项目。内存模块上的EEPROM (只读存储器) 储存有关模块的重要参数信息,例如内存类型、大小、速度、电压接口及模块储存区域。 CAS Latency Time: 这个项目可控制DRAM读取指令与数据成为真正可用的时间之间的延迟时间。较低的CAS周期能减少内存的潜伏周期以提高内存的工作效率。因此只要能够稳定运行操作系统,我们应当尽量把CAS参数调低,从而提高内存的运行速度。反过来,如果内存运行不稳定,可以将此参数设大,以提高内存稳定性。 Act to Precharge Delay: 这个项目控制了给DRAM参数使用之DRAM频率的数值。同理,数值小性能高,但是对内存的质量也要求严格! DRAM RAS# to CAS# Delay: 这个项目可控制DRAM作用指令与读取/写入指令之间的延迟时间,有2,3,4几种选择。数值越小,性能越好。 DRAM RAS# Precharge: 这个项目是用来控制当预充电(precharge)指令送到DRAM之后,频率等待启动的等待时间。预充电参数越小则内存读写速度就越快。 以上的内存参数设置一般可以不动!让默认的就可以了,但是超频玩者是肯定不会放过任何可以提高性能的东西的,所以如果你想在这里让你的电脑提升一点性能的话,就必须慢慢试验,选择一个适当的参数才能让你的计算机达到性能和稳定的最佳状态! Video BIOS Cacheable(影像快取): 如同系统BIOS的快取功能,启用影像BIOS的快取功能将允许存取影像BIOS自C0000H到C7FFFH具有快取功能,如果快取控制器也被启用。高速缓存的大小愈大,影像效能将会更快速。 Memory Hole At 15M-16M(扩展卡内存分配): 当设定为[Enabled](启动)时,将会有15M-16M的内存空间预留给特别需要此设定的ISA扩充卡。这会使得内存有15 MB以上的空间无法让系统使用,这个项目请使用系统的默认值。 Delay Prior to Thermal(激活延时设置): 此项目可用来选在择温探(Thermal)装置动作之前的延迟时间。 AGP Aperture Size(AGP卡槽内存分配设置): 这个项目可指定让AGP装置来使用的系统内存大小,这取用大小是PCI内存地址范围的一部份,可分配给图形内存的空间。 Init Display First: 这个项目可选择当系统开机时先行对AGP或是PCI插槽来做初始化的动作。 [AGP]:当系统开机时,它将会先对AGP插槽来做初始化的动作。 [PCI Slot]:当系统开机时,它将会先对PCI插槽来做初始化的动作。 AGP Data Transfer Rate(AGP速度设置): 这个项目允许你选择AGP装置的数据传输速率,更高的数据传输速率可对您的系统提供更快以及更佳的图形处理能力。请确认您的显示卡可以支持您所选择的模式,一般用默认的就可以。 4.Integrated Peripherals(集成设备设定) 这个是管理计算机的主板集成设备和端口的选项,具体项目因为主板不同,所以其中的设置会有所不同。 OnChip IDE Device: 主板IDE驱动接口控制 OnChip PCI Device 主板PCI接口控制 OnChip USB Controller: 这个选项开启或关闭USB端口。 USB 2.0 Controller: 这个选项开启或关闭USB 2.端口传输模式。 USB Keyboard Support Via: 此项目允许您去选择 [ENABLED],以让您在DOS环境下可以使用USB键盘,或是选择 [OS] 以在OS环境下使用。在默认情况下是关闭的即:[DISABLED],只有打开在DOS下才可以用。 USB Mouse Support Via: 此项目允许您去选择 [ENABLED],以让您在DOS环境下可以使用USB鼠标,或是选择 [OS] 以在OS环境下使用。在默认情况下是关闭的即:[DISABLED],只有打开在DOS下才可以用。 AC97 Audio 这个选项开启或关闭集成声卡设备。有时候在系统的任务栏你见不到小喇叭有可能在这里被关闭了,即:[DISABLED],遇到这种情况可从新进入COMS把此项打开即可,即:[ENABLED]。 SATA MODE 这个项目是对SATA接口控制,一般为RAID模式,如接上SATA接口的光驱就可改为IDE模式,这样才能正常工作。 VIA ONBOARD LAN主板网卡接口控制,一般为默认即可。 5.PNP/PCI Configurations 即插即用与PCI设备设定,一般为默认。 Resources Controlled By: 这个项目可对所有的开机以及即插即用之兼容装置进行组态的动作。 [Auto]: 系统将会自动地侦测所有的设定。 [Manual]: 在「IRQ Resources」选单中选择特定的IRQ资源。 IRQ Resources: 这个项目可设定各别系统的中断为[PCI Device]或是[Reserved]中之任一者。 PCI/VGA Palette Snoop: 这个项目可决定哪种MPEG ISA/VESA VGA卡可以(或是不能)与PCI/VGA一起运作。 [Enabled]: MPEG ISA/VESA VGA卡可以与PCI/VGA一起运作。 [Disabled]: MPEG ISA/VESA VGA卡不能与PCI/VGA一起运作。 6.POwer Management Features(电源管理模式设定) 选择APM Configuration进入设置界面 选择Hardware monltor进入设置界面 7.Frequency/voltage control 超频控制 超频的前提是主板要支持超频功能,并且CPU的风扇要换散热好的,否则就会烧坏CPU或是主板,此功能要慎用。 CPU HOST CLOCK CONTROL [DISABLED] 一般进入后是关闭的,把DISABLED改为ENABLED就可以改变主频的大小了,即:CPU HOST FREQUENCY(MHZ)[166]把中括号里的数字改变超就可以超频了。频即改变CPU主频的大小。 PCI/AGP Frequency(MHZ)[AUTO] PCI设备与显卡频率的控制。一般为自动。 DRAM COLCK (MHZ)[AUTO] 动态随机读取时钟信号,默认为自动。 CPU OVERVOLTAGE CONTROL [AUTO] CPU的额外工作电压,默认为自动。 AGP OVERVOLTAGE CONTROL [AUTO] 显卡的额外工作电压,默认为自动。 DIMM OVERVOLTAGE CONTROL [AUTO] 双列直插内存模块的额外工作电压,默认为自动。 8.LOAD FAIL——Save defaults 恢复出厂设置 在设置一些项后,又不清楚的情况下可,用此项恢复出厂设置恢复到原来出厂的样子。 9.LOAD Optimized defaults 优化设置。 10.SET superisor password CMOS密码设置 11.SET user password 用户密码设置 12.SAVE&EXIT SETUP 保存并退出 每次出了更改设置后都要保存,这样才起作用。 13.QUIT WITHOUT SAVING(Y/N) 退出不保存。 注意:在从起后,显示器上出现 Floppy drive A : ERROR 为A盘引导出错,要求按F1继续;此时进入CMOS把DRIVE A:改为 NONE 即可。如果出现:disk boot failure,insert system disk and press enter 种这信息为找不到硬盘或是系统坏掉了;解决办法:先从新装一次系统,如果从装系统问题还是一样,把机箱打开把硬盘的接口从接一个看看,看看线是否接好,是否有松动的地方,如果还是出现的话,把硬盘换到另外一台机子上试一试,这样做的目的是查看硬盘是不是好的,如果以上方法都试过后仍然出现错误提示,那么有很大的可能是硬盘坏了,只有换硬盘了。 第二章 分区软件的应用 现在主流的分区软件有三种,分别是PQ魔术分区、DM分区、FDISK分区;在这里我主要讲PQ和DM分区,FDISK分区在教材上有,在这里我就不多说了。 1.PQ魔术分区:首先用GHOST安装光盘引导起计算机,选择PQ分区进入工作界面。 没有分过区的硬盘在第一次分区是灰色的,如上图所示。在未分配上右击鼠标,点击建立,出现下图所,创建主要分区。 如果装2000版本的系统就采用NTFS格式,大小这一栏要根据硬盘的大小按一定比例划分,如是80G的硬盘,主分区也就是我们所常说的C盘最好分10000MB即10GB。 如果装XP版本的系统就采用FAT32格式,大小这一栏要根据硬盘的大小按一定比例划分 主分区建好后,剩下的硬盘空间全部分为逻辑分区,格式这一栏如果装2000版本的系统就采用NTFS格式,如果装XP版本的系统就采用FAT32格式。大小分配好后点确定。 把主分区设为设定为作用,相当于FDISK分区中的激活C盘。如果不把C盘激活,系统就装不上,出错信息为:OS ERROR! 在每个分区上点鼠标右键,先择格式化,最后确定。 从新启动计算机就可以装系统了。 2.DM分区的应用:首先用GHOST安装光盘引导起计算机,选择DM分区进入工作界面。 选择“(A)dvanced Options”进入二级菜单,然后选择“(A)dvanced Disk Installation”进行分区的工作。 此主题相关图片如下: 接着会显示硬盘的列表,直接回车即可 此主题相关图片如下: 如果你有多个硬盘,回车后会让你选择需要对哪个硬盘进行分区的工作。 此主题相关图片如下: 然后是分区格式的选择,一般来说我们选择FAT32的分区格式 此主题相关图片如下: 接下来是一个确认是否使用FAT32的窗口,这要说明的是FAT32跟DOS存在兼容性,也就是说在DOS下无法使用FAT32。 此主题相关图片如下: 这是一个进行分区大小的选择,DM提供了一些自动的分区方式让你选择,如果你需要按照自己的意愿进行分区,请选择“OPTION (C) Define your own”。 此主题相关图片如下: 接着就会让你输入分区的大小: 此主题相关图片如下: 首先输入的主分区的大小,然后输入其它分区的大小。这个工作是不断进行的,直到你硬盘所有的容量都被划分。 此主题相关图片如下: 完成分区数值的设定,会显示最后分区详细的结果。此时你如果对分区不满意,还可以通过下面一些提示的按键进行调整。例如“DEL”键删除分区,“N”键建立新的分区。 此主题相关图片如下: 设定完成后要选择“Save and Continue”保存设置的结果,此时会出现提示窗口,再次确认你的设置,如果确定按“Alt+C”继续,否则按任意键回到主菜单。 此主题相关图片如下: 接下来是提示窗口,询问你是否进行快速格式化,除非你的硬盘有问题,建议选择“(Y)ES”。 此主题相关图片如下: 接着还是一个询问的窗口,询问你分区是否按照默认的簇进行,选择“(Y)ES”。 此主题相关图片如下: 最后出现是最终确认的窗口,选择确认即可开始分区的工作。 此主题相关图片如下: 此时DM就开始分区的工作,速度很快,一会儿就可以完成,当然在这个过程中你要保证系统不要断电。 此主题相关图片如下: 完成分区工作会出现一个提示窗口,不用理会按任意键继续。 此主题相关图片如下: 面就会出现让你重新启动的提示 此主题相关图片如下: 这样就完成了硬盘分区工作.按CTRL+ALT+DEL重新起动,装系统。 第三章 CMOS密码的清出与系统密码的清出 一.在忘记系统密码和计算机不能启动的处理时经常提到的一个操作就是"CMOS放电"。 放电前一定要关闭计算机,并且拔掉机箱电源。 CMOS放电方法一般有2种 1、跳线短接法 主板后备电池的附近一般都有一个在跳线,旁边注有RESET CMOS、CLEAN CMOS、CMOS CLOSE、CMOS RAM RESET、CMOS Reset或Ext. Buttery等字样。 跳线开关一般为3脚,在1、2两脚上一般有一个跳接器,此时将其拔下接到2、3脚上短接数秒即可放电。 放电后,应记着将跳线或开关恢复到正常状态,否者计算机有可能不能启动甚至损坏机器。 在原装品牌机上也有将跳线做成DIP开关的,将CMOS开关拔到ON的位置与短接跳线的作用相同。 另外应该注意,几乎所有的主板都有清除CMOS的跳线和相关设置,但应厂商不能而各有所异,例如有的主板的CMOS清除设备并不是我们长见的跳线,而是很小的焊接锡点,使用金属短接一下同样可以达到目的。 此法关键之处在于找到相应的跳线(如果没有主板说明书,则难度就更大了),跳线一般在电池或CMOS芯片附近。 2、下电池短接 后备电池在主机断电期间是通过二级管向CMOS RAM提供电源的。用导线短接CMOS的VDD和地线形成放电回路进行放电即可清除CMOS中的数据(包括口令)。 在不能确定放电跳线位置时,可以将主板供电锂电池取出,然后用金属物件短接一下电池槽中的两个电极片,使存在电路电容中的残余电荷消失,重新装上锂电池,重新开机设置一下BIOS参数即可。 注意:取出电池后不作电极短接,会需很长时间才能使CMOS电路中残余的电荷放尽,残余电荷不放尽便重新装入电池,BIOS 随机参数便不会消除。 二.系统密码清除,把CMOS第一引导设为光驱引导,用GHOST安装光盘起动,选择系统登录密码破解按回车进入 [1] Choose logical drive 只清除逻辑驱动器的密码 [2] Search for ms sam datahbase(s) on all hard disk and logical drives 清除所有驱动器的密码。 [3] EXIT 退出 Your choice [2] 选择2按回车 继续按回车,接着每个数字都输入一次,每次输入后都按回车,按Y确认清除,再按回车确认。最后一直按键盘上的ESC键退到安装界面,从硬盘起动,密码清除。 第四章 局域网组建 TCP/IP(Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。 “传输控制协议”(TCP,Transsmission-Control Protocol)和“因特网协议”(IP,Internet Protocol)即TCP/IP协议。 IP地址分为网络地址和主机地址二个部分,A类地址前8位为网络地址,后24位为主机地址,B类地址16位为网络地址,后16位为主机地址,C类地址前24位为网络地址,后8位为主机地址,网络地址范围如下表所示: 种类 网络地址范围 A 1.0.0.0 到126.0.0.0有效 0.0.0.0 和127.0.0.0保留 B 128.1.0.0到191.254.0.0有效 128.0.0.0和191.255.0.0保留 C 192.0.1.0 到223.255.254.0有效 192.0.0.0和223.255.255.0保留 D 224.0.0.0到239.255.255.255用于多点广播 E 240.0.0.0到255.255.255.254保留 255.255.255.255用于广播 使用ADSL需要PC机、ADSL Modem、10M\100M自适应网卡和虚拟拨号软件 ADSL是一种非对称的DSL技术,所谓非对称是指用户线的上行速率与下行速率不同,上行速率低,下行速率高,特别适合传输多媒体信息业务,如视频点播(VOD)、多媒体信息检索和其他交互式业务。ADSL在一对铜线上支持上行速率512Kbps~1Mbps,下行速率1Mbps~8Mbps,有效传输距离在3~5公里范围以内。 ADSL的特点:   1.一条电话线可同时接听,拨打电话并进行数据传输,两者互不影响。   2.虽然使用的还是原来的电话线,但adsl传输的数据并不通过电话交换机。   3.adsl的数据传输速率是根据线路的情况自动调整的,它以“尽力而为”的方式进行数据传输。 1.常用网络命令: 在DOS下运用:Ping命令,例:Ping www.baidu.com / ping 127.0.0.1,这个命主要用于检测网络是否通,查看网络延时。 Ping 百度之后返回的结:IP地址为220.181.6.18 传输为32字节,TIME为时间,TTL为中转路由器个数,TTL=128-54。发送4帧,收到4帧,丢失为0,网络最小延时为88ms , 最大延时为89ms ,平均延时为88ms这样的数据才正常。 Ping 127.0.0.1为环路自检,查看本地网络是否正常。上图显示为正常。 Ipconfig IP地址查看命令,主要用于查看网络IP地址。 Ip address 192.168.1.100 IP地址,Subnet mask 255.255.255.0 子网掩码 default gateway 192.168.1.1网关。 2.网线的制作: 需要做线钳一把,RJ-45水晶头,超5类双绞线(5E),网络测试仪等。做线规则:①双机对联线做法:绿白、绿、橙白、蓝、蓝白、橙、棕白、棕;另一头做法:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕 ②直连线做法,两头一样,即:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕。 3.局域IP地址配置: 192.168.x.x, 其中经为1-254之间任意值,要注意的是在同一个段中网段的IP值要一样,主机名不能相同,192.168.x.x,如两台机子联机IP设为: 192.168.1.13 192.168.1.14 不难看出1这个值是网段,要相同;13与14是主机的值,不能相同。 4.采用TP-LINK路由器连接上网: 在地址栏中录入192.168.1.1按回车,如下图所示: 出现如下图所示的界面:点下一步; 选择ADSL虚拟拨号(pppoE),点下一步 输入上网账号和上网口令后点下一步 点完成,这样就完成上网设置。上网正常显示如下图所示: 第五章 系统常用命令及格式转换 1.Msconfig 系统的关闭起动项命 点击开始 运行 录入Msconfig按回车进入工作界面,如下图: 点起“启动” ctfmon 对应任务栏的输入法图标,avp对应的是卡巴斯基杀毒软件的起动图标 2.Dxdiag系统信息查看命令 3.Gpedit.msc计算机管理命令 4.格式之间的转换,使用winavi进行转换 当选择多个文件时,要创建成一个DVD目录,多个标题,即对应的英为:ONE DVDS,Separate titles Create separate DVDs 创建多个DVD目录;Merge into one title所有文件整合成一个目录。 如果Winavi转换不了的文件可配合Total Video Converter 使用,如下图所。 5.常用的快捷键,使用快捷可以帮助我节约时间。 CTRL+A 全选 CTRL+ C复制 CTRL+V粘贴,这两组组合键是选复制后粘贴。 CTRL+S保存 CTRL+O打开 CTRL+Z 撤消上一步操作 CTRL+X剪切 CTRL+N新建 ALT+F4快速关机 ALT+TAB强行跳出正在操作的界面 CTRL+ALT+DEL 重新起动 6.开机常按F8可以进入安全模式或是带DOS命令的安全模式。 有一些病毒我们在系统下是杀不掉的,这时我们可以进入带安全模式的系统下再用杀毒软件去扫描病毒,这样有可能把病毒清除掉。进入带DOS命令的安全模式我们可以用它来起动GHOST文件。 第六章GHOST的备份与恢复 1 重新启动计算机 用光盘引导,选择DOS工具进入DOS操作界面。 2 在电脑启动时 快速 连续 按键盘最上一排的 F8 3 按了后会显示 黑底白字的 系统选项 通常上面有6 个选项 4 此处我们需要了解的是1 正常模式 3 安全模式 6 进入DOS界面 5 ghost通常必须要在dos 运行 因此选取 6 进入dos 界面 按上下选择箭头 选定 6 回车 6 进入后会出现DOS 提示符 如 C:\> 此处意思为 现在显示的是C盘 7 在c:\> 后面输入d:此处的意思为进入D盘 输入后回车 出现d:\> 8 再在d:\>后面输入 g 此处意思为运行 g 程序 此处的g 实际上就是原有的 ghost 程序 9 输入后回车 就会进入GHOST 的操作界面 见 图一 附 DOS 下基本操作命令 每一个命令输入完毕后回车进入下一个操作 1 c : 进入C盘 同样的道理 D :进入D盘 E: F: 进入E盘F盘 2 dir 查看 查看目录下面的文件 如c:\> dir 是指查看 C盘里面的文件 3 cd 文件夹名字 打开文件夹 如cd 123 意思是说 打开123这个文件夹 4 exe 是程序的意思 如这ghost 改名字后为g 在dos下面就叫 g.exe 5 在dos下面 如果要执行程序的话 输入程序名字 回车即可 如 运行g.exe 输入g 回车 6 cd ..进入上一个目录 如此时是c:\>windows 是表示在C盘的windowd 中 如果说此时输入 cd .. 则会进入C盘 屏幕上显示出c:\> 三 打包 制作镜像文件 对于通常用户来说 仅仅只是使用GHOST里的分区备份功能 故此此处只讲解分区备份部分 1 按上所说处理好打包前的工作(系统状况最好 驱动安装好 相关软件安装好 清理垃圾文件 磁盘查错 磁盘碎片整理……) 后 重新启动 快速按F8 进入DOS界面 运行 G.exe 2 注意:若要使用备份分区功能 (如要备份C盘)必须有两个分区(最少要有C D二个分区)以上 而且C盘所用容量必须大于D盘的未用容量(通常C盘用了二GB 则D盘必定要有二GB以上的空间) 保证D盘上有足够的空间储存镜像 3 进入图一所示GHOST 界面后 由于是在DOS下 只能用键盘操作 按回车 进入下一个界面 4 DOS界面下 键盘操作:TAB键进行切换 回车键进行确认 方向键进行选择 如图二 用方向键选择 选择菜单 Local(本机)--Partition(分区)--To Image(到镜像) 通俗一点说就是1-2-2 先选中 1 再选取 弹出选项 2 再选取弹出选项 2  5 选中后回车 将出现如图三 选择硬盘 此处第一次是显示的第一个硬盘的信息 如果有二个硬盘的话 回车后会出现二个硬盘的信息选项 通常我们只一个硬盘 此处操作按回车  6 选中后回车 将出现下一个操作界面 如图四   选择要备份的分区 通常我们是选择C盘 也就是系统盘 此处操作 1 选择分区(可以用方向键上下选择 用TAB选择项目 )通常选择第一个就是C盘 分区 2 选定分区 回车确定 3 按一下TAB 再次确定 回车 就表示已经选定为 备份C盘 如果说您不能确定是不是备份的C盘 建议您在WINDOWS的时候 查看一下您的各个分区的大小 再对照就可以知道的 因此处是借鉴别的人的图 所以需要到您区别一下   7 选中后回车 将出现如图5 此处需要是输入备份文件名字 此处操作 1 按TAB选定到图片下面的输入名字的地方 在空格内输入您确定的名字 回车 2 此处选择的名字为 windows 当然您也可以选择别的名字的 3 后缀名为.gho 8 输入后回车 就会进入如下所示 见 图6 此处是提示您选择压缩模式 上面共有三个选择: No表示不压缩,Fast表示适量压缩,High高压缩 限于适用与速度 通常我们选择适量压缩 Fast 9 输入后回车 就会进入下一操作界面 见 图7 此处是提示您选择是否开始备份 共有二个选择 YES 是 NO 不 我们需要选定YES 此处操作 1 按左右方向键 选定YES 回车 10 输入后回车 就会进入下一个操作界面 见 图8 此处是提示GHOST根据您的指示 开始备份 此处操作 1 此处请不要做任意动作 您的任意动作都会带来不可预见之后果 请1 不要按键盘 2 不要关机 静心等待到进度条走完 11 进度条跑完后会进入到下一个 操作界面 见 图9 此处是提示GHOST根据您的指示 已经备份完毕 回车退出 此处操作 1 回车 备份完毕 重新启动就可以了  备份的文件以GHO后缀名储存在设定的目录中 如上所述 您的这个文件名叫 windows.gho 此文件在windows界面下是不显示什么的 在DOS下运行GHOST显示为黄色 您的这个 windows.gho 保存在D盘目录下 就是和 G.EXE 一个目录下 通常建议您将镜像文件复制一下 放在安全的地方防止误删除  三 解包 还原镜像文件 要提醒您注意的是在使用 GHSOT 软件恢复系统时,请勿中途中止!如果您在恢复过程中重新启动了计算机那么您的计算机将无法启动!必定要接双硬盘或用光盘系统启动才可恢复 在您的系统遇到以下的情况之一 怀疑或确定您的系统中了病毒或木马 系统运行了半个月以上 或出现无故死机 变慢 及相关类别 您需要还原您的系统镜像文件 以保证到系统的安全与良好运行 1 重新启动 快速按F8 进入DOS界面 运行G.exe 进入GHOST界面 回车 2 回车后 就会进入GHOST 的操作界面 见 图10 此处操作 选择菜单到 Local(本机)--Partition(分区)--From Image 通俗一点说就是1-2-3 先选中 1 再选弹出选项 2 再选项弹出选项 3 3 选定后回车 就会进入下一个操作界面 见 图11 此处是提示您 选择 需要还原的镜像文件 如上所述 我们打的包是 windows.gho 所以我们这里选择windows.gho 1 按上下方向键 选择好windows.gho 回车 4 输入后回车 就会进入下一个操作界面 见 图12 此处显示硬盘信息 不需要处理 直接回车 5 输入后回车 就会进入下一个操作界面 见 图13 此处显示硬盘信息 不需要处理 直接回车 6 输入后回车 就会进入下一个操作界面 见 图14 此处显示分区信息 提示您是需要还原到哪珍上分区 默认是还原第一个分区 也就是C盘系统盘 如果您是要还原到此分区 不需要处理 直接回车 此处操作按 回车 7 输入后回车 就会进入下一个操作界面 见 图15 此处显示信息 此处是为了防止误操作 再次提醒您是不是一定要还原镜像文件 您到了这一步 如果说没有十分的把握 这是最后一次机会 默认是NO 按下可以退出到起始界面 如果选择YES 将进行还原操作 此操作到了此处已经不可逆转 此处需要的是用左右方向键 选择YES 回车 8 输入后回车 就会进入GHOST 的操作界面 见 图16 此处是提示GHST根据您的指示 开始还原镜像文件 此时千万不要进行操作 1 此处请不要做任意动作 您的任意动作都会带来不可预见之后果 包括系统不能启动 请 1 不要按键盘 2 不要关机 静心等待到进度条走完 9 输入后回车 就会进入下一个操作界面 见 图17 此处是提示GHST根据您的指示 已经备份完毕 给出的二个选择 一 默认为重新启动 二 以后再重新启动 此处需要的是重新启动 至此 您已经成功的还原了您的系统镜像 您的系统又和原来最最良好的时候是一样的了 恭喜您的电脑有了百毒不侵 之身 有了可以防止误操作的万事无忧之方法 有了以上的说明 在通常的情况下 您可以随时随地将您的系统还原到最良好运行之境地 第七章 综合应用 一.文件的后缀名, *号任意的文件名 1. *.bmp格式是微软制定的图形标准,最大的优点就是在pc上兼容度一流,就算不装任何看图软件,用windows的画图程序一样可以看。储存为bmp格式的图形不会失真,但容量会很大。 2. *.jpg格式是目前网络上最流行的图形格式,它可以把文件容量压缩到最小的格式。用Photoshop图形处理软件处理jpg格式的图像,它支持不同程度的压缩比,您可以视情况调整压缩倍率,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。不过要注意的一点是,这种压缩法属于失真型压缩,文件的压缩会使得图形品质下降。 3. *.doc为Word文档,一般看见后缀名为doc的文件就要用Word应用程序才能打开。 4.*.xls为Excel文档,一般看见后缀名为xls的文件就要用Excel应用程序才能打开。 5. *.ppt为Powerpoint文档也就是幻灯片文档,一般看见后缀名为ppt的文件就要用Powerpoint应用程序才能打开。 6.*.txt为文本文档,一般看见后缀名为txt的文件就要用记事本应用程序才能打开。 7.*.pdf便携文档格式 (PDF) 由 Adobe 发明,已成为全世界各种标准组织用来进行更加安全可靠的电子文档分发和交换的出版规范。如今,PDF日益成为一种流行的格式,许多政府及官方媒体的文档,都以 Adobe PDF 作为标准格式。Adobe Reader 8.0 可以浏览 PDF, 但不能创建 PDF! 8. *.mp3 MP3全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III)。是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度地降低音频数据量,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。它是在1991年由位于德国埃尔朗根的研究组织Fraunhofer-Gesellschaft的一组工程师发明和标准化的。 简单的说,MP3就是一种音频压缩技术,由于这种压缩方式的全称叫MPEG Audio Layer3,所以人们把它简称为MP3。 9.*.ini 文件是windows的系统配置文件,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了;在Windows系统中,INI文件是很多,最重要的就是“System.ini”、“System32.ini”和“Win.ini”。该文件主要存放用户所做的选择以及系统的各种参数。一般ini为后缀名的文件不能删除哟! 10.*.bat是批处理文件,是windows32底下的应用程序,可以同时按条件处理一批文件。 这里有个例子: 在电脑屏幕的左下角按“开始→程序→附件→记事本”,把下面的文字复制进去,点“另存为”,路径选“桌面”,保存类型为“所有文件”,文件名为“清除系统yjh.bat”,就完成了。记住后缀名一定要是.bat,ok!你的垃圾清除器就这样制作成功了! 双击它就能很快地清理垃圾文件,大约一分钟不到。 @echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._mp del /f /s /q %systemdrive%\*.log del /f /s /q %systemdrive%\*.gid del /f /s /q %systemdrive%\*.chk del /f /s /q %systemdrive%\*.old del /f /s /q %systemdrive%\recycled\*.* del /f /s /q %windir%\*.bak del /f /s /q %windir%\prefetch\*.* rd /s /q %windir%\temp & md %windir%\temp del /f /q %userprofile%\cookies\*.* del /f /q %userprofile%\recent\*.* del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*" del /f /s /q "%userprofile%\Local Settings\Temp\*.*" del /f /s /q "%userprofile%\recent\*.*" echo 清除系统LJ完成! echo. & pause 以后只要双击运行该文件,当屏幕提示“清除系统LJ完成!就还你一个“苗条”的系统了!!到时候再看看你的电脑,是不是急速如飞呢? 11.*.RMVB主要用于网络视频格,即电影格式,其特点是比AVI格式小,图像清析,便于网络传输;所谓RMVB格式,是在流媒体的RM影片格式上升级延伸而来。VB即VBR,是Variable Bit Rate(可改变之比特率)的英文缩写。我们在播放以往常见的RM格式电影时,可以在播放器左下角看到225Kbps字样,这就是比特率。影片的静止画面和运动画面对压缩采样率的要求是不同的,如果始终保持固定的比特率,会对影片质量造成浪费。   而RMVB则打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上,设定了一般为平均采样率两倍的最大采样率值。将较高的比特率用于复杂的动态画面(歌舞、飞车、战争等),而在静态画面中则灵活地转为较低的采样率,合理地利用了比特率资源,使RMVB在牺牲少部分你察觉不到的影片质量情况下最大限度地压缩了影片的大小,最终拥有了近乎完美的接近于DVD品质的视听效果。可谓体积与清晰度“鱼与熊掌兼得”,其发展前景不容小觑。 12.*.AVI——Audio Video Interleave,即音频视频交叉存取格式。最早由Microsoft公司于1992年推出。在AVI文件中,运动图像和伴音数据是以交织的方式存储,并独立于硬件设备。构成一个AVI文件的主要参数包括视像参数、伴音参数和压缩参数等。而且由于AVI本身的开放性,获得了众多编码技术研发商的支持,不同的编码使得AVI不断被完善。而随着MPEG的崛起,当前流行的AVI格式一般采用DviX5以及Xvid的MPEG4编码器压制,视频的画质和体积都得到了很好的控制。举个例子,一部高品质的DVD电影的容量一般为4-5GB,但经过DivX或XviD编码后的大小只有650-700MB,仅仅为原DVD容量的八分之一,图像品质却与DVD相当使得AVI格式成为电影发烧友的首选格式之一。 13.*.FLV流媒体格式是一种新的视频格式,全称为Flash Video,Macromedia为了尽早用FLV格式来垄断Web Video应用,短短两三年的时间,FLV就成为了目前最主流的在线视频播放格式,随着被新一代的视频播客网站YouTube、土豆等网站的广泛采用,以及Google、百度、新浪、腾讯、猫扑、Maxthon、雅虎等国际国内著名互联网公司的相继投入与看好,还有国际资本大量进入视频播客领域,FLV格式被极大的推广。 14.*.3gp与*.mp4这两种格的文件主要是在手机上应用的比较广泛,其特点是图像小,但在压缩的过程中有损耗,图像不清析,只是适用像手机这样的小屏幕。 15.*.EXE为可执行文件,如果没有可执行文件哪么应用程就运行不了。一般全名为:setup.exe 16. *.gho 为GHSOT生成的镜像文件,主要是系统的备份文件。 17.*.dll为系统的动态库连接文件,静态连接所需要做的工作是多少(假设按windwos来说他有上千个这样的函数,一共有100多个程序来使用,那静态连接需要100000次的更新,动态连接只需要1000次),从而也节省了内存的空间。动态连接库不一定是DLL扩展名的,也可以是ocx、vbx、exe、drv 等等 二.内存出错或是系统出错引起蓝屏 电脑开机就出现的蓝色屏幕内容如下: “ A problem has been detected and windows has been shut down to prevent damage to your computer. If this is the first time you've seen this stop error screen,restart your computer. If this screen appears again, follow these steps: 1.Check to make sure you have adeguate disk space , if a driver is identified in the stop message ,disable the driver or check with the waufacturer for driver updates try changing video adapters . 2.Check with your hardware vendor for any bios updates ,disable bios memoryor options such as caching or shadowing 。 if you need to use safe mode to remove or disable computers,restart your computer 3.Press F8 to select;advanced star up options,and the select safe mode。 Technical information: *** stop:0x0000007E(0x0000005,0xF7711EC5,0xF78A21A4,0xF78A1EA0) ***partMgr.SYS, Adress F7711ECS base at F770F000, Date stamp 480253b0 大致意思是:出现蓝问题是WINDOWS系统自动关闭,阻止计算机被毁坏;如果是第一次出,从新启动计算机,从启后还是一样出现的话,照着下面的步骤: 1.检查硬盘空间,看是否足够装系统; 2.检查内存,看内存是否有问题; 3.按F8进安全模式看看是否能进带安全模式的系统。 出现这种问题般解决办是从装系统,如是不能,把内存拿下来用湿毛巾擦下再用干毛巾擦干,再卡回主机,看问题能否解决;都有能解决哪么把内存拿到其它正常的主机上看看内存是不是好的。如果是内存坏了,哪就要换内存了。 三.本机病毒删除不了,解决方法是把硬盘拆下来换到别台主机上进行杀毒,要求挂上去的主机要采用正版杀毒软件,升过级的才可以 如果是要从新装系统哪么要求这样做:先格式化C盘,如果要装GHOST版本的系统,D盘也要格式化掉,因为GHOST版本的系统有些文件要装到D盘上去,这样是避免系统感染上病毒,系统装好后用光盘装杀毒软件,或是用U盘拷贝过来装,前提是保正U盘和所拷贝的杀毒软件没得病毒哟。注:除了格式化过的盘可以点击,其它盘一律不能点哟,不然的话就白辛苦了。装好杀毒软件并升过级,全盘扫苗过后才能点其它盘。 四.识别常见病毒,病毒一般是以隐藏形式藏匿在计算机的文件中,要把文件的隐藏属性打开。每一盘都有工具这个选项,如下图所示: 1、什么是计算机病毒: 计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。 2、常见病毒的特征及防治方法 如果双击文件图标打不开,哪么就是感染病毒了。 ①新欢乐时光 病毒现象:当您选择“文件夹选项”,并且选择“显示所有文件”的时候,您可以在很多目录中看到原先是隐藏的folder.htt和desktop.ini文件,而且当你打开原先没有这两个文件的文件夹时会自动在这个文件夹里生成这两个文件,这时你的电脑就很可能是被新欢乐时光(Vb.Script)感染了。被病毒感染后系统运行速度明显下降,偶尔弹出错误消息框,严重的可能导致死机甚至无法进入系统。 防治方法:不要随便在其他微机上使用u盘及软盘,在必须的情况下应在自己的电脑中先对其进行查毒再使用。如果系统已经感染了此病毒,则可以在瑞星及江民的网站上下载专杀工具vb.kj可以有效的杀除此种病毒。 ②冲击波、震荡波。 病毒现象:此类病毒常见于windows2000较早的版本,病毒运行时会利用RPC缓冲区漏洞攻击该系统,导致电脑运行变慢,不断死机或开机后立即倒数一分钟重启。 防治方法:发现感染此病毒后,应首先断开与局域网的连接,进入安全模式,使用瑞星的专杀工具进行杀毒(Rs_blaster),然后将系统打上rpc漏洞补丁,可以彻底清除此种病毒。 ③QQ类病毒。 病毒现象:QQ类病毒多数为木马型及蠕虫型混合病毒,目的是窃取你计算机上的密码,有些破坏力强大的病毒可能造成很大的威胁,可能导致OFFICE软件、任务管理器、注册表编辑器等程序无法使用,该病毒还会破坏资源管理器,只要用户打开四层以上的目录,病毒就会自动关闭“资源管理器”。该病毒还会干掉含有“杀毒”字样的窗口,因此会造成一些反病毒软件及病毒专杀工具无法使用、一些反病毒公司的主页无法登陆等现象。另外该病毒还会修改用户电脑的系统配置,导致用户重启系统时无法进入“我的电脑”。 防治方法:不要随便接收别人从QQ上传递的文件,尤其是可执行文件(.exe文件),接收的文件要先查毒再打开。如果感染此类病毒可以进入安全模式进行查杀。 ④灰鸽子木马。 灰鸽子是一种功能极为强大的木马病毒,可以完全控制监控,甚至在你的电脑上安装软件盗取密码,而且除了具有语音监听、语音发送,还有远程视频监控功能,只有远程计算机有摄像头,且正常打开没有被占用,那么你可以看到,远程摄像头捕获的图片!还可以把远程摄像头捕获的画面存为Mpeg-1格式.远程语音也可以录制成Wav声音文件。你的电脑没有任何隐私了,可以从你电脑上下载软件,把坏东西复制上去,可以从新安装非病毒类远程控制,这样你就无法摆脱。电脑感染这种木马后没有什么特别的症状,只有通过杀毒软件才能发现自己已经中毒了。 防治方法:1、打开注册表编辑器(点击“开始”→“运行”,输入“Regedit.exe”,确定),打开 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services注册表项。 2、点击菜单“编辑”→ “查找”,“查找目标”输入“game.exe”,点击确定,我们就可以找到灰鸽子的服务项(此例为Game_Server)。 3、删除整个Game_Server项。 灰鸽子的变种很多,所以不仅限于以上的病毒名称。防止感染灰鸽子要注意不要浏览不安全的网站,经常杀毒,并养成良好上网习惯。 常用专杀工具下载链接 1.新欢乐时光专杀工具vbs.kj http://www8.pconline.com.cn/download/swdetail.phtml?id=7910 2.震荡波(Worm.Sasser)”病毒专杀工具. http://it.rising.com.cn/service/technology/RS_sasser.htm 3.“冲击波(Worm.Blaster)”病毒专杀工具 http://it.rising.com.cn/service/technology/RS_blaster.htm 4. “QQ病毒”专杀工具 http://it.rising.com.cn/service/technology/RS_QQMsender.htm 5. “MSN病毒(Worm.msn.funny)”专杀工具 http://it.rising.com.cn/service/technology/RS_MSN.htm 6“Zotob蠕虫(Worm.Zotob)”病毒专杀工具 http://it.rising.com.cn/service/technology/rav_Zotob.htm 有些深点的蠕虫病毒用瑞星、卡巴斯基、超级兔子等杀毒软件都是杀不出来的,有些即使你杀出来了也删除不了,删除了过下子又来了,或电脑重启又出现了。对于这种病毒,首先你必须要知道哪些东东被中了,哪些东东被感染了,比如IE上的主页被改了,IE有时会自动关闭,电脑“进程”里运行了很多不是系统相关的东东(如.dll的库文件和.exe的可执行文件。)这时候必须重启电脑,一直按f8进入安全模式(如电脑设有多个账号的,要用管理员账号登录,也就是Adminstrator),找到可凝的文件一个一个进行手动删除,并在注册表里找到与此病毒相关的文件进行删除(一般电脑中了这种毒,注册表项里就会恶意被修改,并增加很多新的注册项。),电脑硬盘里带毒的文件必须一一彻底删,还有注册表里的一样必须一一彻底清除或更正。深的蠕虫病毒还会感染每个硬盘及一些相关的文件和软件。 注册表进入命令:regedit 查看电脑启动项命令:msconfig 在电脑的“开始”---“运行”,打开运行对话框输入以上命令。 电脑C盘(系统盘)最容易也最常隐藏病毒的文件夹有下: C:\Documents and Settings\qsk\Local Settings\Temp (这个目录是常常隐藏病毒的地方) 上面的“qsk”是我电脑登录的账号名,如果你登录电脑时的账号名是“abc”那么文件夹路径就是: C:\Documents and Settings\abc\Local Settings\Temp C:\Program Files\Common Files 这个文件夹下常常会隐藏产新生成写病毒文件及病毒文件夹。 C:\Program Files\Internet Explorer(这个也常会隐藏病毒文件,主要病毒文件都跟IE有关。) 病毒文件如:C:\Program Files\Internet Explorer\1.exe C:\WINDOWS (这个目录下常常会藏中毒文件,甚至会新建些中毒文件及相关文件夹) 如:新建一个“down”的文件夹,形成C:\WINDOWS\down 并会在该文件夹(down)下隐世藏一个rundll32.exe 可执行文件。(rundll32.exe是系统文件,真正的rundll32.exe是在C:\WINDOWS\system32 目录下。) C:\WINDOWS\system32 (这个目录也是常常隐病毒的地方) 一般IE中了老弹出窗口,如色情类的网站IE窗口,娱乐类的网站IE窗口病毒都会在此目录下隐藏病毒。会新生成一些如.com 、.exe 、 .dll的病毒文件。.com的文件在查看是否是病毒时,请按照此文件的属性的时间进行查看,假如你电脑系统安装的时间是2006年1月1日,而当前时间是2006年12月15日,如果.com文件的属性时间是2006年12月15日或者14日或更前几天的,那么这种大部份都是病毒文件,可进入安全模式手动删除。系统.com的文件如:edit.com,format.com等.com系统文件一般属性时间显示的都是:创建时间:2005年7月20日, 0:00:00 修改时间:2005年7月20日, 0:00:00(系统的.com文件属性显示的时间都是比你安装系统时的时间更早的。而.com病毒文件属性显示的时间都是在电脑安装系统时间后面的。 电脑常见病毒(这是我电脑上经常中的一些病毒): 病毒名:rundll32.exe 症状:此病毒会调用其它模块病毒文件 路径:C:\WINDOWS\down\rundll32.exe 注:C:\WINDOWS\system32rundll32.exe 不可删,这是正确的系统文件。 病毒名:1.exe 症状:打开IE时老弹出窗口 路径:C:\Program Files\Internet Explorer\1.exe 病毒名:logo 1.exe (此病毒是蠕虫病毒) 症状:占用CPU资源,使电脑运行速度慢,并生成很多可执行文件,在电脑上进行感染、网络感染、下载网络木马或其它病毒的复合型病毒,病毒运行后将自身伪装成系统正常文件。 路径: c:\windows\Logo1_.exe 主要生成病毒文件有下: c:\windows\rundl132.exe(注意:注意,此病毒文件名是rundl132.exe与系统system32目录下的系统文件rundll32.exe 相差一个字,病毒文件是132.exe 而系统文件是l32.exe,凡电脑上出现的rundl132.exe 的文件都是病毒。) c:\windows\0Sy.exe c:\windows\vDll.dll c:\windows\1Sy.exe c:\windows\2Sy.exe c:\windows\rundll32.exe (注意:此目下的此rundll32.exe也是病毒文件,正确的是在system32目录下。) c:\windows\3Sy.exe c:\windows\5Sy.exe c:\windows\1.com c:\window*\**erouter.exe c:\window*\**P10RER.com c:\windows\finders.com c:\windows\Shell.sys c:\windows\sms*.**e c:\windows\kill.exe c:\windows\sws.dll c:\windows\sws32.dll 病毒名:service.exe 路径:C:\WINNT\SYSTEM32\Service.exe(注意:该目录下的services.exe不可删,是系统文件) “特洛依木马”病毒   何谓特洛依木马?特洛依木马其实是一种骗子程序,提供某些功能作为诱饵引诱你,确在背地里摧毁你的计算机系统。记得希腊神话中关于特洛依木马的故事吗?典故就是从那儿来的。中了木马时有什么反应?很难说,因为它们发作时的情况多种多样。   病毒诊断   但是如果你的计算机有以下表现时,就很可能染上特洛依木马这种病毒了。   计算器有时死机,有时又重新激活;在没有执行什么操作的时候,却在拼命读写硬盘;系统莫明其妙地对软驱进行搜索;没有运行大的程序,而系统的速度越来越慢,系统资源占用很多;用Ctrl+Alt+Del调出任务表,发现有多个名字相同的程序在运行,而且可能会随时间的增加而增多(可是,有一些程序是不会出现在这个列表里的。懂得编程的朋友应该知道这不难做到,借助PVIEW95就可以看到)。特别是在连入Internet网或是局域网后,如果你的机器有这些现象,就应小心了,当然也有可能是一些其它的病毒在作怪。   病毒防治   一般中了木马程序最简单的解决办法就是用杀毒软件清除,如金山毒霸、瑞星等。如果对系统熟悉也可以手动清除,首先应该按照Win9x下程序自激活的方法中所述的情况检查一下是否有可疑程序(最好的情况是你熟悉你的系统正常时的这些项,用系统自带的regedit程序查看 /修改注册表)。发现可疑程序将其连同该注册表项一起删除即可,重启系统则木马就已经被清除了。不过这里要提醒大家一点,在做删除操作和注册表修改操作前一定要先备份。   “泡沫小子”病毒   泡沫小子是一种通过Outlook广泛传播的蠕虫病毒。它是第一个不需要从电子邮件打开附件就能被激活的蠕虫病毒。   病毒诊断   一般泡沫小子发送一封主题为“BubblleBoy is back!”(泡沫小子来了!)的HTML电子邮件。如果你的IE5.0的安全保护设置级别置为中、低级,则该HTML页隐含着(植入)VBS程序代码,在未提示用户的情况下就会被执行。   病毒防治   这种病毒在你眼前,要采取哪些简便的方法防范它呢?   首先要做到1.不要开启匿名邮件附件,只打开已知附件,以及可信资源建立链接关系。2.关闭自动打开附件功能。3.执行*.EXE、*.HTA、*.VBS和其它可执行附件时要谨慎。4.打开*.DOC、*.XLS、*.PPT文件时要小心。5.不要在本地邮件列表中保存别名为“ALL-Company”的邮件。6.将Internet Explorer4.x或以上版本的安全级别设定成“高级”;终止Active X和Active Scripting。7.Outlook Express:终止打开和/或预览窗口,在对话框下面,不要选中预览窗口。8.Netscape:终止JavaScript在菜单栏中选取编辑/参数,在对话框左边,点击高级,在对话框右边,不要启用邮件和新闻的JavaScript,停止JavaScript浏览最高安全级别。9.其它邮件用户:终止Visual Basic Scripting或JavaScript。   尼姆达(概念)病毒   尼姆达(概念)病毒,是近日来被发现的一种恶性邮件病毒。该病毒利用微软IE浏览器解释Outlook邮件MIME头的漏洞感染和传播,其速度之快,不可等闲视之。   病毒诊断   尼姆达(概念)感染特征和发现方法其实很简单,当感染“概念”病毒之后,它会在执行时将自身复制到临时目录下,再运行在临时目录中的副本。病毒复制到临时目录下的副本(有两个文件,文件名为???????.tmp.exe),在系统下次启动时,病毒会将他们删除(修改 wininit.ini文件)。同时该病毒还会在Windows的system目录中生成load.exe文件,修改system.ini中的shell,把shell=explorer.exe改为explorer.exe load.exe –dontrunold,从而使病毒在下次系统启动时仍能被激活。另外,在system目录下,该病毒还会生成一个副本:riched20.dll。riched20.dll目录在Windows系统中就存在,它就会把它覆盖掉了。   为了通过邮件将自己传播出去,该病毒使用了MAPI函数读取用户的E-mail并从中读取SMTP地址和E-mail地址。病毒还在Windows的临时目录下生成一个eml 格式的临时文件,大小为79225字节,该文件已经用BASE64编码将病毒包含进去。然后,病毒就用取得的地址将带毒邮件发送出去。   病毒防治   由于尼姆达(概念)病毒借助的是IE浏览器的漏洞来传播的,所以堵住漏洞可以说是防护的第一步。以下的方法都可以有效的弥补这个IE的漏洞:   1.添加微软官方的补丁   SP2微软官方已经就Windows 2000系统目前发现的漏洞做了个“十全大补”的补丁,可以弥补绝大部分的Windows 2000漏洞。 SP2共100M左右,可以到以下网址下载: http://www.microsoft.com/windows2000/downloads/critical/q269862/default.asp   2.利用漏洞检测与修复系统   如果大家嫌SP2太大、太麻烦,可以用天网防火墙个人版自带的漏洞检测与修复系统可以检查出Windows中严重的系统漏洞,并自动修复它。目前的天网个人版(测试版)中所带的漏洞检测与修复系统已经可以检查和修复“概念”病毒赖以传染和传播的 IE浏览器漏洞,所以对于防护“概念”病毒而言,是一个不可多得的顺手工具。经过了漏洞检测与修复系统修复之后,“概念”病毒就无法直接在用户的机器上自动运行了。   该防火墙可以到以下网站下载,网址为:http://www.sky.net.cn/在修补完浏览器的漏洞之后,即使是收邮件的时候遇见携带有“概念”病毒的邮件,它也不能顺利的潜入用户的计算机。这时它会出现一个下载提示框。切记不要按“确定”,只要取消它就行了。或者按“确定”之后,你可以得到一个“概念”病毒的本体程序 Readme.exe。另一种防护方法是:不要用Outlook 收邮件,找其它的邮件客户端软件吧。   3.利用杀毒软件清除   如果在成功免疫前,你的计算机中了这个病毒,可以下载最近的防病毒软件进行清除,如金山毒霸、Norton等防病毒软件都已经推出了能够清除“概念”的最新病毒包。但是如果你需要根治这个漏洞,还是得按照以上的方法进行“免疫”。 解决U盘常见病毒的方法! 最近发现u盘病毒的传播方式发现已经不是当初简单了,在U盘根目录下会生成一个autorun.inf的引导文件那么简单了。如果是单纯地利用aoturun.inf传播,那么切记:打开U盘时要通过点击鼠标右键=》资源管理器的方式打开,千万不要双击,否则病毒立即会执行!然后把资源管理器的不隐藏系统文件的勾打开,再双击打开autorun.inf查看病毒路径,然后一并删除即可。但最新的U盘病毒变种已经不采取这种简单的方式了,其方式有三种:第一种是把U盘下所有文件夹隐藏,并把自己复制成与原文件夹名称相同的具有文件夹图标的文件,当你点击时病毒会执行并且该病毒会打开该名称的文件夹。当然按照上述的方式把隐藏属性去掉你可以看到这种景象。第二种是在U盘的所有可执行文件里插入病毒本身,这种情况比较恶劣。一般你必须用杀毒软件或其他分离软件才能把你能用的那部分提取出来。第三种是直接在每一个文件夹下面生成一个与该文件夹同名的exe文件,跟第一种相似,但更具有混淆性。所以大家一般时候不要什么东西都往U盘里放,轻者被插入病毒,重者资料被更改或破坏导致重要信息无法恢复;如果要在U盘里放东西事先一定要在电脑里做备份哦!另外大家买U盘时一定要买那种有写保护的,如果在别人电脑上使用,但只是读取信息,就把写保护打开,如果他电脑有病毒,或许你会发现有弹出提示的信息,就说明他电脑有病毒了。目前已经发现的有固定名称的病毒如下: autorun.inf AdobeR.exe bittorrent.exe copy.exe desktop.exe desktop2.exe folder.exe host.exe msinfmgr.exe msvcr71.dll RavMonE.exe RavMonLog RECYCLER\*.* RECYCLER SHE.exe sxs.exe SYSTEM.VER toy.exe setup.pif 如果大家发现U盘下面有这些文件,那么基本上可以确定是病毒了。 当然目前给大家的简单的解决方法如下:把下面的东东保存为*.bat文件,放在桌面上,当你感觉U盘有病毒时就双击一下,或许能帮你解决一部分负担。 ----------------------------从下面开始----------------------------------- @echo off attrib -r -h -s -a j:\*.*\ del /f/s/q/a j:\autorun.inf del /f/s/q/a j:\AdobeR.exe del /f/s/q/a j:\bittorrent.exe del /f/s/q/a j:\copy.exe del /f/s/q/a j:\desktop.exe del /f/s/q/a j:\desktop2.exe del /f/s/q/a j:\folder.exe del /f/s/q/a j:\host.exe del /f/s/q/a j:\msinfmgr.exe del /f/s/q/a j:\msvcr71.dll del /f/s/q/a j:\RavMonE.exe del /f/s/q/a j:\RavMonLog del /f/s/q/a j:\RECYCLER\*.* del /f/s/q/a j:\RECYCLER del /f/s/q/a j:\SHE.exe del /f/s/q/a j:\sxs.exe del /f/s/q/a j:\SYSTEM.VER del /f/s/q/a j:\toy.exe del /f/s/q/a j:\setup.pif taskkill /F /im explorer.exe explorer.exe j:\ ----------------------------到这里结束----------------------------------- 五.常用DOS命令 1.Format 命令,用于格式化硬盘;例如:Format C: 2.MD 创建文件夹命令 例如: MD空格+文件夹名 3.DIR 查看文件夹命令,比较常用哟。例如:DIR空格+文件夹名 4.CD..回到上一级目录 5.FDISK 硬盘分区命令 例如:FDISK 6.DELETE 删除文件命令 例如:DELETE *.TXT 7.CD进入文件夹命令 例如: CD空格+文件夹名 附录:
工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究 研究生姓名: 唐帅 导师姓名: 罗军舟 教授 苏生 教授 申请学位类别 工 程 硕 士 学位授予单位 东 南 大 学 工程领域名称 软 件 工 程 论文答辩日期 研究方向 Android+HTML5 学位授予日期 答辩委员会主席 评阅人 硕士学位论文 基于Android+HTML5的移动Web项目 高效开发探究 专业名称: 软件工程 研究生姓名: 唐帅 导师姓名: 罗军舟 校外导师: 苏生 THE RESEARCH OF EFFICIENT DEVELOPMENT OF MOBILE WEB PROJECTS BASED ON ANDROID AND HTML5 A Thesis Submitted to SoutheastUniversity For the Academic Degree of Master of Engineering BY Tang Shuai Supervised by Luo Junzhou and Su Sheng College of Software Engineering SoutheastUniversity February 2017 东南大学学位论文 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 研究生签名: 日期: 东南大学学位论文使用 授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文和在技术保护期限内的论文外,允许论文被查阅和借阅,可以公布(包括以电子信息形式刊登)论文的全部内容或中、英文摘要等部分内容。论文的公布(包括以电子信息形式刊登)授权东南大学研究生院办理。 研究生签名: 导师签名: 日期: 摘要 目前工业市场上认证检测领域,业务流程陈旧繁琐,用户与检测机构无法便捷有效的沟通。除此之外,用户需要亲临检测机构实地送检,在检测的每一个环节用户也无法有效的进行追踪,这些都制约着认证检测领域的进一步发展。鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作。 然而,由于HTML5的W3C标准规范还未制定,安卓系统中类浏览器Webview自身存在一些局限性,因此仍存在着诸多问题亟需解决,包括:(1)多窗口类浏览器模式问题。安卓上用于加载的Webview视图窗口只是作为类浏览器而存在,在安卓上更是只能同时运行一个Webview。(2)跨域数据交互问题。不同的Webview之间无法共享数据。(3)页面自适应问题。页面难以兼容适应不同分辨率的设备和浏览器。 本文研究并设计了基于Android+HTML5的在线认证检测系统,主要工作包括以下四个方面: (1)针对多窗口类浏览器模式问题,指出并分析了该问题存在的原因,利用Activity的运行机制,通过Fragment栈对主要模块的Webview进行管理,实现对不同模块之间切换的控制。 (2)针对跨域数据交互问题,指出并分析了跨域缓存交互问题出现的原因,通过在HTML5存储技术的基础上,重写LocalStorage,用移动端本地的Sqlite进行数据维护,实现跨域数据交互。 (3)针对页面自适应问题,本文结合渐进增强以及拥抱流式布局的思想,同时研究利用了移动设备的视口特性,实现跨分辨率、跨设备的页面自适应。 (4)针对系统的功能实现问题,通过结合利用原生态框架与HTML5的跨平台性,实现了“认我测”在线认证检测系统。 综上所述,“认我测”在线认证检测系统,率先填补了认证检测领域移动端的空缺,提供了Web浏览器+移动端的双端访问模式,给用户提供了多种访问途径,真正实现了用户和检测机构的随时随地在线下单检测。 关键词:HTML5,检测与认证,Android,多窗口浏览器模式,跨域处理,页面自适应 Abstract At present business processes are old and explicit in industrial market of certification and detection filed, as well as users can not have effective and convenient communication with detection institutions. Apart from these, customers have to come to detection institutions personally to send samples, and they can not take effective trace of each process during detection. All of these limit the advanced development of certification and detection field. As the versions, types and resolution of users' mobile phones vary in current market, conditional ways depending on systems respectively cost extra time and resources. In order to develop efficiently and save cost of projects, this paper combines android with HTML5 to design and start the development of mobile web system. However, due to standard specification of W3C of HTML5 hasn't been drafted, and browser-alike webview in android has several limits itself, there are still many problems to be solved. Including: (1) Multi-window browser pattern. Webview window in android used to load pages just works like browser, as well as there is only one webview running at the same time. (2)Cross-domain data interaction. Different webviews can not share data. (3)Self-adaption of pages. It is difficult for pages to adapt to devices and browsers of different resolution. This paper researched and designed an online certification and detecting system based on Android and HTML5. Four main parts are included as following: (1) Considering multi-window browser problem, this paper pointed out and analysed reasons of it. The running mechanism of Activity was used cleverly and webiews of main modules were managed through Fragment stacks, in order to control the switch among different modules. (2)Considering cross-domain data interaction problem, reasons of it were pointed out and analysed. LocalStorage was overrided based on HTML5 storage technics, and local sqlite was used to maintain data in order to realize cross-domain data interaction. (3)Considering self-adaption of pages, the system combined the ideas of progressive enhancement and embracing flow layout, aiming at personalitites of mobile facilities viewports, and realized respective solution. (4)Considering the implementation of system functions, the system took the advanteges of native frameworks as well as HTML5 crossing platforms, and developed "Finding Me Detecting" online certification and detecting system. In summary, "Finding Me Detecting" online certification and detecting system filled up blanks of mobile market in certification and detecting field, provoding double side access pattern, that is to say web browser together with mobile side, offering users various ways to access the system, and really realized the goal of whenever and wherever ordering to detect for users and detecting companies. Keywords: HTML5; Quality Authentication; Android; Multi-window browser; Cross-domain data; Page self-adaption 专业名词清单 专业名词 名词解释 HTML5 万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改 Android 一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导开发 IOS 由苹果公司开发的移动操作系统 Webkit 一个开源的浏览器引擎,在手机上的应用十分广泛 Webview WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页 Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与用户交互的组件 SSH 为 Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增的本地存储解决方案之一 LocalStorage 本地永久性存储数据,除非显式将其删除或清空 SessionStorage 存储的数据只在会话期间有效,关闭浏览器则自动删除 Sqlite 一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中 W3C 万维网联盟,创建于1994年,是Web技术领域最具权威和影响力的国际中立性技术标准机构。主要的工作是发展 Web 规范,这些规范描述了 Web 的通信协议(比如 HTML 和 XHTML)和其他的构建模块。 NativeApp 使用传统原生态Android SDK来实现的应用 WebApp 基于浏览器来实现的一种应用 HybridApp 一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行 优雅降级 一开始就构建站点的完整功能,然后针对浏览器测试和修复。认为应该针对那些最高级、最完善的浏览器来开发网站。而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段 渐进增强 一开始只构建站点的最少特性,然后不断针对各浏览器追加功能。先让网站能够正常工作于尽可能旧的浏览器上,然后不断为它在新型浏览器上实现更多的增强和改进。 Viewport 移动设备上的Viewport就是设备的屏幕上能用来显示网页的一块区域,即浏览器上用来显示网页的那部分区域。Viewport不局限于浏览器可视区域的大小,可能比浏览器的可视区域要大,也可能比浏览器的可视区域要小。 媒体查询 CSS媒体查询允许开发者基于浏览网站的设备的特性来应用不同的样式申明,最常用的特性是视口宽度。 GCF 谷歌内嵌浏览器框架, 使用此插件,用户可以通过Internet Explorer的用户界面,以Chrome内核的渲染方式浏览网页。Chrome Frame 会把最新版的Chrome Webkit 内核和JavaScript 引擎注入到IE中, IE浏览器将获得Chrome的性能和功能 目录 摘要 I ABSTRACT II 专业名词清单 III 第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关研究现状 2 1.2.1 在线认证检测平台开发现状 2 1.2.2 HTML5 3 1.2.3 Android 3 1.2.4 Android移动Web项目开发的三种解决方案:Native, Web和Hybrid优缺陷分析 4 1.2.5国内外应用现状 6 1.2.6 研究现状总结 7 1.3研究目标与内容 7 1.3.1多窗口浏览器模式的实现机制 7 1.3.2跨域交互即缓存处理方法 7 1.3.3页面自适应机制,即设备自适应与浏览器自适应机制 8 1.3.4 “认我测”质检服务平台的设计和实现 8 1.4 本文的结构安排 8 第二章 多窗口类浏览器设计 11 2.1 多窗口类浏览器需求分析 11 2.1.1 Activity简介 11 2.1.2 Fragment简介 11 2.1.3 多窗口类浏览器需求 12 2.2 多窗口浏览器模式的实现机制 12 2.2.1安卓移动端多窗口浏览器框架 12 2.1.2多窗口浏览器模式实现机制 13 2.3 模块实现 13 2.3.1类浏览器模式 13 2.3.2多窗口类浏览器模式 14 2.4 本章小结 15 第三章 跨域交互缓存处理设计 17 3.1 跨域交互缓存处理需求 17 3.1.1 缓存技术WebStorage 17 3.1.2 跨域交互缓存处理需求 17 3.1.3 页面回退管理需求 17 3.2 缓存处理机制 18 3.2.1 跨域缓存处理 18 3.2.2页面回退管理 18 3.3 模块实现 19 3.3.1跨域缓存机制的主要实现 19 3.3.2.页面回退管理的实现 22 3.4本章小结 22 第四章 页面自适应机制设计 23 4.1页面兼容策略 23 4.2 页面自适应策略 24 4.2.1设备自适应 24 4.2.2.浏览器自适应 25 4.3 模块实现 25 4.3.1根据适口属性设计响应式布局: 26 4.3.2同分辨率范围内的流式布局设计 26 4.3.3移动端viewport属性设定 27 4.3.4组件样式的渐进增强设计 27 4.4 本章小结 27 第五章 认我测在线检测服务系统设计 29 5.1认我测在线检测服务系统需求分析 29 5.2 系统时序流程 29 5.3 系统功能模块图 30 5.4 本章小结 32 第六章 认我测在线检测服务系统实现与测试 33 6.1认我测在线检测服务框架设计 33 6.2 系统运行环境搭建及配置 34 6.2.1 AndroidManifest.xml主程序环境配置 34 6.2.2 移动端工程资源布局 35 6.3 认我测在线认证检测系统的主要功能实现 36 6.3.1用户查询 36 6.3.2订单操作 37 6.3.3个人信息维护 37 6.4.系统功能测试 38 6.4.1 首页功能模块 38 6.4.2 订单功能模块 38 6.4.3 个人信息模块 39 6.4.4页面自适应 40 6.5 本章小结 41 第七章 总结与展望 43 7.1 工作总结 43 7.2 研究展望 44 致谢 47 参考文献 49 第一章 绪论 1.1 研究背景与意义 目前市场业务中在产品以及其他项目的认证和检测方面存在诸多不便,用户需要实地考察并频繁与检测单位沟通,填写繁琐的纸质检测报告、当面送递样品,对于检测环节中存在的问题难以及时交互并处理。市场上相应的检测平台诸如检测通、凡特网等皆为pc端检测网站,并且操作繁琐不够人性化,用户在实地使用中存在很多问题。昆山工业技术研究院着眼于为委托用户和质检机构搭建良好的沟通桥梁,免去目前市场业务中企业用户需要实地地并频繁地与检测机构沟通,从而提出自己的委托乃至下委托单、等待检测报告等,设计并研发了市场上首款提供质检服务的移动端app,即“认我测”质检服务平台系统,用户只需在手机上安装轻盈小巧的系统app,即可方便快捷的进行委托服务,质检机构亦可便捷地处理请求订单,双方都可以实时追踪委托订单的状态变化。 考虑到目前市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统(如android、ios)分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本、提高项目开发效率,并迎合近年来新兴的HTML5移动页面开发技术,公司采用Android+HTML5相结合的方式进行移动端系统的研发工作。系统的主体一次开发即可在不同设备,包括不同系统、不同型号、不同分辨率设备上运行,免去了大量冗余的开发工作,提高项目的开发效率,降低项目的开发维护成本,为用户提供便捷服务。项目的封装框架只需根据系统的不同稍微改动定制即可,传统的多套系统项目现在只需一次开发,即可适应于不同机型。此外系统还可以通过微信公众号推广链接进行访问,大大的增强了系统的可扩展性和用户操作的便捷性。 然而,由于HTML5的W3C标准规范还未制定,安卓系统中类浏览器Webview自身存在一些局限性,使得结合安卓与HTML5开发移动web项目仍处在探索研发阶段,还不够成熟和完善,相应的技术支持也比较有限,因此仍存在着诸多问题亟需解决,包括: (1)多窗口浏览器模式问题。安卓用于加载的Webview视图窗口只是作为类浏览器而存在,并不等同于pc浏览器,在安卓上更是只能同时运行一个Webview,每次加载新的页面都只能覆盖掉原先的页面,无法达到网页浏览器的多窗口模式。通过常规的pc浏览器窗口的相应open、close进行新增窗口、关闭窗口等操作,在Webview类浏览器窗口中都无法正常运作,甚至会导致Webview失去响应。为此,需要研究相应的解决方案,用于模拟用户适应的网页多窗口浏览器模式。(2)跨域交互问题,即缓存机制与浏览记录管理问题。不同于网页浏览器,用户的数据可以在不同的窗口之间共享,Webview由于其模块之间无法共享数据的机制为保存用户信息以及共享其他程序数据带来了巨大难题。为此需要区分数据是同模块内部共享还是跨域共享访问,并提供相应的解决方案。Webview通过模拟多窗口浏览器模式运作后,在不断的新开页面以及不同模块之间互相切换,会导致页面回退时历史浏览地址发生覆盖,使得不同模块无法回到相应的上级页面,为此需要有效的对页面的浏览历史进行管理,并提供切实可行的方案。(3)页面自适应问题,即设备自适应与浏览器自适应问题。针对移动设备繁杂的屏幕分辨率,如何让页面进行分辨率自适应,从而发挥相对于原生态安卓开发的优势,是一个需要探索和解决的问题。考虑到高效开发设计以及便于推广应用,HTML5的界面不仅仅需要适应基于Webkit内核的Webview,还要能够方便的应用于PC端的网页,如何让HTML5的网页能够适用不同的浏览器内核,也是一个亟待解决的问题。 为此,如何使得“认我测”质检服务平台中安卓与HTML5的结合开发满足多浏览器模式,并解决跨域之间的数据交互问题,同时提高页面的设备自适应和浏览器自适应能力,成为跨平台移动web项目高效开发所亟待解决的问题。 1.2国内外相关研究现状 1.2.1 在线认证检测平台开发现状 互联网界目前在检测领域存在部分在线检测认证的平台,诸如华强认证、检测通等,可以为用户提供一些简单的检测申请,以及为检测机构提供平台发布相关信息。 图1.1 华强认证检测平台首页 如上图所示,在华强认证平台上用户可以选择认证或者检测服务,针对相应类型进行筛选。根据待检测的种类不同,选择相应的检测机构资质、证书、检测周期等查询结果,根据查询结果选择检测机构进行检测委托。检测机构与平台合作,提供负责的检测服务项目、价格等信息,在平台上开设个人站点,提供数据给平台,用于用户检索。 与时下常见的电商网站类似,此类检测平台都提供检测方设计自己的网站主页以出售检测服务,同时为用户提供检索结果、显示可购买的检测服务,用户可以选择质检服务并加入购物车、下单、查看检测方详情、与卖家(检测方)沟通检测细节等操作,但是这些平台都存在着共同的问题——流程不够清晰明了、检测服务不够个性化、用户操作繁琐等,这些问题给用户和检测机构的使用以及交流带来了很多不便。平台提供的检测项目有限,很多时候用户无法确定自己需要检测的项目所属,也不能有效地与检测方进行沟通。与此同时,认证检测领域对于移动端的涉及基础为零,目前主流移动端市场没有相应的认证检测服务产品,随着移动产品愈发便捷,在移动端研发设计相应的认证检测产品,使得用户可以随时随地进行下单咨询变得愈发重要。 1.2.2 HTML5 为了方便用户的使用,“认我测”认证检测平台的PC端基于B/S架构,其设计和研发离不开浏览器内核支持,同时移动端的Web开发也同样需要HTML5语言的支持。利用HTML5的崭新特性,能够更好地为用户提供服务。 HTML5是用于取代1999年所制定的HTML4.01和XHTML1.0标准的HTML(标准通用标记语言下的一个应用)标准版本;现在仍处于发展阶段,但大部分浏览器已经支持某些HTML5技术。HTML5有两大特点:首先,强化了Web网页的表现性能。其次,追加了本地数据库等Web应用的功能。 HTML5广义上为包括HTML、CSS和JavaScript在内的一套技术组合。减少浏览器对于需要插件的丰富性网络应用服务,如Adobe Flash、Microsoft Silverlight与Oracle JavaFX的需求,并且提供更多能有效增强网络应用的标准集。目前HTML5已向开发人员提供了很多新的标签,如section,nav,article,header和footer等。这些标签语义化程度高,被广泛使用。 HTML5逐渐为移动Web开发所采纳,主要原因在于其适用移动项目开发的八大特性,即离线缓存、音频视频自由嵌入、地理定位、Canvas绘图、丰富的交互方式、低开发维护成本、CSS支持以及调用手机硬件。其中离线缓存可以看做是加强版的cookie,不受数据大小限制,有更好的弹性以及架构,可以将数据写入到本机的ROM中,还可以在关闭浏览器后再次打开时恢复数据,以减少网络流量。音频视频方面HTML5无需拆分开混排的多媒体内容,可以将文字、图片、音频、视频等放在一起进行处理。HTML5提供地理定位的支持,无需专属导航软件,通过缓存即可加载地图数据,方便灵活。在系统开发和维护方面,打开即可使用最新版本,免去重新下载升级包的麻烦,使用过程中就直接更新了离线缓存。除此之外,HTML5增强了对CSS样式的支持,极大的增强了界面的美化和友好性,提高了用户体验。 1.2.3 Android Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。 Android是一个真正意义上的开放性移动设备综合平台。它包括操作系统、用户界面和应用程序-移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 在开发之初,Android平台就被设计成一个由一系列应用所组成的平台。所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于在应用和硬件资源间进行通讯的API。Android打破了应用之间的界限,开发人员可以把Web上的数据与本地的联系人、日历、位置信息结合起来,为用户创造全新的用户体验。此外应用程序不仅可以通过标准API 访问核心移动设备功能、互联网,应用程序还可以声明它们的功能供其他应用程序使用。 考虑到移动端市场主流操作系统的使用情况、移动领域的发展趋势以及Android操作系统的开源性,系统采用Android操作系统为研究对象,在其基础上进行设计和研发,使得认证检测产品能够为主流用户所使用,为用户带来便捷。 1.2.4 Android移动Web项目开发的三种解决方案:Native, Web和Hybrid优缺陷分析 Native app是用传统原生态Android SDK来实现的应用;Web app是基于浏览器来实现的一种应用。 Hybrid app是一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行。对用户来说,Hybrid App与Native App很难区别。二者都可以从应用程序商店或市场下载,存放在移动设备上,运行方式完全如同其他任何应用程序。但是对开发者来说,却存在巨大的差异,因为其无需为每一种移动操作系统从头开始重新编写应用程序,而是只要用HTML、CSS和JavaScript编写其中一部分应用程序代码,即可在多个设备上重复使用。 以下是三种技术各自的优缺点。 Native app Web app Hybrid app 系统特性 可以完美发挥系统特性(调用系统服务、内存管理等); 操控设备硬件(如相机、蓝牙、振动器等) 无法充分发挥系统特性(调用系统服务、内存管理等); 无法操控设备硬件(如相机、蓝牙、振动器等) 可以发挥大部分系统特性(调用系统服务、内存管理等); 可以通过JavaScript API操控设备硬件(如相机、蓝牙、振动器等) 用户体验 可提供最佳的用户体验,最优质的用户界面,最华丽的交互; 支持消息推送 用户体验较差; 图片和动画支持性不高; 不支持消息推送 可提供较好的用户体验; 支持消息推送 本地资源 可访问本地资源 不支持访问本地资源 可访问本地资源 应用更新 获得新版本时需重新下载应用更新,不够方便 跨平台开发、用户不需要下载安装App,开发速度快 可以下载新应用更新,也可在线更新 适用场景 适合制作游戏等性能要求比较高的应用 对于对界面的灵活性有较高要求的app 适用于对画面表现特别高以外的主流需求 开发成本 各平台不兼容,多平台的开发、移植比较复杂,开发成本高,开发周期长,开发成本高; 维护多个版本的成本比较高; 针对多种设备(不同分辨率、不同硬件配置等)的调试和适配较麻烦,维护成本高; 纯HTML5快速开发,较低的开发成本; 支持设备广泛,基于浏览器,跨平台性,维护成本低; Native+HTML5 针对不同系统制定系统外壳,页面部分可重用,大大降低开发成本; 可直接在线更新,更新成本低; 跨平台性,无需针对不同平台开发多个版本应用。 网络要求 支持离线使用 非常依赖网络,网络不稳定等其他环境时,用户请求页面的效率大打折扣 大部分功能依赖网络 考虑到系统需要提供较好的用户体验、用户与检测机构能够利用消息推送进行实时沟通、用户的查询和下单操作默认已具备网络环境等因素,因此为了更好地利用移动端本地硬件支持以及实现跨平台、跨设备的开发,系统采取了Hybrid混合开发模式。通过在原生态框架中嵌入Webview类浏览器,主体页面采用HTML5开发,由原生态定制系统框架,这样在更换移动端操作系统时,只需相应更换系统外壳,主体部分可以重复利用,极大地减少了研发成本,提高了系统的可复用性。系统主体部分更新时,无需在应用市场中重新下载,应用HTML5的特性在线更新缓存即可方便地获取最新版本,为用户带来了便捷。 1.2.5国内外应用现状 图1.2 智能手机操作系统分布数据 市场调研公司Kantar Worldpanel ComTech发布的智能手机操作系统数据显示,截至2016年2月末的三个月内,Android中国城市的销售份额从去年同期的73%增至76.4%。而在美国和欧洲五大市场(包括英国、德国、法国、意大利和西班牙),Android的市场占比继续保持增长态势。因此系统选取市场移动端主流操作系统Android作为基础,进行移动端认证检测产品的研发和设计。 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发效率的要求,这时使用IOS&Andriod开发一个APP的成本相对过高,而HTML5的低成本、高效率、跨平台等特性马上被利用起来形成了一种新的开发模式:HybridAPP。 作为一种混合开发的模式,Hybrid APP底层依赖于Native提供的容器(UIWebview),上层使用Html&Css&JS做业务开发,底层透明化、上层多多样化,这种场景非常有利于前端介入,非常适合业务快速迭代。Hybdrid作为目前主流的移动端开发设计模式,能够极大的利用Native和HTML5的优势,将性能与用户体验相结合,缩短跨系统的产品研发周期,给用户和研发都带来极大的便利。混合型APP软件兼具“原生型APP软件良好用户交互体验的优势”和“网页型APP软件跨平台开发的优势”。市场上一些主流移动应用都是基于混合型APP软件的方式开发,比如工商银行、百度搜索、街旁、东方航空、微信、去哪儿等。 目前已有众多企业采用混合型APP软件技术开发APP应用,一方面是开发简单,另外一方面可以形成一种开发的标准。企业封装大量的原生型的原生插件如支付功能插件供Java调用,并且可以在今后的项目中尽可能的复用,从而大幅降低开发时间和成本。混合型APP软件的标准化给企业移动应用开发、维护、更新都带来了极高的便捷性。 混合型APP软件通常是基于第三方跨平台移动应用引擎框架进行开发,在国内开发者中比较知名的有PhoneGap、Titanium和AppCan。这些引擎框架一般使用HTML5和Java作为编程语言,调用引擎封装的底层功能如照相机、传感器、通讯录、二维码等。HTML5和Java只是作为一种解析语言,真正调用的都是原生型APP软件一样封装的底层功能,这是和网页型APP软件的最大区别和不同。因为使用了浏览器技术,所以混合型APP软件通常具有跨平台的特性,并且开发成本和网页型APP软件接近,开发效率也远高于原生型APP软件。根据国际科技媒体ReadWriteWeb 2015数据统计显示,截至2015,有80%的App全部或部分基于HTML5研发。大部分的App内容以网页的形式呈现,包括微信、Facebook、Twitter等。为此,Hybrid混合模式成为“认我测”在线检测服务平台移动端框架的开发和设计依赖。 尽管微信通过公众号的形式,使得Android+HTML5模式得以应用并推广,这项技术目前仍不够完善,利用web实现移动app存在一些瓶颈。(1)根据百度移动互联网发展趋势报告,iPhone下载一个1.407k的网页,建立连接耗时1.35s左右,传输耗时0.15s左右。这样,导致app在建立连接的时候,屏幕处于白屏状态。app在一秒多的时间内,完全处于白屏状态,加上3G、GPRS网络的不稳定,有时候等待app响应需要几秒甚至1几秒的时间,对于mobie app来说,这是个致命的缺陷。(2)难以实现本地存储。基于Android存在多版本系统,Android低版本中的Webkit对HTML5和CSS3不能够很好地支持。常用的HTML5向后兼容方案是通过Javascript+CSS+Html来模拟HTML5的一些特性,但过多的js存在于移动app中会得不偿失。 Android+HTML5的混合开发模式对于移动端Web项目开发已经成为市场的主流和趋势,与此同时这项技术还存在着一些问题,需要不断的进行改进和完善。 1.2.6 研究现状总结 总而言之,Android操作系统在移动市场仍居主流,HTML5也为用户带来崭新的特性,Hybrid混合开发模式也逐渐成为移动Web开发的主流设计模式,大量的市场应用都成功的应用和推广了Android+HTML5。正是在这种背景下,“认我测”在线认证检测系统率先填补了移动端认证检测领域的产品空缺,采取了Hybrid混合开发模式。同时,利用Android+HTML5相结合开发移动端Web项目尚处于应用阶段,仍然存在很多问题,还不够成熟和完善。如何将这二者更有效的结合使用,并解决过程中存在的问题,提高项目开发的效率以及节约开发成本,是一个需要研究探索的问题,这也是本课题的意旨。 1.3研究目标与内容 1.3.1多窗口浏览器模式的实现机制 深入挖掘Webview作为类浏览器视图窗口与传统PC端浏览器的区别,针对安卓端同一视图区域单一运行Webview的特性,通过在原生态安卓中启用Fragment视图加载不同视图页面,在外部Activity中对Fragment进行管理控制。同时调整窗口加载及操作模式,适应移动端相关操作从而实现程序中加载多个Webview视图窗口并可以随意切换,实现类浏览器多窗口加载资源并交互的模式。 1.3.2跨域交互即缓存处理方法 针对Webview不支持多窗口间跨域访问的问题,重写缓存处理方式以替代网页端会话级缓存机制,模拟web端本地存储localStorage对本地缓存的处理方法,诸如setItem()、getItem()、removeItem()以及clear(),通过将持久化数据存储在移动端本地数据库来模拟网页端数据持久化存储,实现多Webview间跨域交互访问以及缓存数据保存和处理。 通过维护Webview的历史栈,根据需求进行过滤跳转或者重新加载页面。若当前为重定向后的链接,那么回退的时候就需要忽略上一级的链接,不使用Webview自带的回退方法goBack(),相对地移除重定向和重定向后的url,获取到初始页面链接后自行进行loadUrl()操作. 1.3.3页面自适应机制,即设备自适应与浏览器自适应机制 利用Viewport来控制页面的缩放比例、页面的初始大小,针对不同分辨率的移动设备实现网页页面自适应。通过渐进增强以及优雅降级机制来控制不同版本、不同浏览器之间的兼容问题,以及利用JavaScript库辅助修正相应的样式问题,从而实现浏览器适配的机制。 1.3.4 “认我测”质检服务平台的设计和实现 移动客户端通过安卓与HTML5结合开发设计委托方和质检方app,通过原生态安卓框架外壳嵌入Webview渲染加载页面,添加Java接口与消息会话模块,通过移动端Sqlite操作数据重写localStorage来实现缓存机制,利用Fragment视图层控制Webview的切换与运行来展现主要的功能模块—委托方App:首页模块、订单模块、消息模块和个人模块;质检方App—订单模块、消息模块和个人模块。 服务器端采用J2EE的SSH框架搭建项目,通过微信公共账号链接Html页面,为用户提供多种系统访问途径,增强了系统的可扩展性,为用户带来便利。 1.4 本文的结构安排 本文共分为七个章节。 第一章是绪论部分,介绍课题的研究背景,指出课题的研究意义。然后通过对HTML5研究、Android移动Web开发技术研究以及Hybrid开发问题研究来介绍该课题在国内外的研究现状。最后说明本文的研究目标与内容,以及论文的结构安排。 第二章介绍多窗口类浏览器模式策略的设计与实现。针对现有移动端单一窗口存在的不足,提出类浏览器多窗口解决方案,并对多窗口浏览器模式进行设计 第三章其次分析Webview的跨域数据交互问题,针对移动端类浏览器内核不支持跨域数据访问的不足,提出本地持久性存储替代web端缓存的解决方案,并对跨域访问模式进行设计。同时分析了页面重定向导致的页面无法正常访问问题,提出采用页面浏览历史栈的管理方案,针对回退时目标页面解析进行相应操作。 第四章是多分辨率多设备页面自适应策略设计。首先分析现有Web页面在移动端不同分辨率和设备显示存在的问题,针对页面难以在不同设备上保持兼容适应的不足,提出页面自适应解决方案,并通过渐进增强以及媒体查询等方式进行设计。 第五章是认我测系统的设计,包括系统的功能需求分析、业务流程展示以及功能模块设计。 第六章是系统的功能测试,介绍了相关的实现环境与工具,并对系统的主要功能模块以及主要解决方案进行了功能验证测试。 第七章是总结展望部分,总结本文的主要工作内容与创新点,并对本文写作与实验过程中的不足及后续研究进行展望。 第二章 多窗口类浏览器设计 2.1 多窗口类浏览器需求分析 2.1.1 Activity简介 在Android中一个Activity是一个应用程序组件,它提供一个屏幕,用户可以为了完成某项任务用来交互,例如拍照、拨号、看地图、发送邮件等。每一个Activity被系统给予一个窗口,在该窗口上面可以绘制用户接口。一个应用程序通常由多个Activities组成,他们通常是松耦合关系。通常首次启动应用程序的时候呈现给用户的Activity被指定为"Main Activity”。为了完成不同的动作,每一个Activity可以启动另一个其他的Activity。一个新的Activity启动,前一个Activity就被终止了,但是系统将Activity保存在一个栈上。当一个新Activity启动,它被推送到栈顶,取得用户焦点。栈的管理符合“后进先出”原则,所以,当用户完成当前Activity然后点击back按钮,它被弹出栈并且被摧毁,然后恢复之前的Activity。 若一个Activity因新的Activity启动而停止,系统通过Activity的生命周期回调函数,通知其这种状态转变。一个Activity根据它自己的状态变化可能会收到许多回调函数的通知信息,诸如系统创建、停止、恢复或者摧毁Activity,每个回调都使得开发者得以完成相应状态的指定工作。例如,当停止Activity的时候,应该释放所有大的对象,如网络数据库连接。当Activity恢复时,开发人员可以重新获得必要的资源和恢复被中断的动作。这些状态转换都是Activity的生命周期的组成部分。 2.1.2 Fragment简介 Android 3.0中开始引入Fragments 的概念,可以称为:碎片、片段。其目的是为了解决不同屏幕分辨率下动态和灵活的UI设计,大屏幕如平板、小屏幕如手机。平板电脑的设计使得其有更多的空间来摆放更多的UI组件,而多出来的空间存放UI使得这些组件会产生更多的交互,从而诞生了Fragments。 Fragments 的设计不需要开发者来亲自管理视图层的复杂变化,通过将Activity 的布局分散到Fragment 中,可以在运行时修改Activity 的外观,并且由Activity 管理保存其变化。当一个片段指定了自身的布局时,它能和其他片段配置成不同的组合,在活动中为不同的屏幕尺寸修改布局配置。小屏幕可能每次显示一个片段,而大屏幕则可以显示两个或更多。Fragment是Activity的界面中的一部分或一种行为。可以把多个Fragments组合到一个Activity中来创建一个多面界面并且可以在多个Activity中重用一个Fragment。除此之外,可以把Fragment认为是模块化的一段Activity,它具有自己的生命周期,接收它自己的事件,并可以在Activity运行时被添加或删除。 Fragment不能独立存在,它必须被嵌入到Activity中,而且Fragment的生命周期受到所在的Activity的影响。当Activity暂停时,它拥有的所有的Fragments都被暂停;当Activity销毁时,它拥有的所有Fragments都被销毁。然而,当activity运行时(在onResume()之后,onPause()之前),可以单独地操作每个Fragment,比如添加或删除它们。在执行上述针对Fragment的事务时,可以将事务添加到一个栈中,这个栈被Activity管理,栈中的每一条都是一个Fragment的一次事务。有了这个栈,就可以反向执行Fragment的事务,这样就可以在Fragment级支持“返回”键(向后导航)。 2.1.3 多窗口类浏览器需求 在Android中展现在用户面前的Activity同时只能存在一个,而由于类浏览器内核Webkit的特性,一个Activity中同时只能加载一个Webview用以渲染网页,如果用户想模仿Web浏览器新增一个浏览器标签窗口打开新页面,只能将原来的网页覆盖掉,无法在窗口间来回切换,用户也无法保持原有的浏览器使用习惯。为此,需要利用Activity栈的切换特点,将系统的主要模块分别设计在不同的Fragment上,通过各自的Webview进行加载渲染,在用户需要切换窗口时,通过管理切换Fragment达到目的的实现。 2.2 多窗口浏览器模式的实现机制 2.2.1安卓移动端多窗口浏览器框架 图2.1 多窗口浏览器模式系统框架图 如图4所示,系统安卓移动端由首页、订单、消息以及个人信息四个模块构成,每个模块对应一个视图层Fragment,在安卓Activity运行时一次加载一个视图Fragment,通过底部的原生态菜单栏BottomBar进行视图之间的切换。每个视图Fragment对应同一个位置的Webview类浏览器窗口,通过Webview加载所需要的页面,通过外部的Fragment对Webview的加载以及切换进行控制,从而实现类浏览器多窗口模式。 2.1.2多窗口浏览器模式实现机制 多窗口浏览器模式的实现原理为:安卓外部Activity控制视图层Fragment的加载和切换,Fragment内部加载和控制Webview对页面的渲染,同时调整Web端页面的窗口打开和关闭模式,通过页面重定向进行打开和关闭返回。 多窗口浏览器模式解决两个问题,一是安卓中的类浏览器窗口模式,二是浏览器多标签模式。在移动端的页面加载过程中,类浏览器内核Webview的运行机制为覆盖加载页面,一次运行期间只同时存在一个Webview,与PC端浏览器的运行模式不同,无法通过open打开一个新的浏览器标签页,也无法通过close关闭单个的标签页。为此需要通过loadUrl进行页面重定向,在关闭页面时通过loadUrl反重定向或者通过Webview本身的goBack方法进行回退。移动端的Webview在全局意义上等价于PC端的浏览器,但是通过close关闭的不是一个窗口,而是关闭了整个浏览器。安卓中Activity运行时只能加载一个Webview,因此无法同时展现不同的页面,为此需要通过外部对Webview序列的控制,模拟多窗口显示页面的模式。 在安卓Activity的视图View初始化过程中,实例化需要首次显示的视图层fragment (如首页),将其放入实例化的视图层管理容器HashMap,并通过changeFragmentFrom Menu方法控制用户对视图层Fragment的切换,将原有的视图层置为等待恢复状态,并激活新的视图层用以在Activity中展现,通过changeFragmentBack控制用户通过回退操作唤醒的首页视图层,以此来控制不同视图层,即类浏览器窗口之间的切换。在相应的Fragment视图层中,初始化视图InitView时渲染加载Webview,同时控制底部的菜单栏,通过Webview加载相应的本地网页或服务器端网页,设置Webview相应的属性进而控制页面由Webview加载,而非默认的系统浏览器加载。为Webview绑定页面与原生态安卓相交互的接口,从而可以在加载的页面内调用安卓的原生态功能。 2.3 模块实现 2.3.1类浏览器模式 该部分主要为安卓中通过Webview渲染加载网页的过程。主要包含以下过程: Fragment布局文件中声明控件Webview,绑定其资源ID,为Webview设置宽度和高度。 (1)在Fragment视图初始化initView部分,利用findViewById()通过资源ID获取到Webview控件,对其进行初始化,同时设置相关的webSettings属性,让Webview可以运行JavaScript脚本以及能与本机数据库进行交互。 (2)重写WebViewClient的shouldOverrideUrlLoading()函数,让应用程序的Webview直接加载网页内容,而不调用外部的浏览器。 (3)重写Webview网页对话框,构建一个Builder用以显示网页中的对话框,在点击确定按钮之后,继续执行网页中的操作,同时关闭Builder对话框。 (4)为JavaScript创建安卓接口。通过addJavaScriptInterface为Webview绑定底层Java接口,同时提供相应的接口方法名以及在页面中可以调用的句柄名称,通过该句柄和方法名,即可在Html5页面的JavaScript中访问该底层的Java方法,实现对页面上部和底部的系统外壳的展示管理。 (5)通过loadUrl进行对目标页面的渲染加载,可以加载访问服务器端的页面,也可访问放置在项目内部的页面文件,该模式需要将相应页面放置于系统的assets目录下。相对而言服务器端页面更加常用,也便于维护。 2.3.2多窗口类浏览器模式 图2.2 多窗口类浏览器模式原理图 (1)创建各个主功能模块的视图类Fragment,分别为主界面模块HomeFragment、订单模块OrderFragment、聊天咨询模块MessageFragment以及个人中心模块PersonalFragment,继承自基类BaseFragment。 (2)每个Fragment视图类中声明并初始化相应的Webview组件,对其进行属性设置,为其绑定JavaScript接口并覆盖渲染加载页面的方法,绑定相应的需要在页面调用的底层Java方法接口。重写默认的页面回退响应事件,对页面访问历史以及目标访问页面进行过滤判断,执行相应的处理方法。 (3)在MainActivity的初始化initView中声明并初始化Fragment管理容器HashMap,初始化主页视图HomeFragment并将其加入容器,设置其为默认加载视图。获取FragmentManager用以维护管理Fragment队列,调用beginTransaction方法开启事务。 (4)重写回退按钮响应事件。当页面回到各自模块的初始页面然后按下回退键时,判断当前模块所在的Fragment,由主页模块后退时,执行确认退出系统操作,若从其他模块进行后退,则回到主页模块。通过底部菜单栏setRadioChecked方法设定当前模块的选中标识。 (5)重写模块间切换的方法changeFragmentFromMenu,开启事务,对模块标识ftag进行判断操作,根据用户点击的模块图表将相应的模块视图Fragment通过onResume()进行恢复,同时通过show()将该模块进行展示,从Fragment管理容器中将主页模块以外的Fragment移除。将带有oflag暂停标识的Fragment视图进行暂停处理,通过hide隐藏取消该视图的展示。 (6)在各自的Fragment模块视图类中重写onResume方法,用以在模块恢复时进行用户是否登录判断。对Webview渲染加载的页面进行分析,判断是否包含index初始页面标识。根据flag标识进行是否需要登录操作,flag为1表示从其他Fragment跳转到该模块的Fragment视图并需要用户登录。 以上就是多窗口类浏览器模式的实现主要环节,通过Webview加载渲染服务器资源页面,控制碎片视图Fragment展现各自模块的Webview,在MainActivity对碎片容器以及碎片视图之间的切换进行管理控制,从而完成多窗口类浏览器模式的实现。 2.4 本章小结 本章分析并介绍了安卓中Activity的基本性质,对碎片视图Fragment进行了相关阐述和引出,综合分析了多窗口类浏览器模式的设计需求。随后对多窗口类浏览器模式的框架进行了设计,通过Activity运行管理Fragment的加载和切换,各个模块的Fragment视图独自加载运行相应的Webview,补充和完善不同模块之间切换和回退的业务逻辑。在模块实现部分详细描述了两个关键部分的实现环节,即类浏览器模式和多窗口类浏览器模式,介绍了过程中主要用到的方法以及实现思想。 第三章 跨域交互缓存处理设计 3.1 跨域交互缓存处理需求 3.1.1 缓存技术WebStorage 图3.1 WebStorage示意图 WebStorage 使得网站能够把信息存储到本地的计算机上,并在以后需要的时候进行获取。WebStorage和Cookie类似,区别在于WebStorage是为了更大容量存储而进行设计。Cookie的大小是受限的,并且每次当请求一个新的页面的时候,Cookie都会被发送过去。而WebStorage则存储在计算机上,网站在页面加载完毕后可以通过Javascript来获取这些数据。 WebStorage提供两种类型的API:localStorage和sessionStorage,区别在于localStorage是本地永久性存储的数据,除非显式将其删除或清空,否则将一直保存在本地。sessionStorage存储的数据只在会话期间有效,关闭浏览器则自动删除。两个对象都有共同的操作API。 3.1.2 跨域交互缓存处理需求 WebStorage存储技术针对的是同一个类浏览器Webview,系统在各模块之间由不同的Webview加载渲染,通过不同的Fragment进行管理,因此模块之间无法共享数据。然而通过多窗口浏览器模式构建的系统模块之间经常需要进行数据交互,如用户登录信息以及产品相关信息,Webview由于其特性仅支持自身内部的缓存数据交互。同Webview内不断的覆盖加载新页面以及发生页面回退时可以对缓存数据提供便捷高效的数据保存,使得在页面加载的过程中可以便利的处理需要交互的数据;相对的不同的Webview之间无法共享数据,无论是会话级缓存还是持久化缓存。为此需要重写web端的持久化存储localStorage,将交互的数据保存到移动设备本地数据库。 3.1.3 页面回退管理需求 对于初始页面为A,点击某个链接跳转到B(http://xxx.com.cn/),B页面重定向到C页面(http://xxx.com.cn/website/index.Html),当调用webview.goBack()时,页面回退到B,然后接着会重定向回C页面。这样会导致两个问题:无法回退到Webview的初始页面A以及无法正常退出Activity或者Fragment(只有还未加载完C时进行回退才能退出页面)。为此需要引入历史记录栈,对页面访问历史进行管理,在回退事件中判断该加载页面是否需要重定向并执行相应的操作。 3.2 缓存处理机制 3.2.1 跨域缓存处理 在移动端数据库Sqlite操作类LocalStorage中定义相应的数据库连接属性、创建和更新的操作以及数据库操作单例Instance,在视图访问基类BaseFragment中定义覆盖web端持久化存储localStorage的核心交互类LocalStorageJavascriptInterface。获得数据库操作单例,并覆盖localStorage对缓存的常用处理方法取值getItem(),修改值setItem(),删除值removeItem()以及清空缓存clear()。将页面上获得的数据键值对存入数据库,对其进行更新删除以及返回给页面使用。在Webview初始化时进行页面与后台交互绑定addJavaScriptInterface,并在页面初始化init过程中将页面的默认localStorage操作更换成覆盖重写的方法,即可在页面进行跨域访问时交互相应的数据。 跨域交互的缓存处理机制如图5所示: 图3.2 缓存处理机制原理图 3.2.2页面回退管理 安卓的回退按钮一般用于返回上一级菜单,不过在浏览器页面加载过程中却不能理想地返回上一级页面,默认的回退按钮是针对Activity的回退,对于Webview来说,回退按钮会致使浏览器调用finish()而结束自身的运行,因此需要覆盖Activity的onKeyDown()事件,在方法内部重新对浏览页面进行管理。 在页面的新建关闭以及重定向时,Webview的页面回退goBack()会受到干扰,不能正常回到前一个页面,甚至会发生前后两个页面间来回切换后退的死循环,并影响模块间的后退返回。为此需要对历史访问页面进行管理,采用如下实现方案。 在Fragment视图声明时定义一个用于管理保存历史浏览记录的历史栈ArrayList,将系统初始加载界面加入列表。在此后的页面加载过程中,每次加载页面都将其加入历史栈,在系统回退响应事件中,判断页面是否为重定向页面,如果为重定向页面,则移除历史栈中最后两个链接,加载操作后历史栈的最后一项;否则移除历史栈中最后一项,加载操作后历史栈的最后一项。 页面回退方案的流程图如图3.3所示: 图3.3页面回退管理机制图 3.3 模块实现 3.3.1跨域缓存机制的主要实现 图3.4 重写LocalStorage类示意图 (1)重写LocalStorage类。让LocalStorage继承自SQLiteOpenHelper类,声明LocalStorage对象实例以及其他数据库连接配置信息,如数据表名称、表中存储的数据Id与值Value、数据库名称、创建数据库语句等。通过Singleton单例模式维护LocalStorage实例,重写创建数据库和更新的相关操作。 (2)添加LocalStorage的底层JavaScriptInterface,供服务器资源页面进行访问。通过LocalStorageDBHelper对象获取到单例localStorage,声明上下文对象和SQLiteDatabase对象。重写HTML5存储技术LocalStorage的关键缓存数据操作方法getItem()、setItem()、removeItem()以及clear()。 图3.5 重写WebStorage核心方法示意图 1.重写getItem(),根据传入参数key获取相应的value值 ①判断传入的key是否为空。 ②若key不为空,通过localStorageDBHelper的getReadableDatabase()方法实例化数据库对象database。执行sqlite的数据库查询操作,返回数据库结果操作游标。 ③根据游标的moveToFirst判断查询结果是否为空,返回相应的value结果。关闭数据库连接。 2.重写setItem(),根据传入的参数key和相应值value更新数据库 ①判断传入的key和value是否为空,通过getItem()获取更新前的值。 ②实例化数据库对象database。声明ContentValues对象并将key和value相应赋值。判断更新前和key对应的值是否存在,若存在执行数据库的更新操作;若不存在,执行数据库的插入操作。关闭数据库。 3.重写remove() ①判断传入的key是否为空 ②实例化数据库操作对象,执行相应的数据库删除操作,关闭数据库 4.重写clear() 实例化数据库操作对象,执行数据库删除操作,清空整张数据库表。 在Fragment视图中初始化Webview时,通过addJavaScriptInterface为其绑定重写的底层LocalStorage操作接口,并将操作句柄设置为localStorage。设置webSettings属性,通过setDomStorageEnabled与setDatabaseEnabled启用本地存储功能。 在服务器资源页面JavaScript方法中,尝试用句柄LocalStorage替换window默认的localStorage。若发生异常,说明LocalStorage没有被添加至webview。然后即可像通常HTML5的localStorage对缓存数据进行操作。 3.3.2.页面回退管理的实现 (1)在MainActivity中覆盖模块间的回退响应事件。当模块页面回退至各自的初始页面时,点击回退按钮执行相应的模块切换策略,若该模块为主界面模块,则弹出退出系统确认框供用户选择是否退出;若为其他模块则将菜单栏切换到首页模块。 (2)在各自的Fragment中覆盖模块内部的回退响应事件。在页面初始化时定义并维护一个存放历史访问页面的历史栈loadHistoryUrls (ArrayList),把初始页面url加入到历史栈中,在覆盖加载方法shouldOverrideUrlLoading中将待渲染加载的页面加入到历史栈中。 (3)在Fragment内部的回退事件处理方法中,判断是否可以执行返回操作。然后判断历史栈存存放页面的前一页是否包含初始重定向页面,若包含该页面则移除加载栈中的最后两个链接,否则移除加载栈中的最后一个链接。最后加载重定向之前的页面。 3.4本章小结 本章首先分析了HTML5标准下缓存处理策略WebStorage,其包含本地存储LocalStorage与会话存储SessionStorage,并提供了相应的介绍和说明。然后分析了跨域数据交互问题问题存在的原因以及页面回退管理存在的问题。由于Webview的数据封闭性,不同的模块Webview之间无法共享访问数据,使得不同的模块无法正常交互,为此采用重写LocalStorage的方式,通过本地Sqlite数据库操作模拟HTML5中缓存的操作,重写LocalStorage关键的操作方法setItem()、getItem()、removeItem()以及clear(),并为Webview绑定相应的底层Java方法接口,在服务器页面资源中用重写的LocalStorage替换默认的localStorage,从而完成跨域数据的调用访问操作。由于页面的重定向作用,页面回退时会反复加载到重定向后的页面,导致页面无法正常回退,因此通过维护历史栈的方式,在页面回退时对回退目标页面进行分析判断,并执行相应的回退管理方法,从而使得模块内部的页面以及模块之间可以正常地进行返回操作。 第四章 页面自适应机制设计 针对移动设备分辨率和屏幕大小、设备型号迥异的现状,本章将在分析现有页面跨浏览器兼容方案的基础上,同时结合移动端对不同分辨率设备的支持特性,分析与设计跨机型、跨分辨率、跨浏览器的页面自适应机制。 4.1页面兼容策略 为了使页面能够适应不同版本的浏览器内核,诸如IE、Chorme、Firefox等,CSS3引入了两种常用的设计策略,即优雅降级和渐进增强。 优雅降级指的是在页面设计开始即构建页面的完整功能,然后针对不同的浏览器进行测试和修复。该观点认为应该针对那些最高级、最完善的浏览器来开发网站,同时把那些被认为过时或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段。在这种设计思想下,旧版的浏览器通常被认为仅能提供简单却功能没有大碍的页面浏览体验。虽然可以做一些小的调整来适应某个特定的浏览器,但由于这些调整并非开发过程中关注的焦点,因此浏览器间呈现的差异通常将被直接忽略。 渐进增强指的是在页面设计开始只构建页面的最少特性功能,然后不断针对各高级浏览器追加额外功能。渐进增强思想认为应该先让网站能够正常工作于尽可能旧的浏览器上,然后不断为它在新型浏览器上实现更多的增强和改进。随着时间的推移,当更多的用户逐渐开始升级浏览器,同时浏览器本身的支持度也不断提升时,就会有越来越多的用户体验到这些增强和改进,无需为了一个已经成型的网站在旧式浏览器下正常工作而做逆向开发。渐进增强观点认为网页的开发应关注于内容本身。这使得渐进增强成为目前一种更为合理的设计范例。 图4.1 优雅降级和渐进增强图例 对于优雅降级,功能衰减的设计从复杂的功能现状开始,不断减少用户体验的供给;而渐进增强则的设计是从一个非常基础的,能够发挥作用的版本开始,并不断地进行扩充,以适应未来环境的需要。功能衰减意味着往回看;而渐进增强则意味着朝前看,同时保证其根基安全牢固。 为了能够给用户提供更好的界面交互体验,同时适应不同版本的浏览器内核,系统采用了部分渐进增强的思想,利用媒体查询为不同的浏览器版本和内核提供相应的展现效果,同时保证基本的页面展现功能。 4.2 页面自适应策略 系统采用部分渐进增强的页面适配思想,以及拥抱流式布局策略,通过视口元素的媒体查询来控制不同分辨率阈值下页面的布局规划,调整页面元素的布局为百分比方式,包括组件宽度、字体以及高度、图片的动态大小来控制相同分辨率阈值范围下不同视口中组件的平滑缩放。同时对HTML5页面的移动端适配属性进行设置控制,针对需要达到的效果设置其Viewport的属性,包括宽和高、页面最初大小、初始缩放比例、屏幕像素密度等。使得系统在Web浏览器端以及移动端都有良好的展示效果。 4.2.1设备自适应 Viewport是指用以展现手机页面的区域。尽管Viewport的可见区域和屏幕大小是匹配的,但是它有着自己的尺寸(dimensions),这一尺寸决定了页面上可见的像素点。一个web页面在扩张到整个屏幕之前占用的像素数据是由Viewport的尺寸来定义的,而不是设备屏幕的尺寸。如一个设备的屏幕宽480像素,但是Viewport宽800像素,那么这个web页面需要在800像素宽的屏幕上才能完全展现。 在HTML5中可以使用 <meta> 标签来为页面定义Viewport 的属性。可以在 <meta> 标签的content 属性中,定义多个Viewport属性。例如,Viewport的高和宽,页面的最初大小,以及目标屏幕分辨率。Content 属性中的每个Viewport性质必须以逗号相隔。通过初始缩放initial-scale和用户调整缩放来控制页面的伸张以适当地填充移动端设备的显示区域。通过target density定义屏幕像素密度来控制安卓浏览器和Webview根据不同屏幕的像素密度对页面进行的缩放。 图4.2 视口属性设置示意图 4.2.2.浏览器自适应 通过拥抱流式布局的来使得页面在不同尺寸屏幕上良好的运行。从手机到电脑,设备的屏幕尺寸层出不穷,很难用传统意义上的统一布局来适应这些变动。拥抱流式布局倡导响应式界面设计,通过媒体查询(@media screen and...)来获得设备特性信息,从而灵活的控制不同尺寸屏幕的浏览器动态的调整页面元素的布局,以适应视口特性的变化。 同时根据“目标元素宽度/上下文元素宽度=百分比宽度”的模式将传统的固定像素式布局改为百分比布局,元素的固定像素宽度转换成百分比宽度。假定整个页面布局的宽度是960px,按照1024px屏幕分辨率做参照,百分比应是960/1024 = 93.75%。其他的组件宽度也可以按照960px为参照计算。若除下来的结果是很长的小数,如340/960 = 0.3541666666666667 ,无须对结果进行四舍五入,这样可以保持最高的精确度,这些小数应尽可能完整保留。 根据“目标元素尺寸/上下文元素尺寸=百分比尺寸”将文字的固定像素大小转换为等量的相对尺寸,现代浏览器默认的字体大小是16px,字体的相对大小用em为单位来表示。若某个div的字体大小为48px,则转化后为48/16=3em。结果为小数时的处理方式同上。 给图片设置阈值以使图片随着视口平滑缩放,为不同屏幕尺寸提供不同的图片,然后针对不同视口宽度修正设计,保证在响应式设计中内容始终优先。图片不是布局元素,它里面不包含子元素。另外,图片还有失真的问题,缩放不当都会造成失真。为此,需要给图片添加样式max-width:100% 以实现弹性图片,因为图片所处的容器可以自动缩放,只需让图片限制在父级的宽度之内,就可以随父级一起缩放。弹性图片仅用max-width无法实现,除此之外还需使用百分比宽度。处理方式同计算布局元素的宽度。在此过程中需要注意图片的失真问题,当用户使用的一个超宽屏幕时,图片被放大到原大小的两倍甚至更多,图片的质量会大幅下降。所以还需为图片设置绝对阈值,即宽度上限,因此一个弹性图片的样式组合应该为:width:30%; max-width:400px。 对于一个使用超宽屏幕的用户,按照正常的页面设计比例,这张图片被放大到了500px,但是现在只能显示最大宽度400px,依然是个问题。为此可以采用另一个组合,把max-width加到图片的父级元素上,从源头上就限制放大的最大值,这样图片与它的相邻元素的比例就不会失调了。这样的设计也是个权衡的结果,因为页面结构千变万化,具体的解决办法,还得分析具体页面。 为了防止放大的过宽,可以通过媒体查询来设置不同分辨率下的阈值。在处理各种浏览器兼容问题时,可以借助Modernizr,一个用于检测浏览器功能的开源JavaScript库,通过Modernizr追加的额外类名来辅助修正样式问题,以及通过检测浏览器是否支持媒体查询来按需加载资源,让老版本IE支持HTML5等。 4.3 模块实现 页面自适应主要的实现方式包含: 4.3.1根据适口属性设计响应式布局: ①加入兼容配置代码 <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">,通过chrome插件GCF(谷歌内嵌浏览器框架)控制IE以Webkit引擎及V8引擎进行样式排版,若用户未安装该插件则以IE最高文档模式进行展
   IEEE于1999年颁布了用于标准化VLAN实现方案的802.1Q协议标准草案。VLAN技术的出现,使得管理员根据 Vlan网卡 Intel82573    实际应用需求,把同一物理局域网内的不同用户逻辑地划分成不同的广播域,每一个VLAN都包含一组有着相同需求的计算机工作站,与物理上形成的LAN有着相同的属性。由于它是从逻辑上划分,而不是从物理上划分,所以同一个VLAN内的各个工作站没有限制在同一个物理范围中,即这些工作站可以在不同物理LAN网段。由VLAN的特点可知,一个VLAN内部的广播和单播流量都不会转发到其他VLAN中,从而有助于控制流量、减少设备投资、简化网络管理、提高网络的安全性。    交换技术的发展,也加快了新的交换技术(VLAN)的应用速度。通过将企业网络划分为虚拟网络VLAN网段,可以强化网络管理和网络安全,控制不必要的数据广播。在共享网络中,一个物理的网段就是一个广播域。而在交换网络中,广播域可以是有一组任意选定的第二层网络地址(MAC地址)组成的虚拟网段。这样,网络中工作组的划分可以突破共享网络中的地理位置限制,而完全根据管理功能来划分。这种基于工作流的分组模式,大大提高了网络规划和重组的管理功能。在同一个VLAN中的工作站,不论它们实际与哪个交换机连接,它们之间的通讯就好象在独立的交换机上一样。同一个VLAN中的广播只有VLAN中的成员才能听到,而不会传输到其他的VLAN中去,这样可以很好的控制不必要的广播风暴的产生。同时,若没有路由的话,不同VLAN之间不能相互通讯,这样增加了企业网络中不同部门之间的安全性。网络管理员可以通过配置VLAN之间的路由来全面管理企业内部不同管理单元之间的信息互访。交换机是根据交换机的端口来划分VLAN的。所以,用户可以自由的在企业网络中移动办公,不论他在何处接入交换网络,他都可以与VLAN内其他用户自如通讯。    VLAN网络可以是有混合的网络类型设备组成,比如:10M以太网、100M以太网、令牌网、FDDI、CDDI等等,可以是工作站、服务器、集线器、网络上行主干等等。    VLAN除了能将网络划分为多个广播域,从而有效地控制广播风暴的发生,以及使网络的拓扑结构变得非常灵活的优点外,还可以用于控制网络中不同部门、不同站点之间的互相访问。    VLAN是为解决以太网的广播问题和安全性而提出的一种协议,它在以太网帧的基础上增加了VLAN头,用VLAN ID把用户划分为更小的工作组,限制不同工作组间的用户互访,每个工作组就是一个虚拟局域网。虚拟局域网的好处是可以限制广播范围,并能够形成虚拟工作组,动态管理网络。 编辑本段VLAN的目的    VLAN(Virtual Local Area Network,虚拟局域网)的目的非常的多。通过认识VLAN的本质,将可以了解到其用处究竟在哪些地方。    第一,要知道192.168.1.2/30和192.168.2.6/30都属于不同的网段,都必须要通过路由器才能进行访问,凡是不同网段间要互相访问,都必须通过路由器。    第二,VLAN本质就是指一个网段,之所以叫做虚拟的局域网,是因为它是在虚拟的路由器的接口下创建的网段。    下面,给予说明。比如一个路由器只有一个用于终端连接的端口(当然这种情况基本不可能发生,只不过简化举例),这个端口被分配了192.168.1.1/24的地址。然而由于公司有两个部门,一个销售部,一个企划部,每个部门要求单独成为一个子网,有单独的服务器。那么当然可以划分为192.168.1.0--127/25、192.168.1.128--255/25。但是路由器的物理端口只应该可以分配一个IP地址,那怎样来区分不同网段了?这就可以在这个物理端口下,创建两个子接口---逻辑接口实现。    比如逻辑接口F0/0.1就分配IP地址192.168.1.1/25,用于销售部,而F0/0.2就分配IP地址192.168.1.129/25,用于企划部。这样就等于用一个物理端口确实现了两个逻辑接口的功能,这样就将原本只能划分一个网段的情形,扩展到了可以划分2个或者更多个网段的情形。这些网段因为是在逻辑接口下创建的,所以称之为虚拟局域网VLAN。    这是在路由器的层次上阐述了VLAN的目的。    第三,将在交换机的层次上阐述VLAN的目的。    在现实中,由于很多原因必须划分出不同网段。比如就简单的只有销售部和企划部两个网段。那么可以简单的将销售部全部接入一个交换机,然后接入路由器的一个端口,把企划部全部接入一个交换机,然后接入一个路由器端口。这种情况是LAN.然而正如上面所说,如果路由器就一个用于终端的接口,那么这两个交换机就必须接入这同一个路由器的接口,这个时候,如果还想保持原来的网段的划分,那么就必须使用路由器的子接口,创建VLAN.    同样,比如两个交换机,如果你想要每个交换机上的端口都分别属于不同的网段,那么你有几个网段,就提供几个路由器的接口,这个时候,虽然在路由器的物理接口上可以定义这个接口可以连接哪个网段,但是在交换机的层次上,它并不能区分哪个端口属于哪个网段,那么唯一实现能区分的方法,就是划分VLAN,使用了VLAN就能区分出某个交换机端口的终端是属于哪个网段的。    综上,当一个交换机上的所有端口中有至少一个端口属于不同网段的时候,当路由器的一个物理端口要连接2个或者以上的网段的时候,就是VLAN发挥作用的时候,这就是VLAN的目的。 编辑本段VLAN的优点 广播风暴防范    限制网络上的广播,将网络划分为多个VLAN可减少参与广播风暴的设备数量。LAN分段可以防止广播风暴波及整个网络。VLAN可以提供建立防火墙的机制,防止交换网络的过量广播。使用VLAN,可以将某个交换端口或用户赋于某一个特定的VLAN组,该VLAN组可以在一个交换网中或跨接多个交换机,在一个VLAN中的广播不会送到VLAN之外。同样,相邻的端口不会收到其他VLAN产生的广 播。这样可以减少广播流量,释放带宽给用户应用,减少广播的产生。 安全    增强局域网的安全性,含有敏感数据的用户组可与网络的其余部分隔离,从而降低泄露机密信息的可能性。不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信,如果不同VLAN要进行通信,则需要通过路由器或三层交换机等三层设备。 成本降低    成本高昂的网络升级需求减少,现有带宽和上行链路的利用率更高,因此可节约成本。 性能提高    将第二层平面网络划分为多个逻辑工作组(广播域)可以减少网络上不必要的流量并提高性能。 提高IT员工效率    VLAN为网络管理带来了方便,因为有相似网络需求的用户将共享同一个VLAN。 应用管理    VLAN 将用户和网络设备聚合到一起,以支持商业需求或地域上的需求。通过职能划分,项目管理或特殊应用的处理都变得十分方便,例如可以轻松管理教师的电子教学开发平台。此外,也很容易确定升级网络服务的影响范围。 增加网络连接的灵活性    借助VLAN技术,能将不同地点、不同网络、不同用户组合在一起,形成一个虚拟的网络环境,就像使用本地LAN一样方便、灵活、有效。VLAN可以降低移动或变更工作站地理位置的管 理费用,特别是一些业务情况有经常性变动的公司使用了VLAN后,这部分管理费用大大降低。 编辑本段组建VLAN的条件    VLAN是建立在物理网络基础上的一种逻辑子网,因此建立VLAN需要相应的支持VLAN技术的网络设备。当网络中的不同VLAN间进行相互通信时,需要路由的支持,这时就需要增加路由设备——要实现路由功能,既可采用路由器,也可采用三层交换机来完成,同时还严格限制了用户数量。 编辑本段VLAN的划分 根据端口来划分VLAN    许多VLAN厂商都利用交换机的端口来划分VLAN成员。被设定的端口都在同一个广播域中。例如,一个交换机的1,2,3,4,5端口被定义为虚拟网AAA,同一交换机的6,7,8端口组成虚拟网BBB。这样做允许各端口之间的通讯,并允许共享型网络的升级。但是,这种划分模式将虚拟网限制在了一台交换机上。    第二代端口VLAN技术允许跨越多个交换机的多个不同端口划分VLAN,不同交换机上的若干个端口可以组成同一个虚拟网。    以交换机端口来划分网络成员,其配置过程简单明了。因此,从目前来看,这种根据端口来划分VLAN的方式仍然是最常用的一种方式。 根据MAC地址划分VLAN    这种划分VLAN的方法是根据每个主机的MAC地址来划分,即对每个MAC地址的主机都配置它属于哪个组。这种划分VLAN方法的最大优点就是当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置,所以,可以认为这种根据MAC地址的划分方法是基于用户的VLAN,这种方法的缺点是初始化时,所有的用户都必须进行配置,如果有几百个甚至上千个用户的话,配置是非常累的。而且这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,这样就无法限制广播包了。另外,对于使用笔记本电脑的用户来说,他们的网卡可能经常更换,这样,VLAN就必须不停地配置。 根据网络层划分VLAN    这种划分VLAN的方法是根据每个主机的网络层地址或协议类型(如果支持多协议)划分的,虽然这种划分方法是根据网络地址,比如IP地址,但它不是路由,与网络层的路由毫无关系。    这种方法的优点是用户的物理位置改变了,不需要重新配置所属的VLAN,而且可以根据协议类型来划分VLAN,这对网络管理者来说很重要,还有,这种方法不需要附加的帧标签来识别VLAN,这样可以减少网络的通信量。    这种方法的缺点是效率低,因为检查每一个数据包的网络层地址是需要消耗处理时间的(相对于前面两种方法),一般的交换机芯片都可以自动检查网络上数据包的以太网帧头,但要让芯片能检查IP帧头,需要更高的技术,同时也更费时。当然,这与各个厂商的实现方法有关。 根据IP组播划分VLAN    IP 组播实际上也是一种VLAN的定义,即认为一个组播组就是一个VLAN,这种划分的方法将VLAN扩大到了广域网,因此这种方法具有更大的灵活性,而且也很容易通过路由器进行扩展,当然这种方法不适合局域网,主要是效率不高。 基于规则的VLAN    也称为基于策略的VLAN。这是最灵活的VLAN划分方法,具有自动配置的能力,能够把相关的用户连成一体,在逻辑划分上称为“关系网络”。网络管理员只需在网管软件中确定划分VLAN的规则(或属性),那么当一个站点加入网络中时,将会被“感知”,并被自动地包含进正确的VLAN中。同时,对站点的移动和改变也可自动识别和跟踪。    采用这种方法,整个网络可以非常方便地通过路由器扩展网络规模。有的产品还支持一个端口上的主机分别属于不同的VLAN,这在交换机与共享式Hub共存的环境中显得尤为重要。自动配置VLAN时,交换机中软件自动检查进入交换机端口的广播信息的IP源地址,然后软件自动将这个端口分配给一个由IP子网映射成的VLAN。 按用户划分VLAN    基于用户定义、非用户授权来划分VLAN,是指为了适应特别的VLAN网络,根据具体的网络用户的特别要求来定义和设计VLAN,而且可以让非VLAN群体用户访问VLAN,但是需要提供用户密码,在得到VLAN管理的认证后才可以加入一个VLAN。    * 以上划分VLAN的方式中,基于端口的VLAN端口方式建立在物理层上;MAC方式建立在数据链路层上;网络层和IP广播方式建立在第三层上。 编辑本段VLAN的标准    对VLAN的标准,我们只是介绍两种比较通用的标准,当然也有一些公司具有自己的标准,比如Cisco公司的ISL标准,虽然不是一种大众化的标准,但是由于Cisco Catalyst交换机的大量使用,ISL也成为一种不是标准的标准了。    · 802.10VLAN标准    在1995年,Cisco公司提倡使用IEEE802.10协议。在此之前,IEEE802.10曾经在全球范围内作为VLAN安全性的同一规范。Cisco公司试图采用优化后的802.10帧格式在网络上传输FramTagging模式中所必须的VLAN标签。然而,大多数802委员会的成员都反对推广802.10。因为,该协议是基于FrameTagging方式的。    · 802.1Q    在1996年3月,IEEE802.1Internetworking委员会结束了对VLAN初期标准的修订工作。新出台的标准进一步完善了VLAN的体系结构,统一了Frame-Tagging方式中不同厂商的标签格式,并制定了VLAN标准在未来一段时间内的发展方向,形成的802.1Q的标准在业界获得了广泛的推广。它成为VLAN史上的一块里程碑。802.1Q的出现打破了虚拟网依赖于单一厂商的僵局,从一个侧面推动了VLAN的迅速发展。另外,来自市场的压力使各大网络厂商立刻将新标准融合到他们各自的产品中。    802.1q帧格式:    · Cisco ISL 标签    ISL(Inter-Switch Link)是Cisco公司的专有封装方式,因此只能在Cisco的设备上支持。ISL是一个在交换机之间、交换机与路由器之间及交换机与服务器之间传递多个VLAN信息及VLAN数据流的协议,通过在交换机直接的端口配置ISL封装,即可跨越交换机进行整个网络的VLAN分配和配置。 编辑本段划分VLAN的基本策略    从技术角度讲,VLAN的划分可依据不同原则,一般有以下三种划分方法: 基于端口    这种划分是把一个或多个交换机上的几个端口划分一个逻辑组,这是最简单、最有效的划分方法。该方法只需网络管理员对网络设备的交换端口进行重新分配即可,不用考虑该端口所连接的设备。 基于MAC地址    MAC地址其实就是指网卡的标识符,每一块网卡的MAC地址都是唯一且固化在网卡上的。MAC地址由12位16进制数表示,前6位为网卡的厂商标识(OUI),后6位为网卡标识(NIC)。网络管理员可按MAC地址把一些站点划分为一个逻辑子网。 基于路由    路由协议工作在网络层,相应的工作设备有路由器和路由交换机(即三层交换机)。该方式允许一个VLAN跨越多个交换机,或一个端口位于多个VLAN中。    就目前来说,对于VLAN的划分主要采取上述第1、3种方式,第2种方式为辅助性的方案。 编辑本段VLAN技术简单谈    局域网的发展是VLAN产生的基础,所以在介绍VLAN之前,我们先来了解一下局域网的有关知识。    局域网(LAN)通常是一个单独的广播域,主要由Hub、网桥或交换机等网络设备连接同一网段内的所有节点形成。处于同一个局域网之内的网络节点之间可以直接通信,而处于不同局域网段的设备之间的通信则必须经过路由器才能通信。图1所示即为使用路由器构建的典型的局域网环境。    随着网络的不断扩展,接入设备逐渐增多,网络结构也日趋复杂,必须使用更多的路由器才能将不同的用户划分到各自的广播域中,在不同的局域网之间提供网络互联。    但这样做存在两个缺陷:    首先,随着网络中路由器数量的增多,网络延时逐渐加长,从而导致网络数据传输速度的下降。这主要是因为数据在从一个局域网传递到另一个局域网时,必须经过路由器的路由操作:路由器根据数据包中的相应信息确定数据包的目标地址,然后再选择合适的路径转发出去。    其次,用户是按照它们的物理连接被自然地划分到不同的用户组(广播域)中。这种分割方式并不是根据工作组中所有用户的共同需要和带宽的需求来进行的。因此,尽管不同的工作组或部门对带宽的需求有很大的差异,但它们却被机械地划分到同一个广播域中争用相同的带宽。 编辑本段VLAN的定义及特点    虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。VLAN是一种比较新的技术,工作在OSI参考模型的第2层和第3层,一个VLAN就是一个广播域,VLAN之间的通信是通过第3层的路由器来完成的。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点:    ● 网络设备的移动、添加和修改的管理开销减少;    ●可以控制广播活动;    ●可提高网络的安全性。 编辑本段VLAN的分类及优缺点    定义VLAN成员的方法有很多,由此也就分成了几种不同类型的VLAN。 1. 基于端口的VLAN    基于端口的VLAN的划分是最简单、有效的VLAN划分方法,它按照局域网交换机端口来定义VLAN成员。VLAN从逻辑上把局域网交换机的端口划分开来,从而把终端系统划分为不同的部分,各部分相对独立,在功能上模拟了传统的局域网。基于端口的VLAN又分为在单交换机端口和多交换机端口定义VLAN两种情况: 多交换机端口定义VLAN    如图3所示,交换机1的1、2、3端口和交换机2的4、5、6端口组成VLAN1,交换机1的4、5、6、7、8端口和交换机2的1、2、3、7、8端口组成VLAN2。 单交换机端口定义VLAN    如图2所示,交换机的1、2、6、7、8端口组成VLAN1,3、4、5端口组成了VLAN2。这种VLAN只支持一个交换机。    基于端口的VLAN的划分简单、有效,但其缺点是当用户从一个端口移动到另一个端口时,网络管理员必须对VLAN成员进行重新配置。 2. 基于MAC地址的VLAN    基于MAC地址的VLAN是用终端系统的MAC地址定义的VLAN。MAC地址其实就是指网卡的标识符,每一块网卡的MAC地址都是唯一的。这种方法允许工作站移动到网络的其他物理网段,而自动保持原来的VLAN成员资格。在网络规模较小时,该方案可以说是一个好的方法,但随着网络规模的扩大,网络设备、用户的增加,则会在很大程度上加大管理的难度。 3. 基于路由的VLAN    路由协议工作在7层协议的第3层—网络层,比如基于IP和IPX的路由协议,这类设备包括路由器和路由交换机。该方式允许一个VLAN跨越多个交换机,或一个端口位于多个VLAN中。在按IP划分的VLAN中,很容易实现路由,即将交换功能和路由功能融合在VLAN交换机中。这种方式既达到了作为VLAN控制广播风暴的最基本目的,又不需要外接路由器。但这种方式对VLAN成员之间的通信速度不是很理想。 4. 基于策略的VLAN    基于策略的VLAN的划分是一种比较有效而直接的方式,主要取决于在VLAN的划分中所采用的策略。 编辑本段常见的应用VLAN    Port vlan与Tag vlan    port vlan 基于端口的VLAN,处于同一VLAN端口之间才能相互通信。    tag vlan 基于IEEE 802.1Q(vlan标准),用VID(vlan id)来划分不同的VLAN 基于端口的VLAN优缺点    基于端口的VLAN,简单的讲就是交换机的一个端口就是一个虚拟局域网,凡是连接在这个端口上的主机属于同个虚拟局域网之中。基于端口的VLAN的优点为:由于一个端口就是一个独立的局域网。所以,当数据在网络中传输的时候,交换机就不会把数据包转发给其他的端口,如果用户需要将数据发送到其他的虚拟局域网中,就需要先由交换机发往路由器再由路由器发往其他端口;同时以端口为中心的VLAN中完全由用户自由支配端口,无形之中就更利于管理。但是美中不足的是以端口为中心的VLAN,当用户位置改变时,往往也伴随着用户位置的改变而对网线也要进行迁移。如果不会经常移动客户机的话,采用这一方式倒也不错。 静态VLAN的优缺点    可以说静态VLAN与基于端口的VLAN有一丝相似之处,用户可在交换机上让一个或多个交换机端口形成一个略大一些的虚拟局域网。从一定意义上讲静态虚拟局域网在某些程度上弥补了基于端口的虚拟局域网的缺点。缺陷方面,静态VLAN虽说是可以使多个端口的设置成一个虚拟局域网,假如两个不同端口、不同虚拟局域网的人员聚到一起协商一些事情,这时候问题就出现了,因为端口及虚拟局域网的不一致往往就会直接导致某一个虚拟局域网的人员就不能正常的访问他原先所在的VLAN之中(静态虚拟局域网的端口在同一时间只能属于同一个虚拟局域网),这样就需要网络管理人员随时配合及时修改该线路上的端口。 动态VLAN的优缺点    与上面两种虚拟局域网的组成方式相比动态的虚拟局域网的优点真的是太多了。首先它适用于当前的无线局域网技术,其次,当用户有需要时对工作基点进行移动时完全不用担心在静态虚拟局域网与基于端口的虚拟局域网出现的一些问题在动态的虚拟局域网中出现,因为动态的虚拟局域网在建立初期已经由网络管理员将整个网络中的所有MAC地址全部输入到了路由器之中,同时如何由路由器通过MAC地址来自动区分每一台电脑属于那一个虚拟局域网,之后将这台电脑连接到对应的虚拟局域网之中。说起缺点,动态的虚拟局域网的缺点跟本谈不上缺点,只是在VLAN建立初期,网络管理人员需将所有机器的MAC进行登记之后划分出MAC所对应的机器的不同权限(虚拟局域网)即可。 编辑本段VLAN发展趋势    目前在宽带网络中实现的VLAN基本上能满足广大网络用户的需求,但其网络性能、网络流量控制、网络通信优先级控制等还有待提高。前面所提到的VTP技术、STP技术,基于三层交换的VLAN技术等在VLAN使用中存在网络效率的瓶颈问题,这主要是IEEE802.1Q、IEEE802.1D协议的不完善所致,IEEE正在制定和完善IEEE802.1S(Multiple Spanning Trees)和IEEE802.1W(Rapid Reconfiguration of Spanning Tree)来改善VLAN的性能。采用IEEE802.3z和IEEE802.3ab协议,并结合使用RISC(精简指令集计算)处理器或者网络处理器而研制的吉位VLAN交换机在网络流量等方面采取了相应的措施,大大提高了VLAN网络的性能。IEEE802.1P协议提出了COS(Class of Service)标准,这使网络通信优先级控制机制有了参考。 编辑本段VLAN的基本配置命令    1、创建vlan方法一:从VLAN配置模式建立VLAN    switch# vlan database (进入VLAN配置模式)    switch(vlan)# vlan 10 name wz (声明VLAN 10,并命名WX)    switch(vlan)#exit (退出VALN配置模式)    2、创建vlan方法二:从全局配置模式建立VLAN    switch# configure terminal (进入全局配置模式)    switch(config)# vlan 10 (声明VLAN 10)    switch(config-vlan)# name wz (命名WX)    3、删除vlan方法一:从VALN配置模式删除VLAN    switch(vlan)# no vlan 10 (删除VLAN 10)    switch(vlan)# exit (退出VLAN配置模式)    4、删除vlan方法二:从全局配置模式删除VLAN    switch(config)# no interface vlan 10 (将所有属于VLAN 10的接口删除)    switch(config)# no vlan 10 (删除VLAN 10)    5、删除vlan方法三:从配置文件中删除VLAN.DAT文件    switch# delete vlan.dat (从配置文件中删除DAT文件,可以彻底删除VLAN信息)    6、将端口加入到vlan中    switch(config-if)# switchport access vlan 10    7、将一组连续的端口加入到vlan中    switch(config)# interface range f0/1 –5    switch(config)# interface range f0/6-8,0/9-11,0/22 (将不连续多个端口加入到Vlan中)    switch(config-if-range)# switchport access vlan 10    8、将端口从vlan中删除    switch(config-if)# no switchport access vlan 10    switch(config-if)# switchport access vlan 1    switch(config-if-range)# no switchport access vlan 10    switch(config-if-range)# switchport access vlan 1    9、查看所有vlan的摘要信息    switch# show vlan brief    10、查看指定vlan的信息    switch# show vlan id 10 (查看指定VLAN号为10的信息)    11、指定端口成为trunk    switch(config-if)# switchport mode trunk (配置接口为TRUNK模式)    12、Trunk的自动协商    switch(config-if)#switchport mode dynamic desirable     switch(config-if)#switchport mode dynamic auto    注意:如果中继链路两端都设置成auto将不能成为trunk    13、查看端口状态    switch# show interface f0/2 switchport    14、在trunk上移出vlan    switch(config-if)# switchport trunk allowed vlan remove 20    15、在trunk上添加vlan    switch(config-if)# switchport trunk allowed vlan add 20 编辑本段VLAN的划分实例    对于每个公司而言都有自己不同的需求,下面我们给出一个典型的公司的VLAN的实例,这样也可以成为我们以后为公司划分VLAN的依据。    某公司现在有工程部、销售部、财务部。VLAN的划分:工程部VLAN10,销售部VLAN20,财务部VLAN30,并且各部门还可以相互通讯。现有设备如下:Cisco 3640路由器,Cisco Catalyst 2924交换机一台,二级交换机若干台。    交换机配置文件中的部分代码如下:    ……    !    interface vlan10    ip address 192.168.0.1    !    interface vlan20    ip address 192.168.1.1    !    interface vlan30    ip address 192.168.2.1    !    ……    路由器配置文件中的部分代码如下:    ……    interface FastEthernet 1/0.1    encapsulation isl 10    ip address 192.168.0.2    !    interface FastEthernet 1/0.2    encapsulation isl 20    ip address 192.168.1.2    !    interface FastEthernet 1/0.3    encapsulation isl 30    ip address 192.168.2.2    !    ……    !    router rip    network 192.168.0.0    !    【交换机的端口工作模式的利用】    交换机的端口工作模式通常可以分为三种,它们分别为Access模式、Multi模式、Trunk模式。允许多个vlan的是multi模式,而不是trunk模式。Access模式的交换端口往往只能属于1个VLAN,通常用于连接普通计算机的端口;Trunk模式的交换端口可以属于多个VLAN,能够发送和接收多个VLAN的数据报文,通常使用在交换机之间的级联端口上;multi模式的交换端口可以属于多个VLAN,能够发送和接受多个VLAN的数据报文,可以用于交换机之间的连接,也可以用于连接普通计算机的端口,所以access和trunk没有可比性。三种模式的交换端口能够共同使用在相同的一台交换机中,不过Trunk模式的交换端口和multi模式的交换端口相互之间不能直接切换,往往只能先将交换端口设置为Access模式,之后再设置为其他模式。 编辑本段vlan拓扑试验    实验: 划分VLAN 1. 实验目的    通过本实验,读者可以掌握如下技能:    (1)熟悉VLAN 的创建    (2)把交换机接口划分到特定VLAN 2. 实验拓扑 vlan试验拓扑图(1张)    实验拓扑图 3. 实验步骤    要配置VLAN,首先要先创建VLAN,然后才把交换机的端口划分到特定的端口上:    (1) 步骤1:在划分VLAN 前,配置R1 和R2 路由器的g0/0 接口,从R1ping192.168.12.2。    默认时,交换机的全部接口都在VLAN1 上,R1 和R2 应该能够通信    (2) 步骤2:在S1 上创建VLAN    S1#vlan database    //进入到VLAN 配置模式    S1(vlan)#vlan 2 name VLAN2    VLAN 2 added:    Name: VLAN2    //以上创建vlan,2 就是vlan 的编号,VLAN 号的范围为1~1001,VLAN2 是该VLAN 的名字:    S1(vlan)#vlan 3 name VLAN3    VLAN 3 added:    Name: VLAN3    S1(vlan)#exit    APPLY completed.    Exiting….    //退出VLAN模式,创建的VLAN立即生效:    【提示】交换机中的VLAN 信息存放在单独的文件中flash:vlan.dat,因此如果要完全清除    交换机的配置,除了使用“erase starting-config”命令外,还要使用“delete    flash:vlan.dat”命令把VLAN 数据删除。    【提示】新的IOS 版本中,可以在全局配置模式中创建VLAN,如下:    S1(config)#vlan 2    S1(config-vlan)#name VLAN2    S1(config-vlan)#exit    S1(config)#vlan 3    S1(config-vlan)#name VLAN3    (3)步骤3:把端口划分在VLAN 中    S1(config)#interface f0/1    S1(config-if)#switch mode access    //以上把交换机端口的模式改为access 模式,说明该端口是用于连接计算机的,而不是用    于trunk    S1(config-if)#switch access vlan 2    //然后把该端口f0/1 划分到VLAN 2 中    S1(config)#interface f0/2    S1(config-if)#switch mode access    S1(config-if)#switch access vlan 3    【提示】默认时,所有交换机接口都在VLAN 1 上,VLAN 1 是不能删除的。如果有多个接口    需要划分到同一VLAN 下,也可以采用如下方式以节约时间,注意破折号前后的空格:    S1(config)#interface range f0/2 -3    S1(config-rang-if)#switch mode access    S1(config-rang-if)#switch access vlan 2    【提示】如果要删除VLAN,使用“no vlan 2”命令即可。删除某一VLAN后,要记得把该VLAN    上的端口重新划分到别的VLAN上,否则将导致端口的“消失”。 4. 实验调试    (1)查看VLAN    使用“show vlan”或者“show vlan brief”命令可以查看VLAN 的信息,以及每个    VLAN 上有什么端口。要注意这里只能看到的是本交换机上哪个端口在VLAN 上,而不能看到    其他交换机的端口在什么VLAN 上。如下:    SW1#show vlan    VLAN Name Status Ports    ---- -------------------------------- --------- -------------------------------    1.default active Fa0/1,Fa0/2,Fa0/3,Fa0/4    Fa0/5,Fa0/6,Fa0/7,Fa0/8    Fa0/9,Fa0/10,Fa0/11,Fa0/12    Fa0/13,Fa0/14,Fa0/16,Fa0/17    Fa0/18,Fa0/19,Fa0/20,Fa0/21    Fa0/22,Fa0/23,Fa0/24,Gi0/1    Gi0/2    2.VLAN2 active    3.VLAN3 active    1002 fddi-default act/unsup    1003 token-ring-default act/unsup    1004 fddinet-default act/unsup    (此处省略)    //在交换上,VLAN1是默认VLAN,不能删除,也不能改名。此外还有1002、1003等VLAN的存    在。    (2)VLAN 间的通信    由于f0/1 和f0/2 属于不同的VLAN,从R1 ping 192.168.12.2 应该不能成功了。 编辑本段互联方式    (1)边界路由。    (2)“独臂”路由。    (3)MPOA路由。    

50,541

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧