??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩88av,色呦呦久久久,蜜臀一区二区三区http://www.aygfsteel.com/soft/category/15407.html<center><font color="black" size="3">专注于效? 专注于h?lt;/font><br>&nbsp;<br> <font size="5"><b>书法.JAVA BLOG</b></font></center>zh-cnFri, 02 Mar 2007 06:36:58 GMTFri, 02 Mar 2007 06:36:58 GMT60囄~辑器的实现--ZJAVA技?/title><link>http://www.aygfsteel.com/soft/archive/2006/11/21/82618.html</link><dc:creator>书法</dc:creator><author>书法</author><pubDate>Tue, 21 Nov 2006 14:08:00 GMT</pubDate><guid>http://www.aygfsteel.com/soft/archive/2006/11/21/82618.html</guid><wfw:comment>http://www.aygfsteel.com/soft/comments/82618.html</wfw:comment><comments>http://www.aygfsteel.com/soft/archive/2006/11/21/82618.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/soft/comments/commentRss/82618.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/soft/services/trackbacks/82618.html</trackback:ping><description><![CDATA[ <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt" align="left"> <font size="2"> <span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"> <span style="mso-list: Ignore">一?/span> </span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术概q?/span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10.5pt; mso-char-indent-count: 1.0"> <font size="2"> <span lang="EN-US">Java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">完全可以的实现多媒体的编辑与处理Q包括图象的处理技术(</span> <span lang="EN-US">JGraph</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q、动L术(</span> <span lang="EN-US">JFlash</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q、声韌频技术(</span> <span lang="EN-US">JMF</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q等{;</span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10.5pt; mso-char-indent-count: 1.0"> <font size="2"> <span lang="EN-US">Java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对图象处理进行了很好的支持,通过</span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供的类Q我们完全可以对图象q行各种常见的操作和变换Q?/span> </font> <font face="宋体"> <font size="2">    </font> <span lang="EN-US"> <br /> <font size="2">      <span style="mso-list: Ignore">1?/span></font> </span> <span lang="EN-US"> <font size="2">java囑Ş图象处理所用到的相关类与接口:</font> </span> </font> <font size="2">   </font> <span lang="EN-US"> <br /> <font size="2">             </font> <font face="宋体"> <font size="2">java.awt.color、java.awt.grahpics、java.awt.image、         ?br />      java.awt.image.bufferedimage?span style="mso-bidi-font-weight: bold">java.awt.image.LookupOp</span>?/font> <font size="2"> <span style="mso-bidi-font-weight: bold">     <br />      java.awt.image.ConvolveOp</span>?span style="mso-bidi-font-weight: bold">java.awt.image.AffineTransformOp</span>?br />      bufferedimageop接口及其实现cȝQ?/font> </font> <br /> </span> <br /> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo1; tab-stops: list 36.0pt"> <font size="2"> <span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"> <span style="mso-list: Ignore">2?span style="FONT: 7pt 'Times New Roman'">  </span></span> </span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">囑Ş图象处理可以完成的功能:</span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 45pt"> <font size="2"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图象文g的打开Q浏览)与保存(支持</span> <span lang="EN-US">jpg</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span> <span lang="EN-US">jpeg</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span> <span lang="EN-US">gif</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span> <span lang="EN-US">png</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">{)、放大镜操作、旋转与镜像操作、反色和其他反色、黑白色阈值处理、亮度调整、羃放显C、边~化、图形的锐化和钝化、其它功能等Q?/span> <span lang="EN-US">.</span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo1; tab-stops: list 36.0pt"> <font size="2"> <span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"> <span style="mso-list: Ignore">3?span style="FONT: 7pt 'Times New Roman'">  </span></span> </span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">囑Ş图象处理应用范围及限Ӟ</span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 47.25pt; mso-char-indent-count: 4.5"> <font size="2"> <span lang="EN-US">……………?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US"> <font size="2"> <o:p> </o:p> </font> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US"> <font size="2"> <o:p> </o:p> </font> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"> <font size="2"> <span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"> <span style="mso-list: Ignore">二?/span> </span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实例演示介绍</span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font size="2"> <span lang="EN-US">c/s<span style="mso-spacerun: yes">  </span>Demo<span style="mso-spacerun: yes">  </span></span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q?a href="http://www.aygfsteel.com/Files/soft/javaDrawer.rar">下蝲</a></span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q?/span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span> <span lang="EN-US">?</span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US"> <font size="2"> <o:p> </o:p> </font> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US"> <font size="2"> <o:p> </o:p> </font> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"> <font size="2"> <span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"> <span style="mso-list: Ignore">三?/span> </span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">关于使用</span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span> <span lang="EN-US">.net</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术实现图片编辑的分析与比?/span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt"> <font size="2"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">关于</span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span> <span lang="EN-US">.net</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的争Z来没有停止过?/span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font size="2"> <span lang="EN-US"> <span style="mso-spacerun: yes">    </span> </span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开放性是</span> <span lang="EN-US">Java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">生命力的源泉Q它不属于一个单独的公司Q尽?/span> <span lang="EN-US">Sun</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在其中v着关键性的作用。众多世界的公司,例如</span> <span lang="EN-US">IBM</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、甲骨文?/span> <span lang="EN-US">BEA</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">{等Q都?/span> <span lang="EN-US">Java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都给予完全的支持Q正是这P</span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的存在ƈl箋产生一pd不^凡的影响是无庸置疑的Q?/span> </font> <font size="2"> <span lang="EN-US">    <br />   <span style="mso-spacerun: yes">  </span></span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">微Y?/span> <span lang="EN-US">.NET</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最大的特点是Ҏ上手。花上两三个月时_你就可以像模像样地当软g工程师了。相比之下,</span> <span lang="EN-US">Java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">׃那么Ҏ。而且Q从软g技术的深度来看Q?/span> <span lang="EN-US">.NET</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之中有没有分布式事务处理Q这个问题仍然被许多资深的Y件h员所质疑</span> <span lang="EN-US">?</span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"> <font size="2"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不过Q是同意</span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的开发框架模式及诸多优秀开源组件更有h|q是要更注重</span> <span lang="EN-US">.net</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的开发效率,q要Ҏ企业以及目自n来抉择,如果对于一个有着深厚的开发积累或者打在相当一D|间长期用的目来说Q没有采?/span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开发^台的是一个不太合理的事情Q因Z长期看来Q新的^台系l的混合使用必然会造成一些品的不同q_的重复开发,而另一斚w因ؓ</span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">独有的设计模式框Ӟ会让一?/span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">E序的后期维护变得相当简单容易,由此看来Q它的开发成本ƈ不一定会比其它语a的开发费用要高?/span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font size="2"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">此前Q?/span> <span lang="EN-US">Jupitor</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">公司发布的一个报告显C,</span> <span lang="EN-US">62%</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的中企业已l采用了</span> <span lang="EN-US">.NET</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q?/span> <span lang="EN-US">36%</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的企业则采用Z</span> <span lang="EN-US">Java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span> <span lang="EN-US">IBM   WebSphere</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">{服务^台。包括微软公司开发业务的负责人约W哥马利也曄表示Q?/span> <span lang="EN-US">Java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">未来会变成底层的编E框Ӟ没有人可以通过它赚钱,它将会变成一个普通商品。”按照他的预,明天?/span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或许q当于今天?/span> <span lang="EN-US">C</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q?/span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font size="2"> <span lang="EN-US"> <span style="mso-spacerun: yes">    </span> </span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在图形图片的处理领域内,有许多种不同的编E方式,?/span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术而言Q可以直接调?/span> <span lang="EN-US">java api</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实现Q同时在</span> <span lang="EN-US">java </span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开源社Z有不开源的lgQ从效率上考虑Q显然后者是一U更好的选择Qƈ且相信在</span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">领域内以后一定会有更多更优秀的开放性源码出玎ͼq就?/span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的活?/span> <span lang="EN-US">java</span> </font> <font size="2"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的优势;<br /></span> <span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"> <span style="mso-list: Ignore">四?/span> </span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设想</span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -42pt; mso-char-indent-count: -4.0"> <font size="2"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Ҏ</span> <span lang="EN-US">1</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q?/span> <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?> <st1:city> <st1:place> <span lang="EN-US">Ajax</span> </st1:place> </st1:city> <span lang="EN-US">+java </span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-para-margin-left: 3.0gd"> <font size="2"> <span lang="EN-US"> <span style="mso-spacerun: yes"> </span> </span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">理由Q充分利?/span> <span lang="EN-US">Ajax</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">胖客L、无h加蝲提交数据及异步通信的特征,构造出</span> <span lang="EN-US">Internet</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上极速处理图片及照片的体验^収ͼ从而大大减用L待页面刷新的烦恼Q客户在充分n受上|的乐趣的同时对公司的品也留下更ؓ深刻的印象?/span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-para-margin-left: 3.0gd"> <font size="2"> <span lang="EN-US"> <span style="mso-spacerun: yes">  </span> </span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">优点Q?/span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">q_产品pȝ无关性、安全性、易l护升、开放性等所有优点;</span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -42pt; mso-char-indent-count: -4.0"> <font size="2"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Ҏ</span> <span lang="EN-US">2</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q多语言q_开发模?/span> <span lang="EN-US"> <span style="mso-spacerun: yes">  </span> </span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">q_实现在线~辑囄的功能而以其它语言q_Q如</span> <span lang="EN-US">.net+GAI</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q实现本地图片处理功?/span> <span lang="EN-US"> <span style="mso-spacerun: yes">  </span> </span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; mso-para-margin-left: 4.0gd"> <font size="2"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">理由Q语a本n无所谓好不好Q它只是一个工P它们都是Z品服务的Q而品又是ؓ客户服务的,所以采用什么^台来开发品最l是用户说了,</span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的出现本w就是基?/span> <span lang="EN-US">Internet</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的,因此</span> <span lang="EN-US">B/S</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">模式下采?/span> <span lang="EN-US">java</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术,而以其它语言开发用h面应用程序,扬长避短Q不但可以有效减风险,而且产品开发周期也会快很多?/span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; mso-para-margin-left: 4.0gd"> <font size="2"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">优点Q风险小Q效率高?/span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; mso-para-margin-left: 4.0gd"> <span lang="EN-US"> <span style="mso-spacerun: yes"> <font size="2">                                                               </font> </span> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; mso-para-margin-left: 4.0gd"> <span lang="EN-US"> <span style="mso-spacerun: yes"> <font size="2">                                                       </font> </span> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: 288.75pt; mso-char-indent-count: 27.5; mso-para-margin-left: 4.0gd"> <font size="2"> <span lang="EN-US"> <span style="mso-spacerun: yes">                                                               copyright@  </span> </span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">彭书?/span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; mso-para-margin-left: 4.0gd"> <font size="2"> <span lang="EN-US"> <span style="mso-spacerun: yes">                                                                                     </span> </span> </font> <font size="2"> </font> </p> <font face="宋体"> </font> <img src ="http://www.aygfsteel.com/soft/aggbug/82618.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/soft/" target="_blank">书法</a> 2006-11-21 22:08 <a href="http://www.aygfsteel.com/soft/archive/2006/11/21/82618.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JNI技术在嵌入式Y件开发中的应用学习笔C?/title><link>http://www.aygfsteel.com/soft/archive/2006/11/13/80789.html</link><dc:creator>书法</dc:creator><author>书法</author><pubDate>Sun, 12 Nov 2006 20:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/soft/archive/2006/11/13/80789.html</guid><wfw:comment>http://www.aygfsteel.com/soft/comments/80789.html</wfw:comment><comments>http://www.aygfsteel.com/soft/archive/2006/11/13/80789.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/soft/comments/commentRss/80789.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/soft/services/trackbacks/80789.html</trackback:ping><description><![CDATA[ <p> <font size="2">通过前两文章的介绍Q现在给Z个JNI的HelloWrold应用例子Q用于抛砖引玉:<br /><br />步骤Q?br /><font color="#666666" size="3"><font color="#000000">       a.</font><font size="2"><font color="#000000">~写带有native声明的方法的javac?br />  <br />  b.使用javac命o~译所~写的javac?br />  <br />  c.使用javah ?jni javacd生成扩展名ؓh的头文g<br />  <br />  d.使用C/C++实现本地Ҏ<br />  <br />  e.C/C++~写的文件生成动态连接库<br />  <br />  f. q行 ok<br /></font><br /></font></font>详细介绍Q?br /><font color="#000000">      </font><font color="#000000">1) ~写javaE序Q?br />  <br />  q里以HelloWorldZ?br />  <br />  代码1Q?br />  <br />  class HelloWorld {<br />  public native void displayHelloWorld();<br />  <br />  static {<br />  System.loadLibrary("hello");<br />  }<br />  <br />  public static void main(String[] args) {<br />  new HelloWorld().displayHelloWorld();<br />  }<br />  }<br />  <br />  声明nativeҎQ如果你惛_一个方法做Z个本地方法的话,那么你就必须声明Ҏ法ؓnative的,q且不能实现。其中方法的参数和返回值在后面讲述?br />  <br />  Load动态库QSystem.loadLibrary("hello");加蝲动态库Q我们可以这L解:我们的方法displayHelloWorld()没有实现Q但是我们在下面q接用了Q所以必d使用之前对它q行初始化)q里一般是以static块进行加载的。同旉要注意的是System.loadLibrary();的参数“hello”是动态库的名字?br />  <br />  main()Ҏ<br />  <br />  2) ~译没有什么好说的?br />  <br />  javac HelloWorld.java<br />  <br />  3) 生成扩展名ؓh的头文g<br />  <br />  javah ?jni HelloWorld<br />  <br />  头文件的内容Q?br />  /* DO NOT EDIT THIS FILE - it is machine generated */<br />  #include <br />  /* Header for class HelloWorld */<br />  <br />  #ifndef _Included_HelloWorld<br />  #define _Included_HelloWorld<br />  #ifdef __cplusplus<br />  extern "C" {<br />  #endif<br />  /*<br />  * Class:   HelloWorld<br />  * Method:  displayHelloWorld<br />  * Signature: ()V<br />  */<br />  JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld<br />  (JNIEnv *, jobject);<br />  <br />  #ifdef __cplusplus<br />  }<br />  #endif<br />  #endif<br />  <br />  Q这里我们可以这L解:q个h文g相当于我们在java里面的接口,q里声明了一个Java_HelloWorld_displayHelloWorld (JNIEnv *, jobject);ҎQ然后在我们的本地方法里面实现这个方法,也就是说我们在编写C/C++E序的时候所使用的方法名必须和这里的一_?br />  <br />  4) ~写本地Ҏ<br />  <br />  实现和由javah命o生成的头文g里面声明的方法名相同的方法?br />  <br />  代码2Q?br />  <br />  1 #include <br />  2 #include "HelloWorld.h"<br />  3 #include <br />  4 JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)<br />  {<br />  printf("Hello world!\n");<br />  return;<br />  }<br />  <br />  注意代码2中的W?行,需要将jni.hQ该文g可以?JAVA_HOME%/include文g夹下面找刎ͼ文g引入Q因为在E序中的JNIEnv、jobject{类型都是在该头文g中定义的Q另外在W?行需要将HelloWorld.h头文件引入(我是q么理解的:相当于我们在~写javaE序的时候,实现一个接口的话需要声明才可以Q这里就是将HelloWorld.h头文仉面声明的Ҏ加以实现。当然不一定是q样Q。然后保存ؓHelloWorldImpl.cok了?br />  <br />  5) 生成动态库<br />  <br />  q里以在Windows中ؓ例,需要生成dll文g。在保存HelloWorldImpl.c文g夹下面,使用VC的编译器cl成?br />  <br />  cl -I%java_home%\include -I%java_home%\include\win32 -LD HelloWorldImp.c -Fehello.dll<br />  <br />  注意Q生成的dll文g名在选项-Fe后面配置Q这里是helloQ因为在HelloWorld.java文g中我们loadLibary的时候用的名字是hello。当然这里修改之后那里也需要修攏V另外需要将-I%java_home%\include -I%java_home%\include\win32参数加上Q因为在W四步里面编写本地方法的时候引入了jni.h文g?br />  <br />  6) q行E序<br />  <br />  java HelloWorldok了?br /></font><br />        如有问题Q欢q讨Z。^_^<br /><br /></font> </p> <img src ="http://www.aygfsteel.com/soft/aggbug/80789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/soft/" target="_blank">书法</a> 2006-11-13 04:25 <a href="http://www.aygfsteel.com/soft/archive/2006/11/13/80789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JNI技术在嵌入式Y件开发中的应用学习笔C?/title><link>http://www.aygfsteel.com/soft/archive/2006/11/13/80788.html</link><dc:creator>书法</dc:creator><author>书法</author><pubDate>Sun, 12 Nov 2006 20:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/soft/archive/2006/11/13/80788.html</guid><wfw:comment>http://www.aygfsteel.com/soft/comments/80788.html</wfw:comment><comments>http://www.aygfsteel.com/soft/archive/2006/11/13/80788.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/soft/comments/commentRss/80788.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/soft/services/trackbacks/80788.html</trackback:ping><description><![CDATA[ <font size="2">接上Q?br />(1)~写JavacM?br />    其中Q需要JNI实现的方法应当用native关键字声明。在该类中,用SystemQ?oadLibrary()Ҏ加蝲需要的动态链接库。关键代码如下:<br />    Q/Compute.java<br />    public class Compute{<br />    public native double comp (double params);<br />    static{<br />    Q/调用动态链接库<br />    SystemQloadLibrary(“mathlib?Q?br />    }<br />    <br />(2)~译成字节代?br />    在这个过E中Q由于采用了native关键字声明,Java~译器会忽视没有代码体的JNIҎ部分?br />   <br /> (3)生成相关JNIҎ的头文g<br />    q个q程的实C般是通过利用jlavah-jni * class生成的,也可以手工生成该文gQ但是由?/font> <font size="2">Java</font> <font size="2">虚拟机是Ҏ一定的命名规范完成对JNIҎ的调用,所以手工编写头文g需要特别小心?br />    上述文g产生的头文g部分代码如下Q?br />    Q/Compute.h<br />    ;<br />    extern“C”{<br />    JNIEXPORT jdoubleJNICALL Java_Compute_comp(JNI-Env *, jobject, jdoubleArray)Q?br />    ;<br />    JNI函数名称分ؓ三部分:首先是Java关键字,供Java虚拟别;然后是调用者类名称(全限定的cdQ其中用下划U代替名U分隔符)Q最后是对应的方法名Uͼ各段名称之间用下划线分割?br />    JNI函数的参C׃部分l成Q首先是JNIEnv *,是一个指向JNIq行环境的指针;W二个参数随本地Ҏ是静态还是非静态而有所不同一一非静态本地方法的W二个参数是对对象的引用Q而静态本地方法的W二个参数是对其Javacȝ引用Q其余的参数对应通常JavaҎ的参敎ͼ参数cd需要根据一定规则进行映?/font> <p> <br /> <font size="2">    (4)~写相应Ҏ的实C?br />    在编码过E中Q需要注意变量的长度问题Q例如Java的整型变量长度ؓ32位,而C语言?6位,所以要仔细核对变量cd映射表,防止在传DE中出现问题?/font> </p> <p> <br /> <font size="2">    (5)JNI实现代码~译成动态链接库<br />    ~译q程是利用CQC++~译器实现的Q当要用生成的动态链接库Ӟ调用者类中需要显式调用该链接库?br />    l过上述处理Q基本上完成了一个包含本地化Ҏ的Javacȝ开发?/font> </p> <p align="left"> <font size="2">     3 ZJNI的嵌入式手机软g开发实?br />    下面通过一个实例来描述q用</font> <font size="2">JNI技?/font> <font size="2">在手Z操纵摄像_捕捉视频q存储图片的q程?br />    (1)zdQ状态图<br />    ?为捕捉视频ƈ存储囄的活动/状态图</font> <img style="WIDTH: 479px; HEIGHT: 603px" height="603" src="http://www.aygfsteel.com/images/blogjava_net/soft/17148/o_s1.jpg" width="646" /> <br /> <br />                                                                                <a title="图二" href="/images/blogjava_net/soft/17148/r_s0.jpg" target="_blank"><font color="#ff0000">点击查看原图</font></a><br /><font size="2">Ҏ?的活动/状态,具体的对应步骤如下:<br />    ①发赯程?br />    ②发hE后Q徏立文件用于存储图片?br />    ③用指针获得分配的缓冲器Q用于存储获得的帧?br />    ④将指针压栈(序列化缓冲器)。由于手机的内存较小Qؓ了防止内存泄漏,Symbian操作pȝ有一个Cleanup stack的要求,卛_使用指针Ӟ用PushL把指针压入栈中,使用完后再用Pop弹出栈.如果在中间调用导致崩溃的函数时果真出C问题Q那么Clean up stack可以通过调用该指针的析构函数回收占用的空间?br />    ⑤操U|像头Q捕捉视频,q将囑փ从摄像头端传到~冲器?br />    ⑥将摄像头内的图像流存入~冲器内Qƈ缓冲器内的{化ؓ文g,存ؓjpg格式的文Ӟ指向缓冲器的指针弹栈?br />    ⑦在q程⑥中Q如果用完了序列化的缓冲器Q则要重新序列化~冲器,以备后面使用?br />    ⑧当接收到停止视频捕捉的信号后,关闭文g?br />    ⑨流E结束?br /> <br />     (2)q用JNI</font><font size="2">技?/font><font size="2">的视频捕?br />    子功能捕捉视频的实现是由操纵摄像头、视频播?解码器准?以及建立摄像头和手机之间的连接会话三个活动组成的。其中操U|像头是通过调用底层讑֤的驱动来实现的,需要利用JNI来实玎ͼ完成的方法包括准备、徏立、删除、销毁摄像头{。视频播攄一pdq程也是通过c++代码来实现的Q除了准备、徏立、删除、销毁解码器外,q有开始、暂停、停止解码等。徏立摄像头和手Z间的q接cM建立客户端和服务器连接,视频从摄像头传到手机界面是通过多媒体会话来完成的。多媒体<br />会话的徏立、关闭、摧毁以及会话徏立后的发送、取消、读取数据等也是JNI的应用范畴?br /></font><font size="2"><br />     l语<br />    d采用UJava的h们通常反对本地化代码的使用Q认为JNI技术会影响</font><font size="2">E序</font><font size="2">的可UL性和安全性。还有一些h认ؓQ在JavaE序执行的过E中调用cQc++E序只是对过L؜合编E技术的单扩展,其实际目的是Z充分利用大量原有的cE序库?br /></font><br /><font size="2">     其实Q不必拘泥于严格的^台独立性限Ӟ因ؓ采用JNI技术只是针对一些严重媄响Java性能的代码段。该部分可能只占源程序的极少部分Q所以几乎可以不考虑该部分代码在Lq_之间UL的工作量。同Ӟ也不必过分担心类型匹配问题,完全可以控制代码不出现这U错误。此外,也不必担心安全控刉题,因ؓJava安全模型已扩展ؓ允许非系l类加蝲和调用本地方法,卛_果在JavaE序中直接调用cQc++语言产生的机器码Q该部分代码的安全性就由Java虚拟机控制?br /></font><br /><br /></p> <img src ="http://www.aygfsteel.com/soft/aggbug/80788.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/soft/" target="_blank">书法</a> 2006-11-13 04:16 <a href="http://www.aygfsteel.com/soft/archive/2006/11/13/80788.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JNI技术在嵌入式Y件开发中的应用学习笔C一http://www.aygfsteel.com/soft/archive/2006/11/13/posoft.html书法书法Sun, 12 Nov 2006 19:46:00 GMThttp://www.aygfsteel.com/soft/archive/2006/11/13/posoft.htmlhttp://www.aygfsteel.com/soft/comments/80787.htmlhttp://www.aygfsteel.com/soft/archive/2006/11/13/posoft.html#Feedback0http://www.aygfsteel.com/soft/comments/commentRss/80787.htmlhttp://www.aygfsteel.com/soft/services/trackbacks/80787.html 嵌入式系l是以应用ؓ中心、以计算机技?/font> 为基、Y件硬件可裁剪、适应应用pȝ对功能、可靠性、成本、体U、功耗严D求的专用计算机系l。嵌入式软g 的基本体pȝ构包括嵌入式实时操作pȝRTOS(RealTime operating Systerrl)、嵌入式讑֤驱动E序 、嵌入式应用E序~程接口(中间?和嵌入式应用E序?/font>


    现阶D,计算机应用的普及、互联网技术的实用以及U米微电子技术的H破Q正有力推动着21世纪的工业生产、商业活动、科学实验和家庭生活{领域自动化和信息化q程。全q程自动化品制造、大范围电子商务zd、高度协同科学实验以及现代化家居生活Qؓ嵌入式品造就了崭新而巨大的商机。除了沟通信息高速公路的交换机、\由器和调制解调器Q构机集成刉系l?CIMS)所需的数据传输系lDCS(Data Communication System)和机器h以及规模较大的家用汽车电子系l,最有量效益和时代特征的嵌入式产品应数因特|上的信息家?information appliancesQ,如网l可视电话、网l游戏机、电子商务、商务?PDA)、移动电话以及多媒体产品(如电视机盒、DVD播放机、电子阅L)?/font>


    众所周知Q“一ơ编E,到处使用”的 Java 软g概念原本是针对|上嵌入式小讑֤提出的,几经周折Q目前SUN公司已推ZJ2ME(Java 2 P1atform Micro Edition)针对信息家电的Java版本Q其技术日成熟,开始投入用。SUN公司Java虚拟?JVM)技术的有序开放,使得Java软g真正实现跨^台运行,即Java应用程序能够在带有JVM的Q何硬软gpȝ上执行。加上Java语言本n所h的安全性、可靠性和可移植性等特点Q对实现瘦n上网的信息家늭|络讑֤十分有利Q同时对嵌入式设备特别是上网讑֤软g~程技术生了很大的媄响?

   1 Java的性能问题及几U解x?br />    JavaE序也有其本w的~陷Q那是其效率问题。由于Java是一U介于解释型和编译型之间的语aQ其对内存的理是通过JVM虚拟机来实现的,同样的程序,如果用编译型语言C来实玎ͼ其运行速度一般要比Java快得多。因此,提高Java的性能显得十分重要?/font>


    q今为止Qh们ؓ提高Java的运行速度而做出的许多努力Q主要集中在E序设计的方法和模式选择斚w。但是由于算法和设计模式的优化是通用的,对Java有效的优化算法和设计模式Q对其他~译语言也基本适用Q因此不能从Ҏ上改变JavaE序与编译型语言在执行效率方面的差异?/font>


    另外QJIT(Just In TimeQ及时编?技术也是一个比较好的思想。它的基本原理是Q首先,通过Java~译器把Java源代码编译成与^台无关的二进制字节码。然后,在JavaE序真正执行之前Q系l通过JIT~译器把Java的字节码~译为本地化机器码。最后,pȝ执行本地化机器码Q不用对字节码进行解释。这样做的优ҎQ大大提高了JavaE序的性能Q羃短了加蝲E序的时_同时Q由于编译的l果q不在程序运行期间保存,因此也节U了存储I间。缺ҎQ由于JIT~译器对所有的代码都想优化Q因此同样也占用了很多时间?/font>


    动态优化技术即提前~译为机器码的技?dynamicopttmizationQahead of time technology)是提高Java性能的另一个尝试。动态优化技术充分利用了Java源码~译、字节码~译、动态编译和静态编译的技术。其输入是Java的源码或字节码。而输出是l过高度优化的可执行代码和动态库(WindoW中是Qdil文gQUNIX中是׃n?a.so文g)。其优点是能大大提高E序的性能Q缺Ҏ破坏了Java的可UL性,也对Java的安全带来了一定的隐患?/font>

     2 JNI技?/font>
    实际上,有一U通常被忽视的技术可以在很大E度上解册个难题,那就是JNI(Java Native InterfaceQJava本地化方?。图l是JNI技术实现的一般步骤?br />




点击查看原图
                    

                                                                                                                                                             



书法 2006-11-13 03:46 发表评论
]]>
վ֩ģ壺 ͤ| ƽ| | ؼ| | ̩˳| ɽ| ̨| | | | | ű| | ֻ| | ̫| ָɽ| פ| | ¡| ͭ| ұ| | ɽ| | | | ̰| ߰| | | | | ɽ| | | | ʡ| | |