Multiple APK Support in Android Market

Google I/O  announced  plans to add several new capabilities to help developers manage their products more effectively in Android Market. We’re pleased to let you know that the latest of those, multiple APK support, is now available. Multiple APK support is a new publishing option in Android Market for those developers who want extra control over distribution.

Until now, each product listing on Android Market has included a single APK file, a universal payload that is deliverable to all eligible devices — across all platform versions, screen sizes, and chipsets. Broad distribution of a single APK works very well for almost all applications and has the advantage of simplified product maintenance.

With multiple APK support, you can now upload multiple versions of an APK for a single product listing, with each one addressing a different subset of your customers. These APKs are complete, independent APKs that share the same package name, but contain code and resources to target different Android platform versions, screen sizes, or GL texture-compression formats. When users download or purchase your app, Android Market chooses the right APK to deliver based on the characteristics of the device.

When you upload multiple APK files, Android Market handles them as part of a single product listing that aggregates the app details, ratings, and comments across the APKs. All users who browse your app’s details page see the same product with the same description, branding assets, screenshots, video, ratings, and comments. Android Market also aggregates the app’s download statistics, reviews, and billing data across all of the APKs.

Multiple APK support gives you a variety of ways to control app distribution. For example, you could use it to create separate APKs for phones and tablets under the same product listing. You could also use it to take advantage of new APIs or new hardware capabilities without impacting your existing customer base.

To support this new capability, we’ve updated the Developer Console to include controls for uploading and managing APKs in a product listing — we encourage you to take a look. If you’d like to learn more about how multiple APK support works, please read the developer documentation. As always, please feel free to give us feedback on the feature through the Market Help Center.

Extending the reach of GIS with Google Maps: Ubisense myWorld

Today, Peter Batty from Ubisense updates us about how their product, myWorld, is using Google Maps API Premier to make sense of complicated GIS data.

Ubisense myWorld on an iPad

Large utilities and telcos have very large amounts of geospatial data about their network assets, typically hundreds of tables and millions of records, and complex rules for how these should be displayed on a map. Ubisense myWorld is a Software as a Service (SaaS) product that brings the ease of use and performance of Google Maps to the challenge of presenting these complex network maps in a way which is simple to use. myWorld uses the Google Maps JavaScript API V3 with Google Maps API Premier

The data for these network maps is stored and maintained in a Geographic Information System (GIS). These systems have been around a lot longer than Google Maps, for 30 years or so, and tend to be powerful but complex to use. We have focused on working with data from GE Smallworld for utility GIS, but can also work with data from ESRI and others. We render the network data from the GIS to raster map tiles to create an image map overlay that is displayed on top of the Google Maps basemap. The advantage of this approach versus using a vector data format is that it is much easier to match the cartographic design of the network maps used in the GIS, and the users expect consistency between the systems.

All features on the map need to be clickable so that users can display information about any of the network items such as cables, poles, transformers, etc. To handle this we just define a click event that queries a server to find items close to that point. We use a system called Arc2Earth Cloud, which stores spatial data in Google App Engine.

One cool feature of our application is its tight integration with Google Street View. You can click on an object on the map, such as a pole or a building, and see a Street View of that object. This gives the user additional information that they can’t get from their existing GIS database. We calculate the right bearing for the Street View automatically, and this works surprisingly well, given the potential for mismatches between the Street View and GIS location data. When necessary, the user can adjust and save the view, over-riding the automatic view. We can display markers in the Street View and click on them to display attributes of poles or other characteristics – this is a great feature of the V3 API.

The JavaScript API gives us great portability across multiple platforms. Mobile applications are very important in utilities, as access to and update of map data is often done by field workers. Being able to access the same functionality not only in desktop browsers but on smart phones such as the iPhone or Android, or tablets such as the iPad, is a major benefit. Our main application runs really well on the iPad without any change, and we also provide the same functionality but with modified layout on smart phones. We take advantage of the GPS devices in the phones and link to the built-in maps applications for routing.

I’ve developed geospatial applications on many platforms over the past 20 years, and have been really impressed with how quickly we were able to develop a pretty sophisticated application with the Google Maps V3 JavaScript API while keeping everything very simple for users. We have a lot of ideas for further enhancements, we are just scratching the surface!