MS SQL 检查死锁

select spid, blocked, loginame, last_batch, status, cmd, hostname, program_name from sys.sysprocesses where spid in ( select blocked from sys.sysprocesses where blocked <> 0 ) or (blocked <>0);

SELECT request_session_id spid,OBJECT_NAME(resource_associated_entity_id)tableName FROM sys.dm_tran_locks WHERE resource_type=’OBJECT’;

kill 70;

JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释

jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。 HotSpot虚拟机GC算法采用分代收集算法: 1、一个人(对象)出来(new 出来)后会在Eden Space(伊甸园)无忧无虑的生活,直到GC到来打破了他们平静的生活。GC会逐一问清楚每个对象的情况,有没有钱(此对象的引用)啊,因为GC想赚钱呀,有钱的才可以敲诈嘛。然后富人就会进入Survivor Space(幸存者区),穷人的就直接kill掉。 2、并不是进入Survivor Space(幸存者区)后就保证人身是安全的,但至少可以活段时间。GC会定期(可以自定义)会对这些人进行敲诈,亿万富翁每次都给钱,GC很满意,就让其进入了Genured Gen(养老区)。万元户经不住几次敲诈就没钱了,GC看没有啥价值啦,就直接kill掉了。 3、进入到养老区的人基本就可以保证人身安全啦,但是亿万富豪有的也会挥霍成穷光蛋,只要钱没了,GC还是kill掉。 分区的目的:新生区由于对象产生的比较多并且大都是朝生夕灭的,所以直接采用标记-清理算法。而养老区生命力很强,则采用复制算法,针对不同情况使用不同算法。 非heap区域中Perm Gen中放着类、方法的定义,jvm Stack区域放着方法参数、局域变量等的引用,方法执行顺序按照栈的先入后出方式。

GC工作机制

SUN的jvm内存池被划分为以下几个部分: Eden** Space (heap) 内存最初从这个线程池分配给大部分对象。 Survivor Space (heap) 用于保存在eden space内存池中经过垃圾回收后没有被回收的对象。 Tenured Generation (heap) 用于保持已经在survivor space内存池中存在了一段时间的对象。 Permanent Generation (non-heap) 保存虚拟机自己的静态(reflective)数据,例如类(class)和方法(method)对象。Java虚拟机共享这些类数据。这个区域被分割为只读的和只写的。 Code Cache (non-heap)** HotSpot Java虚拟机包括一个用于编译和保存本地代码(native code)的内存,叫做“代码缓存区”(code cache)。 简单来讲,jvm的内存回收过程是这样的: 对象在Eden Space创建,当Eden Space满了的时候,gc就把所有在Eden Space中的对象扫描一次,把所有有效的对象复制到第一个Survivor Space,同时把无效的对象所占用的空间释放。当Eden Space再次变满了的时候,就启动移动程序把Eden Space中有效的对象复制到第二个Survivor Space,同时,也将第一个Survivor Space中的有效对象复制到第二个Survivor Space。如果填充到第二个Survivor Space中的有效对象被第一个Survivor Space或Eden Space中的对象引用,那么这些对象就是长期存在的,此时这些对象将被复制到Permanent Generation。 若垃圾收集器依据这种小幅度的调整收集不能腾出足够的空间,就会运行Full GC,此时jvm gc停止所有在堆中运行的线程并执行清除动作。

jps、jinfo、jstat、jstack、jmap、jconsole等命令简介

JDK提供了几个很实用的工具,如下: jinfo:观察运行中的java程序的运行环境参数:参数包括Java System属性和JVM命令行参数,java class path等信息。命令格式:jinfo 进程pid jps:用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。命令格式:jps 或 jps 远程服务ip地址 (默认端口1099) jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。 jstack:可以观察到jvm中当前所有线程的运行情况和线程当前状态。, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。命令格式:jstack 进程pid 当程序出现死锁的时候,使用命令:jstack 进程ID > jstack.log,然后在jstack.log文件中,搜索关键字“BLOCKED”,定位到引起死锁的地方。 jmap:观察运行中的jvm物理内存的占用情况(如:产生哪些对象,及其数量)。命令格式:jmap [option] pid option参数如下: -heap:打印jvm heap的情况 -histo:打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。 -histo:live :同上,但是只答应存活对象的情况 -permstat:打印permanent generation heap情况 使用jmap进行 heap dump的例子: jmap -dump:format=b,file= 打印内存统计图:jmap -histo:live 结果中每行显示了当前堆中每种类类型的信息,包含被分配的实例个数及其消耗的字节数。选项“live”,表示只统计存活的对象 需要注意的是,jmap不是运行分析工具,在生成统计图时JVM可能会暂停,因此当生成统计图时需要确认这种暂停对程序是可接受的。 jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。

