MV

MV

Friday, September 14, 2012

Avare is Now on Google Play

I have released Avare on Google Play store.


Avare is an open source aviation GPS with no ads, and free sectional charts. It provides all basic GPS navigation facilities a VFR pilot would need for navigating on FAA sectional charts. All lower 48 states of US are covered.



Here is the latest video showing Avare use on a first generation Android phone device: http://www.youtube.com/watch?v=Mkakc-JVJXY

Here is the link to install Avare:
https://play.google.com/store/apps/details?id=com.ds.avare

The open source page is at https://sourceforge.net/projects/aviationgps/. You can browse the source, compile and load yourself (if you do want to explore technical aspects of it), and even generate sectional maps.

In my last blog I provided some technical details on how to generate the maps. In here, I talk about actual programming.

I am extremely thankful to my fellow pilot John Wiley (ja4u.net) for providing valuable feedback for the product from a user's perspective.

-- Technical details

Generating maps was quite involved. Android programming was the easy part. There are key points that I will mention here that took me a bit of effort to figure out.

1. Large bitmaps cannot be parceled. There are no warnings when parcel fails due to size. Maximum parcel size is 1 MB. This stems from a problem that Android does not free bitmaps automatically in its garbage collector when an activity exits, so large bitmaps must always be created once from within a separate service.

2. Large bitmaps should always be loaded in Async tasks, otherwise the UI thread will hang

3. Google APK size of 50 MB requires this 350 MB software to be loaded in APK + expansion configuration. Maps must also be unzipped from the service in an Async task.

4. All database sqlite queries must also be done from within Async tasks.

5. Since large maps cannot be parceled due to 1 MB parcel size limit, a local bind to a service is required.

6. Save all states in services, because the activities have short life cycle, and state is critical because map state from zipped expansion archive takes up to one minute to restore on a slow device.

Rest can be read from source at the source forge repository online.

No comments:

Post a Comment