J2ME pro pokročilé – J2ME a Ant
Součástí platformy J2ME je i Wireless Toolkit, který obsahuje sadu nástrojů pro vývoj J2ME aplikací. Jedním z nich je i KToolbar, který můžeme považovat za jednoduché vývojové prostředí, umožňující překlad zdrojových kódu a vytvoření výsledné aplikace (JAR a JAD). Nevýhodou je, že nemáme kontrolu nad vlastní procesem překladu (Build) a nemůžeme jej nijak ovlivnit. Jedním z možných řešení je využití nástroje Apache Ant.
Co je to ANT?
ANT, neboli Another Neat Tool, byl původně vytvořen pro překlad projektu Tomcat a je nedílnou součástí projektu Jakarta Apache. Je celý vytvořen v Javě a tím je plně přenositelný – vlastní buildovací soubory jsou založeny na XML formátu. V současnosti je nejrozšířenějším buildovacím nástrojem především u Java vývojářů a těší se také podpoře vývojových prostředí, jako například IntelliJ IDEA, Eclipse, SUN ONE Studio, JEdit a jiných. Více informací o Antu můžete nalézt na http://ant.apache.org.
Struktura buildovacího skriptu
Celý build skript můžeme rozdělit na několik částí. Každá část je uzavřena párovým elementem target
a představuje jednotlivý buildovací krok. Abychom si zjednodušili práci, ukážeme si knihovnu, která rozšiřuje schopnosti Antu o podporu J2ME. Můžete ji nalézt na adrese http://sourceforge.net/projects/antenna/.
Použitím knihovny Antenna můžeme jednoduše projekt přeložit, preverifikovat, zabalit, obfuskovat a spouštět. Kromě toho máme k dispozici velice jednoduchý preprocesor, který je znám především Céčkařům. Jednotlivé kroky, které bude náš build skript obsahovat, jsou:
- Clear – vymazání pomocných adresářů.
- Init – inicializace projektu před překladem.
- Compile – kompilace zdrojových souborů.
- Preverify – proces preverifikace.
- Build – vytvoření výsledných souborů JAR a JAD.
- Run – spuštění aplikace v emulátoru.
Jak již bylo napsáno, skript má strukturu XML souboru. Jednotlivé kroky skriptu jsou uzavřeny párovým elementem project
. V první kroku si nadefinujeme tyto důležité proměnné:
project.name
– název projektumain.class
– hlavní třída projektuwtk.home
– domovský adresář WTKwtk.midapi
– cesta ke knihovnám midp (standardní API, Nokia API, Siemens API…)
Základní struktura build skriptu:
<?xml version=“1.0″ ?>
<project name=“Hello“ default=“build“ basedir=“.“>
<!– Define some useful properties –>
<property name=“project.name“
value=“Hello“/>
<property name=“main.class“
value=“Hello“/>
<property name=“wtk.home“
value=“c:\Development\wtk104″/>
<property name=“wtk.midpapi“
value=“${wtk.home}\lib\midpapi.zip“/>
<– Here will be placed next tasks –>
</project>
V dalším kroku si nadefinuje pomocné tásky, které vytvoří výsledný soubor JAR a JAD:
<!– Define external Antenna tasks –>
<taskdef name=“wtkjad“
classname=“de.pleumann.antenna.WtkJad“/>
<taskdef name=“wtkpackage“
classname=“de.pleumann.antenna.WtkPackage“/>
Nyní si nadefinujeme jednotlivé tásky našeho build skriptu.
Clear
Tásk clear
slouží pro odstranění dočasných adresářů, které vzniknou při procesu překladu. Jsou to adresáře:
classes
– obsahuje přeložené zdrojové soubory projektupreverified
– zde jsou uloženy preverifikované soubory z adresáře classesbuild
– zde bude uložen výsledný soubor JAR a JAD
<!– Clear project directories –>
target name=“clear“>
<delete failonerror=“false“ dir=“classes“/>
<delete failonerror=“false“ dir=“preverified“/>
<delete failonerror=“false“ dir=“build“/>
</target>
Init
Tásk init
slouží jen pro získání časové známky. Pro výsledný překlad není důležitý.
<!– Make initialization –>
<target name=“init“>
<tstamp/>
</target>
Compile
Tásk compile
přeloží soubory z adresáře src
a uloží je do adresáře classes
. Nastavením proměnné bootclasspath
můžete ovlivnit, které knihovny API budou pro překlad použity.
<!– Perform compile source files –>
<target name=“compile“ depends=“init“>
<mkdir dir=“classes“/>
<javac destdir=“classes“ srcdir=“src“
bootclasspath=“${wtk.midpapi}“ target=“1.1″/>
</target>
Preverify
Po kroku compile
následuje tásk preverify
, jenž provede preverifikaci přeložených zdrojových souborů z adresáře classes
a uloží je do adresáře preverified
.
<!– Run preverification task –>
<target name=“preverify“ depends=“compile“>
<mkdir dir=“preverified“/>
<exec executable=“${wtk.home}\bin\preverify“>
<arg line=“-classpath ${wtk.midpapi}“/>
<arg line=“-d preverified“/>
<arg line=“classes“/>
</exec>
</target>
Build
Nyní přišel čas, abychom využili pomocné tásky, kterými vytvoříme výsledné soubory JAR
a JAD
. Tásk wtkpackage
vezme všechny soubory z adresářů preverified
a res
a vytvoří z nich výsledný soubor JAR
. U tásku wtkjad
jsou pro nás velice důležité parametry, kterými můžeme ovlivnit výsledný obsah souboru JAD
.
<!– Make JAR package and JAD descriptor –>
<target name=“build“ depends=“preverify“ >
<mkdir dir=“build“/>
<wtkjad jadfile=“build\${project.name}.jad“
jarfile=“build\${project.name}.jar“
name=“${project.name}“
vendor=“Tester“
version=“1.0.0″>
<midlet name=“${project.name}“ class=“${main.class}“/>
</wtkjad>
<wtkpackage jarfile=“build\hello.jar“
jadfile=“build\hello.jad“>
<fileset dir=“preverified“/>
<fileset dir=“res“/>
</wtkpackage>
</target>
Run
Posledním táskem našeho build skriptu je tásk run
, který spustí J2ME aplikaci v defaultně nastaveném emulátoru.
<!– Run application –>
<target name=“run“>
<exec executable=“${wtk.home}/bin/emulator.exe“>
<arg line=“-Xdescriptor:build\${project.name}.jad“/>
</exec>
</target>
Shrnutí
Vytvořit buildovací skript pomocí Antu není nic složitého a navíc získáte úplnou kontrolu nad překladem projektu. Velkou výhodou Antu je jeho otevřenost a možnost vytvořit si své vlastní tásky. Vzorový build skript můžete dále rozšířit o další tásky, jako je zahrnutí externích knihoven do výsledné aplikace, obfuskování nebo vytvoření více verzí jedné aplikace.
Odkazy, zdroje
- http://ant.apache.org – informace o projektu Apache Ant
- http://sourceforge.net/projects/antenna/ – stažení knihovny Antenna
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Proč je důležité tvořit obsah na váš web?
29. srpna 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024