Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

So recently bought an Android tablet, having first had an iPhone.

So with Apple's strategy, apps seem quite restricted. They can really only do a couple of minor things outside of the app (like notifications etc.) and they're also reviewed by Apple.

Android seems to allow a lot more freedom. You have apps that change the keyboard, or change the start up screen or allow you to share across apps etc.

So my question is... if I install something from Play Store, do I know that it will always uninstall properly? Do app developers actually need to write an uninstall program or is this done automatically in the OS?

share|improve this question
    
It's done by the OS, though I'm not sure if apps have the option of cleaning up data on the SD card or something. –  Matthew Read Aug 24 '12 at 3:43
    

1 Answer 1

up vote 8 down vote accepted

Short answer

Generally, apps are cleanly uninstalled, and most if not all of their data will be removed along. Some exceptions may however apply to their data stored on sdcard, if any.

Detailed answer

Android uses a data structure which is defined by the developers API, and developers should stick to it. There are also not too many ways they could deviate, as e.g. file system permissions prevent this.

Aside from the .apk (the app itself) installed at a defined place, there are also defined places for the apps data: All these can only go below /data/data/<package_name> on internal storage (rare chances an app can access other places in internal storage to place its data, except from some "temporary" or cache locations. As for the sdcard, the API strongly recommends to use Android/data/<package_name> as corresponding place (see API documentation).

As long as developers stick to these rules, uninstalling the app will also remove all its data (as the system takes care for all those locations defined by the developer documentation, since these are easily identified via the package name). However, on the sdcard there are almost no restrictions which places an app can access (which is due to the FAT file system used for these cards), and some apps go wild here.

share|improve this answer
    
What about things like registering an app to the system. Say, the app wants to be shown in the Share menu. I assume it asks the OS for this, and I assume the OS remembers this inside a file somewhere. Would that get cleared? –  didibus Oct 29 at 0:43
    
No definite answer to this with sources, but for me it always got cleared. At least I've never seen an uninstalled app appear in the share menu. Still: if the dev e.g. lets the app create stuff on first app start outside of the apps dedicated storage (i.e. /data/data/com.foobar/* resp. the corresponding /sdcard/Android/*), and doesn't take care for that, "corpses" might remain. That part is a question of "clean coding". That's what I've meant by "As long as developers stick to these rules" (see last paragraph of my answer). –  Izzy Oct 29 at 10:14

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.