The purpose of this project is to experiment my research for my thesis.
My topic is : [the efficient implementation of dynamic languages
in constrained environments] 1.
My studies are based on the [Java] 2 and the [JSR 292] 3.
I use Dalvik, the virtual machine of [Android] 4, to support my research.
You can download SDK releases and factory images for Nexus [here] 1
- AOSP [package] 1
- (new) android runtime: ['ART 292'] 11
- virtual machine: ['Dalvik 292'] 6
- core API: ['Libcore 292'] 7
To use this work, you need to compile with Javac 7 and run with the portable interpreter.
/!\ WARNING /!\
ART compiles but can not run yet !
This project contains three sub-projects ([art] 11, [dalvik] 6 and [libcore] 7).
To get the whole project (including 'art', 'dalvik' and 'libcore'),
you can download our modified AOSP package from our [website] 1 and clone each project
or use the script 'aosp.py':
python aosp.py
If no argument given, this script download the last version of our work.
To know the arguments list, type the command:
python aosp.py -h
When the project is compiled,
you can create an Android SDK to create/compile/install/... your applications.
To do this, initialize the project and make the SDK [(google website)] 8:
lunch sdk-eng
make [-j<NCPU>] sdk
The 'aosp.py' can create a factory image for a Nexus device using the compiled source:
python aosp.py -i <device> [-v <version>] [-l]
Examples:
python aosp.py -l -i . # list all factory versions availables
python aosp.py -i manta # create the factory image for 'Nexus 10' with the last version
python aosp.py -i manta -v 4.4.3.292 # create the factory image for 'Nexus 10' with the version '4.4.3.292'
Download the [Google's binaries] 9 for your device,
extract them in the root of this project and then execute them.
Initialize the project for your device.
For example, to initialize with a Nexus 10 :
lunch full_manta-eng
When the project is compiled, connect your device and flash it (with root rights or with [(linux rules)] 10).
fastboot -w flashall
Or you can use our [factory images] 1.
- To initialize :
export EXPERIMENTAL_USE_JAVA7=true
export USE_CCACHE=1
source build/envsetup.sh
lunch full-eng
- To compile :
make [-j<NCPU>] [showcommands]
mmm <directory>
- To run :
emulator
- To use the portable interpreter (wrote in C)
adb shell stop
adb shell setprop dalvik.vm.execution-mode int:portable
adb shell start
- To use Dalvik (ART doesn't work yet !)
adb shell setprop persist.sys.dalvik.vm.lib libdvm.so
- To clean :
make clobber