Java VM参数配置

内部服务参数配置:

JAVA_OPTS=”-server -XX:+UseParNewGC -Xms1024m -Xmx2048m -XX:MaxNewSize=128m -XX:NewSize=128m -XX:PermSize=96m -XX:MaxPermSize=128m -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:CMSInitiatingOccupancyFraction=1 -XX:+CMSIncrementalMode -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=20000 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:CMSIncrementalDutyCycleMin=10 -XX:CMSIncrementalDutyCycle=30 -XX:CMSMarkStackSize=8M -XX:CMSMarkStackSizeMax=32M” 前端应用参数配置:

JAVA_OPTS=”-server -Xmx4096m -Xms4096m -Xmn480m -Xss256k -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=8 -XX:CMSFullGCsBeforeCompaction=0 -XX:+UseCMSCompactAtFullCollection -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:GCTimeRatio=19 -Xnoclassgc -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0”

参数说明: -Xmx1280m:设置JVM最大可用内存为1280m。最大可设为3550m。具体应用可适当调整。 -Xms1280m:设置JVM初始内存为1280m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 -Xmn480m:设置年轻代大小为480m。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。 -Xss256k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。 -XX:PermSize=64m:指定 jvm 中 Perm Generation 的最小值。 这个参数需要看你的实际情况。可以通过jmap 命令看看到底需要多少。 -XX:MaxPermSize=128m:指定 Perm Generation 的最大值 -XX:+UseConcMarkSweepGC**设置并发收集器 -XX:ParallelGCThreads=8**:配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。 -XX:CMSFullGCsBeforeCompaction=0**由于并发收集器不对内存空间进行压缩、整理,所以运行一段时间以后会产生“碎片”,使得运行效率降低。此值设置运行多少次GC以后对内存空间进行压缩、整理。 -XX:+UseCMSCompactAtFullCollection**:打开对年老代的压缩。可能会影响性能,但是可以消除碎片。 -XX:SurvivorRatio=8**每个survivor space 和 eden之间的比例。 -XX:MaxTenuringThreshold=7**:设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概率。 -XX:GCTimeRatio=19**设置垃圾回收时间占程序运行时间的百分比,公式为1/(1+n)。 -Xnoclassgc**:禁用类垃圾回收,性能会有一定提高。 -XX:+DisableExplicitGC**当此参数打开时,在程序中调用System.gc()将会不起作用。默认是off。 -XX:+UseParNewGC**:设置年轻代为并行收集。可与CMS收集同时使用。 -XX:-CMSParallelRemarkEnabled**在使用 UseParNewGC 的情况下 , 尽量减少 mark 的时间。 -XX:CMSInitiatingOccupancyFraction=70**:指示在 old generation 在使用了 70% 的比例后 , 启动 concurrent collector。 -XX:SoftRefLRUPolicyMSPerMB=0**:**每兆堆空闲空间中SoftReference的存活时间。

linux 增加非标准端口

yum -y install policycoreutils-python semanage port -l|grep http #查看http开放端口 semanage port -a -t http_port_t -p tcp 888 #增加这个非标准端口即可 getsebool -a | grep httpd #setsebool httpd_can_network_connect 1 setsebool -P httpd_can_network_connect 1

Linux cp 命令的15个示例 - 创建文件和目录的副本

拷贝文件和目录是每一个操作系统的基本指令。备份行为基本上是创建文件和目录的副本。在Linux系统下,我们可以用cp命令来实现。

copy 命令是什么

正如我们在上文提到的,cp是一个用来创建文件和目录副本的命令。在这里我们提供了一些在日常操作中可能用到的cp命令的实例。

1. 不带任何参数下,运行cp

这是 cp 命令最基础的使用。 拷贝名为 myfile.txt 从一个位置到另一个位置,我们可以像这样子输入:

  1. $ cp myfile.txt /home/pungki/office

