javafx on android - weird box within regions
Hi, I have a question regarding regions on android it seems that all regions with a set background have some kind of white box inside (in this case it is gray - its color has to do something with the background (in this case its aqua) look at the attached screenshot it is a very simple application with just one region anybody experienced the same behaviour - or has a workaround for this issue? I'm using these instructions to get a build: https://bitbucket.org/javafxports/android/wiki/Home greetings Christoph
Re: javafx on android - weird box within regions
It seems the list got my attachment -.- i uploaded it here: http://de.tinypic.com/r/ou4p46/8 Am 2014-01-28 20:29, schrieb Christoph Caks: Hi, I have a question regarding regions on android it seems that all regions with a set background have some kind of white box inside (in this case it is gray - its color has to do something with the background (in this case its aqua) look at the attached screenshot it is a very simple application with just one region anybody experienced the same behaviour - or has a workaround for this issue? I'm using these instructions to get a build: https://bitbucket.org/javafxports/android/wiki/Home greetings Christoph
Re: javafx on android - weird box within regions
https://javafx-jira.kenai.com/browse/RT-30479 is probably the issue you are bumping up against. On Jan 28, 2014, at 2:29 PM, Christoph Caks cc...@bestsolution.at wrote: Hi, I have a question regarding regions on android it seems that all regions with a set background have some kind of white box inside (in this case it is gray - its color has to do something with the background (in this case its aqua) look at the attached screenshot it is a very simple application with just one region anybody experienced the same behaviour - or has a workaround for this issue? I'm using these instructions to get a build: https://bitbucket.org/javafxports/android/wiki/Home greetings Christoph
Re: javafx on android - weird box within regions
Hi Christoph, We don't build or run Android so it's a pain to recreate the problem. Please confirm the bug on a desktop platform. It might likely be the bug David is talking about. Also, on desktop, we can't do more than guess at a problem without code: https://wiki.openjdk.java.net/display/OpenJFX/Submitting+a+Bug+Report Thanks, Steve On 2014-01-28 3:15 PM, David Grieve wrote: https://javafx-jira.kenai.com/browse/RT-30479 is probably the issue you are bumping up against. On Jan 28, 2014, at 2:29 PM, Christoph Caks cc...@bestsolution.at wrote: Hi, I have a question regarding regions on android it seems that all regions with a set background have some kind of white box inside (in this case it is gray - its color has to do something with the background (in this case its aqua) look at the attached screenshot it is a very simple application with just one region anybody experienced the same behaviour - or has a workaround for this issue? I'm using these instructions to get a build: https://bitbucket.org/javafxports/android/wiki/Home greetings Christoph
Re: JavaFX on Android build (instructions)
Hi again, I just wanted to let you know that I solved the issue with the max method references in the dex files with using multiple dex files. To accomplish this I patched the classes FXActivity and DalvikLauncher to dynamically load the second dex file and its classes. I also patched the build process so that any application jar can be used for this. If anyone runs into the same issue, just contact me. Kind regards, Sebastian Rheinnecker Am 26.11.2013 14:27, schrieb Sebastian Rheinnecker: Hi, I used your instructions with some tweaks to build a JavaFX application for android on Windows. However, it turns out that Android's dex format is putting a spoke into our wheel with the 65k method reference limit. The JavaFX runtime itself already contains 51k method references and because of that I was not yet able to bring our full application showcase to android. So if some android expert could contribute to the project by showing how to use multiple dex files, one containing the javafx runtime and one for the application, that would be great. Any help on the mailing list is appreciated as well. Kind regards, Sebastian Rheinnecker Am 16.11.2013 19:53, schrieb Johan Vos: Hi, Since I (and others) think it is very important that we can have JavaFX applications running on Android (and IOS, but in this mail I limit myself to Android), I created a bitbucket project containing code and build instructions to run JavaFX applications on Android. I didn't do much myself. Rather, this project is about providing easy and consistent build instructions. I combined information from this mailinglist with information I could find online, and with help from the JavaFX team. The project is here: https://bitbucket.org/johanvos/jfx78 After I gathered the information, it didn't cost me much time to get HelloWorld running on my Samsung S3 mini. I never wrote an Android project before, and I never used the Android SDK or NDK before I started with this thing almost a week ago. Hence, it is not that hard to create a JavaFX application on Android. This project is far from finished. There are a number of things that have to be done: * Improve build instructions * Simplify build * Fix bugs (e.g. touch-events are not processed yet) * Manage the synchronization with the main JavaFX repo * create plugins for IDE's or maven to automatically build the Android packages I want to open this project at this early stage, though, since I think it is important to have more community input. Also, I want to give a shout to the world that JavaFX on Android is not a dream. I hope many of you try out the instructions, improve them, correct them, and test your applications on Android. Thanks a lot to all the people on this mailinglist for telling how they were dealing with JavaFX on Android. Again, I didn't write much code, but rather tried to combine the information and make it useful for everybody. I know there is an intense debate about the role of Oracle on the Android (and IOS) ports. Let me close with a similar situation. About 17 years ago (sigh, time flies), I was involved with the port of Java to Linux, as part of the Blackdown team. Initially, we didn't get much help from Sun Microsystems (it was even not easy to get the latest code). But once we showed that we could run the thing on Linux, and that many developers were interested in it, Sun started to add resources on this as well. Eventually, we became obsolete. I hope to reach the obsolete stage on this project as well. Again, the project can be found here:https://bitbucket.org/johanvos/jfx78 - Johan -- Sebastian Rheinnecker phone: +49 7071 9709050 fax: +49 7071 9709051 yWorks GmbH Vor dem Kreuzberg 28 72070 Tuebingen Germany http://www.yworks.com Managing Directors: Sebastian Müller, Michael Pfahler Commercial Registry: Stuttgart, Germany, HRB 382340
Re: JavaFX on Android build (instructions)
Hi Sebastian, please would you send the patch to me? thank you in advance -Tomas On 12/02/2013 09:55 AM, Sebastian Rheinnecker wrote: Hi again, I just wanted to let you know that I solved the issue with the max method references in the dex files with using multiple dex files. To accomplish this I patched the classes FXActivity and DalvikLauncher to dynamically load the second dex file and its classes. I also patched the build process so that any application jar can be used for this. If anyone runs into the same issue, just contact me. Kind regards, Sebastian Rheinnecker Am 26.11.2013 14:27, schrieb Sebastian Rheinnecker: Hi, I used your instructions with some tweaks to build a JavaFX application for android on Windows. However, it turns out that Android's dex format is putting a spoke into our wheel with the 65k method reference limit. The JavaFX runtime itself already contains 51k method references and because of that I was not yet able to bring our full application showcase to android. So if some android expert could contribute to the project by showing how to use multiple dex files, one containing the javafx runtime and one for the application, that would be great. Any help on the mailing list is appreciated as well. Kind regards, Sebastian Rheinnecker Am 16.11.2013 19:53, schrieb Johan Vos: Hi, Since I (and others) think it is very important that we can have JavaFX applications running on Android (and IOS, but in this mail I limit myself to Android), I created a bitbucket project containing code and build instructions to run JavaFX applications on Android. I didn't do much myself. Rather, this project is about providing easy and consistent build instructions. I combined information from this mailinglist with information I could find online, and with help from the JavaFX team. The project is here: https://bitbucket.org/johanvos/jfx78 After I gathered the information, it didn't cost me much time to get HelloWorld running on my Samsung S3 mini. I never wrote an Android project before, and I never used the Android SDK or NDK before I started with this thing almost a week ago. Hence, it is not that hard to create a JavaFX application on Android. This project is far from finished. There are a number of things that have to be done: * Improve build instructions * Simplify build * Fix bugs (e.g. touch-events are not processed yet) * Manage the synchronization with the main JavaFX repo * create plugins for IDE's or maven to automatically build the Android packages I want to open this project at this early stage, though, since I think it is important to have more community input. Also, I want to give a shout to the world that JavaFX on Android is not a dream. I hope many of you try out the instructions, improve them, correct them, and test your applications on Android. Thanks a lot to all the people on this mailinglist for telling how they were dealing with JavaFX on Android. Again, I didn't write much code, but rather tried to combine the information and make it useful for everybody. I know there is an intense debate about the role of Oracle on the Android (and IOS) ports. Let me close with a similar situation. About 17 years ago (sigh, time flies), I was involved with the port of Java to Linux, as part of the Blackdown team. Initially, we didn't get much help from Sun Microsystems (it was even not easy to get the latest code). But once we showed that we could run the thing on Linux, and that many developers were interested in it, Sun started to add resources on this as well. Eventually, we became obsolete. I hope to reach the obsolete stage on this project as well. Again, the project can be found here:https://bitbucket.org/johanvos/jfx78 - Johan
Re: JavaFX on Android build (instructions)
Hello Tomas, I attached the patch for the FXActivity and DalvikLauncher classes. To make this work, you need to patch the build process for the created projects as well. I couldn't find where this is done in the repo, so I did this manually every time :-), this is also the reason why it isn't included in the patch file. This is not optimized so there is still a hardcoded reference to the application jar in here, perhaps you can generalize this: custom_rules.xml: target init-env: add property name=app.lib.dir value=app-libs / target install-application: change to target name=-install-application unless=app.uptodate mkdir dir=${app.lib.dir}/ copy todir=${app.lib.dir} fileset dir=${jfx.app.dist.dir} includes=*.jar/ /copy /target build-extras.xml: add property name=output-dex-file value=${out.absolute.dir}/app_dex/${dex.file.name}/ mkdir dir=${out.absolute.dir}/app_dex/ exec executable=${dx} failonerror=true arg value=--dex / arg value=-JXmx2048m / arg value=--output=${output-dex-file} / extra-parameters / arg line=${verbose.option} / arg line=${nolocals.option} / arg path=${out.dex.input.absolute.dir} / arg line=${app.lib.dir}/MyApplication.jar/ external-libs / /exec jar destfile=${asset.absolute.dir}/Application_dex.jar basedir=${out.absolute.dir}/app_dex includes=${dex.file.name} / right after the first exec executable=${dx} / I hope I didn't forget anything. Kind regards, Sebastian Am 02.12.2013 10:27, schrieb tomas.brandalik: Hi Sebastian, please would you send the patch to me? thank you in advance -Tomas On 12/02/2013 09:55 AM, Sebastian Rheinnecker wrote: Hi again, I just wanted to let you know that I solved the issue with the max method references in the dex files with using multiple dex files. To accomplish this I patched the classes FXActivity and DalvikLauncher to dynamically load the second dex file and its classes. I also patched the build process so that any application jar can be used for this. If anyone runs into the same issue, just contact me. Kind regards, Sebastian Rheinnecker Am 26.11.2013 14:27, schrieb Sebastian Rheinnecker: Hi, I used your instructions with some tweaks to build a JavaFX application for android on Windows. However, it turns out that Android's dex format is putting a spoke into our wheel with the 65k method reference limit. The JavaFX runtime itself already contains 51k method references and because of that I was not yet able to bring our full application showcase to android. So if some android expert could contribute to the project by showing how to use multiple dex files, one containing the javafx runtime and one for the application, that would be great. Any help on the mailing list is appreciated as well. Kind regards, Sebastian Rheinnecker Am 16.11.2013 19:53, schrieb Johan Vos: Hi, Since I (and others) think it is very important that we can have JavaFX applications running on Android (and IOS, but in this mail I limit myself to Android), I created a bitbucket project containing code and build instructions to run JavaFX applications on Android. I didn't do much myself. Rather, this project is about providing easy and consistent build instructions. I combined information from this mailinglist with information I could find online, and with help from the JavaFX team. The project is here: https://bitbucket.org/johanvos/jfx78 After I gathered the information, it didn't cost me much time to get HelloWorld running on my Samsung S3 mini. I never wrote an Android project before, and I never used the Android SDK or NDK before I started with this thing almost a week ago. Hence, it is not that hard to create a JavaFX application on Android. This project is far from finished. There are a number of things that have to be done: * Improve build instructions * Simplify build * Fix bugs (e.g. touch-events are not processed yet) * Manage the synchronization with the main JavaFX repo * create plugins for IDE's or maven to automatically build the Android packages I want to open this project at this early stage, though, since I think it is important to have more community input. Also, I want to give a shout to the world that JavaFX on Android is not a dream. I hope many of you try out the instructions, improve them, correct them, and test your applications on Android. Thanks a lot to all the people on this mailinglist for telling how they were dealing with JavaFX on Android. Again, I didn't write much code, but rather tried to combine the information and make it useful for everybody. I know there is an intense debate about the role of Oracle on the Android (and IOS) ports. Let me close with a similar situation. About 17 years ago (sigh, time
Re: JavaFX on Android build (instructions)
Thanks Johan for gathering this information! I just tried to run my simple JavaFx application on Android with your build instructions, and I got it build and deployed rather easily. When trying to run it the UI appeared (albeit rather distorted), but when touching the app it crashed, I guess because of the know touch issues. Also, my app was using Google Guice, which gave me some reflection errors when trying the run it on the device (it crashed upon startup). So I swapped Guice with RoboGuice and it worked (for as far as I could test it). So for anyone who wants some dependency injection in their JavaFx Android app, try out RoboGuice as it seems to work. Greetz, Yennick On 26/11/2013 14:29:50, Sebastian Rheinnecker sebastian.rheinnec...@yworks.com wrote: Hi, I used your instructions with some tweaks to build a JavaFX application for android on Windows. However, it turns out that Android's dex format is putting a spoke into our wheel with the 65k method reference limit. The JavaFX runtime itself already contains 51k method references and because of that I was not yet able to bring our full application showcase to android. So if some android expert could contribute to the project by showing how to use multiple dex files, one containing the javafx runtime and one for the application, that would be great. Any help on the mailing list is appreciated as well. Kind regards, Sebastian Rheinnecker Am 16.11.2013 19:53, schrieb Johan Vos: Hi, Since I (and others) think it is very important that we can have JavaFX applications running on Android (and IOS, but in this mail I limit myself to Android), I created a bitbucket project containing code and build instructions to run JavaFX applications on Android. I didn't do much myself. Rather, this project is about providing easy and consistent build instructions. I combined information from this mailinglist with information I could find online, and with help from the JavaFX team. The project is here: https://bitbucket.org/johanvos/jfx78 After I gathered the information, it didn't cost me much time to get HelloWorld running on my Samsung S3 mini. I never wrote an Android project before, and I never used the Android SDK or NDK before I started with this thing almost a week ago. Hence, it is not that hard to create a JavaFX application on Android. This project is far from finished. There are a number of things that have to be done: * Improve build instructions * Simplify build * Fix bugs (e.g. touch-events are not processed yet) * Manage the synchronization with the main JavaFX repo * create plugins for IDE's or maven to automatically build the Android packages I want to open this project at this early stage, though, since I think it is important to have more community input. Also, I want to give a shout to the world that JavaFX on Android is not a dream. I hope many of you try out the instructions, improve them, correct them, and test your applications on Android. Thanks a lot to all the people on this mailinglist for telling how they were dealing with JavaFX on Android. Again, I didn't write much code, but rather tried to combine the information and make it useful for everybody. I know there is an intense debate about the role of Oracle on the Android (and IOS) ports. Let me close with a similar situation. About 17 years ago (sigh, time flies), I was involved with the port of Java to Linux, as part of the Blackdown team. Initially, we didn't get much help from Sun Microsystems (it was even not easy to get the latest code). But once we showed that we could run the thing on Linux, and that many developers were interested in it, Sun started to add resources on this as well. Eventually, we became obsolete. I hope to reach the obsolete stage on this project as well. Again, the project can be found here:https://bitbucket.org/johanvos/jfx78 - Johan -- Sebastian Rheinnecker phone: +49 7071 9709050 fax: +49 7071 9709051 yWorks GmbH Vor dem Kreuzberg 28 72070 Tuebingen Germany http://www.yworks.com Managing Directors: Sebastian Müller, Michael Pfahler Commercial Registry: Stuttgart, Germany, HRB 382340
Re: JavaFX on Android build (instructions)
Hi, I used your instructions with some tweaks to build a JavaFX application for android on Windows. However, it turns out that Android's dex format is putting a spoke into our wheel with the 65k method reference limit. The JavaFX runtime itself already contains 51k method references and because of that I was not yet able to bring our full application showcase to android. So if some android expert could contribute to the project by showing how to use multiple dex files, one containing the javafx runtime and one for the application, that would be great. Any help on the mailing list is appreciated as well. Kind regards, Sebastian Rheinnecker Am 16.11.2013 19:53, schrieb Johan Vos: Hi, Since I (and others) think it is very important that we can have JavaFX applications running on Android (and IOS, but in this mail I limit myself to Android), I created a bitbucket project containing code and build instructions to run JavaFX applications on Android. I didn't do much myself. Rather, this project is about providing easy and consistent build instructions. I combined information from this mailinglist with information I could find online, and with help from the JavaFX team. The project is here: https://bitbucket.org/johanvos/jfx78 After I gathered the information, it didn't cost me much time to get HelloWorld running on my Samsung S3 mini. I never wrote an Android project before, and I never used the Android SDK or NDK before I started with this thing almost a week ago. Hence, it is not that hard to create a JavaFX application on Android. This project is far from finished. There are a number of things that have to be done: * Improve build instructions * Simplify build * Fix bugs (e.g. touch-events are not processed yet) * Manage the synchronization with the main JavaFX repo * create plugins for IDE's or maven to automatically build the Android packages I want to open this project at this early stage, though, since I think it is important to have more community input. Also, I want to give a shout to the world that JavaFX on Android is not a dream. I hope many of you try out the instructions, improve them, correct them, and test your applications on Android. Thanks a lot to all the people on this mailinglist for telling how they were dealing with JavaFX on Android. Again, I didn't write much code, but rather tried to combine the information and make it useful for everybody. I know there is an intense debate about the role of Oracle on the Android (and IOS) ports. Let me close with a similar situation. About 17 years ago (sigh, time flies), I was involved with the port of Java to Linux, as part of the Blackdown team. Initially, we didn't get much help from Sun Microsystems (it was even not easy to get the latest code). But once we showed that we could run the thing on Linux, and that many developers were interested in it, Sun started to add resources on this as well. Eventually, we became obsolete. I hope to reach the obsolete stage on this project as well. Again, the project can be found here:https://bitbucket.org/johanvos/jfx78 - Johan -- Sebastian Rheinnecker phone: +49 7071 9709050 fax: +49 7071 9709051 yWorks GmbH Vor dem Kreuzberg 28 72070 Tuebingen Germany http://www.yworks.com Managing Directors: Sebastian Müller, Michael Pfahler Commercial Registry: Stuttgart, Germany, HRB 382340
Re: JAVAFX on ANDROID
1. Is that mouse emulation supposed to be eliminated due to the latest lensWindow changes? I believe that must be handled in higher layers not in the input layer itself. 2. What is the best way to fix this issue? Reimplementing the mouse emulation is not a real good solution. JavaFX expects to get both Mouse and Touch events when you have a touch screen. However I believe multi-touch events are not delivered as mouse events (somebody on the embedded side correct me if I'm wrong on that). So an app that was designed with mouse events in mind should continue to work when a touch screen is provided. 3. The Listview shows a scrollbar. That makes me believe that the control doesn't really know that it is running in embedded mode. Maybe the mouse emulation is not possible if the embedded mode is correcly enabled. Where do I enable the embedded mode? I though it is this property android.com.sun.javafx.isEmbedded=true. That's of course enabled in javafx.platform.properties. There's some bit of mess here where some places are explicitly checking iOS etc to hide/show stuff instead of just embedded. Jonathan do you remember all the places to check? Richard
Re: JAVAFX on ANDROID
Hi Tomas, I am currently running a bit different openjfx than yours and got it kind of running. 1. the main difference is font deactivation. You disabled the entire CSS renderer, which I did not. I am deactivating just the font renderer. That means a lot more patching but it gives me the chance to see CSS rendering taking place ;) It works pretty well even without fonts (hard coded font sizes). 2. I probably found the touch handling crash. Since I have an old Samusung Galaxy Tab 10.1 here I can assure this bug effects the device as well. It's the Platform.runLater bugfix. This is also quite stable and makes it possible to play Brickbreaker ;) 3. I had to disable the new security stuff in GlassStage and GlassScene. further testing: Tobi, gave me his iOS/JavaFX testing tool that just displays a colored ListView and while it scrolls the rendering process writes fps to stdout. This tool compiles and runs but it does nothing while touching. The reason is probably that some javafx controls are still using mouse emulation. I see in the iOS port that the events are fired twice at first as touch events and then as mouse events. It looks like the latest change for multitouch events dropped the dual event sending. I tried to patch android.c like this: JNIEXPORT void JNICALL Java_com_oracle_dalvik_FXActivity_00024InternalSurfaceView_onMultiTouchEventNative (JNIEnv *env, jobject jview, jint jpcount, jintArray jactions, jintArray jids, jintArray jtouchXs, jintArray jtouchYs) { ... (*_notifyMultiTouchEvent)(jpcount, actions, ids, touchXs, touchYs); if( jpcount == 1 (actions[0]==com_sun_glass_events_TouchEvent_TOUCH_PRESSED || actions[0]==com_sun_glass_events_TouchEvent_TOUCH_RELEASED) ) { int pressed = 0; if (actions[0] == com_sun_glass_events_TouchEvent_TOUCH_PRESSED) pressed = com_sun_glass_events_MouseEvent_DOWN; else if (actions[0] == com_sun_glass_events_TouchEvent_TOUCH_RELEASED) pressed = com_sun_glass_events_MouseEvent_UP; LOGV(TAG, emulate button click event - UM hacked pressed:%i x:%i y:%i\n, pressed, touchXs[0], touchYs[0] ); (*_notifyButtonEvent)(pressed, com_sun_glass_events_MouseEvent_BUTTON_LEFT, touchXs[0], touchYs[0]); } ... } Unfortunately, it doesn't work as expected. I have some questions: 1. Is that mouse emulation supposed to be eliminated due to the latest lensWindow changes? I believe that must be handled in higher layers not in the input layer itself. 2. What is the best way to fix this issue? Reimplementing the mouse emulation is not a real good solution. 3. The Listview shows a scrollbar. That makes me believe that the control doesn't really know that it is running in embedded mode. Maybe the mouse emulation is not possible if the embedded mode is correcly enabled. Where do I enable the embedded mode? I though it is this property android.com.sun.javafx.isEmbedded=true. That's of course enabled in javafx.platform.properties. 4. What is the input layer for the Dukepad? I think it's the udev implementation and this does pretty much the same as the current android implementation. I just want to have a stable reference to look at ;) Probably those questions are not only for Tomas since they are pretty general. regards Matthias
Re: JAVAFX on ANDROID
Am 17.10.2013 um 17:45 schrieb Richard Bair richard.b...@oracle.com: Usually, file jira and attach a patch (and a unit test for expedited service :-)) Richard Ok, I'll check that for the future. Actually, I am not sure how a unit test would look like for a crash fix like that ;) Matthias
Re: JAVAFX on ANDROID
Hi, I found the reason for the touch crashes on Android. It's a JNI threading error in the current implementation. We have to enqueue the touch events into the javafx dispatch thread. There is a workaround for this attached in the java source file at dispatchTouchEvent and dispatchKeyEvent. What is the best way to propose changes in the future? regards Matthias Am 15.10.2013 um 13:50 schrieb Matthias Hänel hae...@ultramixer.com: Hey Tomas, I've seen a check-in for RT-32802. This seems to be your fix. There are a lot of interface changes. Could you explain the changes a bit, so I can merge it by hand into my jfx678 code? Today, I merged from Stefans b111 JFX78 but it will take a while to get your changes through this way ;) regards Matthias Am 14.10.2013 um 14:31 schrieb tomas.brandalik tomas.branda...@oracle.com: Hi Matthias, cool, I'm surprised you we're able to run it on emulator. I run on device not on emulator for a long time. There wasn't opengl extension GL_EXT_texture_format_BGRA in emulator. But that could have changed overtime. Regarding events: yes there seems to be a problem which I haven't discovered. I've pushed multitouch support and broke touch events on dalvik. I will fix that soon. In order to replace t2k there is freetype library for fonts and glyphs access and harfbuzz for layouting available among system libraries. Although google discourages to use them since they aren't part of public api. It can bring all sorts of compatibility problems (harfbuzz implementation has changed in recent android releases for example). Yes try pango if you have time to spare and share results please. good luck -Tomas On 10/14/2013 01:45 PM, Matthias Hänel wrote: Hi Tomas, never mind, I found the problem over here in the simulator ;) I had to activate the GPU support. So, now I had to BGRA image format for Android and now I get JFX up and running without fonts. There are two things missing: 1. fonts- here we probably need to get pango working for Android right? 2. touch events - I saw that you have got a special Android proxy for the input stuff Java_com_oracle_dalvik_FXActivity_00024InternalSurfaceView_onTouchEventNative This seems to crash for some reason. any idea? It's not that complicated but it is producing a stack trace. After fixing the touch events Brickbreaker with Niklas' no-font-patch should work. I'd pleased to test this. kind regards Matthias Am 14.10.2013 um 12:17 schrieb Matthias Hänel hae...@ultramixer.com: Hi Tomas, since Tobi told me he had a similiar problem in the first place with the iOS port and he managed to run JFX8 without font. We deactivated fonts. There is some code to deactivate and after that it looks like it is starting the JFX-Application. 10-14 06:06:49.529: INFO/GLASS(1546): glass_view_drawBegin 10-14 06:06:49.529: INFO/javafx(1546): Using getAndroidNativeWindow() from glass. 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/javafx(1546): Some video driver error or programming error occurred. Framebuffer object status is invalid. (FBO - 823) 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/javafx(1546): Error creating framebuffer object with TexID 1) 10-14 06:06:49.599: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.659: WARN/System.err(1546): java.lang.reflect.InvocationTargetException 10-14 06:06:49.669: WARN/System.err(1546): at java.lang.reflect.Method.invokeNative(Native Method) 10-14 06:06:49.669: WARN/System.err(1546): at java.lang.reflect.Method.invoke(Method.java:525) 10-14 06:06:49.709: DEBUG/dalvikvm(1546): GC_FOR_ALLOC freed 330K, 10% free 4129K/4564K, paused 32ms, total 32ms 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFactory.java:253) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:227) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:485) 10-14 06:06:49.709:
Re: JAVAFX on ANDROID
the mailerdemon striped my java file ;) The fixed code snippet from FXActivity.java is: } else { //single touch actions[0] = actionCode; ids[0] = event.getPointerId(0); touchXs[0] = (int)event.getX(); touchYs[0] = (int)event.getY(); } //System.out.println(Android original event = + event); Platform.runLater(new Runnable() { @Override public void run() { onMultiTouchEventNative(pcount, actions, ids, touchXs, touchYs); } }); return true; } @Override public boolean dispatchKeyEvent(final KeyEvent event) { Platform.runLater(new Runnable() { @Override public void run() { onKeyEventNative(event.getAction(), event.getKeyCode(), event.getCharacters()); } }); return true; } regards Matthias Am 17.10.2013 um 17:01 schrieb Matthias Hänel hae...@ultramixer.com: Hi, I found the reason for the touch crashes on Android. It's a JNI threading error in the current implementation. We have to enqueue the touch events into the javafx dispatch thread. There is a workaround for this attached in the java source file at dispatchTouchEvent and dispatchKeyEvent. What is the best way to propose changes in the future? regards Matthias Am 15.10.2013 um 13:50 schrieb Matthias Hänel hae...@ultramixer.com: Hey Tomas, I've seen a check-in for RT-32802. This seems to be your fix. There are a lot of interface changes. Could you explain the changes a bit, so I can merge it by hand into my jfx678 code? Today, I merged from Stefans b111 JFX78 but it will take a while to get your changes through this way ;) regards Matthias Am 14.10.2013 um 14:31 schrieb tomas.brandalik tomas.branda...@oracle.com: Hi Matthias, cool, I'm surprised you we're able to run it on emulator. I run on device not on emulator for a long time. There wasn't opengl extension GL_EXT_texture_format_BGRA in emulator. But that could have changed overtime. Regarding events: yes there seems to be a problem which I haven't discovered. I've pushed multitouch support and broke touch events on dalvik. I will fix that soon. In order to replace t2k there is freetype library for fonts and glyphs access and harfbuzz for layouting available among system libraries. Although google discourages to use them since they aren't part of public api. It can bring all sorts of compatibility problems (harfbuzz implementation has changed in recent android releases for example). Yes try pango if you have time to spare and share results please. good luck -Tomas On 10/14/2013 01:45 PM, Matthias Hänel wrote: Hi Tomas, never mind, I found the problem over here in the simulator ;) I had to activate the GPU support. So, now I had to BGRA image format for Android and now I get JFX up and running without fonts. There are two things missing: 1. fonts- here we probably need to get pango working for Android right? 2. touch events - I saw that you have got a special Android proxy for the input stuff Java_com_oracle_dalvik_FXActivity_00024InternalSurfaceView_onTouchEventNative This seems to crash for some reason. any idea? It's not that complicated but it is producing a stack trace. After fixing the touch events Brickbreaker with Niklas' no-font-patch should work. I'd pleased to test this. kind regards Matthias Am 14.10.2013 um 12:17 schrieb Matthias Hänel hae...@ultramixer.com: Hi Tomas, since Tobi told me he had a similiar problem in the first place with the iOS port and he managed to run JFX8 without font. We deactivated fonts. There is some code to deactivate and after that it looks like it is starting the JFX-Application. 10-14 06:06:49.529: INFO/GLASS(1546): glass_view_drawBegin 10-14 06:06:49.529: INFO/javafx(1546): Using getAndroidNativeWindow() from glass. 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/javafx(1546): Some video driver error or programming error occurred. Framebuffer object status is invalid. (FBO - 823) 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/javafx(1546): Error creating framebuffer object with TexID 1) 10-14 06:06:49.599: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14
Re: JAVAFX on ANDROID
Hi Tomas, thanks for your patch. Your way doesn't seem to be so different to the jfx78 approach except the retro-stuff ;) In the meanwhile I am pretty sure, this will not be entirely needed since DAVLIK can run java7 class code. Nevertheless, I tried your patch... Patching works. After adapting some files and putting the correct pathes in the configuration I got the gradle script working. Unfortunatly, I used the tip of openjfx8. That means there is a lot of new stuff e.g. usage of Function.java that's required from jdk8. Which tag did you use? B111 or are you on the cutting edge at tip? I'll try B111 from master hopefully this new stuff isn't in there ;) It looks like porting Function.java back to java7 is not so easy. regards Matthias Am 15.10.2013 um 15:52 schrieb tomas.brandalik tomas.branda...@oracle.com: Hi Matthias, you are right when I build for dalvik I build with a flag DALVIK_VM. Pls be careful when building changes in native code you have to do clean build. There is still an issue in jfx gradle script. I create my build differently. I start with openjfx patch it to be jdk7 compatible then use retrolambda to replace class file versions to jdk6. If you want give it a try use attached patch and do following: clone openjfx cd rt patch -p1 fix_jdk7_compat.patch edit android-build.sh with your paths android-build.sh retrojfxrt iI will build dalvik compatible jfxrt6.jar -Tomas On 10/15/2013 03:07 PM, Matthias Hänel wrote: Hi Tomas, I couldn't stand to merge it by hand ;) I merged the changes from RT-32802 into my backport. Unfortunately, it still crashes: 10-15 08:59:47.182: INFO/GLASS(3644): JNI call notifyTouchEvent 10-15 08:59:47.202: INFO/GLASS(3644): Window 1[0x2a41a138] isVisible=true, state=NORMAL 10-15 08:59:47.202: INFO/GLASS(3644): Absolute coordinates 542,414 are on window 1[0x2a41a138] as relative coordinates 670,292 10-15 08:59:47.202: INFO/GLASS(3644): Returning focused window 1[0x2a41a138] 10-15 08:59:47.202: ERROR/dalvikvm(3644): ERROR: detaching thread with interp frames (count=42) 10-15 08:59:47.213: INFO/dalvikvm(3644): main prio=5 tid=1 RUNNABLE 10-15 08:59:47.213: INFO/dalvikvm(3644): | group=main sCount=0 dsCount=0 obj=0x414c5578 self=0x2a00d090 10-15 08:59:47.222: INFO/dalvikvm(3644): | sysTid=3644 nice=0 sched=0/0 cgrp=apps handle=1073811452 10-15 08:59:47.222: INFO/dalvikvm(3644): | state=R schedstat=( 6545290672 1534059118 8044 ) utm=610 stm=44 core=0 10-15 08:59:47.252: INFO/dalvikvm(3644): at com.oracle.dalvik.FXActivity$InternalSurfaceView.onMultiTouchEventNative(Native Method) 10-15 08:59:47.252: INFO/dalvikvm(3644): at com.oracle.dalvik.FXActivity$InternalSurfaceView.dispatchTouchEvent(FXActivity.java:234) Do you have any idea? The error ERROR: detaching thread with interp frames (count=42) seems to be a thread attach/detach mistake in the code. In androidLens.c there is some ATTACH_JNI_THREAD and DTACH_JNI_THREAD code. There are two implementations. One that's filled with (*vm)- and the other one is left blank. Currently, the macro DALVI_VM is not defined, so the code is filled. This seems to be odd to me. Actually, I tried defining DAVLIK_VM but it doesn't help. It still crashes with the sme error. regards Matthais Am 14.10.2013 um 14:31 schrieb tomas.brandalik tomas.branda...@oracle.com: Hi Matthias, cool, I'm surprised you we're able to run it on emulator. I run on device not on emulator for a long time. There wasn't opengl extension GL_EXT_texture_format_BGRA in emulator. But that could have changed overtime. Regarding events: yes there seems to be a problem which I haven't discovered. I've pushed multitouch support and broke touch events on dalvik. I will fix that soon. In order to replace t2k there is freetype library for fonts and glyphs access and harfbuzz for layouting available among system libraries. Although google discourages to use them since they aren't part of public api. It can bring all sorts of compatibility problems (harfbuzz implementation has changed in recent android releases for example). Yes try pango if you have time to spare and share results please. good luck -Tomas On 10/14/2013 01:45 PM, Matthias Hänel wrote: Hi Tomas, never mind, I found the problem over here in the simulator ;) I had to activate the GPU support. So, now I had to BGRA image format for Android and now I get JFX up and running without fonts. There are two things missing: 1. fonts- here we probably need to get pango working for Android right? 2. touch events - I saw that you have got a special Android proxy for the input stuff Java_com_oracle_dalvik_FXActivity_00024InternalSurfaceView_onTouchEventNative This seems to crash for some reason. any idea? It's not that complicated but it is producing a stack trace. After fixing the touch events Brickbreaker with Niklas' no-font-patch should
Re: JAVAFX on ANDROID
Hey Tomas, I've seen a check-in for RT-32802. This seems to be your fix. There are a lot of interface changes. Could you explain the changes a bit, so I can merge it by hand into my jfx678 code? Today, I merged from Stefans b111 JFX78 but it will take a while to get your changes through this way ;) regards Matthias Am 14.10.2013 um 14:31 schrieb tomas.brandalik tomas.branda...@oracle.com: Hi Matthias, cool, I'm surprised you we're able to run it on emulator. I run on device not on emulator for a long time. There wasn't opengl extension GL_EXT_texture_format_BGRA in emulator. But that could have changed overtime. Regarding events: yes there seems to be a problem which I haven't discovered. I've pushed multitouch support and broke touch events on dalvik. I will fix that soon. In order to replace t2k there is freetype library for fonts and glyphs access and harfbuzz for layouting available among system libraries. Although google discourages to use them since they aren't part of public api. It can bring all sorts of compatibility problems (harfbuzz implementation has changed in recent android releases for example). Yes try pango if you have time to spare and share results please. good luck -Tomas On 10/14/2013 01:45 PM, Matthias Hänel wrote: Hi Tomas, never mind, I found the problem over here in the simulator ;) I had to activate the GPU support. So, now I had to BGRA image format for Android and now I get JFX up and running without fonts. There are two things missing: 1. fonts- here we probably need to get pango working for Android right? 2. touch events - I saw that you have got a special Android proxy for the input stuff Java_com_oracle_dalvik_FXActivity_00024InternalSurfaceView_onTouchEventNative This seems to crash for some reason. any idea? It's not that complicated but it is producing a stack trace. After fixing the touch events Brickbreaker with Niklas' no-font-patch should work. I'd pleased to test this. kind regards Matthias Am 14.10.2013 um 12:17 schrieb Matthias Hänel hae...@ultramixer.com: Hi Tomas, since Tobi told me he had a similiar problem in the first place with the iOS port and he managed to run JFX8 without font. We deactivated fonts. There is some code to deactivate and after that it looks like it is starting the JFX-Application. 10-14 06:06:49.529: INFO/GLASS(1546): glass_view_drawBegin 10-14 06:06:49.529: INFO/javafx(1546): Using getAndroidNativeWindow() from glass. 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/javafx(1546): Some video driver error or programming error occurred. Framebuffer object status is invalid. (FBO - 823) 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/javafx(1546): Error creating framebuffer object with TexID 1) 10-14 06:06:49.599: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.659: WARN/System.err(1546): java.lang.reflect.InvocationTargetException 10-14 06:06:49.669: WARN/System.err(1546): at java.lang.reflect.Method.invokeNative(Native Method) 10-14 06:06:49.669: WARN/System.err(1546): at java.lang.reflect.Method.invoke(Method.java:525) 10-14 06:06:49.709: DEBUG/dalvikvm(1546): GC_FOR_ALLOC freed 330K, 10% free 4129K/4564K, paused 32ms, total 32ms 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFactory.java:253) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:227) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:485) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:418) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:351) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.BaseContext.validateClearOp(BaseContext.java:116) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.es2.ES2Graphics.clear(ES2Graphics.java:78)
Re: JAVAFX on ANDROID
I might be a bit late to the party but I lately discovered something that might be useful for backporting JavaFX 8 to Java 6: Retrolambda lets you run Java 8 code with lambda expressions on Java 7 or lower. It does this by transforming your Java 8 compiled bytecode so that it can run on a Java 7 runtime. After the transformation they are just a bunch of normal .class files, without adding any runtime dependencies. https://github.com/orfjackal/retrolambda Hope this helps, Philipp Dörfler
Re: JAVAFX on ANDROID
I would recommend to build pango by hand first. I don't think that it is so straightforward. It has many dependencies iconv, expat, fontconfig, freetype, glib at least. After a whole day of struggling my pango build failed somewhere in the middle at who-knows-where-it-comes-from macro :( -wish you more luck Tomas On 10/15/2013 09:07 AM, Matthias Hänel wrote: Hi Felipe, thanks for your fast answer. Unfortunately, this is not enough information for a sufficient solution ;) Maybe I am too far from gradle away in my thinking (Makefiles) to understand this one fully. I know where the sources are and I am pretty sure I can build a library by hand. Actually, I added to the android gradle script the Linux fontpango parts and the pkg-config tool. I assume that the default linux gradle script looks for the pango libs in /usr/share ... (default paths). Now we are in a cross platform enviornment for Android. At least I have to call ./configure with the android toolchain. That should not be hard to do. What I don't know is, how do I add this to the gradle script? I see the pkg-config in crosslibs but that relies on the assumption that pango resides somewhere in ${SYSROOT}. Well, I probably could build pango (haven't tried yet) for android and put it in the NDK, from my point of view, that wouldn't work later at run time. The .so must be linked and delivered with the App. Maybe someone can enlighten me how I can integrate a third party library build into the gradle universe ;) regards Matthias Am 14.10.2013 um 17:45 schrieb Felipe Heidrich felipe.heidr...@oracle.com: Hi, I'm not familiar with the Android build process but basically this is what you need: Build graphics/src/main/native-font/fontpath_linux.c to a library called javafx_font, that it will be loaded by PrismFontFactory.java (but used by FontConfigManager.java). This is our fontconfig binding used to locate fonts. All references to fontconfig in the native code are dynamic, so you should only need the JNI references while building this object. Build graphics/src/main/native-font/freetype.c and graphics/src/main/native-font/pango.c To a library named javafx-font-pango The cc flags to build them are pkg-config --cflags pangoft2 + -D_ENABLE_PANGO, the lib flags are pkg-config --libs pangoft2 (see rt/buildSrc/linux.gradle, search pangoCCFlags and pangoLinkFlags). This library will be used by graphics/src/main/java/com/sun/javafx/font/pango/OS.java During runtime you will need to explicitly set -Dprism.text=native so that PangoFactory.java is used (instead of T2KFactory.java). Note: if that is too hard to build pango.o I suppose you could link javafx-font-pango.so only with freetype.o, you should not see any unsatisfied link exception as long as PangoFactory.createGlyphLayout is not called. Setting -Dprism.debugfonts=true should help to see what is getting loaded, -Djavafx.verbose=true prints what library as being loaded by JFX. Regards, Felipe On Oct 13, 2013, at 11:49 PM, Matthias Hänel hae...@ultramixer.com wrote: Is there a fallback? Pango doesn't work either it's not used in the android gradle scripts. I would be happy to integrate it and I am sure I can compile pango for android. I just need a pointer to how I can integrate it into the build process. I changed android.gradle but I am not sure where to put the pango sources.
Re: JAVAFX on ANDROID
I absolutely agree. The point is: nobody can expect from oracle to build such a vm. But if they won't do it, JavaFX will die. Even in the embedded space where companies will use QT or HTML5 instead. Without license fees So to sell JavaFX for embedded devices oracle MUST support mobile platforms via VM too. Von meinem iPhone gesendet Am 14.10.2013 um 07:09 schrieb Tom Eugelink t...@tbee.org: On 2013-10-14 01:06, Rafal wrote: If you honestly encourage community to make a such big effort as developing, adjusting and maintaining JVMs on the two leading mobile platforms, you don't have any plans that Oracle VM on android will be released in the next 2 years. :/ Otherwise, if Oracle announce own VM, then all this community's effort be for nothing and pointless. Open source done in the spare time by people with a full time job usually never grows much bigger than a nice but not too complex library; layout engines, testing frameworks, a web framework, that kind of stuff. Because as a project grows in size and complexity, so do the (number of) issues and the time required to provide support. That usually is the point where either a company is started (projects like Maven and Gradle) or the project gets corporate funding usually by that a corporation allows some developers to spent worktime on it (Apache, Eclipse, and Java JavaFX is getting there). A full fledged port of a JVM to a mobile platform cannot be carried in spare time, it can be showcased (which it has), but to make it production worthy one or more corporations needs to put their weight behind it. My 2 cents, Tom
Re: JAVAFX on ANDROID
Hey Tom, thanks for you answer. while the OSX font stuff is there and Orcale's goal is to use the native font renderer on each platform. I am sure there must be some kind of an Android font renderer in the code. I couldn't find one until now. Another question: Since I ported you latest jfx78 to Java6 it's now jfx678 ;) What would be the best way to contribute the port? Do you think it's good to contribute it to jfx78 or to have a separate jfx68 branch? regards Matthias Am 11.10.2013 um 18:22 schrieb Tom Schindl tom.schi...@bestsolution.at: On 11.10.13 18:10, Matthias Hänel wrote: Hi Tomas, today, I took the time to investigate a little more time on this. 1. I build an entirely new openjfx78 build for android 2. starting this gave me several errors that lead me to the conclusion that I need a java6 openjfx 3. based on openjfx78 I ported it back to java6 (adapted gradled scripts, and tons of java source code) 4. Now it's almost running on an 18th android. All libraries are firing up until the CssStyleHelper is called with a static call to createStyleHelper. That looks like the font stuff is not in jfx78. That's why new Font returns with null and therefore On OS-X font stuff is definately there in jfx78, but the low-level font stuff is loaded using reflection (at least this was the cause on robovm)! Tom
Re: JAVAFX on ANDROID
Hi Richard, thanks for your fast answer. Am 11.10.2013 um 18:53 schrieb Richard Bair richard.b...@oracle.com: As frustrating as it is, the fact is that today Oracle has no announced plans to release any official JVM for Android and iOS. That being the case, the biggest hurdle to getting FX on iOS and Android is the VM. On the iOS side there has been some success with RoboVM. On Android you can just use Dalvik if you back port to Java 6, or you have to find another VM (XMLVM maybe?? Anybody convince Excelsior to support Android?) that can do the job. The main point of irritation comes from an quite unclear position about providing the JVM and JFX of the Java-platform. That's why I will sumarize what I heard between the lines: 1. there is NO official jvm planned for iOS and Android in the near future. 2. jfx8 is beeing officially maintained until some point for iOS and Android but the actual port is left to the open source community. 3. Linux ARM support is beeing focused officially on the Freescale ARM-platform. our conclusion is: 1. that's not that bad anymore since we have RoboVM for iOS and Davlik on Android. 2. this statement should have been made 1 year ago. Probably, I missed it but it was not clear to my team as well until last week. That's why we took the challenge to do it our selves. 3. This is good for the open source development since we probably can rely on the CPU optimized parts for ARM. There are two parts the problem of a VM. One is the VM technology itself, which is probably the lesser of the two issues because there are a handful of decent VMs around (if you include Dalvik, you've already got one on Android). The second problem are the class libraries. Generally JavaFX doesn't rely on too much from JavaSE beyond what is in the base module; threading and collections and concurrency and so forth. However we are using the diamond operator and in a few places we might use multi-catch (although I don't know of such places myself) and definitely we use default methods in interfaces in one location (ObservableList). Generally we've tried to make it easy to back port to 7, but haven't tried to keep 6 up to date. I would be very interested in the list of code changes Matthias had to make to better understand the situation. Yes, mainly it was the multi-catch stuff and the diamonds and some default methods. It's still enough to maintain ;) As far as fonts (from Matthias' email) I believe the Android port currently uses T2K but Felipe and Tomas were talking about using the new Font support which would delegate directly to Android APIs. This might be one area that Matthias' and Felipe and Tomas can work closely on to get a contribution to make this happen! I have seen T2K in the ARM-Linux port but it's not in the sources since it's one of the libraries that are still in the closed parts of OpenJFX. Is there a fallback? Pango doesn't work either it's not used in the android gradle scripts. I would be happy to integrate it and I am sure I can compile pango for android. I just need a pointer to how I can integrate it into the build process. I changed android.gradle but I am not sure where to put the pango sources. How much time do you think it would take community designers to develop this? RoboVM for iOS I think is basically at this stage, where they've got something up and running to the point of being able to do performance analysis and looking for bugs. It has been a several month process with stops and starts. Tom and the others working on RoboVM might be able to give a better estimate. Does it support swing and javafx or just javafx like the Pi port? What parts of java8 don't work on your standalone VM? I couldn't tell you what does / doesn't work on the standalone VM as that would break all kinds of confidential legal mumbo-jumbo. But I can tell you I've never seen a port of AWT to iOS or Android. kind regards Matthias
Re: JAVAFX on ANDROID
Hi Stefan, thanks for your fast answer. Am 12.10.2013 um 00:47 schrieb Stefan Fuchs snfu...@gmx.de: I think you must |add the flag ||-PCOMPILE_PANGO=true to build the new opensource font stuff. I am sure that's not that easy ;) Actually, I tried it but it didn't do anything in the first place. If I remember correctly I got a similar error, when I first build jfx78 on linux. I made some experiments with javafx on android by myself. I found the following interesting read: http://stackoverflow.com/questions/7153989/java-7-language-features-with-android Well, I didn't use jfx78 vanilla, I used it as a base for the port to java6. I am quite sure that we need a java6 port on the long run to support davlik stable. One other problem I hit, when trying to compile a larger application was: http://stackoverflow.com/questions/15508477/android-my-application-is-too-large-and-gives-unable-to-execute-dex-method-id Ok, interessting, I'll take a look at it when I hit the error. Apparently there is a limit of ||65536 methods per apk file. Besides, I'm currently two releases behind with the jfx78. I'll try to catch up soon. It would be great to read your findings. kind regards Matthias
Re: JAVAFX on ANDROID
Hi Felie, thanks for you fast answer. Am 12.10.2013 um 01:36 schrieb Felipe Heidrich felipe.heidr...@oracle.com: The 'native' font stack for Linux uses Pango (to handle complex text) and freetype (rendering glyph images, outlines, metrics, etc). As long as we manage to build our freetype code on Android we should be able to have something that works. As for pango, I heard it is not available on Android, but JavaFX should be able to work without it (except that Arabic, Hebrew, Thai, Indic and other complex scripts won't work). For the long run I would like to implement our glyph-layout code based on Harfbuzz, which is would replace pango entirely and is available on Android. As far as I can see freetype and pango are conntected to each other in the linux implementation. It's not yet possible to compile just freetype without pango and the other way around. Just an idea. Shouldn't it be possible to have javafx running by default when the font renderer is not working? Most applications don't need a very fancy font renderer, many could rely on any software fallback. Don't you think so? kind regards Matthias
Re: JAVAFX on ANDROID
Hi Tomas, thanks for your fast answer. Am 12.10.2013 um 14:04 schrieb Tomas Brandalik tomas.branda...@oracle.com: I think that PlatformLogger initialization in CssHelper was causing problems. I had to write one. I took the compat library fro robovm. I believe this should be sufficient. But the CssStyleHelper was still causing problems. Not 100% sure though I will look at it when I'm back in the office. (Or you can comment out css processing in the node.) I was able to run without font then. Commenting out Css processing in the node is a good I idea which I tried yesterday but the I ran into other errors that will be caused by the same reason front is missing. I would be great, I you could give me a direction for further investigation. regards Matthias
Re: JAVAFX on ANDROID
Hey Niklas, Am 13.10.2013 um 11:49 schrieb Niklas Therning nik...@therning.org: For PlatformLogger et al you can probably use the compatibility lib we have been using for jfx78+RoboVM: https://github.com/robovm/robovm-jfx78-compat Hehe, yes I read it in Tobi's blog post that you wrote one that's why this is what I did in the first place ;) regards Matthias
Re: JAVAFX on ANDROID
I don't think a Java6 backport is necessary. If the jfx78 backport works on RoboVM it should work on Android (provided that the native stuff is there of course). The problem is the dx tool which doesn't accept Java7 .class files, right? IIUC not much happened to the class file format between Java6 and Java7 (except for invokedynamic and what is need to support it but Java7's javac never generates invokedynamic ops). The APIs to support try-with-resources (AutoCloseable) is already in Android and the syntactic sugar added in Java7 (multi-catch, switch on string, diamond, etc) compiles to Java6 compatible bytecode and uses no new APIs. So it should be easy to make a tool using ASM or similar which takes the jfx78 jar file and rewrites the .class files in it to target 1.6 instead of 1.7 and repackage as a new jar. Just my €0.02. If you want to maintain a backport of the backport :-) then go for it. On Mon, Oct 14, 2013 at 8:53 AM, Matthias Hänel hae...@ultramixer.comwrote: Hi Stefan, thanks for your fast answer. Am 12.10.2013 um 00:47 schrieb Stefan Fuchs snfu...@gmx.de: I think you must |add the flag ||-PCOMPILE_PANGO=true to build the new opensource font stuff. I am sure that's not that easy ;) Actually, I tried it but it didn't do anything in the first place. If I remember correctly I got a similar error, when I first build jfx78 on linux. I made some experiments with javafx on android by myself. I found the following interesting read: http://stackoverflow.com/questions/7153989/java-7-language-features-with-android Well, I didn't use jfx78 vanilla, I used it as a base for the port to java6. I am quite sure that we need a java6 port on the long run to support davlik stable. One other problem I hit, when trying to compile a larger application was: http://stackoverflow.com/questions/15508477/android-my-application-is-too-large-and-gives-unable-to-execute-dex-method-id Ok, interessting, I'll take a look at it when I hit the error. Apparently there is a limit of ||65536 methods per apk file. Besides, I'm currently two releases behind with the jfx78. I'll try to catch up soon. It would be great to read your findings. kind regards Matthias
Re: JAVAFX on ANDROID
Hi Tomas, since Tobi told me he had a similiar problem in the first place with the iOS port and he managed to run JFX8 without font. We deactivated fonts. There is some code to deactivate and after that it looks like it is starting the JFX-Application. 10-14 06:06:49.529: INFO/GLASS(1546): glass_view_drawBegin 10-14 06:06:49.529: INFO/javafx(1546): Using getAndroidNativeWindow() from glass. 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/javafx(1546): Some video driver error or programming error occurred. Framebuffer object status is invalid. (FBO - 823) 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/javafx(1546): Error creating framebuffer object with TexID 1) 10-14 06:06:49.599: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.659: WARN/System.err(1546): java.lang.reflect.InvocationTargetException 10-14 06:06:49.669: WARN/System.err(1546): at java.lang.reflect.Method.invokeNative(Native Method) 10-14 06:06:49.669: WARN/System.err(1546): at java.lang.reflect.Method.invoke(Method.java:525) 10-14 06:06:49.709: DEBUG/dalvikvm(1546): GC_FOR_ALLOC freed 330K, 10% free 4129K/4564K, paused 32ms, total 32ms 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFactory.java:253) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:227) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:485) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:418) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:351) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.BaseContext.validateClearOp(BaseContext.java:116) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.es2.ES2Graphics.clear(ES2Graphics.java:78) 10-14 06:06:49.719: WARN/System.err(1546): at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:460) 10-14 06:06:49.719: WARN/System.err(1546): at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:331) 10-14 06:06:49.719: WARN/System.err(1546): at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:88) 10-14 06:06:49.719: WARN/System.err(1546): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) 10-14 06:06:49.729: WARN/System.err(1546): at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:276) 10-14 06:06:49.729: WARN/System.err(1546): at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) 10-14 06:06:49.729: WARN/System.err(1546): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 10-14 06:06:49.729: WARN/System.err(1546): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 10-14 06:06:49.729: WARN/System.err(1546): at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:129) 10-14 06:06:49.729: WARN/System.err(1546): at java.lang.Thread.run(Thread.java:841) 10-14 06:06:49.729: WARN/System.err(1546): Caused by: java.lang.RuntimeException: Error creating vertex shader 10-14 06:06:49.740: WARN/System.err(1546): at com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:132) 10-14 06:06:49.740: WARN/System.err(1546): at com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:173) 10-14 06:06:49.740: WARN/System.err(1546): at com.sun.prism.es2.ES2ResourceFactory.createShader(ES2ResourceFactory.java:168) 10-14 06:06:49.749: WARN/System.err(1546): at com.sun.prism.shader.Texture_Color_Loader.loadShader(Texture_Color_Loader.java:47) 10-14 06:06:49.749: WARN/System.err(1546): ... 19 more 10-14 06:06:49.749: WARN/System.err(1546): java.lang.InternalError: Error loading stock shader Texture_Color 10-14 06:06:49.749: WARN/System.err(1546): at com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFactory.java:256) 10-14 06:06:49.759: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:227) 10-14
Re: JAVAFX on ANDROID
Hi Tomas, never mind, I found the problem over here in the simulator ;) I had to activate the GPU support. So, now I had to BGRA image format for Android and now I get JFX up and running without fonts. There are two things missing: 1. fonts- here we probably need to get pango working for Android right? 2. touch events - I saw that you have got a special Android proxy for the input stuff Java_com_oracle_dalvik_FXActivity_00024InternalSurfaceView_onTouchEventNative This seems to crash for some reason. any idea? It's not that complicated but it is producing a stack trace. After fixing the touch events Brickbreaker with Niklas' no-font-patch should work. I'd pleased to test this. kind regards Matthias Am 14.10.2013 um 12:17 schrieb Matthias Hänel hae...@ultramixer.com: Hi Tomas, since Tobi told me he had a similiar problem in the first place with the iOS port and he managed to run JFX8 without font. We deactivated fonts. There is some code to deactivate and after that it looks like it is starting the JFX-Application. 10-14 06:06:49.529: INFO/GLASS(1546): glass_view_drawBegin 10-14 06:06:49.529: INFO/javafx(1546): Using getAndroidNativeWindow() from glass. 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/javafx(1546): Some video driver error or programming error occurred. Framebuffer object status is invalid. (FBO - 823) 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/javafx(1546): Error creating framebuffer object with TexID 1) 10-14 06:06:49.599: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.659: WARN/System.err(1546): java.lang.reflect.InvocationTargetException 10-14 06:06:49.669: WARN/System.err(1546): at java.lang.reflect.Method.invokeNative(Native Method) 10-14 06:06:49.669: WARN/System.err(1546): at java.lang.reflect.Method.invoke(Method.java:525) 10-14 06:06:49.709: DEBUG/dalvikvm(1546): GC_FOR_ALLOC freed 330K, 10% free 4129K/4564K, paused 32ms, total 32ms 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFactory.java:253) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:227) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:485) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:418) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:351) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.BaseContext.validateClearOp(BaseContext.java:116) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.es2.ES2Graphics.clear(ES2Graphics.java:78) 10-14 06:06:49.719: WARN/System.err(1546): at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:460) 10-14 06:06:49.719: WARN/System.err(1546): at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:331) 10-14 06:06:49.719: WARN/System.err(1546): at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:88) 10-14 06:06:49.719: WARN/System.err(1546): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) 10-14 06:06:49.729: WARN/System.err(1546): at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:276) 10-14 06:06:49.729: WARN/System.err(1546): at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) 10-14 06:06:49.729: WARN/System.err(1546): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 10-14 06:06:49.729: WARN/System.err(1546): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 10-14 06:06:49.729: WARN/System.err(1546): at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:129) 10-14 06:06:49.729: WARN/System.err(1546): at java.lang.Thread.run(Thread.java:841) 10-14 06:06:49.729: WARN/System.err(1546): Caused by: java.lang.RuntimeException: Error creating vertex shader 10-14 06:06:49.740: WARN/System.err(1546): at
Re: JAVAFX on ANDROID
Hi Matthias, cool, I'm surprised you we're able to run it on emulator. I run on device not on emulator for a long time. There wasn't opengl extension GL_EXT_texture_format_BGRA in emulator. But that could have changed overtime. Regarding events: yes there seems to be a problem which I haven't discovered. I've pushed multitouch support and broke touch events on dalvik. I will fix that soon. In order to replace t2k there is freetype library for fonts and glyphs access and harfbuzz for layouting available among system libraries. Although google discourages to use them since they aren't part of public api. It can bring all sorts of compatibility problems (harfbuzz implementation has changed in recent android releases for example). Yes try pango if you have time to spare and share results please. good luck -Tomas On 10/14/2013 01:45 PM, Matthias Hänel wrote: Hi Tomas, never mind, I found the problem over here in the simulator ;) I had to activate the GPU support. So, now I had to BGRA image format for Android and now I get JFX up and running without fonts. There are two things missing: 1. fonts- here we probably need to get pango working for Android right? 2. touch events - I saw that you have got a special Android proxy for the input stuff Java_com_oracle_dalvik_FXActivity_00024InternalSurfaceView_onTouchEventNative This seems to crash for some reason. any idea? It's not that complicated but it is producing a stack trace. After fixing the touch events Brickbreaker with Niklas' no-font-patch should work. I'd pleased to test this. kind regards Matthias Am 14.10.2013 um 12:17 schrieb Matthias Hänel hae...@ultramixer.com: Hi Tomas, since Tobi told me he had a similiar problem in the first place with the iOS port and he managed to run JFX8 without font. We deactivated fonts. There is some code to deactivate and after that it looks like it is starting the JFX-Application. 10-14 06:06:49.529: INFO/GLASS(1546): glass_view_drawBegin 10-14 06:06:49.529: INFO/javafx(1546): Using getAndroidNativeWindow() from glass. 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/javafx(1546): Some video driver error or programming error occurred. Framebuffer object status is invalid. (FBO - 823) 10-14 06:06:49.579: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.579: ERROR/javafx(1546): Error creating framebuffer object with TexID 1) 10-14 06:06:49.599: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.649: ERROR/libEGL(1546): called unimplemented OpenGL ES API 10-14 06:06:49.659: WARN/System.err(1546): java.lang.reflect.InvocationTargetException 10-14 06:06:49.669: WARN/System.err(1546): at java.lang.reflect.Method.invokeNative(Native Method) 10-14 06:06:49.669: WARN/System.err(1546): at java.lang.reflect.Method.invoke(Method.java:525) 10-14 06:06:49.709: DEBUG/dalvikvm(1546): GC_FOR_ALLOC freed 330K, 10% free 4129K/4564K, paused 32ms, total 32ms 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFactory.java:253) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.getPaintShader(BaseShaderContext.java:227) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:485) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:418) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:351) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.impl.BaseContext.validateClearOp(BaseContext.java:116) 10-14 06:06:49.709: WARN/System.err(1546): at com.sun.prism.es2.ES2Graphics.clear(ES2Graphics.java:78) 10-14 06:06:49.719: WARN/System.err(1546): at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:460) 10-14 06:06:49.719: WARN/System.err(1546): at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:331) 10-14 06:06:49.719: WARN/System.err(1546): at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:88) 10-14 06:06:49.719: WARN/System.err(1546): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) 10-14 06:06:49.729:
Re: JAVAFX on ANDROID
Hi Tomas, Am 14.10.2013 um 14:31 schrieb tomas.brandalik tomas.branda...@oracle.com: Hi Matthias, cool, I'm surprised you we're able to run it on emulator. I run on device not on emulator for a long time. There wasn't opengl extension GL_EXT_texture_format_BGRA in emulator. But that could have changed overtime. well, this is probably not an coinsidence. I have seen your BGRA quirk, but this doesn't apply to Android actually. I fixed it like someone fixed it for iOS: public boolean isFormatSupported(PixelFormat format) { GLFactory glFactory = ES2Pipeline.glFactory; switch (format) { case BYTE_RGB: case BYTE_GRAY: case BYTE_ALPHA: case MULTI_YCbCr_420: return true; case BYTE_BGRA_PRE: case INT_ARGB_PRE: if (glFactory.isGL2() || PlatformUtil.isIOS() || PlatformUtil.isAndroid()) { Regarding events: yes there seems to be a problem which I haven't discovered. I've pushed multitouch support and broke touch events on dalvik. I will fix that soon. It would be great, if you could pass the changes to me as well, since I have a backport (java6) from a backport(java7) running over here ;) Otherwise, it could take a while. In order to replace t2k there is freetype library for fonts and glyphs access and harfbuzz for layouting available among system libraries. Although google discourages to use them since they aren't part of public api. It can bring all sorts of compatibility problems (harfbuzz implementation has changed in recent android releases for example). Yes try pango if you have time to spare and share results please. Hhm, this sounds like quite some work. Pango would probably the fastest way to do. Do you know where I have to place it? regards Matthias
Re: JAVAFX on ANDROID
Hi Matthias, The main point of irritation comes from an quite unclear position about providing the JVM and JFX of the Java-platform. That's why I will sumarize what I heard between the lines: 1. there is NO official jvm planned for iOS and Android in the near future. 2. jfx8 is beeing officially maintained until some point for iOS and Android but the actual port is left to the open source community. 3. Linux ARM support is beeing focused officially on the Freescale ARM-platform. That is right. our conclusion is: 1. that's not that bad anymore since we have RoboVM for iOS and Davlik on Android. 2. this statement should have been made 1 year ago. Probably, I missed it but it was not clear to my team as well until last week. That's why we took the challenge to do it our selves. You rock :-) 3. This is good for the open source development since we probably can rely on the CPU optimized parts for ARM. This exactly. All the work we do for embedded translates directly to iOS and android, since it is the same hardware and graphics chips. Cheers Richard
Re: JAVAFX on ANDROID
Hi, I'm not familiar with the Android build process but basically this is what you need: Build graphics/src/main/native-font/fontpath_linux.c to a library called javafx_font, that it will be loaded by PrismFontFactory.java (but used by FontConfigManager.java). This is our fontconfig binding used to locate fonts. All references to fontconfig in the native code are dynamic, so you should only need the JNI references while building this object. Build graphics/src/main/native-font/freetype.c and graphics/src/main/native-font/pango.c To a library named javafx-font-pango The cc flags to build them are pkg-config --cflags pangoft2 + -D_ENABLE_PANGO, the lib flags are pkg-config --libs pangoft2 (see rt/buildSrc/linux.gradle, search pangoCCFlags and pangoLinkFlags). This library will be used by graphics/src/main/java/com/sun/javafx/font/pango/OS.java During runtime you will need to explicitly set -Dprism.text=native so that PangoFactory.java is used (instead of T2KFactory.java). Note: if that is too hard to build pango.o I suppose you could link javafx-font-pango.so only with freetype.o, you should not see any unsatisfied link exception as long as PangoFactory.createGlyphLayout is not called. Setting -Dprism.debugfonts=true should help to see what is getting loaded, -Djavafx.verbose=true prints what library as being loaded by JFX. Regards, Felipe On Oct 13, 2013, at 11:49 PM, Matthias Hänel hae...@ultramixer.com wrote: Is there a fallback? Pango doesn't work either it's not used in the android gradle scripts. I would be happy to integrate it and I am sure I can compile pango for android. I just need a pointer to how I can integrate it into the build process. I changed android.gradle but I am not sure where to put the pango sources.
Re: JAVAFX on ANDROID
For PlatformLogger et al you can probably use the compatibility lib we have been using for jfx78+RoboVM: https://github.com/robovm/robovm-jfx78-compat Den lördagen den 12:e oktober 2013 skrev Tomas Brandalik: I think that PlatformLogger initialization in CssHelper was causing problems. I had to write one. Not 100% sure though I will look at it when I'm back in the office. (Or you can comment out css processing in the node.) I was able to run without font then. -Tomas On 10/11/2013 06:22 PM, Tom Schindl wrote: On 11.10.13 18:10, Matthias Hänel wrote: Hi Tomas, today, I took the time to investigate a little more time on this. 1. I build an entirely new openjfx78 build for android 2. starting this gave me several errors that lead me to the conclusion that I need a java6 openjfx 3. based on openjfx78 I ported it back to java6 (adapted gradled scripts, and tons of java source code) 4. Now it's almost running on an 18th android. All libraries are firing up until the CssStyleHelper is called with a static call to createStyleHelper. That looks like the font stuff is not in jfx78. That's why new Font returns with null and therefore On OS-X font stuff is definately there in jfx78, but the low-level font stuff is loaded using reflection (at least this was the cause on robovm)! Tom
Re: JAVAFX on ANDROID
On 11.10.2013 18:53, Richard Bair wrote: How much time do you think it would take community designers to develop this? RoboVM for iOS I think is basically at this stage, where they've got something up and running to the point of being able to do performance analysis and looking for bugs. It has been a several month process with stops and starts. Tom and the others working on RoboVM might be able to give a better estimate. I don't understand one thing. If you honestly encourage community to make a such big effort as developing, adjusting and maintaining JVMs on the two leading mobile platforms, you don't have any illusions that Oracle VM on android will be released in the next 2 years. :/ Otherwise, if such community's VM will come in blood, sweat and tears and be usable and Oracle announce own VM, then all this community's effort be for nothing and pointless. Sorry for my English. -- Best Regards Rafal
Re: JAVAFX on ANDROID
Perhaps having more than one JVM on iOS/Android implementation is good for JavaFX as a whole? On 14 October 2013 10:06, Rafal rafal...@gmail.com wrote: On 11.10.2013 18:53, Richard Bair wrote: How much time do you think it would take community designers to develop this? RoboVM for iOS I think is basically at this stage, where they've got something up and running to the point of being able to do performance analysis and looking for bugs. It has been a several month process with stops and starts. Tom and the others working on RoboVM might be able to give a better estimate. I don't understand one thing. If you honestly encourage community to make a such big effort as developing, adjusting and maintaining JVMs on the two leading mobile platforms, you don't have any illusions that Oracle VM on android will be released in the next 2 years. :/ Otherwise, if such community's VM will come in blood, sweat and tears and be usable and Oracle announce own VM, then all this community's effort be for nothing and pointless. Sorry for my English. -- Best Regards Rafal
Re: JAVAFX on ANDROID
On 2013-10-14 01:06, Rafal wrote: If you honestly encourage community to make a such big effort as developing, adjusting and maintaining JVMs on the two leading mobile platforms, you don't have any plans that Oracle VM on android will be released in the next 2 years. :/ Otherwise, if Oracle announce own VM, then all this community's effort be for nothing and pointless. Open source done in the spare time by people with a full time job usually never grows much bigger than a nice but not too complex library; layout engines, testing frameworks, a web framework, that kind of stuff. Because as a project grows in size and complexity, so do the (number of) issues and the time required to provide support. That usually is the point where either a company is started (projects like Maven and Gradle) or the project gets corporate funding usually by that a corporation allows some developers to spent worktime on it (Apache, Eclipse, and Java JavaFX is getting there). A full fledged port of a JVM to a mobile platform cannot be carried in spare time, it can be showcased (which it has), but to make it production worthy one or more corporations needs to put their weight behind it. My 2 cents, Tom
Re: JAVAFX on ANDROID
I think that PlatformLogger initialization in CssHelper was causing problems. I had to write one. Not 100% sure though I will look at it when I'm back in the office. (Or you can comment out css processing in the node.) I was able to run without font then. -Tomas On 10/11/2013 06:22 PM, Tom Schindl wrote: On 11.10.13 18:10, Matthias Hänel wrote: Hi Tomas, today, I took the time to investigate a little more time on this. 1. I build an entirely new openjfx78 build for android 2. starting this gave me several errors that lead me to the conclusion that I need a java6 openjfx 3. based on openjfx78 I ported it back to java6 (adapted gradled scripts, and tons of java source code) 4. Now it's almost running on an 18th android. All libraries are firing up until the CssStyleHelper is called with a static call to createStyleHelper. That looks like the font stuff is not in jfx78. That's why new Font returns with null and therefore On OS-X font stuff is definately there in jfx78, but the low-level font stuff is loaded using reflection (at least this was the cause on robovm)! Tom
Re: JAVAFX on ANDROID
Hi Tomas, today, I took the time to investigate a little more time on this. 1. I build an entirely new openjfx78 build for android 2. starting this gave me several errors that lead me to the conclusion that I need a java6 openjfx 3. based on openjfx78 I ported it back to java6 (adapted gradled scripts, and tons of java source code) 4. Now it's almost running on an 18th android. All libraries are firing up until the CssStyleHelper is called with a static call to createStyleHelper. That looks like the font stuff is not in jfx78. That's why new Font returns with null and therefore CssStyleHelper crashes. Do you have any idea how to proceed? Do I really have to port JFX8 from Java8 back to Java6 to get a full flegded JFX8 running on Android? That would be pretty heavy it took me nearly 10 hours to port jfx78 to Java6 (without Ensemble). I am willing to contribute, in case we've got a development direction. kind regards Matthias Am 11.10.2013 um 07:51 schrieb Tobi t...@ultramixer.com: Is this standalone vim working with JIT? Does it works well? We recently tried to use the embedded version of oracle JdKs com Linux/ARMv7 soft float on Android but if doesn't work because if missing linked dylibs on Android..,. Am 11.10.2013 um 06:52 schrieb Tomas Brandalik tomas.branda...@oracle.com: COMPILE_TARGETS=android Good, then use FX78 and you can give it a try. I have my local fork of javafx for testing DalvikLauncher. Standalone Vm for Android is not available for download. -Tomas FX78 should be compatible with Java6 because RoboVM is built on dalvik classlib and JavaFX works there! Tom On 10.10.13 22:42, Tobi wrote: Hi Tomas, How did you test the Dalviklauncher? Do you have a Java6 compatible jFX version? And how did you test the JavaSELauncher? Do you have a JVM for android? Where can we download it? Am 10.10.2013 um 22:01 schrieb Tomas Brandaliktomas.branda...@oracle.com: Hi Tobi and Philippe, Android port is being developed in open source so all developers can see every progress. There is nothing to hide. You can understand it as an example of porting javafx runtime to a linux based platform not a product with a roadmap. As you've noticed there are 2 launchers DalvikLauncher and JavaSELauncher. Have a look at DalvikLauncher it is quite simple how it launches an application. What you need to try it out is an java6 (dalvik vm limitation) compatible javafx fork. On the other hand JavaSELauncher uses standalone vm which is not part of the port. It expects that the vm is packaged with an apk. The launcher unpacks vm, installs it, setup classpath, main class debug port etc (all specified in manifest) and launches it . These are the 2 options which can be further extended by the community. best regards -Tomas On 10/10/2013 06:10 PM, Tobias Bley wrote: Tomas from Oracle is working on the Android port of JavaFX. He has developed a DalvikLauncher and a JavaSELauncher. So he is able to tell you (and me :)) more about that important theme „JavaFX on Android“. Best regards, Tobi Am 10.10.2013 um 16:55 schrieb Philippe TIFFEAUphilippe.tiff...@steria.com: Hello, Someone can make a clear answer about JavaFX on ANDROID ? If it works how to use ? Otherwise the roadmap is Best Regard. This email and any attachments may contain confidential information and intellectual property (including copyright material). It is only for the use of the addressee(s) in accordance with any instructions contained within it. If you are not the addressee, you are prohibited from copying, forwarding, disclosing, saving or otherwise using it in any way. If you receive this email in error, please immediately advise the sender and delete it. Steria may monitor the content of emails within its network to ensure compliance with its policies and procedures. Emails are susceptible to alteration and their integrity (including origin) cannot be assured. Steria shall not be liable for any modification to a message, or for messages falsely sent.
Re: JAVAFX on ANDROID
On 11.10.13 18:10, Matthias Hänel wrote: Hi Tomas, today, I took the time to investigate a little more time on this. 1. I build an entirely new openjfx78 build for android 2. starting this gave me several errors that lead me to the conclusion that I need a java6 openjfx 3. based on openjfx78 I ported it back to java6 (adapted gradled scripts, and tons of java source code) 4. Now it's almost running on an 18th android. All libraries are firing up until the CssStyleHelper is called with a static call to createStyleHelper. That looks like the font stuff is not in jfx78. That's why new Font returns with null and therefore On OS-X font stuff is definately there in jfx78, but the low-level font stuff is loaded using reflection (at least this was the cause on robovm)! Tom
Re: JAVAFX on ANDROID
As frustrating as it is, the fact is that today Oracle has no announced plans to release any official JVM for Android and iOS. That being the case, the biggest hurdle to getting FX on iOS and Android is the VM. On the iOS side there has been some success with RoboVM. On Android you can just use Dalvik if you back port to Java 6, or you have to find another VM (XMLVM maybe?? Anybody convince Excelsior to support Android?) that can do the job. There are two parts the problem of a VM. One is the VM technology itself, which is probably the lesser of the two issues because there are a handful of decent VMs around (if you include Dalvik, you've already got one on Android). The second problem are the class libraries. Generally JavaFX doesn't rely on too much from JavaSE beyond what is in the base module; threading and collections and concurrency and so forth. However we are using the diamond operator and in a few places we might use multi-catch (although I don't know of such places myself) and definitely we use default methods in interfaces in one location (ObservableList). Generally we've tried to make it easy to back port to 7, but haven't tried to keep 6 up to date. I would be very interested in the list of code changes Matthias had to make to better understand the situation. As far as fonts (from Matthias' email) I believe the Android port currently uses T2K but Felipe and Tomas were talking about using the new Font support which would delegate directly to Android APIs. This might be one area that Matthias' and Felipe and Tomas can work closely on to get a contribution to make this happen! How much time do you think it would take community designers to develop this? RoboVM for iOS I think is basically at this stage, where they've got something up and running to the point of being able to do performance analysis and looking for bugs. It has been a several month process with stops and starts. Tom and the others working on RoboVM might be able to give a better estimate. Does it support swing and javafx or just javafx like the Pi port? What parts of java8 don't work on your standalone VM? I couldn't tell you what does / doesn't work on the standalone VM as that would break all kinds of confidential legal mumbo-jumbo. But I can tell you I've never seen a port of AWT to iOS or Android. Richard -Original Message- From: Tomas Brandalik tomas.branda...@oracle.com Sender: openjfx-dev-boun...@openjdk.java.net Date: Fri, 11 Oct 2013 06:52:06 To: openjfx-dev@openjdk.java.net Subject: Re: JAVAFX on ANDROID COMPILE_TARGETS=android Good, then use FX78 and you can give it a try. I have my local fork of javafx for testing DalvikLauncher. Standalone Vm for Android is not available for download. -Tomas FX78 should be compatible with Java6 because RoboVM is built on dalvik classlib and JavaFX works there! Tom On 10.10.13 22:42, Tobi wrote: Hi Tomas, How did you test the Dalviklauncher? Do you have a Java6 compatible jFX version? And how did you test the JavaSELauncher? Do you have a JVM for android? Where can we download it? Am 10.10.2013 um 22:01 schrieb Tomas Brandaliktomas.branda...@oracle.com: Hi Tobi and Philippe, Android port is being developed in open source so all developers can see every progress. There is nothing to hide. You can understand it as an example of porting javafx runtime to a linux based platform not a product with a roadmap. As you've noticed there are 2 launchers DalvikLauncher and JavaSELauncher. Have a look at DalvikLauncher it is quite simple how it launches an application. What you need to try it out is an java6 (dalvik vm limitation) compatible javafx fork. On the other hand JavaSELauncher uses standalone vm which is not part of the port. It expects that the vm is packaged with an apk. The launcher unpacks vm, installs it, setup classpath, main class debug port etc (all specified in manifest) and launches it . These are the 2 options which can be further extended by the community. best regards -Tomas On 10/10/2013 06:10 PM, Tobias Bley wrote: Tomas from Oracle is working on the Android port of JavaFX. He has developed a DalvikLauncher and a JavaSELauncher. So he is able to tell you (and me :)) more about that important theme „JavaFX on Android“. Best regards, Tobi Am 10.10.2013 um 16:55 schrieb Philippe TIFFEAUphilippe.tiff...@steria.com: Hello, Someone can make a clear answer about JavaFX on ANDROID ? If it works how to use ? Otherwise the roadmap is Best Regard. This email and any attachments may contain confidential information and intellectual property (including copyright material). It is only for the use of the addressee(s) in accordance with any instructions contained within it. If you are not the addressee, you are prohibited from copying, forwarding, disclosing, saving or otherwise using it in any way. If you receive this email
Re: JAVAFX on ANDROID
Hi, The 'native' font stack for Linux uses Pango (to handle complex text) and freetype (rendering glyph images, outlines, metrics, etc). As long as we manage to build our freetype code on Android we should be able to have something that works. As for pango, I heard it is not available on Android, but JavaFX should be able to work without it (except that Arabic, Hebrew, Thai, Indic and other complex scripts won't work). For the long run I would like to implement our glyph-layout code based on Harfbuzz, which is would replace pango entirely and is available on Android. Cheers Felipe On Oct 11, 2013, at 3:47 PM, Stefan Fuchs snfu...@gmx.de wrote: Hi Matthias, I think you must |add the flag ||-PCOMPILE_PANGO=true to build the new opensource font stuff. If I remember correctly I got a similar error, when I first build jfx78 on linux. I made some experiments with javafx on android by myself. I found the following interesting read: http://stackoverflow.com/questions/7153989/java-7-language-features-with-android One other problem I hit, when trying to compile a larger application was: http://stackoverflow.com/questions/15508477/android-my-application-is-too-large-and-gives-unable-to-execute-dex-method-id Apparently there is a limit of ||65536 methods per apk file. Besides, I'm currently two releases behind with the jfx78. I'll try to catch up soon. | Best regards, Stefan Hi Tomas, today, I took the time to investigate a little more time on this. 1. I build an entirely new openjfx78 build for android 2. starting this gave me several errors that lead me to the conclusion that I need a java6 openjfx 3. based on openjfx78 I ported it back to java6 (adapted gradled scripts, and tons of java source code) 4. Now it's almost running on an 18th android. All libraries are firing up until the CssStyleHelper is called with a static call to createStyleHelper. That looks like the font stuff is not in jfx78. That's why new Font returns with null and therefore CssStyleHelper crashes. Do you have any idea how to proceed? Do I really have to port JFX8 from Java8 back to Java6 to get a full flegded JFX8 running on Android? That would be pretty heavy it took me nearly 10 hours to port jfx78 to Java6 (without Ensemble). I am willing to contribute, in case we've got a development direction. kind regards Matthias Am 11.10.2013 um 07:51 schrieb Tobi t...@ultramixer.com: Is this standalone vim working with JIT? Does it works well? We recently tried to use the embedded version of oracle JdKs com Linux/ARMv7 soft float on Android but if doesn't work because if missing linked dylibs on Android..,. Am 11.10.2013 um 06:52 schrieb Tomas Brandalik tomas.branda...@oracle.com: COMPILE_TARGETS=android Good, then use FX78 and you can give it a try. I have my local fork of javafx for testing DalvikLauncher. Standalone Vm for Android is not available for download. -Tomas FX78 should be compatible with Java6 because RoboVM is built on dalvik classlib and JavaFX works there! Tom On 10.10.13 22:42, Tobi wrote: Hi Tomas, How did you test the Dalviklauncher? Do you have a Java6 compatible jFX version? And how did you test the JavaSELauncher? Do you have a JVM for android? Where can we download it? Am 10.10.2013 um 22:01 schrieb Tomas Brandaliktomas.branda...@oracle.com: Hi Tobi and Philippe, Android port is being developed in open source so all developers can see every progress. There is nothing to hide. You can understand it as an example of porting javafx runtime to a linux based platform not a product with a roadmap. As you've noticed there are 2 launchers DalvikLauncher and JavaSELauncher. Have a look at DalvikLauncher it is quite simple how it launches an application. What you need to try it out is an java6 (dalvik vm limitation) compatible javafx fork. On the other hand JavaSELauncher uses standalone vm which is not part of the port. It expects that the vm is packaged with an apk. The launcher unpacks vm, installs it, setup classpath, main class debug port etc (all specified in manifest) and launches it . These are the 2 options which can be further extended by the community. best regards -Tomas On 10/10/2013 06:10 PM, Tobias Bley wrote: Tomas from Oracle is working on the Android port of JavaFX. He has developed a DalvikLauncher and a JavaSELauncher. So he is able to tell you (and me :)) more about that important theme „JavaFX on Android“. Best regards, Tobi Am 10.10.2013 um 16:55 schrieb Philippe TIFFEAUphilippe.tiff...@steria.com: Hello, Someone can make a clear answer about JavaFX on ANDROID ? If it works how to use ? Otherwise the roadmap is Best Regard. This email and any attachments may contain confidential information and intellectual property (including copyright material). It is only for the use of the addressee(s
JAVAFX on ANDROID
Hello, Someone can make a clear answer about JavaFX on ANDROID ? If it works how to use ? Otherwise the roadmap is Best Regard. This email and any attachments may contain confidential information and intellectual property (including copyright material). It is only for the use of the addressee(s) in accordance with any instructions contained within it. If you are not the addressee, you are prohibited from copying, forwarding, disclosing, saving or otherwise using it in any way. If you receive this email in error, please immediately advise the sender and delete it. Steria may monitor the content of emails within its network to ensure compliance with its policies and procedures. Emails are susceptible to alteration and their integrity (including origin) cannot be assured. Steria shall not be liable for any modification to a message, or for messages falsely sent.
Re: JAVAFX on ANDROID
Tomas from Oracle is working on the Android port of JavaFX. He has developed a DalvikLauncher and a JavaSELauncher. So he is able to tell you (and me :)) more about that important theme „JavaFX on Android“. Best regards, Tobi Am 10.10.2013 um 16:55 schrieb Philippe TIFFEAU philippe.tiff...@steria.com: Hello, Someone can make a clear answer about JavaFX on ANDROID ? If it works how to use ? Otherwise the roadmap is Best Regard. This email and any attachments may contain confidential information and intellectual property (including copyright material). It is only for the use of the addressee(s) in accordance with any instructions contained within it. If you are not the addressee, you are prohibited from copying, forwarding, disclosing, saving or otherwise using it in any way. If you receive this email in error, please immediately advise the sender and delete it. Steria may monitor the content of emails within its network to ensure compliance with its policies and procedures. Emails are susceptible to alteration and their integrity (including origin) cannot be assured. Steria shall not be liable for any modification to a message, or for messages falsely sent.
Re: JAVAFX on ANDROID
Hi Tobi and Philippe, Android port is being developed in open source so all developers can see every progress. There is nothing to hide. You can understand it as an example of porting javafx runtime to a linux based platform not a product with a roadmap. As you've noticed there are 2 launchers DalvikLauncher and JavaSELauncher. Have a look at DalvikLauncher it is quite simple how it launches an application. What you need to try it out is an java6 (dalvik vm limitation) compatible javafx fork. On the other hand JavaSELauncher uses standalone vm which is not part of the port. It expects that the vm is packaged with an apk. The launcher unpacks vm, installs it, setup classpath, main class debug port etc (all specified in manifest) and launches it . These are the 2 options which can be further extended by the community. best regards -Tomas On 10/10/2013 06:10 PM, Tobias Bley wrote: Tomas from Oracle is working on the Android port of JavaFX. He has developed a DalvikLauncher and a JavaSELauncher. So he is able to tell you (and me :)) more about that important theme „JavaFX on Android“. Best regards, Tobi Am 10.10.2013 um 16:55 schrieb Philippe TIFFEAUphilippe.tiff...@steria.com: Hello, Someone can make a clear answer about JavaFX on ANDROID ? If it works how to use ? Otherwise the roadmap is Best Regard. This email and any attachments may contain confidential information and intellectual property (including copyright material). It is only for the use of the addressee(s) in accordance with any instructions contained within it. If you are not the addressee, you are prohibited from copying, forwarding, disclosing, saving or otherwise using it in any way. If you receive this email in error, please immediately advise the sender and delete it. Steria may monitor the content of emails within its network to ensure compliance with its policies and procedures. Emails are susceptible to alteration and their integrity (including origin) cannot be assured. Steria shall not be liable for any modification to a message, or for messages falsely sent.
Re: JAVAFX on ANDROID
So when I compile my own FX what target to I compile to? I guess I compile on linux, right? Tom On 10.10.13 22:01, Tomas Brandalik wrote: Hi Tobi and Philippe, Android port is being developed in open source so all developers can see every progress. There is nothing to hide. You can understand it as an example of porting javafx runtime to a linux based platform not a product with a roadmap. As you've noticed there are 2 launchers DalvikLauncher and JavaSELauncher. Have a look at DalvikLauncher it is quite simple how it launches an application. What you need to try it out is an java6 (dalvik vm limitation) compatible javafx fork. On the other hand JavaSELauncher uses standalone vm which is not part of the port. It expects that the vm is packaged with an apk. The launcher unpacks vm, installs it, setup classpath, main class debug port etc (all specified in manifest) and launches it . These are the 2 options which can be further extended by the community. best regards -Tomas On 10/10/2013 06:10 PM, Tobias Bley wrote: Tomas from Oracle is working on the Android port of JavaFX. He has developed a DalvikLauncher and a JavaSELauncher. So he is able to tell you (and me :)) more about that important theme „JavaFX on Android“. Best regards, Tobi Am 10.10.2013 um 16:55 schrieb Philippe TIFFEAUphilippe.tiff...@steria.com: Hello, Someone can make a clear answer about JavaFX on ANDROID ? If it works how to use ? Otherwise the roadmap is Best Regard. This email and any attachments may contain confidential information and intellectual property (including copyright material). It is only for the use of the addressee(s) in accordance with any instructions contained within it. If you are not the addressee, you are prohibited from copying, forwarding, disclosing, saving or otherwise using it in any way. If you receive this email in error, please immediately advise the sender and delete it. Steria may monitor the content of emails within its network to ensure compliance with its policies and procedures. Emails are susceptible to alteration and their integrity (including origin) cannot be assured. Steria shall not be liable for any modification to a message, or for messages falsely sent.
Re: JAVAFX on ANDROID
Hi Tomas, How did you test the Dalviklauncher? Do you have a Java6 compatible jFX version? And how did you test the JavaSELauncher? Do you have a JVM for android? Where can we download it? Am 10.10.2013 um 22:01 schrieb Tomas Brandalik tomas.branda...@oracle.com: Hi Tobi and Philippe, Android port is being developed in open source so all developers can see every progress. There is nothing to hide. You can understand it as an example of porting javafx runtime to a linux based platform not a product with a roadmap. As you've noticed there are 2 launchers DalvikLauncher and JavaSELauncher. Have a look at DalvikLauncher it is quite simple how it launches an application. What you need to try it out is an java6 (dalvik vm limitation) compatible javafx fork. On the other hand JavaSELauncher uses standalone vm which is not part of the port. It expects that the vm is packaged with an apk. The launcher unpacks vm, installs it, setup classpath, main class debug port etc (all specified in manifest) and launches it . These are the 2 options which can be further extended by the community. best regards -Tomas On 10/10/2013 06:10 PM, Tobias Bley wrote: Tomas from Oracle is working on the Android port of JavaFX. He has developed a DalvikLauncher and a JavaSELauncher. So he is able to tell you (and me :)) more about that important theme „JavaFX on Android“. Best regards, Tobi Am 10.10.2013 um 16:55 schrieb Philippe TIFFEAUphilippe.tiff...@steria.com: Hello, Someone can make a clear answer about JavaFX on ANDROID ? If it works how to use ? Otherwise the roadmap is Best Regard. This email and any attachments may contain confidential information and intellectual property (including copyright material). It is only for the use of the addressee(s) in accordance with any instructions contained within it. If you are not the addressee, you are prohibited from copying, forwarding, disclosing, saving or otherwise using it in any way. If you receive this email in error, please immediately advise the sender and delete it. Steria may monitor the content of emails within its network to ensure compliance with its policies and procedures. Emails are susceptible to alteration and their integrity (including origin) cannot be assured. Steria shall not be liable for any modification to a message, or for messages falsely sent.
Re: JAVAFX on ANDROID
No, targets=Android Am 10.10.2013 um 22:41 schrieb Tom Schindl tom.schi...@bestsolution.at: So when I compile my own FX what target to I compile to? I guess I compile on linux, right? Tom On 10.10.13 22:01, Tomas Brandalik wrote: Hi Tobi and Philippe, Android port is being developed in open source so all developers can see every progress. There is nothing to hide. You can understand it as an example of porting javafx runtime to a linux based platform not a product with a roadmap. As you've noticed there are 2 launchers DalvikLauncher and JavaSELauncher. Have a look at DalvikLauncher it is quite simple how it launches an application. What you need to try it out is an java6 (dalvik vm limitation) compatible javafx fork. On the other hand JavaSELauncher uses standalone vm which is not part of the port. It expects that the vm is packaged with an apk. The launcher unpacks vm, installs it, setup classpath, main class debug port etc (all specified in manifest) and launches it . These are the 2 options which can be further extended by the community. best regards -Tomas On 10/10/2013 06:10 PM, Tobias Bley wrote: Tomas from Oracle is working on the Android port of JavaFX. He has developed a DalvikLauncher and a JavaSELauncher. So he is able to tell you (and me :)) more about that important theme „JavaFX on Android“. Best regards, Tobi Am 10.10.2013 um 16:55 schrieb Philippe TIFFEAUphilippe.tiff...@steria.com: Hello, Someone can make a clear answer about JavaFX on ANDROID ? If it works how to use ? Otherwise the roadmap is Best Regard. This email and any attachments may contain confidential information and intellectual property (including copyright material). It is only for the use of the addressee(s) in accordance with any instructions contained within it. If you are not the addressee, you are prohibited from copying, forwarding, disclosing, saving or otherwise using it in any way. If you receive this email in error, please immediately advise the sender and delete it. Steria may monitor the content of emails within its network to ensure compliance with its policies and procedures. Emails are susceptible to alteration and their integrity (including origin) cannot be assured. Steria shall not be liable for any modification to a message, or for messages falsely sent.
Re: JAVAFX on ANDROID
FX78 should be compatible with Java6 because RoboVM is built on dalvik classlib and JavaFX works there! Tom On 10.10.13 22:42, Tobi wrote: Hi Tomas, How did you test the Dalviklauncher? Do you have a Java6 compatible jFX version? And how did you test the JavaSELauncher? Do you have a JVM for android? Where can we download it? Am 10.10.2013 um 22:01 schrieb Tomas Brandalik tomas.branda...@oracle.com: Hi Tobi and Philippe, Android port is being developed in open source so all developers can see every progress. There is nothing to hide. You can understand it as an example of porting javafx runtime to a linux based platform not a product with a roadmap. As you've noticed there are 2 launchers DalvikLauncher and JavaSELauncher. Have a look at DalvikLauncher it is quite simple how it launches an application. What you need to try it out is an java6 (dalvik vm limitation) compatible javafx fork. On the other hand JavaSELauncher uses standalone vm which is not part of the port. It expects that the vm is packaged with an apk. The launcher unpacks vm, installs it, setup classpath, main class debug port etc (all specified in manifest) and launches it . These are the 2 options which can be further extended by the community. best regards -Tomas On 10/10/2013 06:10 PM, Tobias Bley wrote: Tomas from Oracle is working on the Android port of JavaFX. He has developed a DalvikLauncher and a JavaSELauncher. So he is able to tell you (and me :)) more about that important theme „JavaFX on Android“. Best regards, Tobi Am 10.10.2013 um 16:55 schrieb Philippe TIFFEAUphilippe.tiff...@steria.com: Hello, Someone can make a clear answer about JavaFX on ANDROID ? If it works how to use ? Otherwise the roadmap is Best Regard. This email and any attachments may contain confidential information and intellectual property (including copyright material). It is only for the use of the addressee(s) in accordance with any instructions contained within it. If you are not the addressee, you are prohibited from copying, forwarding, disclosing, saving or otherwise using it in any way. If you receive this email in error, please immediately advise the sender and delete it. Steria may monitor the content of emails within its network to ensure compliance with its policies and procedures. Emails are susceptible to alteration and their integrity (including origin) cannot be assured. Steria shall not be liable for any modification to a message, or for messages falsely sent.
Re: JAVAFX on ANDROID
COMPILE_TARGETS=android Good, then use FX78 and you can give it a try. I have my local fork of javafx for testing DalvikLauncher. Standalone Vm for Android is not available for download. -Tomas FX78 should be compatible with Java6 because RoboVM is built on dalvik classlib and JavaFX works there! Tom On 10.10.13 22:42, Tobi wrote: Hi Tomas, How did you test the Dalviklauncher? Do you have a Java6 compatible jFX version? And how did you test the JavaSELauncher? Do you have a JVM for android? Where can we download it? Am 10.10.2013 um 22:01 schrieb Tomas Brandaliktomas.branda...@oracle.com: Hi Tobi and Philippe, Android port is being developed in open source so all developers can see every progress. There is nothing to hide. You can understand it as an example of porting javafx runtime to a linux based platform not a product with a roadmap. As you've noticed there are 2 launchers DalvikLauncher and JavaSELauncher. Have a look at DalvikLauncher it is quite simple how it launches an application. What you need to try it out is an java6 (dalvik vm limitation) compatible javafx fork. On the other hand JavaSELauncher uses standalone vm which is not part of the port. It expects that the vm is packaged with an apk. The launcher unpacks vm, installs it, setup classpath, main class debug port etc (all specified in manifest) and launches it . These are the 2 options which can be further extended by the community. best regards -Tomas On 10/10/2013 06:10 PM, Tobias Bley wrote: Tomas from Oracle is working on the Android port of JavaFX. He has developed a DalvikLauncher and a JavaSELauncher. So he is able to tell you (and me :)) more about that important theme „JavaFX on Android“. Best regards, Tobi Am 10.10.2013 um 16:55 schrieb Philippe TIFFEAUphilippe.tiff...@steria.com: Hello, Someone can make a clear answer about JavaFX on ANDROID ? If it works how to use ? Otherwise the roadmap is Best Regard. This email and any attachments may contain confidential information and intellectual property (including copyright material). It is only for the use of the addressee(s) in accordance with any instructions contained within it. If you are not the addressee, you are prohibited from copying, forwarding, disclosing, saving or otherwise using it in any way. If you receive this email in error, please immediately advise the sender and delete it. Steria may monitor the content of emails within its network to ensure compliance with its policies and procedures. Emails are susceptible to alteration and their integrity (including origin) cannot be assured. Steria shall not be liable for any modification to a message, or for messages falsely sent.
Re: JAVAFX on ANDROID
Is this standalone vim working with JIT? Does it works well? We recently tried to use the embedded version of oracle JdKs com Linux/ARMv7 soft float on Android but if doesn't work because if missing linked dylibs on Android..,. Am 11.10.2013 um 06:52 schrieb Tomas Brandalik tomas.branda...@oracle.com: COMPILE_TARGETS=android Good, then use FX78 and you can give it a try. I have my local fork of javafx for testing DalvikLauncher. Standalone Vm for Android is not available for download. -Tomas FX78 should be compatible with Java6 because RoboVM is built on dalvik classlib and JavaFX works there! Tom On 10.10.13 22:42, Tobi wrote: Hi Tomas, How did you test the Dalviklauncher? Do you have a Java6 compatible jFX version? And how did you test the JavaSELauncher? Do you have a JVM for android? Where can we download it? Am 10.10.2013 um 22:01 schrieb Tomas Brandaliktomas.branda...@oracle.com: Hi Tobi and Philippe, Android port is being developed in open source so all developers can see every progress. There is nothing to hide. You can understand it as an example of porting javafx runtime to a linux based platform not a product with a roadmap. As you've noticed there are 2 launchers DalvikLauncher and JavaSELauncher. Have a look at DalvikLauncher it is quite simple how it launches an application. What you need to try it out is an java6 (dalvik vm limitation) compatible javafx fork. On the other hand JavaSELauncher uses standalone vm which is not part of the port. It expects that the vm is packaged with an apk. The launcher unpacks vm, installs it, setup classpath, main class debug port etc (all specified in manifest) and launches it . These are the 2 options which can be further extended by the community. best regards -Tomas On 10/10/2013 06:10 PM, Tobias Bley wrote: Tomas from Oracle is working on the Android port of JavaFX. He has developed a DalvikLauncher and a JavaSELauncher. So he is able to tell you (and me :)) more about that important theme „JavaFX on Android“. Best regards, Tobi Am 10.10.2013 um 16:55 schrieb Philippe TIFFEAUphilippe.tiff...@steria.com: Hello, Someone can make a clear answer about JavaFX on ANDROID ? If it works how to use ? Otherwise the roadmap is Best Regard. This email and any attachments may contain confidential information and intellectual property (including copyright material). It is only for the use of the addressee(s) in accordance with any instructions contained within it. If you are not the addressee, you are prohibited from copying, forwarding, disclosing, saving or otherwise using it in any way. If you receive this email in error, please immediately advise the sender and delete it. Steria may monitor the content of emails within its network to ensure compliance with its policies and procedures. Emails are susceptible to alteration and their integrity (including origin) cannot be assured. Steria shall not be liable for any modification to a message, or for messages falsely sent.
JavaFX on Android: JavaSELauncher?
Next try :) @Oracle: which JVM uses the new JavaSELauncher class in the com.oracle.dalvik package? How to use this class to start JFX on Android? Best, Tobi Anfang der weitergeleiteten Nachricht: Von: Tobias Bley t...@ultramixer.com Betreff: JavaFX on Android: JavaSELauncher? Datum: 1. Oktober 2013 11:29:12 MESZ An: openjfx-dev@openjdk.java.net Mailing openjfx-dev@openjdk.java.net @Oracle: which JVM uses the new JavaSELauncher class in the com.oracle.dalvik package? How to use this class to start JFX on Android? Best, Tobi
JavaFX on Android: JavaSELauncher?
@Oracle: which JVM uses the new JavaSELauncher class in the com.oracle.dalvik package? How to use this class to start JFX on Android? Best, Tobi
JavaOne: JavaFX on Android track canceled?
Hi Tomas, what happened with your JavaOne session track concerning „JavaFX on Android“ (https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=7791)? Best regards, Tobi Am 11.09.2013 um 16:04 schrieb tomas.brandalik tomas.branda...@oracle.com: Hi Tobi, project setup is straightforward like any other android project. Just create an android project and then copy all from openjfx/build/android-sdk/dalvik/lib into libs and build/android-sdk/rt/lib/ext/jfxrt.jar and armeabi folder again into libs. AndroidManifest.xml needs some additional parameters. Something like this: application android:label=@string/app_name android:debuggable=true activity android:name=com.oracle.dalvik.FXActivity android:label=@string/app_name meta-data android:name=launcher.class android:value=com.oracle.dalvik.DalvikLauncher / !-- Full name of the application class to run -- meta-data android:name=main.class android:value=com.samples.Demo / !-- Jdwp debugging port. Don't forget to forward port (adb forward tcp:port1 tcp:port2) -- meta-data android:name=debug.port android:value=0 / intent-filter action android:name=android.intent.action.MAIN / category android:name=android.intent.category.LAUNCHER / /intent-filter /activity /application uses-permission android:name=android.permission.READ_EXTERNAL_STORAGE/uses-permission uses-permission android:name=android.permission.WRITE_EXTERNAL_STORAGE/uses-permission jfxrt.jar must be jdk6 compatible. Font renderer library is missing, it remains in closed source. I just want to emphasise that this is not supported configuration so expect experimenting. I've spent couple of days just to be sure DalvikLauncher works fine. It will require to prepare your own fork of openjfx without jdk8 features ( I haven't found any uptodate) + some hacking with class files version because dexer requires jdk6 compatible classes. good luck -Tomas On 09/09/2013 11:52 PM, Tobias Bley wrote: Hi Tomas, did you already open sourced your android launcher template? Could you please show me an example how to launch a JavaFX app on Androids Dalvik? Best regards, Tobi Am 12.08.2013 um 09:27 schrieb tomas.brandalik tomas.branda...@oracle.com: Ok, I have a template project for android which does necessary setup and copying. But I forgot it's still in closed source. I will add some readme and move it to opensource. -Tomas On 08/11/2013 06:07 PM, Tobias Bley wrote: Hi Tomas, When I extend a default Activity from FXActivity and try to start this activity (coding with Android Studio) the emulator does not find the *.so files from JavaFX (especially the libVMLauncher.so)… Do you know where to copy the JavaFX jars and native libraries? Tobi Am 08.08.2013 um 13:10 schrieb tomas.brandalik tomas.branda...@oracle.com: Hi, I have hardly any info about the project jfx78 backport and its status. I've just had a look at it and saw that last sync happened in beginning of July. It's good if somebody is willing to put his effort into that. In order to run on dalvik we need to compile jfx with jdk1.6 (I suppose 1.7 would do as well). Then there will be some packages missing for example java.beans or sun.misc but it could be fixed somehow. -Tomas On 08/08/2013 10:05 AM, Tobias Bley wrote: Hi Tomas, yes, I was able to build JavaFX for Android, but I would like to start JavaFX on Dalvik…You said its necessary to update the jfx78 backport to the latest openjfx code changes…? btw: I just saw your very interesting JavaOne track ;) Am 08.08.2013 um 09:59 schrieb tomas.brandalik tomas.branda...@oracle.com: Hi Tobi, shouldn't be necessary to patch android.gradle file or set ANDROID_CROSS_TOOLS_VER anymore. The latest changes resolve path to a toolchain taking into account variants of NDK. Thank you for testing it. -Tomas On 08/01/2013 11:41 PM, Tobias Bley wrote: Thanks Tomas, after changing android.gradle script line defineProperty(ANDROID_CROSS_TOOLS_VER, arm-linux-androideabi-4.4.3“)“ to defineProperty(ANDROID_CROSS_TOOLS_VER, arm-linux-androideabi-4.6“)“ and def toolsPlatform = IS_WINDOWS ? windows : IS_MAC ? macosx : linux-x86““ to „def toolsPlatform = IS_WINDOWS ? windows : IS_MAC ? darwin-x86_64 : linux-x86““ I could successfully build OpenJFX for Android von Mac OS X 10.9! So now I’m trying to use Android Studio and the Emulator to start a JavaFX test application on Android. I tried to start my activity which extends from FXActivity class in „com.oracle.dalvik“ package. But how do I have to specify the JavaFX application
JavaFX for Android build is broken
Hi (Tomas), I tried to build JavaFX for Android again but was getting the follow build errors: /Applications/Developer/Java/open-jfx-graphics/rt/modules/graphics/src/main/native-glass/lens/android/android.c: In function 'Java_com_oracle_dalvik_FXActivity_00024InternalSurfaceView_onKeyEventNative': /Applications/Developer/Java/open-jfx-graphics/rt/modules/graphics/src/main/native-glass/lens/android/android.c:240:5: warning: implicit declaration of function 'describe_key_action' [-Wimplicit-function-declaration] /Applications/Developer/Java/open-jfx-graphics/rt/modules/graphics/src/main/native-glass/lens/android/android.c: At top level: /Applications/Developer/Java/open-jfx-graphics/rt/modules/graphics/src/main/native-glass/lens/android/android.c:332:7: error: conflicting types for 'describe_key_action' /Applications/Developer/Java/open-jfx-graphics/rt/modules/graphics/src/main/native-glass/lens/android/android.c:240:5: note: previous implicit declaration of 'describe_key_action' was here :graphics:ccAndroidSurface FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':graphics:ccAndroidSurface'. org.gradle.process.internal.ExecException: Process 'command '/Applications/Developer/Java/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc'' finished with non-zero exit value 1 * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.