<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1398415292032096718</id><updated>2011-11-27T16:01:48.472-08:00</updated><title type='text'>J2ME Game Programming</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://crazydracu.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1398415292032096718/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://crazydracu.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Azlam</name><uri>http://www.blogger.com/profile/03695614205160723838</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://1.bp.blogspot.com/_HSPXUnoFF2c/S1KxyvG25yI/AAAAAAAABIw/Hotdl4VM2SM/S220/DSC_0097.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1398415292032096718.post-8746371281967083784</id><published>2007-08-07T04:53:00.000-07:00</published><updated>2007-08-07T05:00:37.963-07:00</updated><title type='text'>Mobile Game Industry</title><content type='html'>&lt;div class="component" style="font-size: 110%;"&gt;This article is intended to provide you a general backgrounder on mobile games development and the industry so that you could take informed decisions on whether this is what you might want to chose as your career (or you just want to kill some of your time, reading though something interesting ;-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mailed to me by anupam@tinfomobile.com&lt;/div&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;Mobile game development is an art. As with most other forms of art, it demands two attributes from its practitioners and practitioners-to-be: aptitude and attitude. While attitude can be built up, aptitude is something that is inherent (or conditioned over time). A better term to use would be – talent. The only point I would like to stress here is that though it is by no means a rocket-science, one just cannot expect everyone with a degree in computer science to be good mobile game developers by default. So if you really want to be in the games development industry you should have by now at least tried to have made your own game – at least a tic-tac-toe and whenever you've played Roadrash on your PC, you should have pondered and thought over how you could do something like it yourself! If yes, you're on the right track. Read on.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;This article is intended to provide you a general backgrounder on mobile games development and the industry so that you could take informed decisions on whether this is what you might want to chose as your career (or you just want to kill some of your time, reading though something interesting ;-)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; color: black; font-family: Helvetica;"&gt;Why  Mobile?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;Thats a '&lt;em&gt;&lt;span style="font-style: italic;"&gt;Yeh PSPO nahin jaanta?&lt;/span&gt;&lt;/em&gt;' kind of statement. Anyways, it makes sense to know why anybody (people like us) would want to bother about making games and applications for mobile phones in the first place!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol style="margin-top: 0in;" class="fck" type="1"&gt;&lt;li style="color: black;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;The mobile handsets today are  essentially programmable / re programmable devices.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-left: 0.5in;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;More than 90% of the handsets being shipped nowadays have some programming interface. Java is one of the most popular options today but not the only one.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.5in;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol start="2" style="margin-top: 0in;" class="fck" type="1"&gt;&lt;li style="color: black;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;They are connected devices. Connectivity is a built in feature of the mobile handset. Assuming that you have signed up for data services, the mobile phone is now a device that is capable of sending and receiving data over the Internet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-left: 0.5in;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol start="3" style="margin-top: 0in;" class="fck" type="1"&gt;&lt;li style="color: black;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;The mobile phone is clearly the most popular digital device in the whole wide world. Just look around and count. The number of mobile handsets you see will outstrip the number of the other digital devices that are around you. And this represents enormous opportunities. In &lt;st1:place st="on"&gt;&lt;st1:country-region st="on"&gt;India&lt;/st1:country-region&gt;&lt;/st1:place&gt;, there are a total of 120 million mobile subscribers! If what you make is wanted by even one percent of this number – that is a significant figure. And that my friends is the basic reason for the existence of the mobile entertainment industry.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-left: 0.5in;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol start="4" style="margin-top: 0in;" class="fck" type="1"&gt;&lt;li style="color: black;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;Mobile game development is cool! Game development in itself is considered the cutting edge of programming. While most software engineers will end up in typical software services firms; only a chosen few will get to be in this industry. For the moment – this IS niche :-) !&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;It might also be  helpful at this juncture to have an overview on mobile network technologies  prevalent today. GSM and CDMA.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;GSM stands for  Global System for &lt;st1:place st="on"&gt;Mobile&lt;/st1:place&gt; communications. This  clearly is the more popular sibling.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;             Narrowband TDMA, 8 calls on one freq.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;            1  billion + subscribers (2004 statistic).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;            India  2006 August: ~90 million&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;CDMA (Code Division Multiple Access). Based on a declassified US Defence encoding technology to which Qualcomm Inc. holds the patent (So for every CDMA handset sold anywhere on the globe they get a royalty!)  Supposed to be more spectrally efficient than CDMA and is completely digital.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;            Based  on spread spectrum modulation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;            25%  market.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;            India  2006 August: ~30 million&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;color:black;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; color: black; font-family: Helvetica-Bold;"&gt;Mobile  games are different&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;color:black;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; color: black; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;Since I belong to the mobile entertainment industry, this article will be based on the mobile platform. Mobile games are different from games on other computing platforms due to following reasons:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol style="margin-top: 0in;" class="fck" type="1"&gt;&lt;li style="color: black;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;Too many constraints. Everything is limited and in short supply including screen-size, memory and customer's patience. So mobile game programming is all about writing the most optimized codes and designing optimal graphics and putting it all together in the smallest package.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-left: 0.5in;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol start="2" style="margin-top: 0in;" class="fck" type="1"&gt;&lt;li style="color: black;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;Shorter development cycles. While game or console titles' development typically spans over a year, a mobile game takes a few months to develop. Therefore, while a full scale title on a PC would cost billions of dollars nowadays, a mobile game would cost only its fraction.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-left: 0.5in;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol start="3" style="margin-top: 0in;" class="fck" type="1"&gt;&lt;li style="color: black;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;Mobile users are spread out among all socio-economical classifications and therefore a major chunk of the users comprises of casual gamers or first time gamers. The primary function of a mobile phone is not gaming and this must be kept in mind while designing the game. A gaming console on the other hand is designed from the ground-up for gaming and for gamers. The games there would be a bit more mature in nature and might not be as generalized as a mobile game might be. Another important statistic now available says that there are almost as many female mobile entertainment users as there are male.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-left: 0.5in;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol start="4" style="margin-top: 0in;" class="fck" type="1"&gt;&lt;li style="color: black;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;You must keep in mind that the mobile games market is already crowded. Make sure what you develop is something that is clearly different from what is already available.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-left: 0.5in;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.55pt;" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;color:black;"&gt;&lt;span style="font-size: 10pt; color: black; font-family: Helvetica;"&gt;Assuming that you are by now convinced about the size and scope of the task at hand (and are still interested), lets carry on. We will now move into the actual process that we at Tinfo Mobile use for developing a mobile game.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.5in;" class="MsoNormal"&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt;The  starting point&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;Keeping all the things mentioned above in mind, the starting point for a game is – your mind. The whole cycle begins from an idea that you get (while you were perhaps taking bath in cold water on a chilly Monday morning ;-). The first step would be to document this into a form that even a layman could understand and appreciate. If possible (if you can draw decently well), add mock up-screen shots as well.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;Remember, a sketch is sometimes better than a thousand words. Present your concept to your colleagues/ friends and get their feedback on it. Obviously, one attitude a game designer must have is to be very open to criticism. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica;"&gt;Documenting  the concept&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;So now your concept document is ready. It’s time then to create the design document. The design document essentially connects the concept to the intended game play and takes into account the constraints that might be imposed by the target handsets. The design document should be treated as the main reference material for your game project. It would be a living document which grows with your project. The design document should capture the aim of the game; describe the characters, friendly objects, enemies, platforms, levels and how each of these&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;elements would interact with each other in simple words. It could also specify which keys are supposed to do what function in the game, the target handsets and the audience.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica;"&gt;Graphics&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;As a part of the design process, you must have also come up with a list of graphics assets that will be required in the game. The artwork is the skin and clothes for your game. It is what will be visible to the rest of the world. Make your artwork as snazzy as possible. The specialized artform for mobile games is called pixel art. (It is a specialization skill in itself – google it out to know its wonders). The following is a sprite set. It is a pixel art of a mosquito flying (3 frames) and being hit (1 frame). A pixel artist makes all the graphics assets as per specs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style=""&gt; &lt;table align="left" cellpadding="0" cellspacing="0"&gt;     &lt;tbody&gt;         &lt;tr&gt;             &lt;td height="0" width="7"&gt;&lt;img shapes="_x0000_s1026" src="cid:image002.jpg@01C713A6.35460A70" alt="" height="173" width="136" /&gt;&lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;             &lt;td&gt; &lt;/td&gt;             &lt;td&gt; &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt; &lt;/table&gt; &lt;/span&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt;Levels,  structures, algorithms&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;Now comes the phase called level design. Its basically like making the map for the game, tile-by-tile. A sample level map from one of our games:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;img shapes="_x0000_s1027" src="cid:image004.gif@01C713A6.35460A70" alt="" height="93" width="576" /&gt;&lt;br /&gt; &lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt;Selecting  the programming environment&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;The following list provides  the options available today for converting your design / idea into a mobile  software executable:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul style="margin-top: 0in;" class="fck" type="disc"&gt;&lt;li style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;Symbian  (C/C++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;J2ME (Java  :-)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;BREW  (C/C++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;MS Smartphone, pocket pc  (C/C++/eVB)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;Others&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-left: 71.45pt; text-indent: -0.25in;" class="MsoNormal"&gt;&lt;span style="font-family:Symbol;font-size:78%;"&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family:Times New Roman;font-size:78%;"&gt;&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;           &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;Mophun  (C/C++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 71.45pt; text-indent: -0.25in;" class="MsoNormal"&gt;&lt;span style="font-family:Symbol;font-size:78%;"&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family:Times New Roman;font-size:78%;"&gt;&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;           &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;Ex-En  (Java)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 71.45pt; text-indent: -0.25in;" class="MsoNormal"&gt;&lt;span style="font-family:Symbol;font-size:78%;"&gt;&lt;span style="font-size: 9pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family:Times New Roman;font-size:78%;"&gt;&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;           &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;Do Ja  (Java)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica-Bold;"&gt;Most widespread = J2ME  (&gt;80% of the market)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica;"&gt;Coding&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;One thing that your teachers might have taught in your software engineering class is cent percent true. Design is more important than coding. If you have done your design well, you would know what code should come where and your thought process would be guided easily by the documentation. We have seen many a project fail when the design part was not given its due importance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;The only guidelines to be followed for coding are – follow standards, write tons of comments, take backups, re-use knowledge and code. Most APIs for mobile development are well documented with samples and are freely available on the Internet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica;"&gt;QA and  testing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;Once the game has been developed, real gamers and QA professionals put it to test against standard checklists and other game specific test-suites. This is an iterative process that goes on till all wrinkles have been ironed out.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica;"&gt;Porting&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;Porting is the bane of the mobile games industry. Unfortunately, most handsets differ from each other and have their own peculiarities. If your game has to be successful in the market, it should address as many of the handsets as possible. The process of modifying and adapting a game to a set of target handsets is called porting.  There are many companies that specialize in porting itself as it could be a pretty intensive process.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica;"&gt;Publishing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;Someone has to publish and provision the games before they become available to the public. This role could be done by either the operators, or aggregators or the developers themselves. The game files are uploaded to special content delivery servers that can automatically send the correct files for each handset over the air using GPRS or CDMA data channel for transport.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;Viola! Your game is now ready and is being enjoyed by millions! Depending on how good it turns out to be, the vagaries of the mobile market, the reviews, the critics, and how many telcos espouse it….&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;Your  game becomes a hit! …. Or hits the dust… or lands up somewhere in  between.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt;Some  help&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="" class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-family:Helvetica-Bold;font-size:85%;"&gt;&lt;span style="font-weight: bold; font-size: 10pt; font-family: Helvetica-Bold;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt;If you know to google well – well you've got  it! Trust me, as they say – if you ever need a helping hand, theres always one at the end of your arm – just use it to type into the google search box :-) . If &lt;strong&gt;&lt;span style="font-weight: bold;"&gt;even that&lt;/span&gt;&lt;/strong&gt; does not help do shoot us an  email. Our website is &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.tinfomobile.com/" title="http://www.tinfomobile.com/" target="_new"&gt;&lt;span title="http://www.tinfomobile.com/"  style="font-family:Helvetica;"&gt;&lt;span style="font-family: Helvetica;" title="http://www.tinfomobile.com/"&gt;www.tinfomobile.com&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Helvetica;font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: Helvetica;"&gt; and  my email address is &lt;/span&gt;&lt;/span&gt;&lt;a href="https://mail.google.com/mail?view=cm&amp;tf=0&amp;amp;to=anupam@tinfomobile.com" title="mailto:anupam@tinfomobile.com" target="_new"&gt;&lt;span title="mailto:anupam@tinfomobile.com"  style="font-family:Helvetica;"&gt;&lt;span style="font-family: Helvetica;" title="mailto:anupam@tinfomobile.com"&gt;anupam@tinfomobile.com&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1398415292032096718-8746371281967083784?l=crazydracu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crazydracu.blogspot.com/feeds/8746371281967083784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1398415292032096718&amp;postID=8746371281967083784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1398415292032096718/posts/default/8746371281967083784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1398415292032096718/posts/default/8746371281967083784'/><link rel='alternate' type='text/html' href='http://crazydracu.blogspot.com/2007/08/mobile-game-industry.html' title='Mobile Game Industry'/><author><name>Azlam</name><uri>http://www.blogger.com/profile/03695614205160723838</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://1.bp.blogspot.com/_HSPXUnoFF2c/S1KxyvG25yI/AAAAAAAABIw/Hotdl4VM2SM/S220/DSC_0097.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1398415292032096718.post-1172465515261057139</id><published>2007-03-14T07:29:00.000-07:00</published><updated>2007-03-14T07:36:10.183-07:00</updated><title type='text'>Ant Based Builds in J2ME Application Development</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-family:Arial;"&gt;Ant Based Builds in J2ME Application Development&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-family:Arial;"&gt;This article takes a look at the point of using Ant based build tools in J2ME application / game development and what are the various build tools and so on. The article is basically built on the documents mentioned under the reference title.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;&lt;span style="font-size:12;"&gt;What’s the difference?&lt;br /&gt;&lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p style="text-align: justify; text-indent: 0.5in;"&gt;&lt;span style="font-family:Arial;"&gt;When developing J2SE applications, things are much easier, mostly because of two steps which are required by J2ME which aren’t in J2SE. With J2ME your compiled classes must be preverified before you can upload them to the device. In J2SE verification of class files takes place in the JVM, but because of the memory limitations on the device, the CLDC-VM or KVM (Sun’s implementation) has a stripped down verifier and some of the functions were moved to the compile-phase (off-device). One thing more we have to watch out for is the emulation of the device. In J2SE, the development platform is the device, not so in J2ME. Because of this, we must have a suitable testing step. Due the heavy fragmentation in J2ME devices (differences in screen sizes, heap, implementation of sound etc.) leads that each application / game has to be specifically tuned for devices. This is pretty cumbersome with managing of different code base for each and every device. A solution for this problem is use preprocessing commands like #include, #if defined etc. in a single code base and let the build system make different target source for each devices based on conditional compilation. Hence we need a defined build process&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;&lt;span style="font-size:12;"&gt;Why do we need a defined build process?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p class="first" style="text-align: justify; text-indent: 0.5in;"&gt;&lt;span style="font-family:Arial;"&gt;A defined build process is an essential part of any development cycle because it helps close the gap between the development, integration, test, and production environments. A build process alone will speed the migration of software from one environment to another. It also removes many issues related to compilation, classpath, or properties that cost many projects time and money. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;&lt;span style="font-size:12;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;span style="font-size:12;"&gt;Make Tool&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p style="text-align: justify; text-indent: 0.5in;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;In computer programming, &lt;b&gt;make&lt;/b&gt; is a utility for automatically building large applications. Files specifying instructions for &lt;i&gt;make&lt;/i&gt; are called &lt;b&gt;Makefiles&lt;/b&gt;. &lt;i&gt;make&lt;/i&gt; is most commonly used in C/C++ projects, but in principle it can be used with almost any compiled language.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;The basic tool for building an application from source code is the compiler. &lt;i&gt;make&lt;/i&gt; is a separate, higher-level utility which tells the compiler which source code files to process. It tracks which ones have changed since the last time the project was built and it invokes the compiler on only the components that depend on those files. Although in principle one could always just write a simple shell script to recompile everything at every build, in large projects this would consume a prohibitive amount of time. Thus, a makefile can be seen as a kind of advanced shell script which tracks dependencies instead of following a fixed sequence of steps.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;Today, programmers increasingly rely on Integrated Development Environments and language-specific compiler features to manage the build process for them instead of manually specifying dependencies in makefiles. However, &lt;i&gt;make&lt;/i&gt; remains widely used, especially in Unix-based platforms.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;&lt;span class="mw-headline"&gt;&lt;span style="font-size:12;"&gt;Makefile structure&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p&gt;&lt;span style="font-family:Arial;"&gt;A makefile consists of lines of text which define a file (or set of files) or a rule name as depending on a set of files. Output files are marked as depending on their source files, for example, and source files are marked as depending on files which they include internally. After each dependency is listed, a series of lines of tab-indented text may follow which define how to transform the input into the output, if the former has been modified more recently than the latter. In the case where such definitions are present, they are referred to as "build scripts" and are passed to the shell to generate the target file. The basic structure is:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;# Comments use the pound sign (aka hash)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;target: dependencies&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;        &lt;/span&gt;command 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;        &lt;/span&gt;command 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;           &lt;/span&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;           &lt;/span&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;           &lt;/span&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;        &lt;/span&gt;command n&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p style="text-indent: 0.5in;"&gt;&lt;span style="font-family:Arial;"&gt;A makefile also can contain definitions of variables and inclusion of other makefiles. Variables in makefiles may be overridden in the command line arguments passed to the make utility. This allows users to specify different behaviour for the build scripts and how to invoke programs, among other things. For example, the variable "CC" is frequently used in makefiles to refer to a C compiler, and the user may wish to provide an alternate compiler to use.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;&lt;a name="Example_makefile"&gt;&lt;/a&gt;&lt;span class="mw-headline"&gt;&lt;span style="font-size:12;"&gt;Example makefile&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p style="text-indent: 0.5in;"&gt;&lt;span style="font-family:Arial;"&gt;Below is a very simple makefile that would compile a source called "helloworld.c" using cc, a C compiler. The PHONY tag is a technicality that tells make that a particular target name does not produce an actual file. The $@ and $&lt;&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;helloworld: helloworld.o&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;        &lt;/span&gt;cc -o $@ $&lt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;helloworld.o: helloworld.c&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;        &lt;/span&gt;cc -c -o $@ $&lt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;.PHONY: clean&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;clean:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;        &lt;/span&gt;rm -f helloworld helloworld.o&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;&lt;span style="font-size:12;"&gt;Issues with the Make Tool&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;The make tool is been in the existence for more than 20 years, though it is still used widely it has it long list of limitations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol style="margin-top: 0in;" start="1" type="1"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;Make tool based builds are not portable as they      rely on the underneath shell and the features of the file system.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;Issues like one-letter names for macros, one      namespace for file and command targets make &lt;b style=""&gt;&lt;i style=""&gt;Make &lt;/i&gt;&lt;/b&gt;tool one of the      most complex of the build systems.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;Limited Syntax&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;Difficult Debugging&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;&lt;span style="font-size:12;"&gt;The Make Alternatives&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;A lot of make alternatives are currently available which include Opus Make, GNU Make, Nmake&lt;span style=""&gt;  &lt;/span&gt;and there are evolutions like JAM, COOK which move away from the syntax of the existing Makefile system. There are also alternative build tools like GNU Build System. However one of the most notable and interesting script based make alternative is the ANT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;&lt;span style="font-size:12;"&gt;Defining Build Process with ANT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;Ant is a platform-independent scripting tool that lets you construct your build scripts in much the same fashion as the "make" tool in C or C++. You can use a large number of built-in tasks in Ant without any customization. Some of the most important tasks are shown in the following table but explained in more detail in the example that follows. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:Arial;"&gt;Here are some useful commands that are built in the Ant distribution.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div align="center"&gt;  &lt;table class="MsoNormalTable" style="background: white none repeat scroll 0% 50%; width: 75%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" border="1" cellpadding="0" cellspacing="1" width="75%"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;Command&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Ant&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Used to execute another   ant process from within the current one.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Copydir&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Used to copy an entire   directory.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Copyfile&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Used to copy a single   file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Cvs&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Handles packages/modules   retrieved from a CVS repository.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Delete&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Deletes either a single   file or all files in a specified directory and its sub-directories.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Deltree&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Deletes a directory with   all its files and subdirectories.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Exec&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Executes a system command.   When the os attribute is specified, then the command is only executed when   Ant is run on one of the specified operating systems. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Get&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Gets a file from an URL.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Jar&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Jars a set of files.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Java&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Executes a Java class   within the running (Ant) VM or forks another VM if specified.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Javac&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Compiles a source tree   within the running (Ant) VM.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Javadoc/Javadoc2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Generates code   documentation using the javadoc tool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Mkdir&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Makes a directory.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Property&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Sets a property (by name   and value), or set of properties (from file or resource) in the project.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Rmic&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Runs the rmic compiler for   a certain class.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Tstamp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; background: rgb(255, 204, 204) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Sets the DSTAMP, TSTAMP,   and TODAY properties in the current project.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Style&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;" valign="top"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Processes a set of   documents via XSLT.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;While other tools are available for doing software builds, Ant is easy to use and can be mastered within minutes. In addition, Ant lets you create expanded functionality by extending some of its classes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;&lt;span style="font-size:12;"&gt;Simple build process with Ant (simple.xml)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;project name="simpleCompile" default="deploy" basedir="."&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/project&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;target name="init"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/target&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;property name="sourceDir" value="src"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/property&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;property name="outputDir" value="classes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/property&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;property name="deployJSP" value="/web/deploy/jsp"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/property&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;property name="deployProperties" value="/web/deploy/conf"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/property&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;target name="clean" depends="init"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/target&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;deltree dir="${outputDir}"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/deltree&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;target name="prepare" depends="clean"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/target&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;mkdir dir="${outputDir}"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/mkdir&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;target name="compile" depends="prepare"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/target&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;javac srcdir="${sourceDir}" destdir="${outputDir}"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/javac&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;target name="deploy" depends="compile,init"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/target&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;copydir src="$%7Bjsp%7D" dest="${deployJSP}"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/copydir&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;copyfile src="server.properties" dest="${deployProperties}"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/copyfile&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;The first line contains information about the overall project that is to be built.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;project name="simpleCompile" default="deploy" basedir="."&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/project&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;The most important elements of the project line are the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;default&lt;/span&gt;&lt;/code&gt; and the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;basedir&lt;/span&gt;&lt;/code&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;The &lt;code&gt;&lt;span style="font-family:Arial;"&gt;default&lt;/span&gt;&lt;/code&gt; attribute references the default target that is to be executed. Because Ant is a command-line build tool, it is possible to execute only a subset of the target steps in the Ant file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;% ant -buildfile simple.xml init&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;That will execute the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;ant&lt;/span&gt;&lt;/code&gt; command and run through the simple.xml file until the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;init&lt;/span&gt;&lt;/code&gt; target is reached. So, in this example, the default is &lt;code&gt;&lt;span style="font-family:Arial;"&gt;deploy&lt;/span&gt;&lt;/code&gt;. The Ant process invoked in the following line will run through the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;simple.xml&lt;/span&gt;&lt;/code&gt; file until the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;deploy&lt;/span&gt;&lt;/code&gt; command is reached:   &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;% ant -buildfile simple.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;The &lt;code&gt;&lt;span style="font-family:Arial;"&gt;basedir&lt;/span&gt;&lt;/code&gt; attribute is fairly self-explanatory as it is the base directory from which the relative references contained in the build file are retrieved. Each project can have only one &lt;code&gt;&lt;span style="font-family:Arial;"&gt;basedir&lt;/span&gt;&lt;/code&gt; attribute so you can choose to either include the fully qualified directory location or break the large project file into smaller project files with different &lt;code&gt;&lt;span style="font-family:Arial;"&gt;basedir&lt;/span&gt;&lt;/code&gt; attributes. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt; &lt;/span&gt;The next line of interest is the target line. Two different versions are shown here:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;target name="init"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/target&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;target name="clean" depends="init"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/target&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;The &lt;code&gt;&lt;span style="font-family:Arial;"&gt;target&lt;/span&gt;&lt;/code&gt; element contains four attributes: &lt;code&gt;&lt;span style="font-family:Arial;"&gt;name&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span style="font-family:Arial;"&gt;if&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span style="font-family:Arial;"&gt;unless&lt;/span&gt;&lt;/code&gt;, and &lt;code&gt;&lt;span style="font-family:Arial;"&gt;depends&lt;/span&gt;&lt;/code&gt;. Ant requires the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;name&lt;/span&gt;&lt;/code&gt; attribute, but the other three attributes are optional. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;Using &lt;code&gt;&lt;span style="font-family:Arial;"&gt;depends&lt;/span&gt;&lt;/code&gt;, you can stack the Ant tasks so that a dependent task is not initiated until the task that it depends on is completed. In the above example, the clean task will not start until the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;init&lt;/span&gt;&lt;/code&gt; task has completed. The &lt;code&gt;&lt;span style="font-family:Arial;"&gt;depends&lt;/span&gt;&lt;/code&gt; attribute may also contain a list of comma-separated values indicating several tasks that the task in discussion depends on. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;The &lt;code&gt;&lt;span style="font-family:Arial;"&gt;if&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span style="font-family:Arial;"&gt;unless&lt;/span&gt;&lt;/code&gt; commands let you specify commands that are to be performed either &lt;em&gt;&lt;span style="font-family:Arial;"&gt;if&lt;/span&gt;&lt;/em&gt; a certain property is set or &lt;em&gt;&lt;span style="font-family:Arial;"&gt;unless&lt;/span&gt;&lt;/em&gt; that property is set. The &lt;code&gt;&lt;span style="font-family:Arial;"&gt;if&lt;/span&gt;&lt;/code&gt; will execute when the property value is set, and the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;unless&lt;/span&gt;&lt;/code&gt; will execute if the value is not set. You can use the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;available&lt;/span&gt;&lt;/code&gt; command to set those properties as shown in a following example, or you can set them via the command line. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;The &lt;code&gt;&lt;span style="font-family:Arial;"&gt;init&lt;/span&gt;&lt;/code&gt; target from the simple example contains four lines of &lt;code&gt;&lt;span style="font-family:Arial;"&gt;property&lt;/span&gt;&lt;/code&gt; commands as shown here: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;property name="sourceDir" value="src"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/property&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;These &lt;code&gt;&lt;span style="font-family:Arial;"&gt;property&lt;/span&gt;&lt;/code&gt; lines let you specify commonly used directories or files. A property is a simple name value pair that allows you to refer to the directory or file as a logical entity rather than a physical one. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;If you wanted to reference the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;sourceDir&lt;/span&gt;&lt;/code&gt; variable later in the Ant file, you could simply use the following syntax to alert Ant to obtain the value for this tag: &lt;code&gt;&lt;span style="font-family:Arial;"&gt;${sourceDir}&lt;/span&gt;&lt;/code&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;Two other commands present in the above buildfile are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;deltree dir="${ outputDir }"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/deltree&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;mkdir dir="${ outputDir }"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/mkdir&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;These commands are used to ensure that there are no extraneous files in the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;outputDir&lt;/span&gt;&lt;/code&gt; (or &lt;code&gt;&lt;span style="font-family:Arial;"&gt;classes&lt;/span&gt;&lt;/code&gt; directory when dereferenced as mentioned above). The first command removes the entire tree contained under the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;outputDir&lt;/span&gt;&lt;/code&gt;. The second command creates the directory again. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;The last line of major interest to the developer is the following compilation line:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:12;"  &gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;javac srcdir="${sourceDir}" destdir="${outputDir}"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/javac&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;The &lt;code&gt;&lt;span style="font-family:Arial;"&gt;javac&lt;/span&gt;&lt;/code&gt; command requires a source directory (the input location of the .java files) and a destination directory (the output location of the .classes file). It is important to note that all directories must either exist prior to the running of the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;ant&lt;/span&gt;&lt;/code&gt; command or be created using the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;mkdir&lt;/span&gt;&lt;/code&gt; command. Ant does not create directories based upon intuition, so you must create the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;outputDir&lt;/span&gt;&lt;/code&gt;, using the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;mkdir&lt;/span&gt;&lt;/code&gt; command prior to the compilation step above. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;After the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;compile&lt;/span&gt;&lt;/code&gt; task has completed, the &lt;code&gt;&lt;span style="font-family:Arial;"&gt;deploy&lt;/span&gt;&lt;/code&gt; task will perform the copy operation to move all JSP files from the source directory to a deployment directory. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;&lt;span style="font-size:12;"&gt;Ant for J2ME&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;Ant can be easily used for building J2ME application. To start with we need to define&lt;span style=""&gt;  &lt;/span&gt;a directory structure. One of the most commonly used directory structure for J2ME application is listed here. Presented here is a sample build.xml file for this structure. However one need to modify the it for their own specific use.&lt;/p&gt;  &lt;table class="MsoNormalTable" style="width: 369pt; margin-left: 69.7pt;" border="1" cellpadding="0" cellspacing="1" width="492"&gt;  &lt;tbody&gt;&lt;tr style="height: 25.5pt;"&gt;   &lt;td style="padding: 0.75pt; background: rgb(204, 204, 204) none repeat scroll 0% 50%; width: 48.65pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; height: 25.5pt;" valign="top" width="65"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;br /&gt;&lt;/td&gt;   &lt;td style="padding: 0.75pt; background: rgb(204, 204, 204) none repeat scroll 0% 50%; width: 268.1pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; height: 25.5pt;" valign="top" width="357"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;Directory   Contents&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; background: rgb(204, 204, 204) none repeat scroll 0% 50%; width: 49.45pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; height: 25.5pt;" valign="top" width="66"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;Manually   Created&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; width: 48.65pt;" valign="top" width="65"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;/bin&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 268.1pt;" valign="top" width="357"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;Where   you would place the JAD and MANIFEST file&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 49.45pt;" valign="top" width="66"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;Yes&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; width: 48.65pt;" valign="top" width="65"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;/src&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 268.1pt;" valign="top" width="357"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;Where   you would place the source files, its not necessary to include the structure   of the java packages, but you can if you like. The package structure should   be automatically taken care of as long as the java source files properly   define the package names&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 49.45pt;" valign="top" width="66"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;Yes&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; width: 48.65pt;" valign="top" width="65"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;/res&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 268.1pt;" valign="top" width="357"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;Where   you place resources such as graphics, maps, text files… etc. You will need to   explicitly create the path to correctly represent the package layout defined   in the java source files.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 49.45pt;" valign="top" width="66"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;Yes&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; width: 48.65pt;" valign="top" width="65"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;/build&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 268.1pt;" valign="top" width="357"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;Where   you place resources such as graphics, maps, text files… etc. You will need to   explicitly create the path to correctly represent the package layout defined   in the java source files.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 49.45pt;" valign="top" width="66"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;No&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; width: 48.65pt;" valign="top" width="65"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;/obf&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 268.1pt;" valign="top" width="357"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;Where   compile and preverify takes place &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 49.45pt;" valign="top" width="66"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;No&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; width: 48.65pt;" valign="top" width="65"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;/deploy&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 268.1pt;" valign="top" width="357"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;The   final result you would deploy to production&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 49.45pt;" valign="top" width="66"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;No&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt; width: 48.65pt;" valign="top" width="65"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;br /&gt;&lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 268.1pt;" valign="top" width="357"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;br /&gt;&lt;/td&gt;   &lt;td style="padding: 0.75pt; width: 49.45pt;" valign="top" width="66"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:7;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;project name="Hello" default="clean" basedir="."&gt; &lt;/project&gt;&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;!-- set global properties for this build --&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;property name="program_name" value="Hello"&gt; &lt;/property&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;property name="package_name" value="Hello"&gt; &lt;/property&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;property name="proguard" value="e:/proguard1.5.1/lib/proguard.jar"&gt; &lt;/property&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;property name="midp_home" value="e:/j2mewtk"&gt; &lt;/property&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;property name="midp_lib" value="${midp_home}/lib/midpapi.zip"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/property&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;property name="top" value="."&gt;&lt;/property&gt;&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;property name="src" value="src"&gt;&lt;/property&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;property name="res" value="res"&gt;&lt;/property&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;property name="build" value="build"&gt;&lt;/property&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;property name="obf" value="obf"&gt; &lt;/property&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;property name="deploy" value="deploy"&gt;&lt;/property&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="text"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;target name="clean"&gt;&lt;/target&gt;&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;!-- Delete our the ${build}, ${obf} and ${deploy} directory trees --&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;delete dir="${build}"&gt; &lt;/delete&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;delete dir="${deploy}"&gt; &lt;/delete&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;delete dir="${obf}"&gt; &lt;/delete&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;target name="init" depends="clean"&gt; &lt;/target&gt;&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;!-- Create the build directory structure used by compile N deploy --&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;tstamp&gt;&lt;/tstamp&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;mkdir dir="${build}"&gt; &lt;/mkdir&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;mkdir dir="${deploy}"&gt; &lt;/mkdir&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;mkdir dir="${obf}"&gt; &lt;/mkdir&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;target name="compile"&gt;&lt;/target&gt;&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;mkdir dir="${build}/classes"&gt;&lt;/mkdir&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;javac destdir="build/classes" srcdir="src" bootclasspath="${midp_lib}" target="1.1"&gt;&lt;/javac&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;target name="preverify"&gt;&lt;/target&gt;&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;mkdir dir="${build}/preverified"&gt;&lt;/mkdir&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;exec executable="${midp_home}/bin/preverify"&gt;&lt;/exec&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;arg line="-classpath ${midp_lib}"&gt;&lt;/arg&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;arg line="-d ${build}/preverified"&gt;&lt;/arg&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;arg line="${build}/classes"&gt;&lt;/arg&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;target name="dist"&gt;&lt;/target&gt;&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;mkdir dir="${build}/bin"&gt;&lt;/mkdir&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;jar basedir="${build}/preverified"&gt;&lt;/jar&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;jarfile="${build}/bin/${program_name}.jar"&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;manifest="bin/MANIFEST.MF"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;fileset dir="${top}/${res}"&gt;&lt;/fileset&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;include name="${package_name}/*.png"&gt;&lt;/include&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;copy file="bin/${program_name}.jad" tofile="${build}/bin/${program_name}.jad"&gt;&lt;/copy&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;!-- Obfuscate JAR --&gt;&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;target name="obfuscate"&gt;&lt;/target&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;java fork="yes" classname="proguard.ProGuard" classpath="${proguard}"&gt;&lt;/java&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;arg line="-libraryjars ${midp_lib}"&gt;&lt;/arg&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;arg line="-injars ${build}/bin/${program_name}.jar"&gt;&lt;/arg&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;arg line="-outjar ${obf}/${program_name}.jar"&gt;&lt;/arg&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;arg line="-keep 'public class * extends javax.microedition.midlet.MIDlet'"&gt;&lt;/arg&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt; &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;!-- UnJAR Obfuscated JAR --&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;unjar src="$%7Btop%7D/$%7Bobf%7D/$%7Bprogram_name%7D.jar" dest="${top}/${obf}/extract"&gt; &lt;/unjar&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;!-- Preverify the Obfuscated classes --&gt;&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;target name="preverifyobf"&gt;&lt;/target&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;mkdir dir="${build}/preverifiedobf"&gt;&lt;/mkdir&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;exec executable="${midp_home}/bin/preverify"&gt;&lt;/exec&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;arg line="-classpath ${midp_lib}"&gt;&lt;/arg&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;arg line="-d ${build}/preverifiedobf"&gt;&lt;/arg&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;arg line="${obf}/extract"&gt;&lt;/arg&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;!-- Re-Package a new Jar with the obfuscated classes --&gt;&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;target name="distobf"&gt;&lt;/target&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;copy file="${build}/bin/${program_name}.jar" todir="${build}/bin/${program_name}-orig.jar"&gt;&lt;/copy&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;mkdir dir="${build}/bin"&gt;&lt;/mkdir&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;jar basedir="${build}/preverifiedobf"&gt;&lt;/jar&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;jarfile="${build}/bin/${program_name}.jar"&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;manifest="bin/MANIFEST.MF"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;fileset dir="${top}/${res}"&gt;&lt;/fileset&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;include name="${package_name}/*.png"&gt;&lt;/include&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;copy file="bin/${program_name}.jad" tofile="${build}/bin/${program_name}.jad"&gt;&lt;/copy&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;target name="deploy"&gt;&lt;/target&gt;&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;copy file="${build}/bin/${program_name}.jad" tofile="${top}/${deploy}/${program_name}.jad"&gt; &lt;/copy&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;copy file="${build}/bin/${program_name}.jar" tofile="${top}/${deploy}/${program_name}.jar"&gt;&lt;/copy&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="text"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;1. &lt;b&gt;ANT MIDP Build Process (focus on Siemens C55)&lt;/b&gt;&lt;br /&gt;(c) by Marc Logemann (Loge) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;2. &lt;strong&gt;&lt;span style="font-family:Arial;"&gt;J2ME - Using Ant With J2ME&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="text"&gt;By &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Arial;"&gt;Jason Lam&lt;/span&gt;&lt;/strong&gt;&lt;span class="text"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="text"&gt;Expert Author &lt;/span&gt;&lt;br /&gt;&lt;span class="text"&gt;Article Date: 2003-06-11 &lt;/span&gt;&lt;br /&gt;&lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;3.&lt;span style="color: rgb(153, 153, 153);"&gt; &lt;/span&gt;&lt;b style=""&gt;&lt;a href="http://freshmeat.net/%7Ebuildsmith/"&gt;&lt;span style="color:#000000;"&gt;Adrian Neagu&lt;/span&gt;&lt;/a&gt;, in &lt;a href="http://freshmeat.net/articles/section/editorials/"&gt;&lt;span style="color:#000000;"&gt;Editorials&lt;/span&gt;&lt;/a&gt;&lt;/b&gt; -&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;a href="http://freshmeat.net/articles/view/1702/"&gt;&lt;span style="color:#000000;"&gt;http://freshmeat.net/articles/view/1702/&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1398415292032096718-1172465515261057139?l=crazydracu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crazydracu.blogspot.com/feeds/1172465515261057139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1398415292032096718&amp;postID=1172465515261057139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1398415292032096718/posts/default/1172465515261057139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1398415292032096718/posts/default/1172465515261057139'/><link rel='alternate' type='text/html' href='http://crazydracu.blogspot.com/2007/03/ant-based-builds-in-j2me-application.html' title='Ant Based Builds in J2ME Application Development'/><author><name>Azlam</name><uri>http://www.blogger.com/profile/03695614205160723838</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://1.bp.blogspot.com/_HSPXUnoFF2c/S1KxyvG25yI/AAAAAAAABIw/Hotdl4VM2SM/S220/DSC_0097.JPG'/></author><thr:total>0</thr:total></entry></feed>