Copy without optionsCopy without options 如果我们没有输入绝对路径,这意味着我们正在当前目录下拷贝一个文件。在上面的实例中,myfile.txt位于/home/pungki/Documents目录下。如果我们当前目录正是/home/pungki/Documets,那么没有必要输入/home/pungki/Documents/myfile.txt来拷贝文件。当/home/pungki/office是一个目录,则文件会拷贝到里面。

2. 同时拷贝多个文件

要在同时拷贝多个文件,我们只需要将多个文件用空格隔开。如下示例:

  1. $ cp file_1.txt file_2.txt file_3.txt /home/pungki/office

Copying multiple filesCopying multiple files

3. 拷贝一个目录

要拷贝一个目录的话会有点棘手。你需要添加 -r 或者 -R 选项来实现。-r-R 选项表明递归操作。无论该目录是否为空目录,这个选项都是必要的。如下示例:

  1. $ cp -r directory_1 /home/pungki/office

Copy directoryCopy directory 需要注意的一件事,你需要移除在目录名尾部的斜杠。否则你会收到类似的错误信息cp: omitting directory‘directory_1/Copy directory errorCopy directory error 如果你收到错误信息,则目录不会被拷贝到目标文件夹。

4. 创建文件的硬链接,而不是拷贝它们

拷贝文件意味着你必须使用一些存储空间来储存拷贝的文件。有时候出于某种原因,你可能想要创建“快捷方式”或者链接到文件,而不是拷贝它们。要做到这一点,我们可以使用-l选项。

  1. $ cp -l file_4.txt /home/pungki/office

Copy hardlinksCopy hardlinks 从上图看出,我们看到file_4.txt的硬链接已经拷贝到/home/pungki/office/file_4.txt。标记有同样的 inode, 835386。但是请注意,硬链接不能用来创建目录。下面让我们看一个例子。 _原目录 directory_1 的 inode 值是 278230_ Inode number of original directoryInode number of original directory _原文件 file_5.txt 的 inode 值是 279231_ Original inode number of fileOriginal inode number of file _对 directory_1 执行 cp 命令_ Copy using -rl optionsCopy using -rl options _拷贝的 directory_1副本的 inode 值是 274800_ Inode number of copied directoryInode number of copied directory _拷贝的 file_5.txt副本的 inode 值是 279231。跟它的原文件一样_ Inode number of copied fileInode number of copied file

5. 创建文件的符号链接

也有一种链接叫做 软链接符号链接。我们用 -s 选项来实现。下面是命令的示例。

  1. $ cp -s /home/pungki/Documents/file_6.txt file_6.txt

创建符号链接只能在当前目录下进行。在上面的截图中,我们想要创建符号链接 /home/pungki/office/file_6.txt 指向原文件 /home/pungki/Documents/file_6.txt。但是为了创建符号链接,我必须在将/home/pungki/office作为目标目录。一旦我设法进入目录,我就可以向上面一样运行 cp -s 命令。 现在你列出文件详情,你会看到/home/pungki/office/file_6.txt指向了原文件。在其文件名后标记了箭头符号。 Symbolic linksSymbolic links

6. 不随符号链接拷贝原文件

[译注:意思是只拷贝符号链接文件] 我们可以用 -P 选项来实现。当对符号链接使用 cp 命令,它会照原样拷贝它自身。来看看下面的示例。

  1. $ cp -P file_6.txt ./movie

Copy using -P optionCopy using -P option 如你所见,cp 命令照原样拷贝file_6.txt自身。文件类型仍然是一个符号链接。

7. 随符号链接拷贝原文件

现在我们可以试一下-L选项。基本上,这个刚好与上面的 -P 选项 相反。下面是个示例:

  1. $ cp -L file_6.txt ./movie

Copy using -L optionCopy using -L option 使用这个选项,拷贝的文件将会和file_6.txt原文件一样。我们可以从文件大小看出来。拷贝的文件有50 字节而当file_6.txt作为符号链接时文件大小只有33 字节

8. 文件归档

当我们去拷贝一个目录时,我们会用-r或者-R选项。但是我们也可以用-a选项来归档文件。这样会创建文件和目录的准确套录,如果有的话也可以包括符号链接。下面是示例:[译注:-a 会保留原文件或目录的属性]

  1. $ cp -a directory_1/ /home/pungki/office

Copy using -a optionCopy using -a option 上列的命令会拷贝一个名为 directory_1 的目录到/home/pungki/office目录下。如你所见,file_6.txt依然作为符号链接被复制。

9. 显示正在做什么

