Google が Android のフレームワークを Java VM で開発することを選択した理由を知りたいです。
Android 用のコードを 6 か月近く書いている過程で、リソースが限られたプラットフォームの VM でコードを実行すると非常に遅いことがわかりました。多くのオーバーヘッドが伴います。Java はポータブルなどであることは知っていますが、ネイティブ言語を使用して、VM が提供するパフォーマンスと機能の両方を取得することはまったく不可能ですか? パフォーマンス指向のアプリケーションの場合、依然としてネイティブ コードを記述し、それを JNI でラップすることになります。
では、なぜ Google はこの特定のスタックを選択したのですか :
- Arm ベースのコア (モバイル デバイスには ARM が最適です)
- Linux (オープンソース)
- Java VM (私の質問)
編集:私はJavaを知っています-JVMは私のサーバー上のC++アプリケーションと同等に動作しますが、Androidでは動作しません。Androidに関してはそうではありません-私の経験の問題として、JNIでラップされたC++コードはJavaコードよりもはるかに高速に実行されます(Javaの静的ブロックからのまったく同じコードでチェックしたことにも注意してください)私はあなたに同意します他のプラットフォームで回答してください。