Jacob Nordfalk <jacob.nordf...@gmail.com> writes: > During Google Summer of Code we had two great students working hard to > enable Apertium into the mobile world: > > - Mikel Artetxe did a great job making lttoolbox-java embeddable, > spinning off a lot of good stuff, such as Apertium-Caffeine and a > one-click installer for trying out language pairs > > - Arink Verma wrote an Apertium Android app using lttoolbox-java, that > allows the user to do off-line, in-phone translation using Apertium > > > As could and should be expected after any GSoC where was work left to > do. > > In this case the app was suffering from memory constraint problems; in > Android you are allowed to use down to 16MB of RAM, a situation that > needed to be handled properly before it would work properly across all > devices. Those of you that tested the previous versions can confirm > that. > After the GSoC I have been continuing optimizing, simplifying and > unifying the code and I am proud to present a fresh version of > lttoolbox-java that can run on a very tiny amount of RAM and which is > faster than ever, deployed in the world's first open source offline, > embedded in-device machine translation system, as an Android app. > > Download and install it from here: > https://apertium.svn.sourceforge.net/svnroot/apertium/builds/apertium-android/ > > The app has been tested and runs on Android 1.6 and later. > I would like to ask every one with an Android phone to install this > app and jugde if there are any things that needs to be done before we > publish it. > (You have to enable 'install from unknown sources' first and uninstall > previous versions)
This might be because of the non-official install method, but when I've clicked "install" and get the choice "Åpne" or "Ferdig", if I click "Åpne", I instead get a message saying Fullfør med ----------------------------- Ingen applikasjoner kan gjøre dette. [ ] Bruk som standardvalg. And when I click the home-button and open the app list, there are two apertium's. Both of them seem to open the Apertium app the same way. Uninstalling one removes both. (I'm running 2.6.37.6-canogenmod-geb50077 (Android 2.3.7) on an old HTC Desire.) Otherwise downloading a language pair and translating works great so far. I'm not sure we should show "apertium-postchunk" etc in the output window though … (it disappeared when it was done translating, just flashed by) > Please note that first translation run is slow, as it needs to index > files, and optimize transfer bytecode. > > > How was the lttoolbox-java 'memory magic' done? Well, it's called > memory mapping. Apertium mainly consists of transducers, which is big > chunks of memory with a binary representation of the dictionary files. > lttoolbox and old lttoolbox-java does the 'usual' thing: Load all > these transducers at startup time, pre-builds data structures in > memory representing the whole file, and keeps them there in memory > during processing. > The new lttoolbox-java indexes the files in the first run and saves > these transducer index cache files for re-use later. > After first run it only loads the parts of the transducers which it > needs from disk. This brings loading time down to near zero > (lttoolbox-java is much faster at loading transducers than lttoolbox). > Loading is done by memory-mapping, which is a sophisticated way of > doing random file access; you get a chunk of memory which represent > the file, each time you read bytes the operating system will make that > this part of the file has been loaded into memory and free the memory > afterwards when not needed anymore. Basically, instead of prebuilding > the data structures, I just look in the files on a per-needed basis. > This is much faster as translation tasks are only using a tiny > fraction of the transducers. > > > > The source is in SVN, and you can get an impression of the work > looking there: > lttoolbox-java: > http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/lttoolbox-java/src/? > view=log > Android app: > http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/apertium-mobile/apertium- > android/src/?view=log > > Ive done a lot of work on simplifying the app to make it robust and > adoptable. In the directory > http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/apertium-mobile/apertium- > android/src/org/apertium/android/?pathrev=42121 you see my unification > and simplification. In the package 'extended' is Arink's work > (modified), which includes som extended functions, such as a widget, > SMS translator, database, file manager. > > > I'd like to ask you what you think about permissions and > functionality: > > Should the Apertium app we publish be a basic app, simple for others > to adopt, requring no permissions (apart from internet permission to > download pairs), or a full-blown app able to access your SMSes and SD > card? Currently the app requires permissions to read your SMS'es and > the data on your SD Card. > SD Card access would be nice for manual installation of self-compiled > language pairs (but would you really deploy unpublished work in your > phones?) and for storing language pairs (each one takes ~10MB when it > is uncompressed - but how many would a user install?). > > Yours, > Jacob -- Kevin Brubeck Unhammer GPG: 0x766AC60C ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d _______________________________________________ Apertium-stuff mailing list Apertium-stuff@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/apertium-stuff