My internship started on 7 March and ended on 6 September of 2011 at Orange Labs in Lannion. My work
consisted in adapting the library called ASM to the Android bytecode. ASM allows to manipulate the Java
bytecode. The new library is called AsmDex. Although the Android platform is also based on Java, the
bytecode its virtual machine uses has been fully reorganised. However, in spite of this dierence, I had to
stay as close as possible to the original interface so that developpers experienced with ASM could easily
switch to AsmDex, but mostly for the programs using ASM not to need modications when working with
AsmDex.
The two main axis of the library have been adapted : the rst allows the reading and the production of
bytecode in a linear way, whereas the other allows to do it as a random, tree-based access. ASM provides
several tools and we'll study the one I adapted to the new library.