Современные смартфоны изначально обеспечены неплохим средством для переноса программ на "внешнюю" карту памяти (обычно, не переносятся предустановленные приложения). Выпущено немалое количество приложений, позволяющих переносить и предустановленные (не обойтись без root прав).
Ну а если есть root и мы честно признаемся, что не банальное желание "хочу чтобы они были на флешке!" подводит к заданному вопросу, а нехватка свободного места на внутренней памяти. То и решать лучше проблему с памятью. Для этого нужно смонтировать директорию с объёмными данными с внутренней памяти на внешнюю. Даже для этого есть множество приложений (например FolderMount)
Необходимо создать на внешней карте директорию, в которую монтировать и указать её и источник в программе.
В моём случае монтируется директория с данными WhatsApp (как самая тяжеловесная):
С "переносом" приложений сложнее, так как часть системных могут запускаться раньше FolderMount. Но в приложениях тяжелы не они сами, а их кэш (особенно касательно игрушек). Вот его то и надо монтировать на внешнюю карту.
Сами приложения устанавливаются (сохраняются) в директорию /Android/Data. Кэш сохраняется в директорию /Android/Obb.
В моём случае (наименования путей могут отличаться в зависимости от устройства/прошивки) источником был бы: /storage/emulated/0/<wbr />Android/Obb, а Назначением: /storage/extSdCard/A<wbr />ndroid/Obb (но назначению не обязательно совпадать с источником - это может быть и любая директория, по желанию).
То же самое можно проделать с Загрузками (/Download), медиа данными - фото видео (/DCIM)