for %%I in (*.jar)do ( echo --unzipping %%~nI 7z x %%I -o%%~nI ) pause
Author Archives: neohope
Win7调试服务程序,Debugbreak函数不响应,直接退出
上周调试Win7下的一个服务程序,以前都是用Debugbreak()直接可以进入调试的,但这次直接退出了。
查了一下,这样设置一下就可以:
控制面板->操作中心->维护->检查问题报告的解决方案->设置
每次发生问题时,在检查解决方案之前先询问我
保存设置后,就可以进入断点了,再次鄙视微软。
后来,又发现,即使设置后,仍然无法响应断点,没办法,只好用比较挫的代码搞定了:
//在第一个DebugBreak()前面,添加下面的语句
while(!IsDebuggerPresent())
{
Sleep(100);
}
DebugBreak();
这样,服务启动后,会一直等待调试器。启动服务后,手动通过VS、任务管理器或Process Explorer附加到进程,就可以对启动的服务进行调试了。
JVM常用参数设置
运行方式设置
-client
-server
两者的区别在JIT的编译比例及GC的方式不同,也可以近似的这样理解:client会启动比较快,GC默认为串行,但JIT编译较少,速度慢一些;server启动慢,GC默认为并行,但JIT编译较多,开始速度慢,但JIT编译后会越来越快。
内存设置
-Xms
设置初始化堆的大小
-Xmx
设置最大堆大小
-Xss 或 -XX:ThreadStackSize
设置每个线程栈大小
-Xmn 或 -XX:NewSize
设置年轻代的内存大小
-XX:MaxNewSize
设置最大年轻代新生代内存大小
-XX:PermSize
设置持久代内存大小
-XX:MaxPermSize
设置最大值持久代内存大小
-XX:NewRatio
设置年轻代与年老代的比值
-XX:SurvivorRatio
设置年轻代中Eden区与Survivor区的大小比值
GC设置
-XX:+DisableExplicitGC
禁用java代码中的System.gc()
-XX:+UseSerialGC
设置串行收集器
-XX:+UseParallelGC 或 -XX:+UseParNewGC
设置年轻代为并行收集器
-XX:ParallelGCThreads
设置并行收集器的线程数
或 -XX:+UseParallelOldGC
设置年老代为并行收集
-XX:+UseConcMarkSweepGC
设置年老代为CMS收集
-XX:MaxGCPauseMillis
一次GC最大的停顿时间
-XX:GCTimeRatio
GC占用CPU时间比例
调试GC
-verbose:gc
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCApplicationConcurrentTime
-XX:+PrintGCApplicationStoppedTime
-XX:PrintHeapAtGC
调试加载类
-verbose:class 监视加载的类的情况
调试JNI
-verbose:jni
设置字符集为UTF-8
-Djavax.servlet.request.encoding=utf-8
-Dfile.encoding=utf-8
调试SSL
-Djavax.net.debug=ssl:record
-Djavax.net.debug=ssl:handshake
-Djavax.net.debug=all
内存溢出时抓取JVM快照
-XX:+HeapDumpOnOutOfMemoryError
一家IT公司最重要的财产是什么?
这个问题问过一些人,也在网上找过答案,有人说IT公司最重要的财产是源码,有人说是产品,有人说是客户,也有人说是关系。
其实这些回答,都是有一定道理的。
但我今天想说的答案却是:传承。
这里的传承,不仅是源码,不仅是产品,不仅是业务知识,不仅是编程技巧,更是一种精神,一种文化,一种理念,一种信仰。传承可以将一盘散沙铸成利剑,披荆斩棘。传承可以凝聚成一股强大的力量,无往而不利。
传承,在一个公司的不同阶段,有着不同的表现和不同的作用。
在公司的创业阶段,传承是靠个人来完成的。
这个阶段,公司规模很小,人员很少,是公司对个人依赖最强的阶段,但也是转型最快的阶段。
这个阶段,个人要有很强的付出精神,加班加点甚至通宵是常有的事情。是一个很累很痛苦,但也很充实很快乐的阶段。
创业团队的个人能力及付出,很大程度上决定着公司的未来,
这个阶段,沟通不要很多成本,但每个人都要独挡一面,一个都不能少。
知识都存在人的大脑中,靠人的记忆传递下来。
在公司迅速扩张的阶段,传承是靠传帮带及梯队建设来完成的。
这个阶段,公司初具规模,是对管理层能力要求最高的阶段。
管理层不仅要懂开发,而且要懂运营管理,可以团结力量,调动大家的积极性,沟通成本急速上升。
这个阶段,是公司文化形成的时期,各个环节处理的好坏,直接决定了公司的命运。
这个阶段,知识及文化的传播,主要依赖于师徒关系,一点儿一点儿扩散开来。梯队起来了,稳定了,也就成了;梯队一直不稳定,尤其是核心团队不稳定,也就危险了。
在公司平稳发展的阶段,传承是靠制度及培训完成的。
公司发展到一定规模,个人能力对公司的改变越来越小,甚至被称为螺丝钉。
这个阶段,主要靠公司的制度来保证公司的运营。员工进入公司时,便会接收大量培训,个人按制度完成自己的职责,保障公司正常运营,从而实现公司盈利。
这个阶段,个人对公司的影像变小,很难有所改变。但灵魂人物的作用却变得强大,因为灵魂人物要团结所有人,向应该努力的方向前进。
没有传承,一家公司就谈不上发展;
没有传承,一家公司就一直在走相同的老路;
没有传承,一家公司就会逐渐消亡;
传承,随着一家公司的进步而慢慢改变;
传承,决定了一家公司的气质及未来;
传承,是一家公司最宝贵的财产。
Android Custom Protocol中intent-filter的data标签
当在Android中使用Custom Protocol时,需要在AndroidManifest.xml中,增加相应的intent-filter标签。
其中intent-filter下的data标签,通知了Android,何时处理调用请求,其语法如下:
<data android:scheme="string"
android:host="string"
android:port="string"
android:path="string"
android:pathPattern="string"
android:pathPrefix="string"
android:mimeType="string" />
其实,上述内容描述了一个URI,当第三方调阅请求不符合该URI时,会直接忽略;而当第三方调阅请求符合该URI时,则会进行调用或让用户进行选择。
URI的具体规则如下:
<scheme>://<host>:<port>/[<path>|<pathPrefix>|<pathPattern>]
如果没有指定scheme,则整个URI无效;
如果没有指定host,则port属性无效;
其各属性说明如下:
scheme:就是协议名称,如http,https,myprotocol等,建议全部小写,而且不包含“:”。
host:ip地址或域名,建议全部小写。
port:端口
path:完全路径匹配
pathPrefix:路径前缀匹配
pathPattern:路径匹配规则(例如:“*”表示字符重复出现0到多次;“.”表示任意字符;“.*”表示0到多个任意字符;转义符为“\”,由于xml的格式限制,非转义的“*”要写为“\\*”,非转移的“\”要写为“\\\\”。)
mimeType:指定MIME类型,如image/jpeg,其中子类型可以使用通配符“*”,建议全部小写。
<!--http协议下的任何pdf文件--> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="http" android:pathPattern=".*\\.pdf"]</data> </intent-filter> <!--任何音频文件--> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="audio/*" /> </intent-filter> <!--自定义私有协议myproto的任何请求--> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="myproto"/> </intent-filter>
参考资料:
Android开发手册
newcj的博客
IOS实现Custom Protocol
在IOS中,实现Custom Protocol,需要以下两步:
1、修改Info.plist文件,增加以下内容:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.neohope.custom.protocol.test</string>
<key>CFBundleURLSchemes</key>
<array>
<string>myproto</string>
</array>
</dict>
</array>
2、在AppDelegate.m中,增加以下内容:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
if(url!=nil)
{
NSString *path = url.absoluteString;
//do your job here
}
return YES;
}
Andoid实现Custom Protocol
Android中实现Custom Protocol,只需要简单的两步:
1、修改AndroidManifest.xml文件,在activity节增加以下内容:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myproto"/>
</intent-filter>
2、修改对应activity中,用以下代码,就可以处理URL中的数据啦
Intent intent = getIntent();
if (Intent.ACTION_VIEW.equals(intent.getAction())) {
Uri uri = intent.getData();
String user = uri.getQueryParameter("user");
String password = uri.getQueryParameter("password");
//do your job here
}
常用MIME Type
MIME Type组成规则为:content-type/subtype
content-type:消息内容的类型,比如text,application,multipart,image,audio,video,message
subtype:消息内容的子类型,比如:content-type为text时,常用的子类型有plain,html等。最终MIME Type为:text/plain,text/html。
| 文件类型 | MIME | 文件类型 | MIME |
| 3gp | video/3gpp | aab | application/x-authoware-bin |
| aam | application/x-authoware-map | aas | application/x-authoware-seg |
| ai | application/postscript | aif | audio/x-aiff |
| aifc | audio/x-aiff | aiff | audio/x-aiff |
| als | audio/X-Alpha5 | amc | application/x-mpeg |
| ani | application/octet-stream | apk | application/vnd.android.package-archive |
| asc | text/plain | asd | application/astound |
| asf | video/x-ms-asf | asn | application/astound |
| asp | application/x-asap | asx | video/x-ms-asf |
| au | audio/basic | avb | application/octet-stream |
| avi | video/x-msvideo | awb | audio/amr-wb |
| bcpio | application/x-bcpio | bin | application/octet-stream |
| bld | application/bld | bld2 | application/bld2 |
| bmp | image/bmp | bpk | application/octet-stream |
| bz2 | application/x-bzip2 | cal | image/x-cals |
| ccn | application/x-cnc | cco | application/x-cocoa |
| cdf | application/x-netcdf | cgi | magnus-internal/cgi |
| chat | application/x-chat | class | application/octet-stream |
| clp | application/x-msclip | cmx | application/x-cmx |
| co | application/x-cult3d-object | cod | image/cis-cod |
| cpio | application/x-cpio | cpt | application/mac-compactpro |
| crd | application/x-mscardfile | csh | application/x-csh |
| csm | chemical/x-csml | csml | chemical/x-csml |
| css | text/css | cur | application/octet-stream |
| dcm | x-lml/x-evm | dcr | application/x-director |
| dcx | image/x-dcx | dhtml | text/html |
| dir | application/x-director | dll | application/octet-stream |
| dmg | application/octet-stream | dms | application/octet-stream |
| doc | application/msword | dot | application/x-dot |
| dvi | application/x-dvi | dwf | drawing/x-dwf |
| dwg | application/x-autocad | dxf | application/x-autocad |
| dxr | application/x-director | ebk | application/x-expandedbook |
| emb | chemical/x-embl-dl-nucleotide | embl | chemical/x-embl-dl-nucleotide |
| eps | application/postscript | eri | image/x-eri |
| es | audio/echospeech | esl | audio/echospeech |
| etc | application/x-earthtime | etx | text/x-setext |
| evm | x-lml/x-evm | evy | application/x-envoy |
| exe | application/octet-stream | fh4 | image/x-freehand |
| fh5 | image/x-freehand | fhc | image/x-freehand |
| fif | image/fif | fm | application/x-maker |
| fpx | image/x-fpx | fvi | video/isivideo |
| gau | chemical/x-gaussian-input | gca | application/x-gca-compressed |
| gdb | x-lml/x-gdb | gif | image/gif |
| gps | application/x-gps | gtar | application/x-gtar |
| gz | application/x-gzip | hdf | application/x-hdf |
| hdm | text/x-hdml | hdml | text/x-hdml |
| hlp | application/winhlp | hqx | application/mac-binhex40 |
| htm | text/html | html | text/html |
| hts | text/html | ice | x-conference/x-cooltalk |
| ico | application/octet-stream | ief | image/ief |
| ifm | image/gif | ifs | image/ifs |
| imy | audio/melody | ins | application/x-NET-Install |
| ips | application/x-ipscript | ipx | application/x-ipix |
| it | audio/x-mod | itz | audio/x-mod |
| ivr | i-world/i-vrml | j2k | image/j2k |
| jad | text/vnd.sun.j2me.app-descriptor | jam | application/x-jam |
| jar | application/java-archive | jnlp | application/x-java-jnlp-file |
| jpe | image/jpeg | jpeg | image/jpeg |
| jpg | image/jpeg | jpz | image/jpeg |
| js | application/x-javascript | jwc | application/jwc |
| kjx | application/x-kjx | lak | x-lml/x-lak |
| latex | application/x-latex | lcc | application/fastman |
| lcl | application/x-digitalloca | lcr | application/x-digitalloca |
| lgh | application/lgh | lha | application/octet-stream |
| lml | x-lml/x-lml | lmlpack | x-lml/x-lmlpack |
| lsf | video/x-ms-asf | lsx | video/x-ms-asf |
| lzh | application/x-lzh | m13 | application/x-msmediaview |
| m14 | application/x-msmediaview | m15 | audio/x-mod |
| m3u | audio/x-mpegurl | m3url | audio/x-mpegurl |
| ma1 | audio/ma1 | ma2 | audio/ma2 |
| ma3 | audio/ma3 | ma5 | audio/ma5 |
| man | application/x-troff-man | map | magnus-internal/imagemap |
| mbd | application/mbedlet | mct | application/x-mascot |
| mdb | application/x-msaccess | mdz | audio/x-mod |
| me | application/x-troff-me | mel | text/x-vmel |
| mi | application/x-mif | mid | audio/midi |
| midi | audio/midi | mif | application/x-mif |
| mil | image/x-cals | mio | audio/x-mio |
| mmf | application/x-skt-lbs | mng | video/x-mng |
| mny | application/x-msmoney | moc | application/x-mocha |
| mocha | application/x-mocha | mod | audio/x-mod |
| mof | application/x-yumekara | mol | chemical/x-mdl-molfile |
| mop | chemical/x-mopac-input | mov | video/quicktime |
| movie | video/x-sgi-movie | mp2 | audio/x-mpeg |
| mp3 | audio/x-mpeg | mp4 | video/mp4 |
| mpc | application/vnd.mpohun.certificate | mpe | video/mpeg |
| mpeg | video/mpeg | mpg | video/mpeg |
| mpg4 | video/mp4 | mpga | audio/mpeg |
| mpn | application/vnd.mophun.application | mpp | application/vnd.ms-project |
| mps | application/x-mapserver | mrl | text/x-mrml |
| mrm | application/x-mrm | ms | application/x-troff-ms |
| mts | application/metastream | mtx | application/metastream |
| mtz | application/metastream | mzv | application/metastream |
| nar | application/zip | nbmp | image/nbmp |
| nc | application/x-netcdf | ndb | x-lml/x-ndb |
| ndwn | application/ndwn | nif | application/x-nif |
| nmz | application/x-scream | nokia-op-logo | image/vnd.nok-oplogo-color |
| npx | application/x-netfpx | nsnd | audio/nsnd |
| nva | application/x-neva1 | oda | application/oda |
| oom | application/x-AtlasMate-Plugin | pac | audio/x-pac |
| pae | audio/x-epac | pan | application/x-pan |
| pbm | image/x-portable-bitmap | pcx | image/x-pcx |
| pda | image/x-pda | pdb | chemical/x-pdb |
| application/pdf | pfr | application/font-tdpfr | |
| pgm | image/x-portable-graymap | pict | image/x-pict |
| pm | application/x-perl | pmd | application/x-pmd |
| png | image/png | pnm | image/x-portable-anymap |
| pnz | image/png | pot | application/vnd.ms-powerpoint |
| ppm | image/x-portable-pixmap | pps | application/vnd.ms-powerpoint |
| ppt | application/vnd.ms-powerpoint | pqf | application/x-cprplayer |
| pqi | application/cprplayer | prc | application/x-prc |
| proxy | application/x-ns-proxy-autoconfig | ps | application/postscript |
| ptlk | application/listenup | pub | application/x-mspublisher |
| pvx | video/x-pv-pvx | qcp | audio/vnd.qcelp |
| qt | video/quicktime | qti | image/x-quicktime |
| qtif | image/x-quicktime | r3t | text/vnd.rn-realtext3d |
| ra | audio/x-pn-realaudio | ram | audio/x-pn-realaudio |
| rar | application/x-rar-compressed | ras | image/x-cmu-raster |
| rdf | application/rdf+xml | rf | image/vnd.rn-realflash |
| rgb | image/x-rgb | rlf | application/x-richlink |
| rm | audio/x-pn-realaudio | rmf | audio/x-rmf |
| rmm | audio/x-pn-realaudio | rmvb | audio/x-pn-realaudio |
| rnx | application/vnd.rn-realplayer | roff | application/x-troff |
| rp | image/vnd.rn-realpix | rpm | audio/x-pn-realaudio-plugin |
| rt | text/vnd.rn-realtext | rte | x-lml/x-gps |
| rtf | application/rtf | rtg | application/metastream |
| rtx | text/richtext | rv | video/vnd.rn-realvideo |
| rwc | application/x-rogerwilco | s3m | audio/x-mod |
| s3z | audio/x-mod | sca | application/x-supercard |
| scd | application/x-msschedule | sdf | application/e-score |
| sea | application/x-stuffit | sgm | text/x-sgml |
| sgml | text/x-sgml | sh | application/x-sh |
| shar | application/x-shar | shtml | magnus-internal/parsed-html |
| shw | application/presentations | si6 | image/si6 |
| si7 | image/vnd.stiwap.sis | si9 | image/vnd.lgtwap.sis |
| sis | application/vnd.symbian.install | sit | application/x-stuffit |
| skd | application/x-Koan | skm | application/x-Koan |
| skp | application/x-Koan | skt | application/x-Koan |
| slc | application/x-salsa | smd | audio/x-smd |
| smi | application/smil | smil | application/smil |
| smp | application/studiom | smz | audio/x-smd |
| snd | audio/basic | spc | text/x-speech |
| spl | application/futuresplash | spr | application/x-sprite |
| sprite | application/x-sprite | spt | application/x-spt |
| src | application/x-wais-source | stk | application/hyperstudio |
| stm | audio/x-mod | sv4cpio | application/x-sv4cpio |
| sv4crc | application/x-sv4crc | svf | image/vnd |
| svg | image/svg-xml | svh | image/svh |
| svr | x-world/x-svr | swf | application/x-shockwave-flash |
| swfl | application/x-shockwave-flash | t | application/x-troff |
| tad | application/octet-stream | talk | text/x-speech |
| tar | application/x-tar | taz | application/x-tar |
| tbp | application/x-timbuktu | tbt | application/x-timbuktu |
| tcl | application/x-tcl | tex | application/x-tex |
| texi | application/x-texinfo | texinfo | application/x-texinfo |
| tgz | application/x-tar | thm | application/vnd.eri.thm |
| tif | image/tiff | tiff | image/tiff |
| tki | application/x-tkined | tkined | application/x-tkined |
| toc | application/toc | toy | image/toy |
| tr | application/x-troff | trk | x-lml/x-gps |
| trm | application/x-msterminal | tsi | audio/tsplayer |
| tsp | application/dsptype | tsv | text/tab-separated-values |
| tsv | text/tab-separated-values | ttf | application/octet-stream |
| ttz | application/t-time | txt | text/plain |
| ult | audio/x-mod | ustar | application/x-ustar |
| uu | application/x-uuencode | uue | application/x-uuencode |
| vcd | application/x-cdlink | vcf | text/x-vcard |
| vdo | video/vdo | vib | audio/vib |
| viv | video/vivo | vivo | video/vivo |
| vmd | application/vocaltec-media-desc | vmf | application/vocaltec-media-file |
| vmi | application/x-dreamcast-vms-info | vms | application/x-dreamcast-vms |
| vox | audio/voxware | vqe | audio/x-twinvq-plugin |
| vqf | audio/x-twinvq | vql | audio/x-twinvq |
| vre | x-world/x-vream | vrml | x-world/x-vrml |
| vrt | x-world/x-vrt | vrw | x-world/x-vream |
| vts | workbook/formulaone | wav | audio/x-wav |
| wax | audio/x-ms-wax | wbmp | image/vnd.wap.wbmp |
| web | application/vnd.xara | wi | image/wavelet |
| wis | application/x-InstallShield | wm | video/x-ms-wm |
| wma | audio/x-ms-wma | wmd | application/x-ms-wmd |
| wmf | application/x-msmetafile | wml | text/vnd.wap.wml |
| wmlc | application/vnd.wap.wmlc | wmls | text/vnd.wap.wmlscript |
| wmlsc | application/vnd.wap.wmlscriptc | wmlscript | text/vnd.wap.wmlscript |
| wmv | audio/x-ms-wmv | wmx | video/x-ms-wmx |
| wmz | application/x-ms-wmz | wpng | image/x-up-wpng |
| wpt | x-lml/x-gps | wri | application/x-mswrite |
| wrl | x-world/x-vrml | wrz | x-world/x-vrml |
| ws | text/vnd.wap.wmlscript | wsc | application/vnd.wap.wmlscriptc |
| wv | video/wavelet | wvx | video/x-ms-wvx |
| wxl | application/x-wxl | x-gzip | application/x-gzip |
| xar | application/vnd.xara | xbm | image/x-xbitmap |
| xdm | application/x-xdma | xdma | application/x-xdma |
| xdw | application/vnd.fujixerox.docuworks | xht | application/xhtml+xml |
| xhtm | application/xhtml+xml | xhtml | application/xhtml+xml |
| xla | application/vnd.ms-excel | xlc | application/vnd.ms-excel |
| xll | application/x-excel | xlm | application/vnd.ms-excel |
| xls | application/vnd.ms-excel | xlt | application/vnd.ms-excel |
| xlw | application/vnd.ms-excel | xm | audio/x-mod |
| xml | text/xml | xmz | audio/x-mod |
| xpi | application/x-xpinstall | xpm | image/x-xpixmap |
| xsit | text/xml | xsl | text/xml |
| xul | text/xul | xwd | image/x-xwindowdump |
| xyz | chemical/x-pdb | yz1 | application/x-yz1 |
| z | application/x-compress | zac | application/x-zaurus-zac |
| zip | application/zip |
IOS调用Custom Protocol
NSString* testUrl = @"myprotocal://192.168.0.1:8080/test?username=user&password=user";
NSURL *myURL = [NSURL URLWithString:testUrl];
[[UIApplication sharedApplication] openURL:myURL ]
Andoid调用Custom Protocol
String textUrl = "myprotocal://192.168.0.1:8080/test?username=user&password=user";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(textUrl));
intent.addCategory(Intent. CATEGORY_BROWSABLE);
intent.addCategory(Intent. CATEGORY_DEFAULT);
startActivity(intent)