maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Applications (https://talk.maemo.org/forumdisplay.php?f=41)
-   -   [BETA RELEASE] PhoneME Advanced (Java Mobile) (https://talk.maemo.org/showthread.php?t=81969)

helloct 2012-03-20 18:06

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
1 Attachment(s)
Quote:

Originally Posted by DavyP (Post 1181524)
Not sure which version you tried, but I tried version 2.0.8. It runs
but is stuck in the intro screen "Testing your connection" :-(

Davy

Ok,

Download this http://bit.ly/GBnvrD

I dont know how to make a JAD file, so I dload JADMaker here http://bit.ly/GBo70s and run it on my PC.

Then, I transfert both files to the N900
... et voila

but it's not that easy to use for chat as I expected.

myname24 2012-03-20 19:12

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
It works but on the N9 typing is a great pain :/

HtheB 2012-03-20 23:48

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by myname24 (Post 1182080)
It works but on the N9 typing is a great pain :/

connect a bluetooth keyboard with it (you can get a very small bt keyboard for cheap nowadays)
or... N950 ftw!

Estel 2012-03-21 01:02

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Or N900 and avoid stupid problems/OS'es ;)

colla84 2012-03-22 11:09

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
need upgrade this support java !!!!

munozferna 2012-03-23 16:37

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
@DavyP I would like to add a request for the sources too, I'm quite sure freemangordon and others can help you to improve this !

DavyP 2012-03-24 00:52

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
My apologies for not having been able to clean up my sources earlier
and making them available online. I have been pretty busy the last two weeks with other work. I have put a first part of the sources online at:

http://davy.preuveneers.be/phoneme/public/maemo/src/

At the moment this is only the Qt4 front end. You also need phoneME
compiled as a library to create the full package. I will try to upload these instructions tomorrow.

Davy

Joseph9560 2012-03-24 01:07

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
It still consumes about 5Mb root space, any plans to move files to opt?

DavyP 2012-03-24 10:58

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by Joseph9560 (Post 1183433)
It still consumes about 5Mb root space, any plans to move files to opt?

Yes, I have not found a way for the phoneME Qt4 front end application to find the dynamically linked libcvm.so library when I put it in /opt/phoneme/bin. That is why I copied it to /usr/lib and the problem was gone.

Before, I used dlopen and dlsym routines to load the libcvm.so from the phoneme dir in /opt, but this was a mess as I had to create function pointers for all relevant methods.

If I can find a way to build the phoneME Qt4 front end and also have it look for libcvm.so in other directories than /usr/lib etc. then this is issue is solved.

PS: I am fully aware of the LD_LIBRARY_PATH environment variable, but I do not consider this as a proper solution.

Davy

DavyP 2012-03-24 11:04

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Some more details for the build instructions are available here:

http://davy.preuveneers.be/phoneme/?q=node/35

I am well aware that these instructions are not for the faint of heart. I hope to simplify the build process when I have a bit more spare time.

Davy

DavyP 2012-03-24 12:07

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Small follow-up:

The build instructions for the library have been greatly simplified but I have to check whether the method I used before to produce libcvm.so is completely compatible with the one mentioned on the website.

I am not familiar with scratchbox to try and set up a build environment, but if someone wants to have a go it, I might be able to help with resolving the last remaining issues.

Davy

freemangordon 2012-03-24 12:12

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by DavyP (Post 1183558)
Small follow-up:

The build instructions for the library have been greatly simplified but I have to check whether the method I used before to produce libcvm.so is completely compatible with the one mentioned on the website.

I am not familiar with scratchbox to try and set up a build environment, but if someone wants to have a go it, I might be able to help with resolving the last remaining issues.

Davy

I will try to build the Qt stuff later (or tomorrow).

Sorry if you've already answered, but where are the checkout/build instructions for libcvm?

nicolai 2012-03-24 13:41

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Thank you DavyP.

sharing the code and buildinstructions is great.

If you want to build libcvm with scratchbox for crosscompiling, just
change the first line of your build script from
export CVM_TARGET_TOOLS_PREFIX=/opt/arm-2011.09/bin/arm-none-linux-gnueabi-
to
export CVM_TARGET_TOOLS_PREFIX=/scratchbox/compilers/cs2007q3-glibc2.5-arm7/bin/arm-none-linux-gnueabi-

So, building the cvm application works, but

compiling Qt4 cvm application gives the following errors:
build/main.o: In function `resetFrameBufferSize(int, int)':
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:229: undefined reference to `resizeFrameBuffer'
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:231: undefined reference to `resizeFrameBuffer'
build/main.o: In function `cvm_exec()':
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:146: undefined reference to `cvm_main'
build/main.o: In function `main':
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:618: undefined reference to `initPixmap'
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:620: undefined reference to `initPixmap'
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:624: undefined reference to `initDrawChars'
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:626: undefined reference to `initPlatform'
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:628: undefined reference to `initGPS'

any ideas?

DavyP 2012-03-24 13:43

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by freemangordon (Post 1183559)
I will try to build the Qt stuff later (or tomorrow).

Sorry if you've already answered, but where are the checkout/build instructions for libcvm?

Like I mentioned on the previous page, they are at

http://davy.preuveneers.be/phoneme/?q=node/34

or go to http://davy.preuveneers.be/phoneme and choose in the menu Maemo/MeeGo -> Build instructions

Davy

DavyP 2012-03-24 14:04

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by nicolai (Post 1183592)
Thank you DavyP.

sharing the code and buildinstructions is great.

If you want to build libcvm with scratchbox for crosscompiling, just
change the first line of your build script from
export CVM_TARGET_TOOLS_PREFIX=/opt/arm-2011.09/bin/arm-none-linux-gnueabi-
to
export CVM_TARGET_TOOLS_PREFIX=/scratchbox/compilers/cs2007q3-glibc2.5-arm7/bin/arm-none-linux-gnueabi-

So, building the cvm application works, but

compiling Qt4 cvm application gives the following errors:
build/main.o: In function `resetFrameBufferSize(int, int)':
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:229: undefined reference to `resizeFrameBuffer'
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:231: undefined reference to `resizeFrameBuffer'
build/main.o: In function `cvm_exec()':
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:146: undefined reference to `cvm_main'
build/main.o: In function `main':
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:618: undefined reference to `initPixmap'
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:620: undefined reference to `initPixmap'
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:624: undefined reference to `initDrawChars'
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:626: undefined reference to `initPlatform'
/tmp/build_phoneme//Downloads/cvm/src/main.cpp:628: undefined reference to `initGPS'

any ideas?

I presume this is during the linking phase. Have you build the libcvm.so library? Like I said, I still have to test the build process to see if the library is fully compatible with the one I built manually. I will do so when time permits.

This library should contain the methods for which you get the errors. However, the build instructions do not include support for GPS and audio and stuff. The initPlatform and initGPS are used for those purposes.

Maybe it is better if I create a slightly trimmed down front-end so that I first get you all started with compiling the basics, without pulling in external dependencies like the customized Location API I got from another project.

Thanks for the scratchbox tip. I have built phoneME with this toolchain before, but used this cross-compiler:

http://www.scratchbox.org/download/f...-1-i386.tar.gz

I never set up the scratchbox build environment as explain over here

http://www.developer.nokia.com/Commu..._for_beginners

I installed the Qt SDK as the above website claimed this would be the best way forward.

Anyway, I had some problems with the toolchain of the Qt SDK to build phoneME. That is why I relied on the CodeSourcery toolchain, and used the Qt SDK ones to build the frontend.

If I can build both with scratchbox, I might be able to have a fully integrated build (without the need for creating a separate library).

I'd say keep an eye on my build webpage the next couple of days to see if there are any updates on how to build this thing.



Davy

nicolai 2012-03-24 14:37

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by DavyP (Post 1183599)
I presume this is during the linking phase. Have you build the libcvm.so library? Like I said, I still have to test the build process to see if the library is fully compatible with the one I built manually. I will do so when time permits.

I used the "create libcvm.so manually" build instruction, the current
one with "export CVM_BUILD_SO=true"
has just more errors:

lib/libcvm.so: undefined reference to `pcsl_string_cat'
...
lib/libcvm.so: undefined reference to `pcsl_file_getusedspace'

DavyP 2012-03-24 15:19

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by nicolai (Post 1183618)
I used the "create libcvm.so manually" build instruction, the current
one with "export CVM_BUILD_SO=true"
has just more errors:

lib/libcvm.so: undefined reference to `pcsl_string_cat'
...
lib/libcvm.so: undefined reference to `pcsl_file_getusedspace'

I was afraid this would happen. The CVM_BUILD_SO is a feature that was already available in the phoneME source tree and noticed it recently while going through the build configuration files, but it does not seem to be compatible with what I need. I just compared the build commands and indeed several libs are not included.

Davy

DavyP 2012-03-24 17:00

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by DavyP (Post 1183631)
I was afraid this would happen. The CVM_BUILD_SO is a feature that was already available in the phoneME source tree and noticed it recently while going through the build configuration files, but it does not seem to be compatible with what I need. I just compared the build commands and indeed several libs are not included.

Davy

I added a few more patches to my website. The build instructions remain the same.

As I have not included a detailed explanation on how to add external dependencies for Location API support, just disable call to initGPS() in the main.cpp source file of the Qt4 front end application.

This time, the libcvm.so library compiles and after commenting the initGPS() call, I don't get any undefined references anymore.

However, I cannot currently test my build on a N900, as I don't have the device with me.

This is all for now, folks.

Cheers,
Davy

DavyP 2012-03-25 21:31

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by DavyP (Post 1183544)
Yes, I have not found a way for the phoneME Qt4 front end application to find the dynamically linked libcvm.so library when I put it in /opt/phoneme/bin. That is why I copied it to /usr/lib and the problem was gone.

Before, I used dlopen and dlsym routines to load the libcvm.so from the phoneme dir in /opt, but this was a mess as I had to create function pointers for all relevant methods.

If I can find a way to build the phoneME Qt4 front end and also have it look for libcvm.so in other directories than /usr/lib etc. then this is issue is solved.

PS: I am fully aware of the LD_LIBRARY_PATH environment variable, but I do not consider this as a proper solution.

Davy

I solved the library location issue by passing -Wl,-rpath,<dir> to
gcc when compiling cvm. This means the cvm application will now
look for the libcvm.so library in /opt/phoneme/bin rather than in /usr/lib

I uploaded a new build: http://davy.preuveneers.be/phoneme/public/maemo/deb/

Davy

Arthuro_Adam 2012-03-27 18:49

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Thanks for the latest update.
I don't know, were there any changes in Opera Mini landscape/portrait mode or auto-rotation, but on N9, it's still the same. After start OM is in landscape mode and no auto rotation.

freemangordon 2012-03-27 20:25

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
1 Attachment(s)
libcvm.so and cvm build according to the instructions.
libcvim.so build in Ubuntu 10.04.4 LTS with -mfloat-abi=softfp -mfpu=vfp -mcpu=cortex-a8 , cvm build in scratchbox

trying opera-mini:

Nokia-N900:/opt/phoneme# $PWD/bin/cvm -Xmx12m -Dmicroedition.profiles=MIDP-2.0 -Dsun.midp.library.name=midp -Dsun.midp.home.path=$PWD/midp/midp_linux_fb_gcc -Dcom.sun.midp.mainClass.name=com.sun.midp.main.Cdc MIDletSuiteLoader sun.misc.MIDPLauncher -suitepath opera-mini-6.5.26955-advanced-en-us.jar -1 Browser
ERROR! Bad CNI/KNI method return type for com.sun.midp.chameleon.skins.resources.LoadedSkinD ata.finishReadingSkinFile()I
java.lang.NoClassDefFoundError: javax.microedition.io.file.FileSystemListener
at java.lang.Class.loadSuperClasses(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknow n Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Unknow n Source)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.misc.MIDletClassLoader.loadFromUrl(Unknown Source)
at sun.misc.MIDletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at Browser.startApp(Unknown Source)
at javax.microedition.midlet.MIDletTunnelImpl.callSta rtApp(Unknown Source)
at com.sun.midp.midlet.MIDletPeer.startApp(Unknown Source)
at com.sun.midp.midlet.MIDletStateHandler.startSuite( Unknown Source)
at com.sun.midp.main.AbstractMIDletSuiteLoader.startS uite(Unknown Source)
at com.sun.midp.main.AbstractMIDletSuiteLoader.runMID letSuite(Unknown Source)
at com.sun.midp.main.CdcMIDletSuiteLoader.main(Unknow n Source)
at sun.misc.MIDPLauncher.main(Unknown Source)
at sun.misc.CVM.runMain(Unknown Source)
MIDlet suite has unexpectedly quit.

javax.microedition.io.file.FileSystemListener
REPORT: <level:2> <channel:1000> MIDlet suite has unexpectedly quit.

javax.microedition.io.file.FileSystemListener
QThread: Destroyed while thread is still running



trying microemu-demo:

Nokia-N900:/opt/phoneme# $PWD/bin/cvm -Xmx12m -Dmicroedition.profiles=MIDP-2.0 -Dsun.midp.library.name=midp -Dsun.midp.home.path=$PWD/midp/midp_linux_fb_gcc -Dcom.sun.midp.mainClass.name=com.sun.midp.main.Cdc MIDletSuiteLoader sun.misc.MIDPLauncher -suitepath microemu-demo.jar -1 org.microemu.midp.examples.simpledemo.SimpleDemoMI Dlet
ERROR! Bad CNI/KNI method return type for com.sun.midp.chameleon.skins.resources.LoadedSkinD ata.finishReadingSkinFile()I


The result looks ugly :)(see attachment), trying to select menus leads to canvs moving, cvm segfaults on exit. Otherwise seems functional. I can bet cvm source is not the latest :p

running test.sh gives no errors:

*CONGRATULATIONS: test Test completed with 411 tests passed and 0 failures
*Output lines starting with a * should be checked for correctness
*They can be compared to src/share/javavm/test/TestExpectedResult

birefringence 2012-03-27 20:53

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Since Germany has switched to summer time (CEST) this weekend, the time in Railnavigator is off by one hour (which would then correspond to CET). This is slightly annoying because all query values use the current time as the default ...

Could there be a bug in the time zone handling? (I've checked Railnavigator with Microemulator, and there it works as expected)

DavyP 2012-03-27 20:57

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by Arthuro_Adam (Post 1184768)
Thanks for the latest update.
I don't know, were there any changes in Opera Mini landscape/portrait mode or auto-rotation, but on N9, it's still the same. After start OM is in landscape mode and no auto rotation.

I have not changed anything w.r.t to the N9 implementation.
On the N9 emulator, the midlets also start in landscape mode
when the device is positioned in portrait mode.
I cannot test auto-rotate with the emulator, though if I remember
correctly, some people claimed auto-rotation worked for them (I
might be wrong).

I presume you have the same issue with other midlets beyond
Opera Mini (e.g. microemu-demo)?

The only easy fix I can think of is adding another entry in the
midlet settings that would rotate the midlet in the other direction.

Davy

DavyP 2012-03-27 21:20

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by freemangordon (Post 1184831)
libcvm.so and cvm build according to the instructions.
libcvim.so build in Ubuntu 10.04.4 LTS with -mfloat-abi=softfp -mfpu=vfp -mcpu=cortex-a8 , cvm build in scratchbox

Thanks for testing. It seems I missed a patch that would solve the
finishReadingSkinFile error. However, this error is not critical.

The FileSystemListener error appears because you do not have
JSR 75 support yet. The build instructions I gave are without
additional JSRs. I will add those details later on.

Regarding the dragging: yes, this is an annoying "feature" and
you actually cannot disable it. So for my builds, when compiling
I actually look for a particular subversion commit in the original
subversion repository that added this feature, and then I undo
those changes. I will see if I can make a patch for that and add it
to the list.

About the ugly results: I forgot the fact that for current high
resolution devices the original background bitmaps (the blue
ones) and fonts are way too small. So I doubled the size of the
bitmaps and use those instead. That is why you only see half of
the text in top and bottom blue bars. That is why I usually have
two builds: one for low resolution devices (e.g. 320x240) and
high resolution devices (e.g. 800x480 and up).

I will probably create another package that you have to unpack
on top of the subversion sources and patches.

Despite all this, I am glad to see you got a build working. The
issues you mention are not unknown to me. I will address them
on my website.

Once again, thanks for testing!

Davy

DavyP 2012-03-27 21:30

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by birefringence (Post 1184840)
Since Germany has switched to summer time (CEST) this weekend, the time in Railnavigator is off by one hour (which would then correspond to CET). This is slightly annoying because all query values use the current time as the default ...

Could there be a bug in the time zone handling? (I've checked Railnavigator with Microemulator, and there it works as expected)

See what happens if you add "-Duser.timezone=GMT+2:00" to the
cvm command line parameters.

In Android, the front-end application (running in Dalvik VM) takes
the current timezone offset (in msec) constructs the above
GMT based timezone, and passes that along when calling cvm.
This means I have to do something similar in Qt4.

Davy

DavyP 2012-03-27 22:04

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
I added two more patches on my website to fix the dragging problem, and the CNI/KNI skin error.

I also included 2 additional packages with resized skin bitmaps and
JSR 75 sources (with instructions on how to enable this JSR).

Warning: I have not done any thorough testing.

Regards,
Davy

freemangordon 2012-03-28 13:11

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
1 Attachment(s)
Quote:

Originally Posted by DavyP (Post 1184867)
I added two more patches on my website to fix the dragging problem, and the CNI/KNI skin error.

Thanks, those problems are gone now.

Quote:

I also included 2 additional packages with resized skin bitmaps and
JSR 75 sources (with instructions on how to enable this JSR).

Warning: I have not done any thorough testing.

Regards,
Davy
Resized bitmaps work ok, no more ugly looking midlets :)

But as long as I add:

export USE_JSR_75=true
export JSR_75_DIR=$WORK_DIR/jsr75
export JSR_75_PIM_HANDLER_IMPL=java

to my build script, libcvm.so no longer compiles. There are lots of error messages for missing classes, see the attachment


DavyP 2012-03-28 15:22

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by freemangordon (Post 1185100)
Thanks, those problems are gone now.


Resized bitmaps work ok, no more ugly looking midlets :)

But as long as I add:

export USE_JSR_75=true
export JSR_75_DIR=$WORK_DIR/jsr75
export JSR_75_PIM_HANDLER_IMPL=java

to my build script, libcvm.so no longer compiles. There are lots of error messages for missing classes, see the attachment

Nice to hear you have a working base MIDP stack. The errors you get with JSR 75 seem to be related to the abstractions for running midlets on a CDC stack rather than a CLDC stack.

I would suggest to leave out JSR 75 support for the time being. I will try to address this issue when I add instructions for including JSR 179 (Location API) support. I still need to clean up this part.

Davy

[DarkGUNMAN] 2012-03-28 15:39

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Hi Davy,

Been testing this without issue since the move to .deb install. Thats why I've been a bit quiet of late :)

Is it possible to get cvm to request packet data access on demand?
When the connection drops or autodisconnects and I try to reload a page, I have to manuall y go to connections and connect again since I have set it to prompt for connection.

Otherwise it is working fine :)

DavyP 2012-03-28 18:14

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by [DarkGUNMAN] (Post 1185150)
Hi Davy,

Been testing this without issue since the move to .deb install. Thats why I've been a bit quiet of late :)

Is it possible to get cvm to request packet data access on demand?
When the connection drops or autodisconnects and I try to reload a page, I have to manuall y go to connections and connect again since I have set it to prompt for connection.

Otherwise it is working fine :)

