Как разработать для Android с Xamarin? - proUbuntu
1 голос
/ 01 октября

Я хочу разрабатывать приложения для Android на C #. В Windows я попробовал Xamarin Studio и был очень доволен. Есть ли способ использовать Xamarin в Ubuntu?

Я заметил, что Xamarin. Android-бинарные файлы для Linux доступны в Интернете, но это только для Xamarin. Android 9.22, я бы с удовольствиемиспользовать Xamarin.Android 10. Можно ли это сделать?

Наконец, я знаю, что Xamarin Studio для Linux не существует. Какую IDE я могу использовать вместо нее? Как настроить его для создания приложений Android и их развертывания?

1 Ответ

4 голосов
/ 01 октября

Краткий ответ

Да, вы можете разрабатывать с Xamarin. Android на Ubuntu! Однако, поскольку, к сожалению, Linux официально не поддерживается Xamarin, он не так прост, какбудет на Windows. Короче говоря, прежде всего вам нужно установить Java, Mono и Android Studio, затем вы должны скомпилировать Xamarin.Android самостоятельно и, наконец, вам нужно настроить любимую IDE для работы с Xamarin.

.

Предварительные условия

Установка Android Studio

(Примечание: теоретически вы можете просто загрузить Android SDK и NDK, хотя я еще не пробовал.)

УстановкаAndroid Studio в Ubuntu подробно описан в другом ответе SO , но я быстро об этом расскажу: сначала вам нужно установить Java 8 JDK. Хотя официально рекомендуется использовать Oracle Java, OpenJDK подойдет просто:

sudo apt install openjdk-8-jdk

Вам также потребуется установить переменную JAVA_HOME, соответствующую каталогу установки вашего Java 8 JDK. Для этого добавьте эту строку в ваш ~/.bashrc:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

Затем вам нужно скачать Android Studio и распаковать его куда угодно, напримерваша домашняя папка или /opt/androidstudio.

Как только она у вас появится, вы можете запустить ее и открыть SDK Manager в верхнем правом углу:

SDK Manager

Теперь загрузите версии SDK, на которые вы хотите настроить таргетинг. Не забудьте также установить NDK , поскольку это то, что нам нужно для развертывания приложений Xamarin. Затем вы можете попробовать создать пример приложения и развернуть его на своем телефоне (или на работающем эмуляторе), просто чтобы убедиться, что все работает нормально.

Вам также нужно установить переменную окружения AndroidSdkDirectory, чтобыXamarin знает, где искать установленные SDK. Вы можете сделать это, добавив эту строку в .bashrc, .zshrc или в любую используемую вами оболочку:

export AndroidSdkDirectory=~/Android/Sdk

Вы также можете создать псевдонимы для полезных команд:

alias sdkmanager=~/Android/Sdk/tools/bin/sdkmanager
alias avdmanager=~/Android/Sdk/tools/bin/avdmanager
alias adb=~/Android/Sdk/platform-tools/adb
alias android-emulator=~/Android/Sdk/emulator/emulator

Установка Mono

По состоянию на октябрь 2019 года в Ubuntu по-прежнему нет Mono 5 в своих репозиториях. Поэтому нам нужно будет добавить официальные репозитории Mono (в любом случае, это хорошая идея):

sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

Следующим шагом мы установим пакеты разработки Mono. Может быть, вам не нужно все, но я был ленив и пошел с mono-complete. Вам также понадобится nuget, поэтому давайте его тоже установим:

sudo apt install mono-complete nuget

Вы можете проверить, была ли установлена ​​правильная версия, с помощью команды msbuild. В старых версиях Mono ее не было, поэтому, если команда была найдена , вы, вероятно, готовы к работе.

.

Компиляция Xamarin.Android

Зависимости

Существуют некоторые зависимости, необходимые для успешной компиляции Xamarin.Android. Большинство из этих пакетов уже установлены на вашем компьютере, поэтому вы можете попробовать пропустить этот шаг и установить только те, которые отсутствуют. Однако повторная сборка занимает значительное время, поэтому вы сразу же сохраните ее, установив их:

