tag:blogger.com,1999:blog-15115785938233565782024-03-06T08:14:10.942+01:00Guillaume Legris's blogGuillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-1511578593823356578.post-83664622940214811352021-03-13T16:06:00.000+01:002021-03-13T16:06:12.989+01:00Jainja JVM with Cosmopolitan Libc<div style="text-align: left;"><span class="VIiyi" lang="en"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="0"><span><a href="https://github.com/jart/cosmopolitan" target="_blank">Cosmopolitan Libc</a> is a very interesting library which makes it possible to make an executable independent of the OS (but not of the architecture which must be x86)</span></span><span class="JLqJ4b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="1"><span>
</span></span><span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="2"><span> </span></span></span></div><div style="text-align: left;"><span class="VIiyi" lang="en"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="2"><span> </span></span></span></div><div style="text-align: left;"><span class="VIiyi" lang="en"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="2"><span>So I tried to compile <a href="http://jainja.thenesis.org" target="_blank">Jainja JVM</a> with this C library. It was pretty easy, apart from a few name collisions in headers</span></span><span class="JLqJ4b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="3"><span>.</span></span></span></div><div style="text-align: left;"><span class="VIiyi" lang="en"><span class="JLqJ4b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="3"><span> </span></span></span></div><div style="text-align: left;"><span class="VIiyi" lang="en"><span class="JLqJ4b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="3"><span></span></span></span></div><div style="text-align: left;"><span class="VIiyi" lang="en"><span class="JLqJ4b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="3"><span>T</span></span><span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="4"><span>here is now a JVM whose <a href="https://sourceforge.net/projects/jainja/files/jainja-cosmopolitan-dist-20210313.zip/download" target="_blank">binary code</a> works under Windows, Linux, xBSD and MacOS without recompilation !</span></span><span class="JLqJ4b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="5"><span> </span></span></span></div><div style="text-align: left;"><span class="VIiyi" lang="en"><span class="JLqJ4b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="5"><span></span></span></span><br /><span class="VIiyi" lang="en"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="0"><span>Cosmopolitan libc focuses on text-based user interfaces but AWT/Swing should work through X11 / TCP (not tested yet).</span></span></span> <span class="VIiyi" lang="en"><span class="JLqJ4b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="5"><span><span class="VIiyi" lang="en"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="0"><span><span class="VIiyi" lang="en"><span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="fr" data-phrase-index="0"><span></span></span></span> </span></span></span></span></span></span></div>Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com2tag:blogger.com,1999:blog-1511578593823356578.post-17393010217271797632020-04-11T22:21:00.000+02:002020-04-11T22:22:25.122+02:00Jainja JVM on MS-DOS and Minix 3.2.1<blockquote class="twitter-tweet">
<div dir="ltr" lang="es">
Jainja JVM on MS-DOS <a href="https://t.co/hf7lfrYqeC">https://t.co/hf7lfrYqeC</a><a href="https://twitter.com/hashtag/java?src=hash&ref_src=twsrc%5Etfw">#java</a> <a href="https://twitter.com/hashtag/jainja?src=hash&ref_src=twsrc%5Etfw">#jainja</a></div>
— Guillaume Legris (@glegr1s) <a href="https://twitter.com/glegr1s/status/1248987907110637568?ref_src=twsrc%5Etfw">April 11, 2020</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet">
<div dir="ltr" lang="en">
Jainja JVM works fine on Minix 3 and Java GUI toolkits are available (AWT/Swing, Codename One) <a href="https://t.co/iSFy7CbcMH">https://t.co/iSFy7CbcMH</a> <a href="https://twitter.com/hashtag/jainja?src=hash&ref_src=twsrc%5Etfw">#jainja</a> <a href="https://twitter.com/hashtag/Java?src=hash&ref_src=twsrc%5Etfw">#Java</a> <a href="https://twitter.com/minix3?ref_src=twsrc%5Etfw">@minix3</a></div>
— Guillaume Legris (@glegr1s) <a href="https://twitter.com/glegr1s/status/1248918830463823872?ref_src=twsrc%5Etfw">April 11, 2020</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com0tag:blogger.com,1999:blog-1511578593823356578.post-43824508572814487702015-03-14T12:28:00.001+01:002015-09-16T22:11:58.024+02:00Jainja JVM running a LWUIT GUI on HelenOS<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/WfhG1Zdoo-s" width="560"></iframe></div>
<br />Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com0tag:blogger.com,1999:blog-1511578593823356578.post-84185403111402553552014-05-12T00:08:00.000+02:002014-05-12T00:08:16.268+02:00Jainja JVM on the Chrome Web StoreIt was pretty easy to write a new graphical backend for Jainja using the Pepper Plugin API. So it's possible to write Java graphical user interfaces on NaCl now !<br />
<br />A <a href="https://chrome.google.com/webstore/detail/jainja/hobcbnpgkhnpeaakneigjnlbpjimbcfb" target="_blank">demo is available</a> on the Chrome Web Store.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIrrScipKsruQv00Kw4ykD0xGo93PxwobBcaimndHFp035Gc7-Uy6BC33JIVKwhEfPkYdUJkYcMPZLiV3iFoxWs-zq1EfzTmifpcjF5qKSUwPF14OO4Gvl1EAzAzgOZca_lFm3K-bMtViF/s1600/NaCl+-+Jainja+-+GWS.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIrrScipKsruQv00Kw4ykD0xGo93PxwobBcaimndHFp035Gc7-Uy6BC33JIVKwhEfPkYdUJkYcMPZLiV3iFoxWs-zq1EfzTmifpcjF5qKSUwPF14OO4Gvl1EAzAzgOZca_lFm3K-bMtViF/s1600/NaCl+-+Jainja+-+GWS.png" height="464" width="640" /></a></div>
<br />Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com0tag:blogger.com,1999:blog-1511578593823356578.post-42156681551795696192014-04-27T01:05:00.000+02:002014-04-27T01:05:55.773+02:00Jainja on Google Native Client (NaCl)<blockquote class="twitter-tweet" lang="fr">
<a href="https://twitter.com/search?q=%23Jainja&src=hash">#Jainja</a> Java Virtual Machine can now be used with Google NaCl but not yet with <a href="https://twitter.com/search?q=%23PNaCl&src=hash">#PNaCl</a> (LLVM/newlib) <a href="http://t.co/nJOuBi82ZX">pic.twitter.com/nJOuBi82ZX</a><br />
— Guillaume Legris (@glegr1s) <a href="https://twitter.com/glegr1s/statuses/460190332534018049">26 Avril 2014</a></blockquote>
<br />
<br />
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script>Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com0tag:blogger.com,1999:blog-1511578593823356578.post-74854807414397713262014-04-23T09:02:00.001+02:002014-04-26T18:42:42.164+02:00HelenOS<blockquote class="twitter-tweet" lang="fr">
<a href="https://twitter.com/search?q=%23Jainja&src=hash">#Jainja</a> Java Virtual Machine is now working on <a href="https://twitter.com/search?q=%23HelenOS&src=hash">#HelenOS</a> <a href="http://t.co/ip0gwP2j03">pic.twitter.com/ip0gwP2j03</a><br />
— Guillaume Legris (@glegr1s) <a href="https://twitter.com/glegr1s/statuses/458744760585289729">22 Avril 2014</a></blockquote>
<br />
This port was not too hard thanks to the POSIX compatibility layer of HelenOS. The lack of some math libraries was filled by fdlibm. A package for HelenOS is available <a href="http://sourceforge.net/projects/jainja/files/jainja-0.8/jainja-0.8-helenos.tar.gz/download" target="_blank">here</a><br />
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script>
Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com0tag:blogger.com,1999:blog-1511578593823356578.post-90893415052727191232014-04-20T18:03:00.001+02:002023-04-07T11:10:29.093+02:00Jainja 0.8 released<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Jainja is a JVM (Java Virtual Machine) written in Java. Focus is set on portability, not on performance. Jainja supports Java 1.5 features. </span><br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">This release adds support for Minix, Haiku and Dart.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">So Jainja currently works on Linux, Windows, xBSD, Minix, Haiku, Java SE, Android, GWT, and Dart </span></div>
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><a href="http://jainja.thenesis.org/" target="_blank">More infos</a></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO3Y9ZF_JvHvy43KvGiL9PhgDaghSpcqfDxQIihWEM2r5LolrC-Q0J-sTfaCQuuMoL7pJ99iAcMitlXMbic2RLgDIqxb3WOm7hzolYnoCR60izSU6WyUzTeaNviCmBsav3dobbsvtUw_t0/s1600/NetBSD+-+Jainja.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO3Y9ZF_JvHvy43KvGiL9PhgDaghSpcqfDxQIihWEM2r5LolrC-Q0J-sTfaCQuuMoL7pJ99iAcMitlXMbic2RLgDIqxb3WOm7hzolYnoCR60izSU6WyUzTeaNviCmBsav3dobbsvtUw_t0/s1600/NetBSD+-+Jainja.png" width="400" /></a></div>
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"> </span></div>
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span>Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com1tag:blogger.com,1999:blog-1511578593823356578.post-24393256531441618122013-05-22T10:44:00.000+02:002014-04-20T17:53:41.256+02:00Jainja JVM on top of the Dart VM<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
I'm currently working on a new "platform" target for Jainja: Dart<br />
<br />
I got some preliminary results but only simple applications are working at this stage.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii2zNDkzSaqrTMWuC-zlDZIbxQQms9r_beJoARhy3DmsadUKEmnbVCO1Zc8E_nAR7ERsyx-TJoyPax5o-Y1UPYP0e_YjQSSxE2k46apzPIuGeWYX67elhDYkKqr-GOZNAPs_dittXBUFfX/s1600/jainja-dart-22052013.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii2zNDkzSaqrTMWuC-zlDZIbxQQms9r_beJoARhy3DmsadUKEmnbVCO1Zc8E_nAR7ERsyx-TJoyPax5o-Y1UPYP0e_YjQSSxE2k46apzPIuGeWYX67elhDYkKqr-GOZNAPs_dittXBUFfX/s1600/jainja-dart-22052013.png" height="378" width="640" /></a></div>
<br />Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com0Paris, France48.856614 2.352221900000017748.6894645 2.0294984000000178 49.0237635 2.6749454000000177tag:blogger.com,1999:blog-1511578593823356578.post-10692777908375940582011-11-22T09:55:00.002+01:002023-10-20T18:21:06.869+02:00Jainja VM<a href="http://jainja.thenesis.org/" target="_blank">Jainja VM</a> is a new JVM written in Java.<br />
<br />
The VM can run on top
of multiple environments : Java SE, Java ME, Android, Javascript, and
even natively in a near future. <br />
<br />
You can see Jainja in action in your browser (no Java plugin required, only a HTML5 browser): <a href="https://www.thenesis.org/demo/jainja/" target="_blank">demo</a> <br />
<br />
Sources will be released during FOSDEM 2012.Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com0tag:blogger.com,1999:blog-1511578593823356578.post-49858727816202977902011-04-28T22:16:00.000+02:002011-04-28T22:16:58.533+02:00Android boot on top of OpenJDK<div class="separator" style="clear: both; text-align: center;"><object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://3.gvt0.com/vi/xNPMR_udvAM/0.jpg"><param name="movie" value="http://www.youtube.com/v/xNPMR_udvAM&fs=1&source=uds" /><param name="bgcolor" value="#FFFFFF" /><embed width="320" height="266" src="http://www.youtube.com/v/xNPMR_udvAM&fs=1&source=uds" type="application/x-shockwave-flash"></embed></object></div><div style="text-align: center;"><a href="http://www.youtube.com/watch?v=xNPMR_udvAM">http://www.youtube.com/watch?v=xNPMR_udvAM</a></div>Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com0tag:blogger.com,1999:blog-1511578593823356578.post-81517446794472673582011-04-24T11:45:00.000+02:002011-04-24T12:17:25.553+02:00Android Activity<div style="font-family: inherit;">I succeeded to have a simple Activity working with pointer and keyboard events: </div><div style="font-family: inherit;"><span style="font-size: x-small;"><br />
</span></div><div style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;">public class HelloAndroidActivity extends Activity {</span></div><div style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;"><br />
</span></div><div style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;"> /** Called when the activity is first created. */</span></div><div style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;"> public void onCreate(Bundle savedInstanceState) {</span></div><div style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;"> super.onCreate(savedInstanceState); </span></div><div style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;"> TextView tv = new EditText(this);</span></div><div style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;"> tv.setText("This is an EditText view in an AWT Window: \n");</span></div><div style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;"> setContentView(tv);</span></div><div style="font-family: inherit;"><div style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;"> }</span></div><div style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;"> </span></div><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace; font-size: x-small;">} </span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/89XL6uDJ-cw?feature=player_embedded' frameborder='0'></iframe></div><div style="text-align: center;"><a href="http://www.youtube.com/watch?v=89XL6uDJ-cw">http://www.youtube.com/watch?v=89XL6uDJ-cw</a></div><br />
<div style="font-family: inherit;">I can't go further without the <a href="http://ebixio.com/blog/2011/01/03/the-android-ipc-system/">Binder IPC system</a>. It's an important piece of software in Android because almost all the public application framework relies on it to find and use services (window manager, audio, input methods, ...)</div><div style="font-family: inherit;"><br />
</div><div class="separator" style="clear: both; text-align: center;"></div><div style="text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3XXI5AD0oq7UtrXsQirpvgDRj1C3oXmLu6zzsY80Sh6HospxfbHtLbcnptToH-1LndwnYmhPCgYJTfVcekS-SY92VgYdchxv8v91M_Y-lr-EO3FzW0LnT4ZJ3OTCvp3hh5z7bnfPxMt5a/s1600/Binder+IPC+system.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3XXI5AD0oq7UtrXsQirpvgDRj1C3oXmLu6zzsY80Sh6HospxfbHtLbcnptToH-1LndwnYmhPCgYJTfVcekS-SY92VgYdchxv8v91M_Y-lr-EO3FzW0LnT4ZJ3OTCvp3hh5z7bnfPxMt5a/s1600/Binder+IPC+system.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: left;">There is a temporary hack to replace the IPC system (for the graphical part only):</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-4wgjDAM7lvGdU4BFiHFmQILL3oGDy03oMRLpaQOtdR5c0TW4HQYt81NsDgbKOs1G3mBUX8DzWSqwCKCeRqRjfyFNglYGbB0qaw3Er1JklriXVrnfgFOJMDzxCi-3HlIlhX8eRklaXF3-/s1600/port+achitecture.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-4wgjDAM7lvGdU4BFiHFmQILL3oGDy03oMRLpaQOtdR5c0TW4HQYt81NsDgbKOs1G3mBUX8DzWSqwCKCeRqRjfyFNglYGbB0qaw3Er1JklriXVrnfgFOJMDzxCi-3HlIlhX8eRklaXF3-/s1600/port+achitecture.png" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">The current start process is:</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxHj8gE_P017zVsGXfyU8ysokB_f8RdOYHjkuEjI_FofWEHDzAT8Wyxphy88i4XL7-DniOuFIod-1EQ6kigOQXSlF-bCbWUckFvz0e4uIW9xvpdDn_RlKChmEssIUMfOBUzBQtY31ezm1k/s1600/Start+process.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxHj8gE_P017zVsGXfyU8ysokB_f8RdOYHjkuEjI_FofWEHDzAT8Wyxphy88i4XL7-DniOuFIod-1EQ6kigOQXSlF-bCbWUckFvz0e4uIW9xvpdDn_RlKChmEssIUMfOBUzBQtY31ezm1k/s1600/Start+process.png" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div></div></div>Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com0tag:blogger.com,1999:blog-1511578593823356578.post-87599612366421598662011-04-18T18:05:00.000+02:002011-04-18T18:05:18.929+02:00Android Canvas in an AWT WindowA new small step: I got the Android Canvas working (only 2D rendering for now) :<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirnwAy_zRP06k5SEZAPBmAp5iv1Y0_7gnZQF-nPW_g7rU7p93hGm2E8ger9UIYJ3cpl5SvFczZSw6Ywq1CgnCN8oUxGnrWC61E6EIPkX1d6RMvwECCGQ_Adr4ZqFjtZDHJDoL-azpOcmhB/s1600/Android_Canvas_in_AWT.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirnwAy_zRP06k5SEZAPBmAp5iv1Y0_7gnZQF-nPW_g7rU7p93hGm2E8ger9UIYJ3cpl5SvFczZSw6Ywq1CgnCN8oUxGnrWC61E6EIPkX1d6RMvwECCGQ_Adr4ZqFjtZDHJDoL-azpOcmhB/s320/Android_Canvas_in_AWT.png" width="305" /></a></div> Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com2tag:blogger.com,1999:blog-1511578593823356578.post-90334986382355308582009-07-29T15:04:00.000+02:002009-07-29T15:47:21.598+02:00LWUIT running on the Jelatine VMAlthough the <a href="http://jelatine.sourceforge.net/">Jelatine VM</a> is still a work in progress, I got simple user interfaces working on it.<br /><br />I used the <a href="http://lwuimb.thenesis.org/">LWUIMB</a> demo and a X11 backend.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4BiEEtUkSrUMFmBWwGXhqd9fdTUrVF4w7TdoOTjJZzeTLFLoAFeW5uTjd8Wh7oXA-gQyjfF5yEgCA4iUtwuR2HObbNOmlooLEUxnNK9j8mYg4x7e4WziWUfXjCnCPQxO-r8PuO-iuUwP-/s1600-h/jelatine-lwuimb-290709.png"><img style="cursor: pointer; width: 322px; height: 258px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4BiEEtUkSrUMFmBWwGXhqd9fdTUrVF4w7TdoOTjJZzeTLFLoAFeW5uTjd8Wh7oXA-gQyjfF5yEgCA4iUtwuR2HObbNOmlooLEUxnNK9j8mYg4x7e4WziWUfXjCnCPQxO-r8PuO-iuUwP-/s400/jelatine-lwuimb-290709.png" alt="" id="BLOGGER_PHOTO_ID_5363875014210662978" border="0" /></a>Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com8tag:blogger.com,1999:blog-1511578593823356578.post-6135710741323501042009-03-31T15:34:00.000+02:002009-04-08T12:49:34.220+02:00MIDPath on the iPhoneI started a port of MIDPath on the iPhone a few weeks ago. It was a bit easier than I expected.<br /><br />First I had to understand how to use iPhone APIs from Java. <a href="http://markus.heberling.net/">Markus Heberlings</a> from the <a href="http://www.microemu.org/">MicroEmulator</a> project helped me a lot in this task. I used Markus's library (<a href="http://code.google.com/p/straptease/">straptease</a>) to write a simple backend for MIDPath.<br /><br />Next I added a directional pad to give a chance to people with large fingers to navigate through complex user interfaces.<br /><br />Finally, I improved overall performances by compiling native backends for rasterization and SVG rendering.<br /><br />Currently MIDPath runs on top of JamVM 1.5.1/Classpath and performances are correct for productivity applications. It should be faster when the iPhone backend will use OpenGL ES.<br /><br />Available features:<br /><ul><li>Full support of the MIDP2 widgets (LCDUI)</li><li>JSR226/SVG</li><li><span class="wikiexternallink"></span>JSR75/File Connection API</li><li><span class="wikiexternallink"></span>Networking<br /></li></ul>Missing:<br /><ul><li>Sound<span class="wikiexternallink"><span style="text-decoration: underline;"></span></span></li></ul>In the video below, you can see a few midlets running on the iPhone:<br /><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/Z1jU3abjG4w&hl=fr&fs=1&rel=0"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/Z1jU3abjG4w&hl=fr&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br /><br /><a href="http://www.youtube.com/watch?v=Z1jU3abjG4w">http://www.youtube.com/watch?v=Z1jU3abjG4w</a>Guillaume Legrishttp://www.blogger.com/profile/05711418938069973601noreply@blogger.com2