빌드 대상
다음 빌드 대상은 Android용 .NET 프로젝트에 정의되어 있습니다.
빌드
프로젝트 및 모든 종속성 안에 소스 코드를 빌드합니다.
이 대상은 Android 패키지(.apk
파일)를 만들지 않습니다.
Android 패키지를 만들려면, 다음을 빌드할 때 SignAndroidPackage 대상을 사용하거나, `$(AndroidBuildApplicationPackage) 속성을 True로 설정합니다.
msbuild /p:AndroidBuildApplicationPackage=True App.sln
BuildAndStartAotProfiling
포함된 AOT 프로파일러를 사용하여 앱을 빌드하고, 프로파일러 TCP 포트를 $(AndroidAotProfilerPort)
로 설정하고, 기본 작업을 시작합니다.
기본 TCP 포트는 9999
입니다.
Xamarin.Android 10.2에 추가되었습니다.
정리
빌드 프로세스에서 생성된 파일을 모두 제거합니다.
FinishAotProfiling
BuildAndStartAotProfiling 대상 이후에 호출해야 합니다.
TCP 포트 를 통해 디바이스 또는 에뮬레이터에서 AOT 프로파일러 데이터를 수집하여$(AndroidAotProfilerPort)
에 씁니다 $(AndroidAotCustomProfilePath)
.
포트 및 사용자 지정 프로필의 기본값은 9999
및 custom.aprof
입니다.
추가 옵션을 aprofutil
전달하려면 다음에서 설정합니다. $(AProfUtilExtraOptions)
속성
다음 코드와 동일합니다.
aprofutil $(AProfUtilExtraOptions) -s -v -f -p $(AndroidAotProfilerPort) -o "$(AndroidAotCustomProfilePath)"
Xamarin.Android 10.2에 추가되었습니다.
GetAndroidDependencies
대상에서 @(AndroidDependency)
설치할 Android SDK 패키지를 결정하는 데 사용되는 InstallAndroidDependencies
항목 그룹을 만듭니다.
설치
기본 디바이스 또는 가상 디바이스에 패키지를 만들고 서명하여 설치합니다.
$(AdbTarget)
속성은 Android 패키지를 설치하거나 제거할 수 있는 Android 대상 디바이스를 지정합니다.
# Install package onto emulator via -e
# Use `/Library/Frameworks/Mono.framework/Commands/msbuild` on OS X
MSBuild /t:Install ProjectName.csproj /p:AdbTarget=-e
InstallAndroidDependencies
대상을 호출한 GetAndroidDependencies
다음 항목 그룹에 지정된 @(AndroidDependency)
Android SDK 패키지를 설치합니다.
dotnet build -t:InstallAndroidDependencies -f net8.0-android "-p:AndroidSdkDirectory=<path to sdk>" "-p:JavaSdkDirectory=<path to java sdk>"
이 -f net8.0-android
대상은 Android용 .NET 특정 대상이므로 필요합니다. 이 인수를 생략하면 다음 오류가 발생합니다.
error MSB4057: The target "InstallAndroidDependencies" does not exist in the project.
AndroidSdkDirectory
필요한 구성 요소를 설치할 위치를 알아야 하므로 속성과 JavaSdkDirectory
속성이 필요합니다. 이러한 디렉터리 또는 기존 디렉터리일 수 있습니다. Sdk 구성 요소는 기존 sdk 설치 위에 설치됩니다.
MSBuild 속성은 $(AndroidManifestType)
패키지 이름 및 패키지 버전 검색 및 다운로드할 URL에 사용되는 Visual Studio SDK Manager 리포지 토리를 제어합니다.
RunWithLogging
추가 로깅을 사용하도록 설정된 애플리케이션을 실행합니다. 애플리케이션 또는 런타임과 관련된 문제를 보고하거나 조사할 때 유용합니다. 성공하면 화면에 인쇄된 메시지는 기록된 메시지와 함께 logcat 파일의 위치를 표시합니다.
대상의 작동 방식에 영향을 미치는 속성:
/p:RunLogVerbose=true
는 MonoVM에서 더 많은 자세한 로깅을 사용하도록 설정합니다./p:RunLogDelayInMS=X
로그X
출력을 파일에 쓰기 전에 대기할 시간(밀리초)으로 바꿔야 합니다. 기본값은1000
입니다.
SignAndroidPackage
Android 패키지(.apk
) 파일을 만들고 서명합니다.
자체 포함 "릴리스" 패키지를 생성하려면 /p:Configuration=Release
와 함께 사용합니다.
StartAndroidActivity
디바이스 또는 실행 중 에뮬레이터에서 기본 작업을 시작합니다.
다른 작업을 시작하려면 $(AndroidLaunchActivity)
활동 이름에 대한 속성입니다.
다음 코드와 동일합니다.
adb shell am start -S -n @PACKAGE_NAME@/$(AndroidLaunchActivity)
Xamarin.Android 10.2에 추가되었습니다.
StopAndroidPackage
디바이스 또는 실행 중 에뮬레이터에서 애플리케이션 패키지를 완전히 중지합니다.
다음 코드와 동일합니다.
adb shell am force-stop @PACKAGE_NAME@
Xamarin.Android 10.2에 추가되었습니다.
제거
기본 디바이스 또는 가상 디바이스에서 Android 패키지를 제거합니다.
$(AdbTarget)
속성은 Android 패키지를 설치하거나 제거할 수 있는 Android 대상 디바이스를 지정합니다.
UpdateAndroidResources
파일을 업데이트합니다 Resource.designer.cs
.
이 대상은 일반적으로 프로젝트에 새 리소스가 추가될 때 IDE에 의해 호출됩니다.