As an Amie veteran, I have a few things to add.
While petting a Pokemon does give hearts, sometimes it'll only give a music note. That means it's had enough petting, so you need to do something else with it. Here are the steps:
- pet the Pokemon until it stops giving hearts and gives a music note
- feed it Pokepuffs until it will eat no more
- play any game(s) twice. The best is to play on the hardest difficulty you can so you can get the best Pokepuffs. You can deliberately lose the 2nd game if you don't want Pokepuffs to make things go faster
- repeat steps 1-3.
Petting & feeding fills up the Pokepuff meter of a Pokemon.
Playing games will fill up the music note meter and deplete the Pokepuff meter so you can re-pet and re-feed it.
Walking also has the same effect as playing games (i.e. it will fill up the music note meter and deplete the Pokepuff one), but takes longer.
I also play unlimited mode on the Berry/ Yarn Ball games to earn the best Pokepuffs, and:
- you need a score of 100+ on the berry game to get the best Pokepuffs
- you need a score of 800+ on the yarn ball game to get the best Pokepuffs
The Berry one is the fastest for me, and I deliberately lose after I get 100.
Not sure about the puzzle one because I'm crap at it. :x