Creating an Android app which uses a provider library

1. Get the library jar from your phone, using the ADB (Android Debugger Bridge). It will be in /system/framework somewhere. In my case it was the file fmreceiverif.jar.
2. Unpack the jar and get the classes.dex file.
3. Use dex2jar to convert this file to a jar file, i.e. convert the Dalvik VM code into a regular Java VM byte code.
4. Use jd-gui to get the source files from the jar. In the jave source files there will be the name of the package which is of interest to your app (e.g com.sonyericsson.fmradio).
5. Unpack your ‘target’ android jar file which comes with the SDK (it will be specific for your Android platform).
6. Add the jar file (the one you got after running dex2jar) into the proper place.
7. Use this same tree, which now contains the lib’s jar to create a new, “extended” android jar.
8. Build your app against this new android jar.
9. Use ADB to install the app on your phone and test it.

NOTE : The good thing about this method is that you DO NOT NEED ROOT to do this! 🙂

NOTE : If you simply drop the lib jar under your app directory tree it will add the lib jar into the apk. This often will not be what you want as there may be classes/functions in the lib which need to be run as part of the android environment, to run with specific permissions and loading the jar as part of the app will not provide the necessary level of access and you will get an exception.

One thought on “Creating an Android app which uses a provider library

Leave a Reply

Your email address will not be published. Required fields are marked *