clojure-android/lein-droid — pull request #35 by sergv (2013-06-17 21:01:58+00:00)
Title: some improvements for signing passwords, aot plugin compilation, proguard integration, native library packaging and auxiliary dx options

This is broad range of commits accumulated that might be useful to someone except myself.

Password commits are plainly convenient if you use non-debug key all the time, which may or may not be a good idea in itself, yet it saves some app uninstalls when keys are switched.

Next I've tried to figure out if there's a lot of reflection warnings in lein-droid plugin which may be responsible for somewhat slow build experience. I should confess that I've done no profiling and have no evidence of build process becoming faster. Moreover, a lot of reflection warnings seems to be located in libraries which I didn't touch. But still, brief experience with clojure on android suggests that reflection is not the fastest way of doing things around and it feels like leiningen could be more responsive as a build system.

I realize that subjective slowness is a bad criteria for making decisions and that premature optimization is bad, but consider this: build system naturally deals with files and paths on the filesystem, in some circumstances processing lots of files. In clojure files and paths usually mean java.io.File and String objects. If reflection is going to be used for every File object encountered during build process then it can be quickly improved without much effort.

Next I've added "droid create-obfuscated-dex" command that uses proguard to create optimized jar that dx will operate upon.

Native library packaging and proguard support are not primarily for clojure projects, they're used by android projects in general ando so they're made with making lein-droid better general-purprose android build system in mind.

I'm a bit unsure about commit fixing inference of application name for run command. It didn't infer correct name for java application with manifest like this http://pastebin.com/Fs4E6VDc so I've tried to fix the matter. Please review my fix and throw it away if it does not fit.

Lastly, some means of passing options to dx executable we added along with sample descriptions of most of lein droid's configuration options.