﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-Java专区</title><link>http://www.blogjava.net/dakiler/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:01:00 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:01:00 GMT</pubDate><ttl>60</ttl><item><title>Medusa开发者教程 之 基本知识介绍</title><link>http://www.blogjava.net/dakiler/archive/2009/07/06/285633.html</link><dc:creator>王凯迪</dc:creator><author>王凯迪</author><pubDate>Mon, 06 Jul 2009 01:39:00 GMT</pubDate><guid>http://www.blogjava.net/dakiler/archive/2009/07/06/285633.html</guid><wfw:comment>http://www.blogjava.net/dakiler/comments/285633.html</wfw:comment><comments>http://www.blogjava.net/dakiler/archive/2009/07/06/285633.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/dakiler/comments/commentRss/285633.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dakiler/services/trackbacks/285633.html</trackback:ping><description><![CDATA[<div id="blog_text" class="cnt">
<p class="MsoNormal" style="text-align: center;" align="center"><strong><span style="font-size: 16pt;">Medusa</span></strong><strong><span style="font-size: 16pt;">小程序开发手册</span></strong></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 0cm;" align="left"><span><span>一、</span></span><strong><span style="font-size: 12pt;">前言</span></strong></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 21pt;" align="left"><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><strong><span>背景</span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>本文档主要面向</span><span>Medusa</span><span>小程序的开发人员，以帮助他们更好地使用</span><span>Medusa Application Editor</span><span>来开发小程序。本教程将首先向您介绍</span><span>Medusa</span><span>小程序的基本概念，原理。然后通过一个实际的例子教您一步步地进行小程序开发，它基本涵盖了</span><span>Medusa</span><span>小程序开发的所有概念。最后是</span><span>Medusa</span><span>提供的</span><span>API Reference</span><span>，供您在开发过程中参考。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span> </span></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 21pt;" align="left"><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><strong><span>需要条件</span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>我们假设您对</span><span>JavaScript</span><span>有一定的理解，了解其基本的语法，函数调用等等。其次，如果想制作复杂的小程序，就需要对</span><span>Java</span><span>有比较深的理解，尤其是对</span><span>Java UI</span><span>以及</span><span>Script Engine</span><span>的理解。不过对于大多数的简单应用，仅仅使用</span><span>JavaScript</span><span>就足够了。如果您想进行开发，请先确认自己对相关知识是否了解。如果不太了解的话，请参考相关的</span><span>JavaScript</span><span>以及</span><span>Java</span><span>资料。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span> </span></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 21pt;" align="left"><span><span>3.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><strong><span>联系作者</span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>如果您在</span><span>Medusa</span><span>小程序开发过程中遇到任何问题，或者发现任何</span><span>Bug,</span><span>或者对</span><span>Medusa</span><span>有任何的意见或建议，欢迎您联系作者。联系方式：</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>作者</span><span>: </span><span>王凯迪</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>QQ: 524805605</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>Mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#100;&#97;&#107;&#105;&#108;&#101;&#114;&#64;&#49;&#54;&#51;&#46;&#99;&#111;&#109;">dakiler@163.com</a></span></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 0cm;" align="left"><span><span>一、</span></span><strong><span style="font-size: 12pt;">Medusa</span></strong><strong><span style="font-size: 12pt;">基本概念</span></strong></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 21pt;" align="left"><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><strong><span>概述</span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>Medusa</span><span>是
一个小程序的容器与运行环境。原先有一些需要人们手动做的操作，现在可以由小程序来自动完成。每个小程序做自己独立的工作，比如获取一个网站的最新新闻，
或者下载最近更新的电影等等，然后提示用户有新的内容，而不需要用户自己去关注。这样用户就可以节省很多时间。您可以在</span><span>Medusa</span><span>的主界面中看到有很多小程序，如下：</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>
<div forimg="1"><img class="blogimg" small="0" src="http://hiphotos.baidu.com/dakiler/pic/item/2d435f7bad3a83d20bd18754.jpg" border="0"  alt="" /></div>
<br />
</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>这些小程序在容器的管理下，按一定的方式运行着，每个小程序包括以下部分：</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>元信息</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>运行配置</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>属性配置</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>数据</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>执行代码</span><span>/</span><span>显示代码</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>菜单配置</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>这一章剩下部分会详细介绍这些部分。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span> </span></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 21pt;" align="left"><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><strong><span>元信息</span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>元信息记录了小程序的基本信息。这些信息仅仅是为了显示之用。主要有以下部分：</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>小程序的名字。用来唯一标识这个小程序，不同的小程序应该有不同的名字。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>小程序的作者。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>小程序的描述。描述这个程序的功能，便于用户理解程序的功能与使用方法。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>所属的标签。描述这个小程序属于哪些标签，便于用户根据标签搜索，查找需要的小程序。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span> </span></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 21pt;" align="left"><span><span>3.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><strong><span>运行配置</span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>运行配置是用来配置小程序是如何运行的。目前支持以下的三种方式：</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>无。即程序不会自动运行。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>每隔一段时间运行。一旦超过一段时间，程序会被执行。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span><span>l<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><span>定时运行。一旦到达了一天中的某个时间点，程序会被执行。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>一旦满足运行配置中的条件，执行代码就会被</span><span>Medusa</span><span>容器自动执行。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span> </span></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 21pt;" align="left"><span><span>4.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><strong><span>属性配置</span><span>(Properties)</span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>小程序在执行过程可能需要一些参数，而这些参数在小程序制作过程中是未知的，需要最终用户来设置。所以在</span><span>Medusa</span><span>中引入了属性。小程序制作者可以在脚本中引用到这些参数，然后这些参数可以由最终用户进行设置（提供一个可视化的界面）。举个例子，比如有一个查询天气的小程序，点击一下按钮，就会跳出一个城市的天气预报的网页，当时用户所在的城市是未知的，这个时候就可以设置一个叫</span><span>city</span><span>的属性，由最终用户来填写，然后程序开发者在代码中可以引用到这个变量。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span> </span></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 21pt;" align="left"><span><span>5.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><strong><span>数据</span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>一些小程序在执行过程中需要保存少量的持久化数据。这些数据可能要在将来的执行过程中会使用到。比如一个获取网页最新新闻的小程序，它在一次执行过程中，就需要将一些已经访问的网址记录下来，通过比对以前访问过的网址，分析出最新的链接，并且提示给用户。所以我们在</span><span>Medusa</span><span>中引入了持久化少量数据的概念。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span> </span></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 21pt;" align="left"><span><span>6.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><strong><span>执行代码</span><span>/</span></strong><strong><span>显示代码</span><span>(executeCode/trayCode)</span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>前面在&#8220;运行配置&#8221;中提到一旦满足运行条件，这里的执行代码就会被容器执行。当用户点击了右下角的托盘时，显示代码会被执行。关于代码如何编写，请参考第四章。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span> </span></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 21pt;" align="left"><span><span>7.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><strong><span>菜单配置</span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>除了执行代码与显示代码以外</span><span>.Medusa </span><span>允许自定义菜单的配置。您可以看到，在主界面中，对一个小程序点击鼠标右键，可以看到除了下面的几个菜单项是相同的以外，最上面的菜单项是小程序可以自己定义的。小程序的制作者可以定义显示的菜单文本与对应执行的脚本代码，给小程序提供更加强大的功能。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>
<div forimg="1"><img class="blogimg" small="0" src="http://hiphotos.baidu.com/dakiler/pic/item/9f152c318d634b3feac4af50.jpg" border="0"  alt="" />
<div forimg="1"><img class="blogimg" small="0" src="http://hiphotos.baidu.com/dakiler/pic/item/9805a81f000f6f2c314e155c.jpg" border="0"  alt="" /></div>
<span>
<div forimg="1" align="right"> </div>
</span>
<div forimg="1"><a target="_blank" href="http://hiphotos.baidu.com/dakiler/pic/item/044d563bb88d31cc14cecb52.jpg"><br />
</a></div>
</div>
<br />
</span></p>
<p class="MsoNormal" style="text-align: left; text-indent: 21pt;" align="left"><span> </span></p>
<p class="MsoNormal" style="margin-left: 0cm; text-align: left; text-indent: 21pt;" align="left"><span><span>8.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span></span><strong><span>总结</span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; text-indent: 21pt;" align="left"><span>以上介绍了</span><span>Medusa</span><span>小程序的基本概念，小程序的各部分信息会被保存在一个文件中，后缀名为</span><span>.app.</span><span>注意这个文件不是普通的文本文件，而是二进制的，所以不能用普通的文本编辑器编辑。下一章我们将介绍如何使用</span><span>Medusa Application Editor</span><span>来进行开发。</span></p>
</div>
<img src ="http://www.blogjava.net/dakiler/aggbug/285633.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dakiler/" target="_blank">王凯迪</a> 2009-07-06 09:39 <a href="http://www.blogjava.net/dakiler/archive/2009/07/06/285633.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Medusa发布啦</title><link>http://www.blogjava.net/dakiler/archive/2009/07/06/285632.html</link><dc:creator>王凯迪</dc:creator><author>王凯迪</author><pubDate>Mon, 06 Jul 2009 01:37:00 GMT</pubDate><guid>http://www.blogjava.net/dakiler/archive/2009/07/06/285632.html</guid><wfw:comment>http://www.blogjava.net/dakiler/comments/285632.html</wfw:comment><comments>http://www.blogjava.net/dakiler/archive/2009/07/06/285632.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dakiler/comments/commentRss/285632.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dakiler/services/trackbacks/285632.html</trackback:ping><description><![CDATA[Medusa beta版终于release了，主要如下：<br />
<p class="MsoNormal"><span>Medusa</span><span>介绍</span></p>
<p class="MsoNormal"><span> </span></p>
<p style="text-indent: 21pt;" class="MsoNormal"><span>Medusa</span><span>能将用户平时上网关注的一些信息整合在一起，通过某种方式提示用户，从而达到信息推送的功能。</span></p>
<p style="text-indent: 21pt;" class="MsoNormal"><span>比如一个用户可能比较关注网易头条新闻，</span><span>CSDN</span><span>的新闻以及一些</span><span>youku</span><span>网的视频，他就可以将这些东西集合在一起，一旦有了新的新闻或新的视频，该软件就能自动提醒用户去查看，这样省去了原本手动去查看是否有新信息的时间。</span></p>
<p style="text-indent: 21pt;" class="MsoNormal"><span>在</span><span>Medusa</span><span>中，每个关注点的实现是通过插件来完成的，普通用户可以通过下载插件来满足自己的需要。</span></p>
<p style="text-indent: 21pt;" class="MsoNormal">Medusa下载网址如下：<br />
<br />
<a href="http://pickup.mofile.com/3259554638673089" target="_blank">http://pickup.mofile.com/3259554638673089</a><br />
<br />
<br />
源代码<br />
<a href="http://pickup.mofile.com/1476961520292256" target="_blank">http://pickup.mofile.com/1476961520292256</a></p>
<p style="text-indent: 21pt;" class="MsoNormal"><br />
<span>主界面
<div forimg="1"><a href="http://hiphotos.baidu.com/dakiler/pic/item/15fb812ac966c3bd023bf634.jpg" target="_blank">
<div forimg="1"><img src="http://hiphotos.baidu.com/dakiler/pic/item/49e75f553a791ce2b645ae3a.jpg" small="0" class="blogimg" alt="" border="0" /></div>
<br />
</a></div>
一旦有新的消息，就在系统托盘处显示出来:</span></p>
<p style="text-indent: 21pt;" class="MsoNormal"><span>
<div forimg="1"><img src="http://hiphotos.baidu.com/dakiler/pic/item/b0dc4cd88753461332fa1c0e.jpg" small="0" class="blogimg" alt="" border="0" /></div>
<br />
</span></p>
<p style="text-indent: 21pt;" class="MsoNormal"><span>管理每个插件:</span></p>
<p style="text-indent: 21pt;" class="MsoNormal"><span>
<div forimg="1"><a href="http://hiphotos.baidu.com/dakiler/pic/item/879316a90f7a38da1f17a23e.jpg" target="_blank"><img src="http://hiphotos.baidu.com/dakiler/abpic/item/879316a90f7a38da1f17a23e.jpg" small="1" class="blogimg" alt="" border="0" /></a></div>
改皮肤:</span></p>
<p style="text-indent: 21pt;" class="MsoNormal"><span>
<div forimg="1"><img src="http://hiphotos.baidu.com/dakiler/pic/item/879316a90f4238da1f17a206.jpg" small="0" class="blogimg" alt="" border="0" /></div>
配置分组:</span></p>
<span>
<div forimg="1"><img src="http://hiphotos.baidu.com/dakiler/pic/item/a2938388895670b2a5c27202.jpg" small="0" class="blogimg" alt="" border="0" /></div>
</span>
<img src ="http://www.blogjava.net/dakiler/aggbug/285632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dakiler/" target="_blank">王凯迪</a> 2009-07-06 09:37 <a href="http://www.blogjava.net/dakiler/archive/2009/07/06/285632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>