Please clear up something for me. For my own interest I want to write an Android app to use on my phone, by me alone. Maybe written in Mono, or perhaps something else.
It has been suggested to me that I will need to pay a license fee for this. The Android licensing documentation hasn't cleared this up in my mind.
Do I need to implement any form of licensing or pay any license for this? I stress, the app will be for use by me alone (and maybe my wife), on my phone alone (or hers). It won't go near Google Play Store or anything like that.
Just install it on the phone.
Unless you're using a dev tool/SDK/library that requires a license even for non-commercial use, you don't need to do anything.
As long as you don't submit the app to Google Play store, you don't need the licence. You can use the app or even give it to your family and friends. However, you cannot submit to the app store.
So develop it with Android SDK, it's easier and free. And distribute yourself the installer (The Android apk).
Related
So, is there a realiable way to update enterprise/intern apps remotelly?
I work in a company that spreads across my state, including some areas that the access is dificult, so I can't send someone to locally update the app everytime there's a new release.
I'm working with Android/Java at the moment, and we also use Azure DevOps to store the repositories.
I tryied App Center from Microsoft but didn't understood if that could help me update my app or not.
Also, we don't want to publish the application to the PlayStore and make it public. Unless, of course, if that's the only way.
Thank you for your time reading this, I will keep searching something related to this and also share here any solution that I can find.
There's different ways to do so I'll say some but there's definitely more.
You can use Push-link, read about it it does more or less what you are looking for.
Perhaps could work uploading the .apk to Google Play and just publish it for beta testers, here's an old Google Play Private App Guide pdf and perhaps it doesn't work anymore but give it a try.
Also what you tried with App Center perhaps what you are looking for is Distribution In-App Updates
Note: This is not recommended to avoid by passing Google Play to distribute an app
Is there any way android provides to restrict my custom application to get it published other than Google play store? And this app will not be a paid app so I can't use LVL feature and as per below discussion, we can't publish free app with licensing check:
LVL behavior on client side license validity check for free apps
So, not able to find any ways to restrict it to publish my free app to other stores :(.
Why I want to restrict it to publish it to other stores:
Because any hackers can download your app from google play store and inject malware in it and publish infected app to other stores.
Please provide me the guidelines to achieve it.
It doesn't matter. If you're worried about someone injecting malware into your APK just think- they can just as easily lie, say that they're your app, and upload pure malware. They don't actually need to be your app.
Beat them to it. Publish your app on the alternative app stores so that when they try to upload the package name is already taken by your original, clean version.
Here's an idea. Get the installer from here when your app opens and check if it is from Google Play by comparing it to com.android.vending. If it is not, block any use of the app.
But of course hackers can still download your app, remove this kind of security and upload it to other stores. But I guess this can give you an idea? Also Gabe Sechan's answer is possible too.
Is it possible for an android application to act as a custom market place?
The imagined behavior of the app:
Download XYZ app from the built in Google Play Store
Opening XYZ app yields a UI similar to that seen in the Play Store
The user can navigate through XYZ app and select a custom app supported by XYZ to install on their phone
This custom app would not be located on the Play Store and the .apk would be directly installed from the context of the XYZ app/marketplace to the users phone
I did some research and found alternative Android App Stores such as:
Amazon App Store for Android
GetJar
SLideMe
F-Droid
But is it possible to have an alternative marketplace like this that can be accessed from an app that was downloaded from the Google Play Store? Does google allow this type of practice?
So I suppose the heart of my questions is: Is it possible to create an android application that has permissions to install other 3rd party applications directly to a users phone? (without needing to leverage the Play Store or needing to jailbreak the phone)
Thanks in advance for the answers and insights! And please let me know if anything I'm saying doesn't make sense.
(Extra Credit: I would also be curious to learn about the feasibility of doing this with an iOS app as well)
To add to the other answers, you will have problems with some of Google Play's rules. AFAIK they don't allow your app to direct users to a different store. So you won't be able to keep your app on Google Play store in that case.
EDIT
It is not in the Terms and Conditions, as confirmed by #Cumulo Nimbus.
It is in clause 4.5 of the Developer Distribution Agreement:
4.5 Non-Compete. You may not use the Market to distribute or make available any Product whose primary purpose is to facilitate the
distribution of software applications and games for use on Android
devices outside of the Market.
My interpretation of the above was, and still is, that we can't point people to a different app store.
Kudos to #zmarties for pointing me at the Developer Program Policy which links out to the Developer Distribution Agreement. I knew I'd seen this somewhere...
In terms of iOS, Apple does not allow different app stores unless you jailbreak (iOS-speak for rooting) your phone. They are not as open minded as the Google.
Android apps don't need to be rooted in order to install third party apk's. The use just needs to allow this in their settings. The apps you have listed simply instruct their users to enable this setting.
The best example of a third-party "free as in freedom" app store would be F-Droid
Technically it's possible.
The current Developer Program Policy does not seem to prohibit it either - all they have to say on the matter relates to installing "dangerous products" from outside the play store:
Dangerous Products: We don't allow content that harms, interferes with the operation of, or accesses in an unauthorized manner, networks, servers, or other infrastructure.
Malicious scripts and password phishing scams are also prohibited on Google Play, as are apps that cause users to unknowingly download or install apps from sources outside of Google Play.
Having said that, I can't quickly see any alternative apps stores that are themselves in the Play Store.
I am going to have a alpha release of my app, which is not yet on the market. I want to have the app APK link sent out to friends via email so they can download it from my site CDN.
One question here: if I want to give them updates, what will be a good way? Can I download the new APK within the app, and somehow install the APK to replace the old one without anything to do with the market? So my friends can have the app upgraded while it is still in alpha release?
When I did it, I used Zubhium -- they were a web service with a small API that you could install into your app, giving you a mini "app store"-style backend and handling distribution for you. It would host and distribute your APK, connect up to their server when the app launched, check for updates, invalidate old versions, gather crash logs for you, etc. It was very good.
Zubhium are now https://www.vessel.io -- I presume they still have the above features as part of their now-much-bigger service, but when I checked you had to give them a credit card number even to sign up for the free plan, so I've not played with it.
A friend of mine uses http://testflightapp.com for iOS, and it looks like they have an Android version now, so that's certainly worth checking out. A quick search also shows up http://applover.me. #Janusz recommends http://hockeyapp.net/features in his comment.
As #Nanne points out in his answer, the Play Store itself now lets you distribute to limited alpha- and beta-test groups. That looks like it has fairly minimal features compared to the third-party services (no A/B testing, etc.), but will be familiar and free. And it doesn't need an extra SDK rolled into your app.
So, my general answer is that there's more than one professional beta-testing API/service that you could use, that they're generally very useful, quite easy to roll into your app, solve all the problems you're anticipating and more, and often have a free plan to get started. I'd recommend picking one of them rather than trying to roll your own solution.
If you want this only to be able to release your app in Alpha, and maybe later in beta, take a look at the android market again.
Check out this link: https://support.google.com/googleplay/android-developer/answer/3131213?hl=en
It boils down to the fact that you can have an Alpha-test, and a beta test, each with selected users. You can upload your app as normal, so you'll have updates via the market, but not everyone can download your app.
For the beta at least, you can select a community that is the source of your users, so all that are in that community could be testers.
This is the best method for testing I believe.
If I want to deploy to the Android Market it looks like I have two options:
Create my own keystore and upload. When I update my app use that keystore on my APK to ensure that users are given the option to update.
Do step 1, but also implement Application Licensing which will put controls on how the app is used.
Am I correct to assume that step 1 means that anyone could copy my APK once it is purchased from the Android Market and install it anywhere they wish?
How common is it for people to use Application Licensing and is it the defacto approach?
My app will be paid and I want to ensure I am taking the best approach.
Am I correct to assume that step 1 means that anyone could copy my APK once it is purchased from the Android Market and install it anywhere they wish?
Yes you are correct, it would be extremely easy to copy your application.
How common is it for people to use Application Licensing and is it the defacto approach?
I would say it's very common since it's the only way to verify the licence against the Android Market, though I don't have any stats on this. Otherwise you would need to implement your own "Market" and verify purchases in your own.
My app will be paid and I want to ensure I am taking the best approach.
Use LVL, DO NOT use the default implementation. Watch the LVL session from the 2011 IO for a how to.
Often times, people will not simply download an app and copy it anywhere they would like. However, it is possible through some apps and other software for users to copy off APKs from their phones (even though they aren't suppose to). In my opinion, if you app is paid, you should implement Applicant Licensing. It is a very useful tool to help in preventing people from stealing your APKs (in other words, downloading it and then trying to install it some where else) as it checks on start up to ensure that the app is on the phone that purchased it. Otherwise, for free apps, I don't really see the neccessity because it's free and anyone could have downloaded it.