Are you looking to use ASN1C with Android?  You can.  Here is what you need to know.

The Basics

The easiest method is to use the Android ADT Eclipse Plug-in and reference our Java runtime in the same way as you would for a normal Java application.   The Android developer tools provide the ability to convert Java bytecode in JAR files into Android (Dalvik VM) bytecode.  Using the ADT plug-in is the easiest way to interact with those tools, but if you choose not to use the plug-in, Android's command-line tools can provide the same functionality.  In any case, all you need to do is convert the ASN1C runtime's Java bytecode into Dalvik VM bytecode and then package that into your Android application; the ADT plug-in just automates this process for you.

Problems with Dalvik VM Verifier?

Our Java runtime is obfuscated, which means it can have some unusual, but legal, bytecode produced by the obfuscator.  Sometimes, a particular JVM (or, in this case, the Dalvik VM) doesn't like bytecode that an obfuscator produces.  We first found this was a problem with our unlimited runtimes and so we changed our obfuscation settings.  If you have version 6.4.2 (or later) of ASN1C, and are using the unlimited runtime, you should not encounter verification errors.    Using the unlimited runtime would be the typical case for use with Android (per-host-licensing not really being an option).

If, however, you are working with the evaluation runtime, you should be sure to have ASN1C version 6.4.3 (or later).  Note that we just discovered that the verification errors persisted in our evaluation runtime while in the midst of packaging and releasing our 6.4.3 kits.  As a result, we started to repackage those kits.  If you have an ASN1C 6.4.3 evaluation kit, you should not encounter verification errors on Android.  If you do, and you were an early adopter of 6.4.3, you may just need to re-download the evaluation kit.  This is likely the case if your runtime JAR file is dated before August 12, 2011.


Published

Category

ASN1C