默认情况下,当拷贝作业成功时,我们仅仅会再次看到命令提示符。如果你想了解在拷贝文件时都发生了什么,我们可以用 -v 选项。

  1. $ cp -v *.txt /home/pungki/office

Verbose optionVerbose option 当我们从当前目录下拷贝所有的 txt 文件到 /home/pungki/office 目录,-v选项会显示正在操作的过程。这些额外的信息会帮助我们了解更多拷贝过程。

10. 当原文件较目标文件新时拷贝

我们用 -u选项来实现。下面是具体示例:

  1. $ cp -vu *.txt /home/pungki/office

Copy only if newerCopy only if newer 起初我们看到file_1.txt 是0字节大小。然后我们用 vi 编辑,加入一些内容并保存。接下来,我们发现文件大小已经变为了 36 个字节。 与此同时在/home/pungki/office目录中,我们已经包含了所有txt文件。当我们用 -u 选项,结合 -v 选项来查看具体操作,cp 命令会只拷贝比目标目录下新的文件。因此,我们看到只有 file_1.txt 拷贝到 /home/pungki/office 目录下

11. 使用交互模式

交互模式下会询问是否覆盖目标目录下的文件。使用 -i 选项,启用交互模式。

  1. $ cp -ir directory_1/ /home/pungki/office/

Interactive modeInteractive mode

12. 创建备份文件

当目标目录已经含有同名文件,默认情况下 cp 命令会覆盖目标目录下的同名文件。使用 –backup 选项,cp 命令会为每一个现有的目标文件做一个备份。../office 相对于 /home/pungki/office 。下面是示例:

  1. $ cp –backup=simple -v *.txt ../office

Backup optionBackup option 正如我们看到的,–backup=simple 选项会创建一个在文件名末尾用波浪符标记(~)的备份文件。–backup 选项也有一些其他控制:

  • none, off:从不备份(即使给出 –backup)
  • numbered, t:用编号备份
  • existing, nil :如果编号备份存在则使用编号备份,否者用简易备份[译注:也就是用波浪号]
  • simple, never :总是使用简易备份

13. 只拷贝文件属性

cp 命令也提供给我们 –attributes-only 选项。顾名思义,这个选项只会拷贝文件名及其属性,不会拷贝任何数据。下面是示例:

  1. $ cp –attributes-only file_6.txt -v ../office

Copy attributes onlyCopy attributes only 从上图看出, 原文件 file_6.txt 有 50 字节大小。用了 –attributes-only选项,拷贝的文件只有0字节大小。这是因为文件内容并没有拷贝。

14. 强制拷贝

用了 -f 选项会强制进行拷贝操作。如果目标文件不能打开,可以用 -f 尝试一下。

  1. $ cp -f *.txt -v ../office

Copy with forceCopy with force

15. 在拷贝之前先删除目标

我们可以用,–remove-destination 选项 实现。这个选项与上面的-f选项形成对照。如果 cp 命令在目标目录下发现同名文件, cp 命令会先删除目标文件,然后再拷贝一份新的。下面是示例:

  1. $ cp –remove-destination *.txt -v ../office

Remove destination optionRemove destination option

总结

cp 命令是 Linux 下最基础的命令之一。对于那些想要学习 Linux 的人,必须得把这个命令掌握。当然你也可以在你的终端下键入man cp 或者 cp –help 来显示更多帮助信息。

防御暴力破解SSH攻击

托管在IDC的机器我们通常都用SSH方式来远程管理.但是经常可以发现log-watch的日志中有大量试探登录的

信息,为了我们的主机安全,有必要想个方法来阻挡这些可恨的”HACKER”

有很多办法来阻挡这些密码尝试 1 修改端口 2 健壮的密码 3 RSA公钥认证 4 使用iptables脚本 5 使用sshd日志过滤 6 使用tcp_wrappers过滤 7 使用knockd

1 vi /etc/ssh/sshd_config #Port 22 默认端口为22,为了避免被扫描,去掉#,改成一个其他的端口,比如45632 保存后重启sshd服务.service sshd restart

2没什么可说的,密码的复杂性可以增加破解的难度,大小写混合加上数字并且有足够的密码长度就比较安全

了,唯一的问题就是要牢记密码.

3.默认的登录方式是password,如果需要用RSA公钥登录,需要先创建RSA Key #ssh-keygen -t rsa -b 1024 会生成私钥/home/username/.ssh/id_rsa 同时生成公钥/home/username/.ssh/id_rsa.pub 输入一个加密短语(也可省略)