Yeah, thanks for testing :-). Having a N900 has been quite helpful for me for testing purposes as well.

I actually had some fun disassembling the device. I bought a new digitizer to replace the scratched screen at Tmart.com for 8 EUR, but unfortunately it is missing the metal frame at the back with the 6 screw holes and I cannot seem to separate the metal frame from the original one. Should anyone have some tips where to buy this instead, they are most welcome :-).

Regarding your problem: I presume you are talking about 3G connections? This is not trivial because there are different ways of network connectivity (WiFi, 3G, USB). On Windows Mobile, there is something called ConnectionManager to take care of this. I have no idea if Maemo has APIs to do just that.

Davy

freemangordon 2012-03-28 18:22

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by DavyP (Post 1185142)
Nice to hear you have a working base MIDP stack. The errors you get with JSR 75 seem to be related to the abstractions for running midlets on a CDC stack rather than a CLDC stack.

I would suggest to leave out JSR 75 support for the time being. I will try to address this issue when I add instructions for including JSR 179 (Location API) support. I still need to clean up this part.

Davy

Well, the reason why I am trying to have libsvm.so build with the same functionality as what is distributed by you in .deb, is because I want to try to speedup/optimize the whole thing a bit. An example - in your early builds cvm memory allocation with Opera was about 12% (as shown in top) while in later it is 20% and more. Also Opera scrolling was silk smooth in those earlier builds, while there is a lot of stutter in later. Your builds does not use arm7l and SGX features, which I am familiar with. What I saw in cvm Qt sources is a memory inefficiency I am sure I can get rid of (framebuffer is memcpy'ed to a new buffer, which is then used for QImage, which is then used for QPixmap, and that QPixmap is rotated 270 deg when in portrait). And so on, and so on. But I need a working build tree, to be able to play with different options so at the end of a day a simple benchmark could prove is it faster or slower.

Re location API - I don't think using Qt mobility is the best solution for n900, Qt is a memory hungry animal. There are better solutions AFAIK:
http://wiki.maemo.org/Documentation/...ng_liblocation

I think I can help a lot on that side, we can just agree on the interface you need, and I will implement it in a .so file, so you won't need scratchbox or anything to use native Maemo5 GPS support.

The same is with multimedia support, but lets leave that for now.

I would really appreciate if you could give me some hints on how to workaround missing parts that prevent me from having the fully functional libsvm.so build (to the point your build is functional, of course)

freemangordon 2012-03-28 18:24

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by DavyP (Post 1185205)
Yeah, thanks for testing :-). Having a N900 has been quite helpful for me for testing purposes as well.

