'Best' depends on your metric. Android has a feature to just back up and restore the entire phone, but if you don't want say your photos going to the cloud then that may not be for you.
I personally handle it on a per-app basis and transfer the necessary files via USB and PC.
Contacts - open up contacts app, settings, export to vcf. Copy the vcf to the new phone and run through virtually the same routine to import your contacts.
Texts / phone log: "SMS Backup & Restore" app, do a backup to the local storage then copy those files off to the new phone, install that app, do a restore. The data files it creates are XML so you could read them yourself / use it as evidence.
My internet messaging app has its own backup and restore function that I use and transfer the files via USB+PC to the new phone, as does my note-taking app.
Photos: I just transfer all the photo-containing folders on my phone from the old to the new via USB+PC.
Admittedly my technique doesn't cover a couple of things like my use of Firefox bookmarks and creating web page shortcuts on the phone's desktop, and my Shuttle player playlists. If recreating it manually is sufficiently faffy next time around, I'll look into backing up those bits of info as well.