修改sshd 设置,编辑/etc/ssh/sshd_config ‘PasswordAuthentication no’ RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/id_rsa.pub 将公钥下载到本地计算机,然后在ssh客户端软件Secure CRT中设置好,就可以登录了

4 iptbles脚本 此脚本允许每分钟3个连接.有白名单,并有日志纪录

iptables -A INPUT -p tcp –dport 22 -m state –state NEW -m recent –set –name SSH iptables -A INPUT -p tcp –dport 22 -m state –state NEW -j SSH_WHITELIST iptables -A INPUT -p tcp –dport 22 -m state –state NEW -m recent –update –seconds 60 –

hitcount 4 –rttl –name SSH -j ULOG –ulog-prefix SSH_brute_force iptables -A INPUT -p tcp –dport 22 -m state –state NEW -m recent –update –seconds 60 –

hitcount 4 –rttl –name SSH -j DROP iptables的版本需要>1.2.11 (1.2不支持 –rttl参数)

5使用sshd日志过滤 有几个软件(脚本)可以做到. sshfilter [url]http://www.csc.liv.ac.uk/~greg/sshdfilter/[/url] Fail2Ban [url]http://fail2ban.sourceforge.net/[/url] DenyHosts [url]http://denyhosts.sourceforge.net/[/url]

需要sshd支持tcp_wrappers此功能. [root@as4test include]# ldd /usr/sbin/sshd | grep libwrap libwrap.so.0 => /usr/lib64/libwrap.so.0 (0x0000002a9566c000) 如果有libwrap.so.0这个库说明支持此功能 另一种测试方法:在/etc/hosts.deny加入一行127.0.0.1 然后ssh localhost,如果无法连接,说明支持.

$ tar zxvf DenyHosts-2.6.tar.gz

$ cd DenyHosts-2.6

as root:

# python setup.py install

#cd /usr/share/denyhost

# cp denyhosts.cfg-dist denyhosts.cfg 配置文件 # cp daemon-control-dist daemon-control 启动脚本 # chown root daemon-control

# chmod 700 daemon-control

# cd /etc/init.d

# ln -s /usr/share/denyhosts/daemon-control denyhosts

# chkconfig –add denyhosts 添加到开机启动服务中

6 使用tcp_wrappers过滤 1 下载脚本[url]http://www.la-samhna.de/misc/sshblock.sh[/url] 2 设置可执行权限 chmod 755 /usr/local/bin/sshblock.sh 3 在/etc/hosts.allow中添加以下内容 #__START_SSHBLOCK__ #__END_SSHBLOCK__ sshd : ALL : spawn (/usr/local/bin/sshblock.sh %a)& 设置 DONTBLOCK 白名单 BURST_MAX=5 BURST_TIM=60 60秒内登录5次就封锁 PURGE_TIM=3600 3600秒后解冻

7 使用KNOCKD knockd 监视一个预定义模式在iptables的日志,例如一次击中端口6356,一次击中端口63356,两次击中端口

9356,这相当于敲一个关闭的门用一种特殊的暗码来被konckd识别,konckd 将使用iptables来打开一个预定

义端口例如ssh的22端口在一个预定定义时间.(比如一分钟),如果一个ssh session 在这个时间范围内打开,

这个端口会一直保留.直到预定义时间过期后ssh端口被knockd关掉.

缺点:比较复杂的方案,不适合普通人 需要客户端(knockd-client)来实现port knocking”,同时需要knockd-server来响应. 实际上,很容易检测到这种通讯模式,一旦攻击者可以监控你的通讯,这种解决方案无法提供安全防护针对本

地攻击者.

编译nginx 模块

./configure –with-http_stub_status_module –prefix=/usr/local/nginx –with-pcre=/home/nginx/tools/pcre-8.36 –add-module=/home/nginx/tools/nginx_upstream_jvm_route –add-module=/home/nginx/tools/nginx_ajp_model –user=nginx –group=nginx yum install gcc yum install -y zlib-devel yum install -y gcc gcc-c++

Android SDKVersion 参数列表

Platform Version

API Level

VERSION_CODE

Notes

Android 4.4

19

