How can I move apps to SD on non-adopted Marshmallow storage? Everyone seems to be getting excited about Marshmallow's adoptable storage feature, but to me it seems like a major regression.  There can be several reasons for not adopting external storage:


When upgrading from Lollipop, I already have an SD card full of stuff. So re-formatting it and erasing everything in order to convert it to adoptable storage is a major disincentive.  That would require transferring many GB of data off the device, re-formatting, and then transferring it back on, and I'm not sure how to do that in a robust manner or whether it's even possible, since adopted storage probably stores stuff in different ways.
My SD card might be too slow for it to make sense using it as an extension of internal storage.
I want to be able to use my removable SD card in other devices (e.g. quickly transferring huge video files to a laptop).


Based on these reasons, if I don't adopt storage, AFAICS that means that apps can only be stored on internal memory.  And since I have a lot of apps, that means that since the Marshmallow upgrade, my device is regularly close to full, causing lots of functionality to break.

So is there really no way to move apps to non-adopted external SD storage on Marshmallow?  If so, do I have any alternative besides uninstalling apps to free space, or downgrading to Lollipop?  If not, this would be hugely disappointing and suggest that Google really didn't think carefully enough before providing this feature.
Marshmallow internal storage can be better used with a mixed-format SD card as I also explain in my blog here:

http://blog.sam.liddicott.com/2016/02/android-6-semi-adopted-storage.html

First, you need adb working.


Have SD card inserted and formatted as portable.
Eject your SD card from the Storage &amp; USB menu
Use "adb shell" to list your adoptable storage:


like this

$ adb shell sm list-disks adoptable

disk:179_64


disk:179_64 is my SD card that can be made adoptable, I want 75% as external SD:

$ adb shell sm partition disk:179_64 mixed 75


Note: Your card may be listed with a comma instead of an underscore, e.g. disk:179,64 in which case, that is what you type:

$ adb shell sm partition disk:179,64 mixed 75



This will erase the entire SD card, giving 75% as portable storage and the rest as adopted internal storage.
Reboot your phone.
From Storage &amp; USB menu, select the SD card (internal) and choose Migrate Data (so that apps, where possible, are installed there).
From the Storage &amp; USB rename the adopted storage to have some name like Adopted otherwise if it has the same name as the external storage partition, the USB MTP view may only show the internal


Now you have adopted storage that can accept apps which allow "move to SD", and also an SD card where you can store Plex movies, google play music, photos, etc.

Thanks to @fernio who tipped me to post here.