2016-10-09 7 views
2

私はXamarinのドキュメントhttps://developer.xamarin.com/guides/android/under_the_hood/architecture/を通過して、それがモノの実行環境内で実行Xamarin - モノとAndroidの通信

「Xamarin.Androidアプリケーションと言うこの実行環境は アンドロイドとサイド・バイ・サイドを実行します。ランタイム(ART)仮想マシンの両方のランタイム環境は、Linuxカーネルの上に を実行し、私の知る限りunderstanとして、開発者が基礎となるシステムにアクセスすることを可能にするユーザーコード 」

に様々なAPIを公開d、アプリは単一のプロセスです - 実行環境が2つあるとはどういう意味ですか?これらの2つの環境が同じプロセス内の異なるスレッドで開始されるようなのでしょうか?それとも、Android Runtimeが起動してからMonoランタイムを起動するようなのですか?

答えて

4

Application Startupにお進みください。ランタイムは、プロセスの作成中にロードされます

Xamarin.Androidビルド処理中のAndroidManifest.xmlにmono.MonoRuntimeProviderのContentProviderを追加することで、このにフック。 mono.MonoRuntimeProvider.attachInfo()メソッドは、Monoランタイムをプロセスにロードする役割を担います。この時点までにMonoを使用しようとすると失敗します。 (注:これは、モノを初期化することができる前に、アプリケーションインスタンスが作成されるサブクラスAndroid.App.Applicationは、(のIntPtr、JniHandleOwnership)コンストラクタを提供する必要がある理由のタイプである。)

AndroidManifest.xmlの言及部分次のようになります:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="foo.sample" android:installLocation="auto" 
      android:versionCode="1" android:versionName="1.0"> 
    <application ...> 

    <provider android:name="mono.MonoRuntimeProvider" 
       android:exported="false" android:initOrder="2147483647" 
       android:authorities="foo.sample.mono.MonoRuntimeProvider.__mono_init__" /> 

    </application> 
</manifest> 
+0

私はこれをupvoteすることができます。これは私の実際の質問を説明するものではありません。「わかっている限り、アプリケーションは単一のプロセスです.2つの実行環境があるとはどういう意味ですか? – Gopal

関連する問題