I actually had some fun disassembling the device. I bought a new digitizer to replace the scratched screen at Tmart.com for 8 EUR, but unfortunately it is missing the metal frame at the back with the 6 screw holes and I cannot seem to separate the metal frame from the original one. Should anyone have some tips where to buy this instead, they are most welcome :-).

Hmm, better PM vi_, I think he can help.

Quote:

Regarding your problem: I presume you are talking about 3G connections? This is not trivial because there are different ways of network connectivity (WiFi, 3G, USB). On Windows Mobile, there is something called ConnectionManager to take care of this. I have no idea if Maemo has APIs to do just that.

Davy
Yes, it is called ICD:
http://wiki.maemo.org/Documentation/...o_Connectivity

birefringence 2012-03-28 19:26

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by DavyP (Post 1184857)
See what happens if you add "-Duser.timezone=GMT+2:00" to the
cvm command line parameters.

In Android, the front-end application (running in Dalvik VM) takes
the current timezone offset (in msec) constructs the above
GMT based timezone, and passes that along when calling cvm.
This means I have to do something similar in Qt4.

Davy

Yep, that fixes it :-)

DavyP 2012-03-28 21:15

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by freemangordon (Post 1185207)
Well, the reason why I am trying to have libsvm.so build with the same functionality as what is distributed by you in .deb, is because I want to try to speedup/optimize the whole thing a bit. An example - in your early builds cvm memory allocation with Opera was about 12% (as shown in top) while in later it is 20% and more. Also Opera scrolling was silk smooth in those earlier builds, while there is a lot of stutter in later. Your builds does not use arm7l and SGX features, which I am familiar with. What I saw in cvm Qt sources is a memory inefficiency I am sure I can get rid of (framebuffer is memcpy'ed to a new buffer, which is then used for QImage, which is then used for QPixmap, and that QPixmap is rotated 270 deg when in portrait). And so on, and so on. But I need a working build tree, to be able to play with different options so at the end of a day a simple benchmark could prove is it faster or slower.

Re location API - I don't think using Qt mobility is the best solution for n900, Qt is a memory hungry animal. There are better solutions AFAIK:
http://wiki.maemo.org/Documentation/...ng_liblocation

I think I can help a lot on that side, we can just agree on the interface you need, and I will implement it in a .so file, so you won't need scratchbox or anything to use native Maemo5 GPS support.

The same is with multimedia support, but lets leave that for now.

I would really appreciate if you could give me some hints on how to workaround missing parts that prevent me from having the fully functional libsvm.so build (to the point your build is functional, of course)

Obviously, your expertise to improve this build would be much appreciated. Give me some to sort things out. I am doing my best with the limited spare time I have.

I actually used liblocation before to support GPS functionality, but
since this library was not available on MeeGo, but Qt Mobility was on Maemo, I chose that one for both.

Davy

DavyP 2012-03-28 21:45

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by DavyP (Post 1185312)
Obviously, your expertise to improve this build would be much appreciated. Give me some to sort things out. I am doing my best with the limited spare time I have.

I actually used liblocation before to support GPS functionality, but
since this library was not available on MeeGo, but Qt Mobility was on Maemo, I chose that one for both.

Davy

I added a couple of more patches (and one that contains all
modifications) to fix the build issues with JSR75 as well as addon
packages for JSR179 and JSR135.

The build you can produce with these updates should be the
same as my own builds.

Davy

DavyP 2012-03-28 22:06

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by freemangordon (Post 1185207)
What I saw in cvm Qt sources is a memory inefficiency I am sure I can get rid of (framebuffer is memcpy'ed to a new buffer, which is then used for QImage, which is then used for QPixmap, and that QPixmap is rotated 270 deg when in portrait). And so on, and so on. But I need a working build tree, to be able to play with different options so at the end of a day a simple benchmark could prove is it faster or slower.

Note that while this is true, there is no copying of the framebuffer going on for QImage and QPixmap. I need the QPixmap structure to render text using the Qt text drawing routing rather than the built-in monospace fixed bitmap font of phoneme. There might be some overhead, but I am not sure how much. You can always try the JBenchmark and JBenchmark2 midlets which I used for comparison.

The rotation will cause some overhead I am sure. It is the quickest fix for the N9 as I have not been able to properly support rotation (as I would have to use QML for that).

Davy

[DarkGUNMAN] 2012-03-29 06:36

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
If you change your Internet Connection settings to Always ask, and try to open a MicroB browser window you will get prompted which connection or APN to use (WiFi, 3G etc)- getting the same functionality available in PhoneME would be great!

I have started putting Opera Mini through its paces by opening multiple tabs.. this isn't something I do all the time since the back/forward buttons are lightening fast compared to other browsers.
After 4 tabs are open processor load hits maximum and display goes jerky, closing them makes no difference so i just close the browser and open another copy and resume from where I left off in the History.

Like I said I don't use tabbed browsing often, but I thought I'd let you know where performance is getting hit.

I do find I am using Opera Mini more than MicroB since I am now without a car and use 2G for bus journeys due to patchy 3G cover, so thank you again for your efforts in bringing PhoneMe to this platform.. also if Freemangordon and other members of the community are willing to help then things are looking good :)

DavyP 2012-03-29 08:47

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
Quote:

Originally Posted by [DarkGUNMAN] (Post 1185469)
If you change your Internet Connection settings to Always ask, and try to open a MicroB browser window you will get prompted which connection or APN to use (WiFi, 3G etc)- getting the same functionality available in PhoneME would be great!

I have started putting Opera Mini through its paces by opening multiple tabs.. this isn't something I do all the time since the back/forward buttons are lightening fast compared to other browsers.
After 4 tabs are open processor load hits maximum and display goes jerky, closing them makes no difference so i just close the browser and open another copy and resume from where I left off in the History.

Like I said I don't use tabbed browsing often, but I thought I'd let you know where performance is getting hit.

I do find I am using Opera Mini more than MicroB since I am now without a car and use 2G for bus journeys due to patchy 3G cover, so thank you again for your efforts in bringing PhoneMe to this platform.. also if Freemangordon and other members of the community are willing to help then things are looking good :)

This could be a memory related problem. By default I start midlets
with a max Java heapspace of 12MB. Maybe Opera is using a lot
to store and cache all its content, and increasing this limit a bit
would help to open up more tabs.

Cheers,
Davy

freemangordon 2012-03-29 17:38

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
@DavyP - thanks for the last patches, now opera runs. In short - everything is fine :)

I've played a little bit with cvm code and the result so far:

JBenchmark2, no overclock, charger connected, using max score from several runs:

landscape:
DavyP cvm - 862
freemangordon cvm - 874

portrait:
DavyP cvm - 760
freemangordon cvm - 774

not and impressive speedup (only about 2%) :D , but yet

Next thing I will do is to try to get rid of that memcpy(by passing cvm allocated buffer as screen buffer to libcvm), it should give us additional performance boost.

Again, thanks a lot for making this port to maemo and sharing your experience with us.

EDIT:
any chance to PM me a link to download JBenchmark, google finds a site when a registration is needed, but I don't want my inbox full with spam.

Estel 2012-03-29 19:34

Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
 
After first batch of optimization, maybe it will be time for extras-devel?


All times are GMT. The time now is 12:14.

vBulletin® Version 3.8.8