📄 《深入brew开发》——第六章 使用applet和模块 - gemsea的专栏 - csdnblog.htm
字号:
<TD class=CalWeekendDay style="WIDTH: 14%" align=middle>16</TD>
<TD style="WIDTH: 14%" align=middle>17</TD>
<TD style="WIDTH: 14%" align=middle>18</TD>
<TD style="WIDTH: 14%" align=middle>19</TD>
<TD style="WIDTH: 14%" align=middle>20</TD>
<TD style="WIDTH: 14%" align=middle>21</TD>
<TD class=CalWeekendDay style="WIDTH: 14%" align=middle>22</TD></TR>
<TR>
<TD class=CalWeekendDay style="WIDTH: 14%" align=middle>23</TD>
<TD style="WIDTH: 14%" align=middle>24</TD>
<TD style="WIDTH: 14%" align=middle>25</TD>
<TD style="WIDTH: 14%" align=middle>26</TD>
<TD style="WIDTH: 14%" align=middle>27</TD>
<TD style="WIDTH: 14%" align=middle>28</TD>
<TD class=CalWeekendDay style="WIDTH: 14%" align=middle>29</TD></TR>
<TR>
<TD class=CalWeekendDay style="WIDTH: 14%" align=middle>30</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%" align=middle>1</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%" align=middle>2</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%" align=middle>3</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%" align=middle>4</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%" align=middle>5</TD>
<TD class=CalOtherMonthDay style="WIDTH: 14%"
align=middle>6</TD></TR></TBODY></TABLE><BR><SPAN id=RecentVisitors>
<H3 class=listtitle>最近访客</H3>
<TABLE border=0>
<TBODY>
<TR>
<TD align=middle><IMG
onmouseover="try{BlogShowme(event, 'bignose_dx')}catch(ex){}"
alt="bignose_dx 的头像"
src="《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files/2.jpg"
border=0><BR><A title="访问时间: 9/12/2007 5:42:24 PM"
href="http://blog.csdn.net/bignose_dx/">bignose_dx</A></TD>
<TD align=middle><IMG
onmouseover="try{BlogShowme(event, 'tommy_j_hwu')}catch(ex){}"
alt="tommy_j_hwu 的头像"
src="C:\Documents and Settings\jingran\桌面\unibrew\《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files\2(1).jpg"
border=0><BR><A title="访问时间: 9/12/2007 3:43:16 PM"
href="http://blog.csdn.net/tommy_j_hwu/">tommy_j_hwu</A></TD></TR>
<TR>
<TD align=middle><IMG
onmouseover="try{BlogShowme(event, 'tengzhihui')}catch(ex){}"
alt="tengzhihui 的头像"
src="C:\Documents and Settings\jingran\桌面\unibrew\《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files\2(2).jpg"
border=0><BR><A title="访问时间: 9/11/2007 12:08:58 AM"
href="http://blog.csdn.net/tengzhihui/">tengzhihui</A></TD>
<TD align=middle><IMG
onmouseover="try{BlogShowme(event, 'argusun')}catch(ex){}"
alt="argusun 的头像"
src="C:\Documents and Settings\jingran\桌面\unibrew\《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files\2(3).jpg"
border=0><BR><A title="访问时间: 9/7/2007 12:56:42 PM"
href="http://blog.csdn.net/argusun/">argusun</A></TD></TR>
<TR>
<TD align=middle><IMG
onmouseover="try{BlogShowme(event, 'startcraft_fans')}catch(ex){}"
alt="startcraft_fans 的头像"
src="C:\Documents and Settings\jingran\桌面\unibrew\《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files\2(4).jpg"
border=0><BR><A title="访问时间: 9/3/2007 9:26:35 AM"
href="http://blog.csdn.net/startcraft_fans/">startcraft_fans</A></TD>
<TD align=middle><IMG
onmouseover="try{BlogShowme(event, 'rou1983')}catch(ex){}"
alt="rou1983 的头像"
src="C:\Documents and Settings\jingran\桌面\unibrew\《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files\2(5).jpg"
border=0><BR><A title="访问时间: 9/1/2007 12:20:25 AM"
href="http://blog.csdn.net/rou1983/">rou1983</A></TD></TR>
<TR>
<TD align=middle><IMG
onmouseover="try{BlogShowme(event, 'congwen11')}catch(ex){}"
alt="congwen11 的头像"
src="C:\Documents and Settings\jingran\桌面\unibrew\《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files\2(6).jpg"
border=0><BR><A title="访问时间: 8/31/2007 11:24:20 PM"
href="http://blog.csdn.net/congwen11/">congwen11</A></TD>
<TD align=middle><IMG
onmouseover="try{BlogShowme(event, 'seafish1119')}catch(ex){}"
alt="seafish1119 的头像"
src="C:\Documents and Settings\jingran\桌面\unibrew\《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files\2(7).jpg"
border=0><BR><A title="访问时间: 8/30/2007 4:36:40 PM"
href="http://blog.csdn.net/seafish1119/">seafish1119</A></TD></TR>
<TR>
<TD align=middle><IMG
onmouseover="try{BlogShowme(event, 'dychen')}catch(ex){}" alt="dychen 的头像"
src="C:\Documents and Settings\jingran\桌面\unibrew\《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files\2(8).jpg"
border=0><BR><A title="访问时间: 8/28/2007 4:57:06 PM"
href="http://blog.csdn.net/dychen/">dychen</A></TD>
<TD align=middle><IMG
onmouseover="try{BlogShowme(event, 'hujhxiaoku')}catch(ex){}"
alt="hujhxiaoku 的头像"
src="C:\Documents and Settings\jingran\桌面\unibrew\《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files\2(9).jpg"
border=0><BR><A title="访问时间: 8/28/2007 4:26:20 PM"
href="http://blog.csdn.net/hujhxiaoku/">hujhxiaoku</A></TD></TR></TBODY></TABLE></SPAN>
<H3 class=listtitle>文章</H3>
<UL class=list>
<LI class=listitem><A
href="http://blog.csdn.net/Gemsea/category/275373.aspx">独立技术文章</A><A
href="http://blog.csdn.net/Gemsea/category/275373.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/Gemsea/category/275371.aspx">深入BREW开发</A><A
href="http://blog.csdn.net/Gemsea/category/275371.aspx/rss">(RSS)</A></LI></UL>
<H3 class=listtitle>收藏</H3>
<UL class=list></UL>
<H3 class=listtitle>相册</H3><!--category title-->
<UL class=list></UL>
<H3 class=listtitle>存档</H3>
<UL class=list>
<LI><A href="http://blog.csdn.net/Gemsea/archive/2007/07.aspx">2007年07月(1)</A>
<LI><A href="http://blog.csdn.net/Gemsea/archive/2007/05.aspx">2007年05月(2)</A>
<LI><A href="http://blog.csdn.net/Gemsea/archive/2007/02.aspx">2007年02月(2)</A>
<LI><A href="http://blog.csdn.net/Gemsea/archive/2007/01.aspx">2007年01月(3)</A>
<LI><A
href="http://blog.csdn.net/Gemsea/archive/2006/09.aspx">2006年09月(4)</A></LI></UL></DIV></DIV>
<DIV id=centercontent>
<TABLE width="72%">
<TBODY>
<TR>
<TD><!--done-->
<DIV class=Tag>
<SCRIPT language=javascript
src="《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files/urltag.aspx"></SCRIPT>
<DIV style="CLEAR: both"></DIV></DIV><SPAN class=PreAndNext
id=viewpost.ascx_PreviousAndNextEntriesUp>
<DIV align=center><A
href="http://blog.csdn.net/Gemsea/archive/2007/05/15/1609919.aspx">上一篇: 《深入BREW开发》——第七章
创建新的BREW应用程序</A> | <A
href="http://blog.csdn.net/Gemsea/archive/2007/02/25/1513655.aspx">下一篇: 《深入BREW开发》——第五章
BREW简介</A></DIV></SPAN><BR>
<SCRIPT>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</SCRIPT>
<DIV class=post>
<DIV class=postTitle>
<SCRIPT
src="《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files/vote.js"></SCRIPT>
<A href="http://blog.csdn.net/Gemsea/archive/2007/05/15/1609909.aspx"><IMG
height=13
src="《深入BREW开发》——第六章 使用Applet和模块 - Gemsea的专栏 - CSDNBlog.files/authorship.gif"
width=15 border=0> 《深入BREW开发》——第六章 使用Applet和模块</A> </DIV>
<DIV class=postText>
<DIV align=center><STRONG><FONT size=5><A name=_Toc137296212>第六章
</A><SPAN>使用Applet</SPAN><SPAN>和模块</SPAN></FONT></STRONG></DIV>
<DIV><SPAN> </SPAN>在BREW
SDK中,每一个应用程序模块做为一个独立的Windows
DLL文件开发。每一个模块中可以包含一个或多个Applet,并且必须有一个与此应用程序模块对应的MIF文件。通过BREW MIF
Editor(MIF文件编辑器)创建的这个MIF文件中,包含了关于这个模块信息,例如支持的类、支持的Applet、Applet的权限和Applet信息等。在MIF文件中还包含了模块中每一个类和指定给其他应用程序使用的类的唯一Class
ID。我们这里所说的类,包含了Applet和扩展接口。</DIV>
<DIV><SPAN>
</SPAN>一个模块可以从BREW的资源文件中读取数据,使得应用程序中可以使用字符串、图片和对话框等资源。通过在资源文件中存储指定的语言数据,使得针对不同国家开发不同版本的应用程序成为可能。我们可以使用BREW
Resource Editor(资源文件编辑器)来为应用程序创建资源文件,同时生成资源文件中关于资源定义的头文件。</DIV>
<DIV><SPAN>
</SPAN>一个已经开发的BREW应用程序可以运行在模拟器上(DLL文件),也可以运行在指定的设备上(MOD文件)。如果需要生成MOD文件,必须包含所运行设备CPU类型的专用编译器,如ARM
CPU的C/C++编译器,不过对于普通的开发者来说,获得ARM编译器需要从ARM公司购买软件,这就需要一笔小投资了。建立应用程序的基本的头文件和源文件已经在BREW
SDK中提供了,通过这些文件可以创建一个应用程序和资源文件。BREW应用程序使用的资源文件和二进制资源文件,无论应用程序运行在模拟器环境下,还是在设备的BREW环境下,都是使用相同的文件格式,无需在设备和模拟器之间进行不同的处理。</DIV>
<DIV><SPAN>
</SPAN>下面就列举出了开发一个BREW应用程序所需的组件:</DIV>
<DIV><SPAN> 1</SPAN>、BREW
AEE随SDK提供的头文件(在SDK中的inc目录下的.h文件)</DIV>
<DIV><SPAN>
2</SPAN>、BREW模块创建所需的助手源文件(AEEAppGen.c和AEEModGen.c)</DIV>
<DIV><SPAN>
3</SPAN>、Applet源文件和头文件</DIV>
<DIV><SPAN>
4</SPAN>、使用MIF文件编辑器创建MIF文件</DIV>
<DIV><SPAN>
5</SPAN>、Applet资源文件和相应的资源文件头文件,这些文件使用BREW资源文件编辑器创建</DIV>
<DIV><SPAN>
</SPAN>注意,应用程序中使用的源文件,对于Windows环境和指定设备环境下是相同的,使用同样的源文件去建立Windows的DLL二进制文件和设备指定的MOD二进制文件。</DIV>
<DIV><SPAN>
</SPAN>在这一章中,我们将主要根据上面列举出来的,构成BREW应用程序的要素进行一一讲解,期望能够让您对BREW应用程序有一个更加详细的了解。</DIV>
<DIV><STRONG><FONT size=4><A name=_Toc137296213>6.1
MIF</A><SPAN>文件</SPAN></FONT></STRONG></DIV>
<DIV><SPAN>
MIF</SPAN>文件是每一个BREW应用程序必不可少的,其中存储了该模块的详细信息,这些信息包括支持的接口类、支持的Applet类以及Applet的标题图标等内容。在系统启动的时候(模拟器或BREW设备),BREW枚举所有的MIF文件。对于每一个MIF文件,BREW会获取其中全部支持的类。可以通过BREW的API(如ISHELL_EnumApplet等)使这些信息在应用程序中使用,应用程序管理器(Application
Manager)可以通过这些API列举出当前系统中的全部BREW Applet。</DIV>
<DIV><SPAN> </SPAN>在开发过程中,BREW
MIF文件的命名有严格的要求,主要在以下两个方面:</DIV>
<DIV><SPAN>
1</SPAN>、MIF文件名必须使用小写字母做为开头。</DIV>
<DIV><SPAN>
2</SPAN>、MIF文件名中至少要包含一个字母,不能全部是数字命名的。</DIV>
<DIV><SPAN>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -