Resource Management

A standard web trick you can also do in HME:
Load all your icons at once and reduce resource usage.
Put all your Icons into a single image, then when you need an icon, use that (already allocated) image, set the view size to only be big enough for the icon you want, and set the Translation on the view to move that icon into view (and don't set any of the FIT flags, and align the image to the top/left). This could also be done with an

An idea for sound effects:
Similar to the above icon trick, since TiVo only allows a very limited format and length for sound effects, instead use an MP3 file (if you're not using MP3s in your app). Embed all your sound effects into a single MP3 (with a few seconds of silence between each). Load that MP3 and pause it, then setPosition to where the sound effect you want is, play, and pause enough seconds later. Now there is no limit to what sounds your app can make!
However, you can't play two sounds at once this way as there is only one MP3 player. You could do two by making another "track" using a Video file that is hidden.

Resources are stored on "spare disk space" so if the TiVo is full of videos, you don't have a lot to work with. You can actually get a "disk full" kind of error on images.

Although you want to remove resources when you're done with them to save on the limited resource space, that doesn't seem to be foolproof.
Even if you're removing those resources, it doesn't seem to prevent eventually having an App that can't allocate views, although it isn't erroring out with an "out of memory" complaint. It's possible this is seen because the view/resource IDs had been exhausted, not because it was out of actual resource space. I.e. there is a limit to the number of views you can allocate - that might be a numeric id limit, not just a "views allocated and not yet removed" limit.
Research in this area would be appreciated, especially to find out limits of newer models than the documentation.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License