Is there a good way for shredding my Android's free space to ensure data cannot be recovered? I want to permanently shred my deleted files in free space. I have heard of secure eraser and ishredder.
Managed flash memory
Most smartphones use managed eMMC memory which means the flash chip itself is performing the flash wear leveling (the eMMC chip has a small CPU integrated which performs the wear leveling). Effectively this means that you can not shred anything on such flash chips. If you try to overwrite a the data blocks that belongs to a file the newly written data is simply redirected to a new position in flash memory. Therefore the original data still exists but can no longer be accessed through the file-system.
The only way to erase at least large parts of the data with a high probability is to totally use-up all free space by writing one or more large files that use up all free space. But be careful - some devices "don't like it" if all flash memory is used (device crash, does not boot, ...). Therefore it is better to spare some KB and leave it unused.
The only safe way to totally erase data on a modern Android smartphone is to perform a factory reset. As modern Android devices are encrypted by default by performing a factory reset you erase and regenerate the encryption key (at least this is the way it should work).
Unmanaged flash memory
On some simple/cheap Android system it may happen that the flash wear leveling is not implemented inside the eMMC memory itself. Instead those devices use unmanaged flash memory and implement wear leveling in software inside the file-system driver. This require special file-systems that include the wear leveling such as YAFFS/YAFFS2/JFFS2. On such systems it would be possible with root permissions to really overwrite and therefore erase data of one specific file.