Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Środowisko wykonywania
Środowisko wykonywania to zestaw zmiennych środowiskowych i właściwości systemu Android mających wpływ na wykonywanie programu. Właściwości systemu Android można ustawić za adb shell setprop pomocą polecenia , podczas gdy zmienne środowiskowe można ustawić przez ustawienie debug.mono.env właściwości systemowej:
## Enable GREF logging
adb shell setprop debug.mono.log gref
## Set the MONO_LOG_LEVEL and MONO_LOG_MASK environment variables
## so that additional Mono messages will be written to `adb logcat`.
adb shell setprop debug.mono.env "'MONO_LOG_LEVEL=info|MONO_LOG_MASK=asm'"
Właściwości systemu Android są ustawiane dla wszystkich procesów na urządzeniu docelowym.
Począwszy od platformy Xamarin.Android 4.6, zarówno właściwości systemowe, jak i zmienne środowiskowe mogą być ustawiane lub zastępowane dla poszczególnych aplikacji przez dodanie pliku środowiskowego do projektu. Plik środowiska to plik w formacie unix w postaci zwykłego tekstu z akcją Kompilacja .AndroidEnvironment
Plik środowiska zawiera wiersze z formatem key=value.
Komentarze to wiersze rozpoczynające się od #. Puste wiersze są ignorowane.
Jeśli klucz zaczyna się od wielkiej litery, klucz jest traktowany jako zmienna środowiskowa i setenv(3) służy do ustawiania zmiennej środowiskowej na określoną wartość podczas uruchamiania procesu.
Jeśli klucz zaczyna się od małej litery, klucz jest traktowany jako właściwość systemu Android, a wartość jest wartością domyślną: Właściwości systemu Android kontrolujące zachowanie wykonywania platformy Xamarin.Android są najpierw wyszukane w magazynie właściwości systemu Android, a jeśli nie ma żadnej wartości, zostanie użyta wartość określona w pliku środowiska. Ma to na celu przesłonięcia adb shell setprop wartości, które pochodzą z pliku środowiskowego do celów diagnostycznych.
Zmienne środowiskowe platformy Xamarin.Android
Platforma Xamarin.Android obsługuje zmienną XA_HTTP_CLIENT_HANDLER_TYPE , która może być ustawiana za pośrednictwem adb shell setprop debug.mono.env akcji Kompilacja lub za pomocą niej $(AndroidEnvironment) .
XA_HTTP_CLIENT_HANDLER_TYPE
Typ kwalifikowany do zestawu, który musi dziedziczyć z programu HttpMessageHandler i jest konstruowany z konstruktora domyślnegoHttpClient().
W środowisku Xamarin.Android 6.1 ta zmienna środowiskowa nie jest ustawiona domyślnie, a program HttpClientHandler będzie używany.
Alternatywnie można określić wartość Xamarin.Android.Net.AndroidClientHandler do użycia java.net.URLConnection w przypadku dostępu do sieci, który może zezwalać na korzystanie z protokołu TLS 1.2, gdy obsługuje go system Android.
Dodano element w środowisku Xamarin.Android 6.1.
Właściwości systemu Xamarin.Android
Platforma Xamarin.Android obsługuje następujące właściwości systemowe, które można ustawić za pośrednictwem akcji kompilacji lub za pośrednictwem adb shell setprop akcji Kompilacja $(AndroidEnvironment) .
debug.mono.debugdebug.mono.envdebug.mono.gcdebug.mono.logdebug.mono.max_grefcdebug.mono.profiledebug.mono.runtime_argsdebug.mono.tracedebug.mono.wrefXA_HTTP_CLIENT_HANDLER_TYPE
debug.mono.debug
Wartość właściwości systemowej debug.mono.debug jest liczbą całkowitą. Jeśli 1wartość , zachowaj wartość "tak, jakby" proces został uruchomiony z mono --debug.
Zazwyczaj pokazuje informacje o plikach i wierszach w śladach stosu itp., bez konieczności uruchamiania aplikacji z debugera.
debug.mono.env
Zawiera rozdzielaną listą |zmiennych środowiskowych.
debug.mono.gc
Wartość właściwości systemowej debug.mono.gc jest liczbą całkowitą.
Jeśli 1wartość , należy zarejestrować informacje O GC.
Jest to równoważne temu, że właściwość systemowa debug.mono.log zawiera gcwartość .
debug.mono.log
Steruje dodatkowymi informacjami, które platforma Xamarin.Android zaloguje się do adb logcatusługi .
Jest to ciąg rozdzielony przecinkami (,), zawierający jedną z następujących wartości:
all: Wydrukuj wszystkie komunikaty. Jest to rzadko dobry pomysł, ponieważ zawieralrefkomunikaty.assembly: Drukowanie.apki analizowanie komunikatów zestawów.gc: Wydrukuj komunikaty związane z GC.gref: Wyświetl komunikaty referencyjne globalne JNI.lref: wyświetl lokalne komunikaty referencyjne JNI.Uwaga
To naprawdę będzie spam
adb logcat. W środowisku Xamarin.Android 5.1 spowoduje to również utworzenie.__override__/lrefs.txtpliku, który może być gigantyczny. Unikać.timing: wyświetl informacje o chronometrażu metody. Spowoduje to również utworzenie plików.__override__/methods.txti.__override__/counters.txt.
debug.mono.max_grefc
Wartość właściwości systemowej debug.mono.max_grefc jest liczbą całkowitą.
Wartość zastępuje domyślną wykrytą maksymalną liczbę GREF dla urządzenia docelowego.
Uwaga: jest to możliwe tylko do użycia adb shell setprop debug.mono.max_grefc , ponieważ wartość nie będzie dostępna w czasie z plikiem environment.txt .
debug.mono.profile
Właściwość debug.mono.profile systemowa włącza profilera.
Jest ona równoważna i używa tych samych wartości co mono --profile opcja . (Zobacz mono(1) strona człowieka, aby uzyskać więcej informacji).
debug.mono.runtime_args
Właściwość debug.mono.runtime_args systemowa zawiera dodatkowe opcje, które powinny być analizowane przez mono.
debug.mono.trace
Właściwość systemowa debug.mono.trace umożliwia śledzenie.
Jest ona równoważna i używa tych samych wartości co mono --trace opcja . (Zobacz mono(1) strona człowieka, aby uzyskać więcej informacji).
Ogólnie rzecz biorąc, nie należy używać. Użycie funkcji śledzenia spowoduje spamowanie danych wyjściowych adb logcat , kilkudniowe spowolnienie działania programu i zmianę zachowania programu (do i w tym dodanie dodatkowych warunków błędu).
Czasami jednak pozwala to na przeprowadzenie dodatkowego badania...
debug.mono.wref
Właściwość debug.mono.wref systemowa umożliwia zastąpienie domyślnego wykrytego mechanizmu słabego odwołania JNI. Istnieją dwie obsługiwane wartości:
jni: Użyj słabych odwołań JNI, utworzonych przez i zniszczonych przezJNIEnv::NewWeakGlobalRef()JNIEnv::DeleteWeakGlobalREf().java: Użyj odwołań globalnych JNI, które odwołują się dojava.lang.WeakReferencewystąpień.
java jest używany domyślnie za pośrednictwem interfejsu API-7 i interfejsu API-19 (Kit Kat) z włączoną funkcją ART. (Dodano jni odwołania interfejsu API-8, a odwołania do art zostały złamanejni).
Ta właściwość systemowa jest przydatna do testowania i niektórych form badania. Ogólnie rzecz biorąc, nie należy go zmieniać.
XA_HTTP_CLIENT_HANDLER_TYPE
Po raz pierwszy wprowadzony w środowisku Xamarin.Android 6.1 ta zmienna środowiskowa deklaruje domyślną HttpMessageHandler implementację, która będzie używana przez HttpClientprogram . Domyślnie ta zmienna nie jest ustawiona, a platforma Xamarin.Android użyje elementu HttpClientHandler.
XA_HTTP_CLIENT_HANDLER_TYPE=Xamarin.Android.Net.AndroidClientHandler
Uwaga
Podstawowe urządzenie z systemem Android musi obsługiwać protokół TLS 1.2. System Android 5.0 lub nowszy obsługują protokół TLS 1.2
Przykład
## Comments are lines which start with '#'
## Blank lines are ignored.
## Enable GREF messages to `adb logcat`
debug.mono.log=gref
## Clear out a Mono environment variable to decrease logging
MONO_LOG_LEVEL=