How many versions of Android are in the wild (hundreds). How many versions of iOS (one). How many different hardware platforms for Android (again, hundreds). How many different hardware platforms for iOS (again, one). Want to know why it's more difficult to anticipate how all Android platforms are going to react to your software vs knowing how "all" iOS platforms will react?
I agree. However, you asked why DJI's Android version was more buggy. That is the reason why. Not saying that DJI could not do a better job in preventing things like crashes.
No.
If your analysis was correct, problematic apps across the Android ecosphere would be ubiquitous. They aren't.
I've been developing on Android since it was first released. I coded dozens of apps, from simple crap to very sophisticated data acquisition, analysis, and display programs.
I've also developed for iOS, although not nearly as much. Still, plenty to know both platforms, and their run-times very well.
The problem is not the range and variation in devices on Android. As I said, Google has done a very good job of implementing the APIs and technical infrastructure to handle this problem cleanly. If you bother to account for this capability, your app will run well on just about any Android device.
Obviously, as you point out, this isn't an issue with iOS. As such, any app developed initially on iOS without any attention to the compatability/portability framework in Android will be very, very hard to "graft" that on after the fact successfully. In fact, having gone through this before as a developer, what we're seeing with GO4 is nothing surprising.
Once again, this is not an Android problem. It's not that apps can't be designed and coded to run well on all Android platforms, and succeed. However, a bad port from iOS to Android is going to result in a buggy, problematic app on Android. Guess what? Same thing happens in reverse too, when a native Android app is poorly ported to iOS.