• BorgDrone@lemmy.one
    link
    fedilink
    arrow-up
    0
    ·
    3 months ago

    Several things that made the SD card annoying to developers.

    First: you could not install an APK on the SD card (probably due to DRM reasons). So if you had a larger app and you wanted users to be able to take advantage of the additional storage offered by the SD card you could not do this simply by having a large APK. (Note that this also was true for phones that had no removable SD card but had internal memory that presented itself as ‘external storage’).

    On some phones the normal storage was so small that any larger app had to leverage the external storage to be able to even fit (we’re talking 10+ years ago). The way to do this was using so-called ‘expansion files’. These were additional data files, up to 2GB a piece, that could be installed on the external storage. These came with some additional difficulties.

    • They were pure data files, so they could not contain any executable code. They were just big binary blobs, so none of the Android built-in mechanisms for loading assets depending on screen density, screen size and all that stuff worked. You had to do it all by hand.
    • Since they were just binary blobs, you had to do any organization inside the files yourself. For example, they could be large ZIP files but you had to do all the ZIP handling yourself. Compared to normal APKs that are also ZIP files but where you can just load stuff from the APK archive and it’s all handled by the framework.
    • The expansion files were separate from the APK. The Play Store did try to automatically download them if your app had expansion files, but this was not guaranteed. Furthermore, because they live on an SD card they could disappear at any moment. Your app needed additional logic to deal with this, code to re-download the files if they were missing, code to handle errors during the download, UI to show the download progress, etc.

    Another problem with SD cards was the huge variety in quality of SD cards. Phones internal storage is reasonably fast, but you never know what kind of cheap-ass yanky SD card the users installed in their phone. This caused all kinds of performance problems in more demanding apps and as a developer you had to deal with the fall-out (bad reviews, support requests, etc.)