Category Archives: Building

Facebook Mobile HACK – Tel Aviv

Once in while I have a chance to attend an event that actually leaves an impression, “Facebook Mobile Hack” was one of those.

The event lasted for 12 hours ! it had technical lectures from Facebook R&D and what I think was the cream the la creme, the hackaton.

If you had a chance to read Mark’s manifest then you understand that intense hack days like these are rooted deep in the Facebook culture and all I can say that it was magnificent.

Beer in one end, coffee on the other I sat in one of the corners of the hanger and started coding for about 5 hours, sitting on my chair and feeling how the adrenaline is pumping. At the end of the hackaton all of the contenders went to stage, pitched the idea to all of us and to the panel of judges (Yossi Vardi,  influential VCs, Angels and techies).

The winner of the event was a cool app called Instapeace which connects FB and Instagram. Unfortunately I didn’t win, but you can see the end result on the Android Market – I Want To Buy

For those of you interested in the technical stuff you can download the presentations from here.

Leave a comment

Filed under Building

AOP on Android – Duplicate files at the same path inside the APK

This post won’t deal with Android/aop configuration, for more information on the subject  I would recommend reading this one.

I’ve been struggling all day to resolve an annoying issue I had with aspectJ, Android and Maven.

When compiling java class files to dex the dex compiler packs everything under the same file, classes.dex. During this process if for any reason you have files with the same name that exist under the same path then you’ll have the dreadful exception “Duplicate files at  the same path inside the APK”.

Whenever using the aspectj maven plugin a configuration file named builddef.lst is created and is placed in the project build output directory. It seems that this is the culprit for duplicate file exception. One way to solve it is to use argumentFileName parameter under the plugin configuration:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.4</version>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>    <!-- use this goal to weave all your main classes -->
            </goals>
        </execution>
    </executions>
    <configuration>
        <argumentFileName>trace.lst</argumentFileName> <!-- Set the name here -->
        <complianceLevel>1.6</complianceLevel>
        <verbose>true</verbose>
        <showWeaveInfo>true</showWeaveInfo>
        <aspectLibraries>
            <aspectLibrary>
                <groupId>com.blinxbox</groupId>
                <artifactId>aop</artifactId>
            </aspectLibrary>
        </aspectLibraries>
    </configuration>
</plugin>

The problem is the need to give a different name for each library that uses aop, annoying to the say the least.
If only we could remove the configuration file from the final jar/apk, guess what…you can. The jar plugin comes to the rescue:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <excludes>
            <exclude>**/trace.lst</exclude>
        </excludes>
    </configuration>
</plugin>

We are excluding trace.lst and avoiding the problem from the start. Make sure to add this plugin under the build section of your pom file for each jar/apk that uses aop and you are done.

Leave a comment

Filed under Building

Android SDK under command line environment

I have a dedicated server as a build machine running Ubuntu server edition. I want to run my Android builds and for doing that I need the android SDK.

As you all know in order to download the various packages you need GUI interface, so how do you install them if you use CLI only.

Do the following:

  1.  Download the android SDK from http://developer.android.com/sdk/index.html
  2. tar xvzf <tgz file>
  3. Add to your path …/<android_dir>/tools
  4. run ‘android update sdk -u’ and everything will be downloaded to your computer.

Leave a comment

Filed under Building