Skip to main content


Showing posts from 2012

Setting up Android nightly builds using Jenkins

Hi everyone! after few of months working on JS & and building a low level linux service which interacts with depth sensor, I got chance to working on Android base system to build input drivers.

When I started working on it, building kernel module didn't take much time but observed that building a new Android base system was a manual process. Anyone new in team has to spend some time to understand how to trigger build.

I'm a big fan of Cyanogenmod, and looking at how they build and distribute ROM for many devices I felt we can improve our system. So I took this up and setup a Jenkins server on a local machine. Migrating our custom build script was straight forward as its a bash script.

Compared to our previous system, we now have a UI which anyone can access and access latest builds and check compilation logs. Another cool thing about setting it up on Jenkins is that we can now automatically publish it on our file server and send out an email to everyone with link to downl…

Cross platform NPAPI browser plugin.

Recently, I got chance to work on building NPAPI plugin. I've used few NPAPI plugin and had basic idea about what it is but didn't knew how to build one.

Primary use case for me was to make it run on Android and interact with a C++ service running in background. There is a sensor attached with Android based hardware and my task is to build a JavaScript SDK which allows developers to access this hardware sensor data via C++ service.

I started building a simple plugin using NPAPI SDK which has a function which can be invoked using JavaScript from Firefox running on Ubuntu. However, this focuses on building it for Linux.

After some digging, I was able to build it on Android (Gingerbread). But when I tried to load it on Emulator it wasn't working. Looks like a strange issue as it just doesn't register with browser on Android emulator.

 I posted my query on StackOverflow, but didn't come across anything useful. After trying some more I was able to resolve it by adding …