29

Xamarin.iOS (MonoTouch) と Xamarin.Android (Mono for Android) のしくみを理解しようとしています。私は小さなアプリを書き、.app と .apk ファイルを調べました。

.app ファイル (iOS) の内部には、多くの .dll ファイルがあります。しかし、なぜ?私が読んだすべてのページと投稿で、彼らは次のように述べています。アプリはネイティブで実行され、何も解釈されません。xamarin 開発者が「ネイティブ」で何を意味するのか誰か説明してもらえますか?

.apk ファイルの内部は、単一の .dll ファイルではありません。

4

3 に答える 3

10

「ネイティブ」の Xamarin 定義には、次のものが含まれますが、これらに限定されません。

  • C# コードのすべての行がマシン コードにコンパイルされ、.app にパックされます。AOTによって抑制されるため、実行時にJITはありません。詳細については、次の Web サイトを参照してください。

http://www.mono-project.com/AOT

(Xamarin.Android はまだ JIT を使用していることに注意してください。http://xamarin.com/how-it-works )

  • プラットフォーム ネイティブ タイプ / API へのアクセスは完全にオープンであるため、少数の API 呼び出しに限定されません (HTML5 / JavaScript を使用している場合は、どのような制限があるかがわかります)。

  • 設計するユーザー インターフェイスは、iOS (CocoaTouch) または Android (Skia) によって公開されるネイティブ API にバインドされます。パフォーマンスやルック アンド フィールを損なう中間層はありません。

.ipa や .apk の内容について、誰が気にしますか? もちろん、@Jason のコメントは、いくつかの内部実装の詳細を示しています。

于 2013-06-21T03:47:09.160 に答える