sudo apt install autoconf autotools-dev automake cmake build-essential curl gcc g++ g++-mingw-w64 gcc-mingw-w64 git libncurses5-dev libtool libz-mingw-w64-dev libzip-dev linux-libc-dev make ninja-build p7zip-full sqlite3 vim-common zlib1g-dev linux-libc-dev:i386 zlib1g-dev:i386 libx32tinfo-dev

Клонирование

Получите последний исходный код Xamarin.Android из GitHub:

git clone https://github.com/xamarin/xamarin-android.git
cd xamarin-android

Возможно, вы не хотите строить из master , поэтому выберите стабильный релиз в репозитории GitHub и проверьте его с помощью git checkout [chosen commit hash],Не забудьте также сбросить подмодули до правильной версии.

Обнаружение системы

Если вы используете дистрибутив, производный от Ubuntu, вам придется добавить дополнительную строку в обнаружение системыкод, чтобы он работал:

nano build-tools/xaprepare/xaprepare/OperatingSystems/Linux.cs

и под строкой

{"Ubuntu",    (ctx) => new LinuxUbuntu (ctx)},

необходимо добавить строку для вашей системы, например. для Элементарной ОС это:

{"elementary",(ctx) => new LinuxUbuntu (ctx)},

Если вы работаете в чистой Ubuntu, вы можете пропустить этот шаг.

Build

Сначала вам нужно построить все зависимости:

make prepare

И тогда вы можете собрать Xamarin.Android сам. Если вы хотите настроить таргетинг только на последнюю версию Android, запустите:

make

(Целевая версия - это последняя версия Android, поддерживаемая вашим приложением. Поэтому, если вы хотите писать приложения для версий Android от 7 до 10, вы должны выбрать целевую версию v10.0. Если вы хотите иметь возможность настроить таргетинг на любую версиюAndroid, вам придется запустить make jenkins вместо этого.)

Для обоих этих шагов требуется значительное количество терпения и подключение к Интернету.

Установка

Наконец, вы можете установить Xamarin.Android в вашу систему:

sudo make install prefix=/usr

.

Использование Xamarin

Настройка проекта

Длячтобы убедиться, что наша сборка действительно работает, мы хотим создать и развернуть реальный проект Xamarin. Идеальными для этой цели являются демонстрационные проекты в репозитории xamarin / monodroid . Итак, давайте клонируем его:

git clone https://github.com/xamarin/monodroid-samples.git
cd monodroid-samples/Button

Добавить поддерживаемые ABI

По какой-то причине нам нужно добавить список поддерживаемых ABI в файл проекта. Откройте его в редакторе:

nano DroidButton.csproj

И к первому PropertyGroup добавьте эту строку:

<AndroidSupportedAbis>armeabi-v7a;arm64-v8a;x86</AndroidSupportedAbis>

Если вы не строили с make jenkins, вы такжехотите изменить TargetFrameworkVersion на v10.0.

Build

msbuild

Deploy

Либо запустить виртуальное устройство в AVD Manager (доступно, например, через AndroidStudio) или подключите телефон в режиме отладки, а затем запустите:

msbuild /t:Install

Это должно установить приложение на ваш телефон. Если вы хотите собрать и развернуть с помощью одной команды, вы можете использовать /t:Build,Install. Если вы хотите передать дополнительные параметры в ADB (например, для определения устройства, где нужно развернуть), используйте /p:AdbTarget=[adb options], например: msbuild /t:Install /p:AdbTarget=-s1080c487.

.

Сводка

Итак, мы настроили Xamarin! Это был долгий путь, не так ли? Полный сюрпризов, разочарований и часто чистых страданий. Стоило ли это? Вам решать, но для меня это определенно было. Теперь сделайте перерыв (хотя и короткий!), А затем начните создавать приложение своей мечты!

...