Bagikan melalui


Target build

Target build berikut didefinisikan dalam .NET untuk proyek Android.

Build

Membangun kode sumber dalam proyek dan semua dependensi.

Target ini tidak membuat paket Android (berkas .apk). Untuk membuat paket Android, gunakan target SignAndroidPackage , atau atur properti '$(AndroidBuildApplicationPackage) ke True saat membangun:

msbuild /p:AndroidBuildApplicationPackage=True App.sln

BuildAndStartAotProfiling

Membangun aplikasi dengan profiler AOT yang disematkan, mengatur port TCP profiler ke $(AndroidAotProfilerPort), dan memulai aktivitas default.

Port TCP default adalah 9999.

Ditambahkan dalam Xamarin.Android 10.2.

Bersihkan

Menghapus semua file yang dihasilkan oleh proses build.

HitungPerangkatTersedia

Mengkueri dan mengembalikan daftar perangkat Android dan emulator yang tersedia yang dapat digunakan dengan dotnet run.

Target ini dipanggil secara otomatis oleh perintah .NET SDK dotnet run untuk mendukung pemilihan perangkat melalui --device opsi . Ini mengembalikan @(Devices) grup item di mana setiap perangkat memiliki metadata berikut:

  • Deskripsi: Nama yang ramah manusia (misalnya, "Pixel 7 - API 35" untuk emulator, "Pixel 6 Pro" untuk perangkat fisik)
  • Jenis: "Perangkat" atau "Emulator"
  • Status: Status perangkat - "Online", "Offline", "Tidak Sah", atau "NoPermissions"
  • Model: Pengidentifikasi model perangkat (opsional)
  • Produk: Nama produk (opsional)
  • Perangkat: Nama perangkat (opsional)
  • TransportId: ID transportasi adb (opsional)

Misalnya, untuk mencantumkan semua perangkat yang tersedia:

dotnet build -t:ComputeAvailableDevices

Target ini adalah bagian dari spesifikasi pemilihan perangkat .NET SDK dan memungkinkan perintah seperti:

dotnet run --device <device-serial>

Saat perangkat dipilih melalui properti $(Device), properti $(AdbTarget) secara otomatis diatur untuk menjadikan perangkat tertentu sebagai target dalam semua operasi adb.

Ditambahkan dalam .NET 11.

FinishAotProfiling

Harus dipanggil setelah target BuildAndStartAotProfiling.

Mengumpulkan data profiler AOT dari perangkat atau emulator melalui port TCP $(AndroidAotProfilerPort) dan menulisnya ke $(AndroidAotCustomProfilePath).

Nilai default untuk port dan profil kustom adalah 9999 dan custom.aprof.

Untuk meneruskan opsi tambahan ke aprofutil, atur di properti $(AProfUtilExtraOptions).

Tindakan ini setara dengan:

aprofutil $(AProfUtilExtraOptions) -s -v -f -p $(AndroidAotProfilerPort) -o "$(AndroidAotCustomProfilePath)"

Ditambahkan dalam Xamarin.Android 10.2.

GetAndroidDependencies

@(AndroidDependency) Membuat grup item, yang digunakan oleh InstallAndroidDependencies target untuk menentukan paket Android SDK mana yang akan diinstal.

Instal

Membuat, menandatangani, dan menginstal paket Android ke perangkat default atau perangkat virtual.

Properti $(AdbTarget) menentukan perangkat target Android tempat paket Android dapat diinstal atau dihapus.

# 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

Memanggil target pada GetAndroidDependencies, lalu menginstal paket Android SDK yang ditentukan dalam kelompok item @(AndroidDependency).

dotnet build -t:InstallAndroidDependencies -f net8.0-android "-p:AndroidSdkDirectory=<path to sdk>" "-p:JavaSdkDirectory=<path to java sdk>"

-f net8.0-android Diperlukan karena target ini adalah .NET untuk target spesifik Android. Jika Anda menghilangkan argumen ini, Anda akan mendapatkan kesalahan berikut:

error MSB4057: The target "InstallAndroidDependencies" does not exist in the project.

Properti AndroidSdkDirectory dan JavaSdkDirectory diperlukan karena kita perlu tahu di mana menginstal komponen yang diperlukan. Direktori ini bisa kosong atau sudah ada. Komponen Sdk akan diinstal di atas pada penginstalan sdk yang ada.

Properti $(AndroidManifestType) MSBuild mengontrol repositori Visual Studio SDK Manager mana yang digunakan untuk deteksi nama paket dan versi paket, dan URL untuk diunduh.

JalankanDenganPencatatan

Menjalankan aplikasi dengan pengelogan tambahan diaktifkan. Berguna saat melaporkan atau menyelidiki masalah dengan aplikasi atau runtime. Jika berhasil, pesan yang dicetak ke layar akan menampilkan lokasi file logcat dengan pesan yang dicatat.

Properti yang memengaruhi performa target:

  • /p:RunLogVerbose=true memungkinkan pengelogan yang lebih rinci dari MonoVM
  • /p:RunLogDelayInMS=X di mana X harus diganti dengan waktu dalam milidetik untuk menunggu sebelum menulis output log ke file. Bawaan ke 1000.

SignAndroidPackage

Membuat dan menandatangani file paket Android (.apk).

Gunakan dengan /p:Configuration=Release untuk menghasilkan paket "Rilis" mandiri.

StartAndroidActivity

Memulai aktivitas default pada perangkat atau emulator yang sedang berjalan.

Untuk memulai aktivitas yang berbeda, tetapkan pengaturan $(AndroidLaunchActivity) properti pada nama aktivitas.

Tindakan ini setara dengan:

adb shell am start -S -n @PACKAGE_NAME@/$(AndroidLaunchActivity)

Ditambahkan dalam Xamarin.Android 10.2.

StopAndroidPackage

Sepenuhnya menghentikan paket aplikasi pada perangkat atau emulator yang sedang berjalan.

Tindakan ini setara dengan:

adb shell am force-stop @PACKAGE_NAME@

Ditambahkan dalam Xamarin.Android 10.2.

Copot pemasangan

Menghapus instalan paket Android dari perangkat default atau perangkat virtual.

Properti $(AdbTarget) menentukan perangkat target Android tempat paket Android dapat diinstal atau dihapus.

UpdateAndroidResources

Memperbarui file Resource.designer.cs.

Target ini biasanya dipanggil oleh IDE ketika sumber daya baru ditambahkan ke proyek.