[KITKAT](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#KITKAT)

Platform Highlights

Android 4.3

18

[JELLY_BEAN_MR2](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#JELLY_BEAN_MR2)

Platform Highlights

Android 4.2, 4.2.2

17

[JELLY_BEAN_MR1](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#JELLY_BEAN_MR1)

Platform Highlights

Android 4.1, 4.1.1

16

[JELLY_BEAN](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#JELLY_BEAN)

Platform Highlights

Android 4.0.3, 4.0.4

15

[ICE_CREAM_SANDWICH_MR1](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ICE_CREAM_SANDWICH_MR1)

Platform Highlights

Android 4.0, 4.0.1, 4.0.2

14

[ICE_CREAM_SANDWICH](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ICE_CREAM_SANDWICH)

Android 3.2

13

[HONEYCOMB_MR2](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMB_MR2)

Android 3.1.x

12

[HONEYCOMB_MR1](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMB_MR1)

Platform Highlights

Android 3.0.x

11

[HONEYCOMB](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMB)

Platform Highlights

Android 2.3.4 Android 2.3.3

10

[GINGERBREAD_MR1](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#GINGERBREAD_MR1)

Platform Highlights

Android 2.3.2 Android 2.3.1 Android 2.3

9

[GINGERBREAD](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#GINGERBREAD)

Android 2.2.x

8

[FROYO](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#FROYO)

Platform Highlights

Android 2.1.x

7

[ECLAIR_MR1](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ECLAIR_MR1)

Platform Highlights

Android 2.0.1

6

[ECLAIR_0_1](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ECLAIR_0_1)

Android 2.0

5

[ECLAIR](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ECLAIR)

Android 1.6

4

[DONUT](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#DONUT)

Platform Highlights

Android 1.5

3

[CUPCAKE](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#CUPCAKE)

Platform Highlights

Android 1.1

2

[BASE_1_1](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#BASE_1_1)

Android 1.0

1

`[BASE](http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#BASE)`

常用文件后缀与Content-Type对照表

文件扩展名

Content-Type(Mime-Type)

文件扩展名

Content-Type(Mime-Type)

.*( 二进制流,不知道下载文件类型)

application/octet-stream

.tif

image/tiff

.001

application/x-001

.301

application/x-301

.323

text/h323

.906

application/x-906

.907

drawing/907

.a11

application/x-a11

.acp

audio/x-mei-aac

.ai

application/postscript

.aif

audio/aiff

.aifc

audio/aiff

.aiff

audio/aiff

.anv

application/x-anv

.asa

text/asa

.asf

video/x-ms-asf

.asp

text/asp

.asx

video/x-ms-asf

.au

audio/basic

.avi

video/avi

.awf

application/vnd.adobe.workflow

.biz

text/xml

.bmp

application/x-bmp

.bot

application/x-bot

.c4t

application/x-c4t

.c90

application/x-c90

.cal

application/x-cals

.cat

application/vnd.ms-pki.seccat

.cdf

application/x-netcdf

.cdr

application/x-cdr

.cel

application/x-cel

.cer

application/x-x509-ca-cert

.cg4

application/x-g4

.cgm

application/x-cgm

.cit

application/x-cit

.class

java/*

.cml

text/xml

.cmp

application/x-cmp

.cmx

application/x-cmx

.cot

application/x-cot

.crl

application/pkix-crl

.crt

application/x-x509-ca-cert

.csi

application/x-csi

.css

text/css

.cut

application/x-cut

.dbf

application/x-dbf

.dbm

application/x-dbm

.dbx

application/x-dbx

.dcd

text/xml

.dcx

application/x-dcx

.der

application/x-x509-ca-cert

.dgn

application/x-dgn

.dib

application/x-dib

.dll

application/x-msdownload

.doc

application/msword

.dot

application/msword

.drw

application/x-drw

.dtd

text/xml

.dwf

Model/vnd.dwf

.dwf

application/x-dwf

.dwg

application/x-dwg

.dxb

application/x-dxb

.dxf

application/x-dxf

.edn

application/vnd.adobe.edn

.emf

application/x-emf

.eml

message/rfc822

.ent

text/xml

.epi

application/x-epi

.eps

application/x-ps

.eps

application/postscript

.etd

application/x-ebx

.exe

application/x-msdownload

.fax

image/fax

.fdf

application/vnd.fdf

.fif

application/fractals

.fo

text/xml

.frm

application/x-frm

.g4

application/x-g4

.gbr

application/x-gbr

.

application/x-

.gif

image/gif

.gl2

application/x-gl2

.gp4

application/x-gp4

.hgl

application/x-hgl

.hmr

application/x-hmr

.hpg

application/x-hpgl

.hpl

application/x-hpl

.hqx

application/mac-binhex40

.hrf

application/x-hrf

.hta

application/hta

.htc

text/x-component

.htm

text/html

.html

text/html

.htt

text/webviewhtml

.htx

text/html

.icb

application/x-icb

.ico

image/x-icon

.ico

application/x-ico

.iff

application/x-iff

.ig4

application/x-g4

.igs

application/x-igs

.iii

application/x-iphone

.img

application/x-img

.ins

application/x-internet-signup

.isp

application/x-internet-signup

.IVF

video/x-ivf

.java

java/*

.jfif

image/jpeg

.jpe

image/jpeg

.jpe

application/x-jpe

.jpeg

image/jpeg

.jpg

image/jpeg

.jpg

application/x-jpg

.js

application/x-javascript

.jsp

text/html

.la1

audio/x-liquid-file

.lar

application/x-laplayer-reg

.latex

application/x-latex

.lavs

audio/x-liquid-secure

.lbm

application/x-lbm

.lmsff

audio/x-la-lms

.ls

application/x-javascript

.ltr

application/x-ltr

.m1v

video/x-mpeg

.m2v

video/x-mpeg

.m3u

audio/mpegurl

.m4e

video/mpeg4

.mac

application/x-mac

.man

application/x-troff-man

.math

text/xml

.mdb

application/msaccess

.mdb

application/x-mdb

.mfp

application/x-shockwave-flash

.mht

message/rfc822

.mhtml

message/rfc822

.mi

application/x-mi

.mid

audio/mid

.midi

audio/mid

.mil

application/x-mil

.mml

text/xml

.mnd

audio/x-musicnet-download

.mns

audio/x-musicnet-stream

.mocha

application/x-javascript

.movie

video/x-sgi-movie

.mp1

audio/mp1

.mp2

audio/mp2

.mp2v

video/mpeg

.mp3

audio/mp3

.mp4

video/mpeg4

.mpa

video/x-mpg

.mpd

application/vnd.ms-project

.mpe

video/x-mpeg

.mpeg

video/mpg

.mpg

video/mpg

.mpga

audio/rn-mpeg

.mpp

application/vnd.ms-project

.mps

video/x-mpeg

.mpt

application/vnd.ms-project

.mpv

video/mpg

.mpv2

video/mpeg

.mpw

application/vnd.ms-project

.mpx

application/vnd.ms-project

.mtx

text/xml

.mxp

application/x-mmxp

.net

image/pnetvue

.nrf

application/x-nrf

.nws

message/rfc822

.odc

text/x-ms-odc

.out

application/x-out

.p10

application/pkcs10

.p12

application/x-pkcs12

.p7b

application/x-pkcs7-certificates

.p7c

application/pkcs7-mime

.p7m

application/pkcs7-mime

.p7r

application/x-pkcs7-certreqresp

.p7s

application/pkcs7-signature

.pc5

application/x-pc5

.pci

application/x-pci

.pcl

application/x-pcl

.pcx

application/x-pcx

.pdf

application/pdf

.pdf

application/pdf

.pdx

application/vnd.adobe.pdx

.pfx

application/x-pkcs12

.pgl

application/x-pgl

.pic

application/x-pic

.pko

application/vnd.ms-pki.pko

.pl

application/x-perl

.plg

text/html

.pls

audio/scpls

.plt

application/x-plt

.png

image/png

.png

application/x-png

.pot

application/vnd.ms-powerpoint

.ppa

application/vnd.ms-powerpoint

.ppm

application/x-ppm

.pps

application/vnd.ms-powerpoint

.ppt

application/vnd.ms-powerpoint

.ppt

application/x-ppt

.pr

application/x-pr

.prf

application/pics-rules

.prn

application/x-prn

.prt

application/x-prt

.ps

application/x-ps

.ps

application/postscript

.ptn

application/x-ptn

.pwz

application/vnd.ms-powerpoint

.r3t

text/vnd.rn-realtext3d

.ra

audio/vnd.rn-realaudio

.ram

audio/x-pn-realaudio

.ras

application/x-ras

.rat

application/rat-file

.rdf

text/xml

.rec

application/vnd.rn-recording

.red

application/x-red

.rgb

application/x-rgb

.rjs

application/vnd.rn-realsystem-rjs

.rjt

application/vnd.rn-realsystem-rjt

.rlc

application/x-rlc

.rle

application/x-rle

.rm

application/vnd.rn-realmedia

.rmf

application/vnd.adobe.rmf

.rmi

audio/mid

.rmj

application/vnd.rn-realsystem-rmj

.rmm

audio/x-pn-realaudio

.rmp

application/vnd.rn-rn_music_package

.rms

application/vnd.rn-realmedia-secure

.rmvb

application/vnd.rn-realmedia-vbr

.rmx

application/vnd.rn-realsystem-rmx

.rnx

application/vnd.rn-realplayer

.rp

image/vnd.rn-realpix

.rpm

audio/x-pn-realaudio-plugin

.rsml

application/vnd.rn-rsml

.rt

text/vnd.rn-realtext

.rtf

application/msword

.rtf

application/x-rtf

.rv

video/vnd.rn-realvideo

.sam

application/x-sam

.sat

application/x-sat

.sdp

application/sdp

.sdw

application/x-sdw

.sit

application/x-stuffit

.slb

application/x-slb

.sld

application/x-sld

.slk

drawing/x-slk

.smi

application/smil

.smil

application/smil

.smk

application/x-smk

.snd

audio/basic

.sol

text/plain

.sor

text/plain

.spc

application/x-pkcs7-certificates

.spl

application/futuresplash

.spp

text/xml

.ssm

application/streamingmedia

.sst

application/vnd.ms-pki.certstore

.stl

application/vnd.ms-pki.stl

.stm

text/html

.sty

application/x-sty

.svg

text/xml

.swf

application/x-shockwave-flash

.tdf

application/x-tdf

.tg4

application/x-tg4

.tga

application/x-tga

.tif

image/tiff

.tif

application/x-tif

.tiff

image/tiff

.tld

text/xml

.top

drawing/x-top

.torrent

application/x-bittorrent

.tsd

text/xml

.txt

text/plain

.uin

application/x-icq

.uls

text/iuls

.vcf

text/x-vcard

.vda

application/x-vda

.vdx

application/vnd.visio

.vml

text/xml

.vpg

application/x-vpeg005

.vsd

application/vnd.visio

.vsd

application/x-vsd

.vss

application/vnd.visio

.vst

application/vnd.visio

.vst

application/x-vst

.vsw

application/vnd.visio

.vsx

application/vnd.visio

.vtx

application/vnd.visio

.vxml

text/xml

.wav

audio/wav

.wax

audio/x-ms-wax

.wb1

application/x-wb1

.wb2

application/x-wb2

.wb3

application/x-wb3

.wbmp

image/vnd.wap.wbmp

.wiz

application/msword

.wk3

application/x-wk3

.wk4

application/x-wk4

.wkq

application/x-wkq

.wks

application/x-wks

.wm

video/x-ms-wm

.wma

audio/x-ms-wma

.wmd

application/x-ms-wmd

.wmf

application/x-wmf

.wml

text/vnd.wap.wml

.wmv

video/x-ms-wmv

.wmx

video/x-ms-wmx

.wmz

application/x-ms-wmz

.wp6

application/x-wp6

.wpd

application/x-wpd

.wpg

application/x-wpg

.wpl

application/vnd.ms-wpl

.wq1

application/x-wq1

.wr1

application/x-wr1

.wri

application/x-wri

.wrk

application/x-wrk

.ws

application/x-ws

.ws2

application/x-ws

.wsc

text/scriptlet

.wsdl

text/xml

.wvx

video/x-ms-wvx

.xdp

application/vnd.adobe.xdp

.xdr

text/xml

.xfd

application/vnd.adobe.xfd

.xfdf

application/vnd.adobe.xfdf

.xhtml

text/html

.xls

application/vnd.ms-excel

.xls

application/x-xls

.xlw

application/x-xlw

.xml

text/xml

.xpl

audio/scpls

.xq

text/xml

.xql

text/xml

.xquery

text/xml

.xsd

text/xml

.xsl

text/xml

.xslt

text/xml

.xwd

application/x-xwd

.x_b

application/x-x_b

.sis

application/vnd.symbian.install

.sisx

application/vnd.symbian.install

.x_t

application/x-x_t

.ipa

application/vnd.iphone

.apk

application/vnd.android.package-archive

.xap

application/x-silverlight-app