/en/javainstaller.php last modified: 08.02.2016
I don't like the default java runtime on android which only supports dalvik byte code. So I tried to port another runtime to android. After a few tries I get it running. So I created an app to simplify the install process. The app helps you to install everything required for a java runtime consisting of the virtual machine jamvm and the standard API gnu classpath. x86 and arm architecture is supported.
In version 0.4 I added the two new buttons "install java runtime comandline" and "install java runtime and graphic libraries". So every package can be installed with one click. The package list button opens the package list. Foreach package we have a change Path and Source and a install button. The change path button opens a text input where you can enter the path to install the files. The path of jamvm and glibc should start with /data where you have write and execute permission. Since version 0.3 I added a root mode. So if your phone is rooted, you will be able to install on the /system partition.
When pressing the change path button the app will ask you for a source file path. The path can start with file:// or http://.
terminal emulator and busybox
The terminal emulator and busybox are required for the install process. A lot of custom roms like cyanogenmod have busybox preinstalled, you can simply change the path to your busybox binary. Mostly it is /system/bin or /system/xbin. The terminal emulator apk is from the f-droid repo:https://f-droid.org/repository/browse/?fdfilter=terminal+emulator&fdid=jackpal.androidterm. The busybox binarys are from http://busybox.net/.
The libraries gnu libc, zlib and libffi are required to run jamvm and gnu classpath. The libraries are build from source. Library websites here:http://www.gnu.org/software/libc/ and here: http://www.zlib.net/ and here: http://sourceware.org/libffi/
jamvm and gnu classpath
The virtual machine jamvm and the java API gnu classpath are compiled from source. The source code can be downloaded here for jamvm:http://sourceforge.net/projects/jamvm/files/ and here for classpath:http://www.gnu.org/software/classpath/downloads/downloads.html. Since version 0.4 I link dynamicaly to save memory. Here you can see which flags I used to build it:
./configure -enable-ffi --prefix=/home/julian/jamvmout
./configure --prefix=/home/julian/cpout --disable-gtk-peer --disable-plugin --disable-gconf-peer --disable-Werror
For cross compiling to arm I needed a cross compiler tool chain. I used a precompiled one from http://emdebian.org/. Before building you have to export a few environments:
On configuring you need the --host=arm-linux argument for jamvm it should look like this:
./configure --host=arm-linux --enable-static=yes --prefix=/home/julian/jamvmout
I started to make an awt toolkit for Android so you can run simple gui programs. The toolkit consists of an android activity and the java library. The two parts are connected with a named pipe located in /data/data/julianwi.awtpeer/pipe. I will need to implement a lot more functions to run a useful program. If somebody wants to support the project and has experience with awt than fork the repo on github: https://github.com/julianwi/awtonandroid and implement some functions and send me a pullrequest. More info and screenshots here
You can download the app from f-droid.org or from github.com.
: Use of undefined constant none - assumed 'none' (this will throw an Error in a future version of PHP) in /users/borcteam/www/en/style.php
on line 192