2012-01-21 21 views
3

残念ながら、Googleはずっと私を助けていませんでした:私は、Windowsの電話7電話7:コードをどのように実行しますか?

  • 上(Phone 7の開発者ツールで書かれた)アプリケーションの実行に関するいくつかの情報を探していますと、それは通常の.NETバイトコードでありますそれは電話に配備されていますか?
  • はいの場合、電話機にJITコンパイラがありますか?

generealでは、Phone 7のプログラムの実行方法や、AndroidやIOSのコンセプトに違いがある場合に興味があります。

おかげ

答えて

9

は、それが電話に展開され、通常の.NETバイトコードのですか?

はい。

はいの場合、電話機にはJITコンパイラがありますか?

はい、それは、CLRに含まれています。それは電話で動作するデスクトップCLRのモバイル版ですが、まったく同じ原理です。 JITerは、実行時にMSILコードをネイティブコードに変換します。

Androidはネイティブコードとマネージコードの両方をサポートしています。 Javaマネージドコードを使用すると、実行時に仮想マシンとバイトコードプロセスのコンパイルが行われます。それはすでに、さらにコンパイルを必要としないネイティブコードであるとして、iPhone用

のObjective-Cは異なっています。

+0

うわーを参照してください、それは、感謝速かったです。だから私はAndroidが同じもの(Javaバイトコード+ dalvik VMのようなもの)をやっていると仮定します。最後に私が知りたいのは、IOSとの比較です。私はそれがIOS上のObjective Cであることを知っていますが、このコードはIPhone上で直接実行されるのですか、あるいはその間にある種のJittingもありますか? – alapeno

+0

@alapeno、いいえ、目的Cはジャストインタイムコンパイルを使用しません。仮想マシンはありません。ここでは、チェックアウトも興味深い記事です:http://cocoawithlove.com/2010/07/is-virtual-machine-for-cocoa.html –

+0

のObjective Cは、ネイティブコードを生成しますが、それを実行するために、任意のVMを必要としません。 Androidはネイティブコードもサポートしています。 Windows Phone 7は残念ながらそうではありません。 –

4

あなたはコードがWindowsマシン上で実行される方法に精通している場合、Windowsの携帯電話は非常に似ています。

iOSは実際には異なります。 JITコンパイルは許可されていません。たとえば、MonoTouchは実行前にアプリケーションをプリコンパイルしています。 Mono Touch Limitations

+0

これは、IOSアプリケーション用のコードが開発者マシン上でコンパイルされ、それ以上のメカニズムを必要とせずに電話機で「ネイティブ」に実行されることを意味します。 – alapeno

+0

iOS用に開発するための「デフォルト」の方法は、実際にはネイティブコードにコンパイルされたObjective-Cを使用しています(C/C++言語では一般的です)。 –

関連する問題