The problem with Android is the lag inherent with Java itself. Apple developers use Objective C, and Android developers use Java.
The sticky details in as consise layman terms as I can think of right now:
Java has garbage collection, which Objective C does not have. Garbage Collection makes it easier for developers, but causes lag.
Garbage collection frees up memory, but it can run at times beyond developer control. When garbage collection starts, the application must be paused/frozen for a split second until the memory is freed, and then the program can run again.
Objective C, on the other hand, leaves it to the developers to do this manually. (The latest version of Objective C has the compiler do a lot of the work using ARC - but it's still not garbage collection).
It's sort of like you throw out all sorts of stuff in your garbage can in your room...... Java would be like your mom who randomly comes in to dump your garbage can into the trash, thus emptying it. It might be almost empty, it might be overflowing when she comes in, but when she comes in, you have to cease all your activities, like talking with friends, until she leaves. Objective C is YOU taking the garbage can out when you are free and doing nothing. Like, you just got off the phone and now are free for 2 minutes to do this activity.
Until this issue is solved in Java, Android will lag. I know there are some future developments to java in allowing garbage collection to run without pausing/freezing the app, but that is tricky as well.