Distributing (and updating) an enterprise Android application that is to be used in-house only [closed]
I'm building an Android application for an enterprise customer that will be used in-house (and not sold). Though we have additional auth measures, I'd rather not deploy the application on the marketplace.
I was just wondering if anybody had previously done something of this sort, and had suggestions.
Also, If we were to upload the APKs, how could we handle updates to our software? As I understand it, the Android marketplace handles update notifications if the Marketplace is used. Would we have to write a service of our own to monitor for updates?
A Google I/O 2011 talk, "Taking Android to Work", covers this problem, but does not offer a very satisfying solution. See the talk on YouTube (between about 30:00 and 36:00), or the PDF Slides.
In summary, the talk suggests building an "Internal App Directory", which is essentially a private app market for an organisation. The PackageManager API can be used for querying the installed applications, and installing new applications. You'll have to periodically check for updates yourself.
I would think this is a common problem, but unfortunately I haven't found any good existing solutions for this, and it seems like you'll need to implement all of this yourself (both client-side and server-side). You can check out this question, but I didn't find the listed solutions appealing.
If the organisation only uses a single organisation-wide Android application, it is probably simpler to implement all of this in the application itself, instead of in an "Internal App Directory".
Update 2012/03/23:
Since my first answer I checked out some mobile device management (MDM) solutions. Two of them I considered were AirWatch and MaaS360. Both of them have built-in enterprise app stores, which you can use to distribute the apps. The largest issue with them is the pricing - AirWatch is the cheapest decent MDM solution I've found, at $3/user/month.
If the enterprise wants full MDM functionality (many enterprises do), and can afford it, go for an MDM solution with a built-in enterprise app store. If you only want updates for a single application, Pushlink as posted by Victor Hugo seems perfect.
Take a look at https://www.push-link.com/. It might solve your problems.
You will have to write your own service to notify of updates. You can use a listener to push the update to the phone where it can be automatically downloaded by the listener, but I believe you will need to have the user manually hit the "install" button to update the app since it's not coming from the marketplace. Also, depending on the app configuration you may need to uninstall and reinstall the application on update, but unfortunately I don't have details or instances where that would have to be the solution.
Also, keep in mind that AT&T phones don't (out of the box) allow for installing apps not from the marketplace. They are said to be working on a solution for this, but it might only be for the Amazon App Store.
Edit: You will also need to make sure the phones the app is installed on has "Unknown Sources" checked in Settings>Applications
This isn't exactly what one might term the perfect solution to the problem, but there seem to be a few people coming out with enterprise Mobile Device Management solutions. Here's a few I found (I'm still not sure if our customer'd want to go for these, but the existing approach of chasing everybody up per email just doesn't scale!).
Trellia MobileIron: Almost impossible to get any useful non-corp-speak info from this website. AirWatch: The only people who seem to have bothered to actually tell you how much it costs ($3/device/month; pricey!)
http://f-droid.org/
A custom andriod market like setup with free open source softwares.
精彩评论