eclipse приложение под андроид

Пишем своё первое приложение на Android

9c133fb0

Предисловие

Подготовка к разработке

Установка среды разработки Eclipse

Тут всё просто. Идём в раздел Downloads на официальном сайте и качаем версию Classic. Далее просто распакуйте архив, куда вам хочется, я же решил это сделать в почетную директорию C:\Eclipse

Установка ADT плагина к Eclipse

Запускаем Eclipse, и открываем диалог установки плагина через меню Help → Install new software. В поле Work with вписываем адрес загрузки плагина dl-ssl.google.com/android/eclipse (если не получилось, то плагин можно скачать и установить вручную по ссылке http://developer.android.com/sdk/eclipse-adt.html), далее в таблице ниже появится Developer Tools, отмечаем его и идем далее.

image loader
После успешной установки, можно перезапустить среду Eclipse.

Установка среды для Java: JDK и JRE

Если у вас еще не установлены Java Development Kit (JDK) и Java Runtime Environment (JRE), то их необходимо установить. Сделать это можно на сайте Oracle. Скачайте и установите JDK и JRE.

image loader

Установка Android SDK

Дело осталось за малым — это скачать и установить свежий Android SDK. Это делается на сайте для Android разработчиков. Я лично установил SDK опять-таки в почётную директорию C:\Android. После этого необходимо добавить платформы и прочие дополнительные элементы SDK. Я добавил все доступные версии, так как планирую делать приложения и для ранних платформ, а также USB-драйвер и примеры приложений.

image loader

Подготовка к разработке завершена. Теперь следующий этап — создание приложения.

Создание Android-приложения

Перед тем как создать своё первое приложение, можно создать виртуальное Android-устройство, чтобы быстро тестировать на нём свой свеженаписанный софт. Вначале я хочу сказать вам несколько слов по поводу Android Virtual Device (AVD). Это виртуальный смартфон с ОС Android, на котором вы с легкостью сможете запускать созданную вами программу. Как можно заметить, преимущество Android Virtual Device состоит в том, что наглядно можно увидеть как будет работать Ваша программа на разных смартфонах с Android, а не покупать весь модельный ряд и тестировать приложение на каждом из них.

Приступим к созданию виртуального устройства Android. Следуем в меню по пути Window → Android SDK and AVD Manager.

image loader

Выбираем New в правой части окна, в появившемся окне вписываем имя виртуального устройства, платформу (допустим Android 2.1), размер карты памяти (допустим 512 Mb), тип дисплея (допустим HVGA). Затем жмем внизу на кнопку Create AVD.

Теперь создадим проект. Для этого идем по пути в меню File → New → Other, в появившемся списке Android → Android Project.

image loader

В качестве примера расскажу о разработке одной моей простейшей программы UfaTermometr, показывающей текущую температуру с датчиков, расположенных на одном из объектов местной энерго-компании.

Подробно останавливаться на разметке элементов управления не буду, так как это всё достаточно подробно описано в мануале и вообще интуитивно понятно, особенно тому, кто имел дело с html/css-вёрсткой и/или разработкой в какой-либо визуальной среде (например, Delphi). Единственное, обратите внимание как я загрузил произвольное изображение в ImageView. В поле src указывается путь, начинающийся с символа @ и далее указываете адрес по дереву. В папке res я заблаговременно создал подпапку drawable и «закинул» туда логотип, а затем просто указал ImageView путь. Легко? По мне так очень.

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.*;

public class UfaTermometr extends Activity
<

@Override
public void onCreate(Bundle savedInstanceState)
<
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button button = (Button) findViewById(R.id.refrbutton);
button.setOnClickListener( new Button.OnClickListener() <
public void onClick(View v) // клик на кнопку
<
RefreshTemper();
>
>);

RefreshTemper(); // при запуске грузим температуру сразу
>;
//—————————————————————-
public String GetTemper(String urlsite) // фукция загрузки температуры
<
String matchtemper = «» ;
try
<
// загрузка страницы
URL url = new URL(urlsite);
URLConnection conn = url.openConnection();
InputStreamReader rd = new InputStreamReader(conn.getInputStream());
StringBuilder allpage = new StringBuilder();
int n = 0;
char [] buffer = new char [40000];
while (n >= 0)
<
n = rd.read(buffer, 0, buffer.length);
if (n > 0)
<
allpage.append(buffer, 0, n);
>
>
// работаем с регулярками
final Pattern pattern = Pattern.compile
( » [^-+0]+([-+0-9]+)[^ [^(а-яА-ЯёЁa-zA-Z0-9)]+([а-яА-ЯёЁa-zA-Z ]+)» );
Matcher matcher = pattern.matcher(allpage.toString());
if (matcher.find())
<
matchtemper = matcher.group(1);
>
return matchtemper;
>
catch (Exception e)
<

>
return matchtemper;
>;
//—————————————————————-
public void RefreshTemper()
<
final TextView tTemper = (TextView) findViewById(R.id.temper);
String bashtemp = «» ;
bashtemp = GetTemper( «be.bashkirenergo.ru/weather/ufa» );
tTemper.setText(bashtemp.concat( «°» )); // отображение температуры
>;
>
После того как приложение написано, можно уже его отлаживать и тестировать.

Запуск и тестирование приложения

Вспоминаем про нашу виртуальную машину и запускаем привычной кнопкой или менюшкой Run → Run

Вот такую картину мы можем затем созерцать:

image loader

Заключение

В заключении хотелось бы сказать, что безусловно разработка приложений для Android приятна, достаточно проста и интересна. Конечно, мы рассмотрели лишь верхушку айсберга, но я надеюсь, что в умах тех из вас, кто раньше не пробовал делать ничего подобного «загорелась лампочка» и вполне возможно, что когда-то вашим приложением будут пользоваться миллионы.

Источники, ссылки

UPD: Устранение возможных ошибок

ERROR: Unable to open class file C:\workspace\Test\gen\com\example\test\R.java: No such file or directory

emulator: ERROR: no search paths found in this AVD’s configuration. Weird, the AVD’s config.ini file is malformed. Try re-creating it

— это следствие того, что у Вас кириллица в имени пользователя. Решается: идем в Компьютер → Свойства системы → Дополнительные параметры системы → Переменные среды. Создаем новую переменную с именем ANDROID_SDK_HOME и значением – путем, где находится папка AVD (например, C:\Android\). Создаем, далее ищем там же переменную Path, открываем и в поле значений через точку с запятой добавляем путь до папки tools Android SDK (например, C:\Android\tools). Сохраняем. Запускаем Eclipse, запускаем программу.

UPD 05.10.2011, во что превратилось данное приложение можно лицезреть на следующих скринах:
image loader

Это результат развития той самой болванки, которая выше дана в качестве примера.
Разработка и создание Android-приложений
Создание сайтов

Источник

Android Eclipse: разработка под Android SDK

vbrИлья – главный редактор сайта softdroid.net. Является автором нескольких сотен руководств и статей по настройке Android. Около 15 лет занимается ремонтом техники и решением технических проблем iOS и Android. Имел дело практически со всеми более-менее популярными марками мобильных смартфонов и планшетов Samsung, HTC, Xiaomi и др. Для тестирования используется iPhone 12 и Samsung Galaxy S21 с последней версией прошивки.

В этом руководстве вы усвоите, как начать разработку под Андроид, а именно: мобильных приложений на платформе Android Eclipse + SDK. Сегодня существует множество подходов к разработке и созданию мобильных приложений для Android. Сложные аппаратные устройства, планшетные ПК и различные программные платформы (Symbian OS, iOS, WebOS, Windows Phone 7…) открывают бескрайнее пространство для разработчиков.

Итак, список приложений для начала разработки мобильных приложений под Android огромен. Какую платформу выбрать? Какой язык программирования учить? Какой набор приложений выбрать для планирования проекта? В этом руководстве вы усвоите, как начать разработку мобильных приложений для платформы Android, открытую мобильную ОС от Google.

Почему платформа Android?

Вот несколько других отличий Android SDK, которые предлагает Вам преимущества как разработчику:

Установка Eclipse и Android SDK

install

Ориентация под платформу Android при разработке

Перед тем, как начать написание приложений для Android, нужно скачать SDK для платформы Android. Каждая платформа имеет собственную версию Android SDK, которая установлена на устройствах пользователей. Для версии Android 1.5 и выше существует две платформы: Android Open Source Project и Google.

После того как все было успешно загружено, вы готовы приступить к разработке под Android.

Создание нового проекта Android

Мастер настройки Eclipse New Project Wizard поможет создать приложение Android, сгенерировав файлы и код, готовые к запуску, справа от блока. Это быстрый способ убедиться в работоспособности и хорошая начальная точка при начале разработки приложений:

eclipse new project settings 1

После нажатия Finish, Eclipse создаст новый проект Android, готовый к запуску и разработке под Android. Помните, вы говорили Eclipse сгенерировать Activity, названный BrewClockActivity? Это код, который Android на самом деле использует для запуска приложения. Сгенерированный код будет отображен в виде простого сообщения в духе ‘Hello World’.

Пакеты

Версии SDK

Запуск вашего приложения

Сейчас попробуем запустить наше приложение в Eclipse. Поскольку это первый запуск, Eclipse спросит, с каким из типов проекта вы работаете:

Eclipse попробует запустить приложение на устройстве с Android. На данный момент, однако, у вас нет устройств под управлением Android, так что запустить проект не удастся, и вам будет предложено создать новое устройство Android Virtual Device (AVD).

Виртуальные устройства (Android Virtual Devices)

Android Virtual Device (AVD) эмулирует среду Android, будь то мобильный телефон или планшетный ПК. Вы можете создавать сколько угодно устройств AVD, с разными версиями платформы Android. Для каждого AVD вы можете настроить различные параметры устройств, указав наличие физической клавиатуры, поддержки GP, разрешение камеры и так далее.

Перед тем как запустить приложение, вы должны создать свой первое устройство AVD с платформой SDK (Google API, 1,6).

Давайте сделаем это сейчас:

Запуск кода

Попробуйте запустить приложение снова (Ctrl + F11). Eclipse теперь будет создавать ваш проект и запускать новый AVD. Помните, AVD полностью эмулирует среду Android, причем вам даже не нужно наблюдать достаточно медленный процесс загрузки, как в случае с реальным устройством. По этой причине, как только AVD будет готов к работе, лучше не закрывать окно, пока вы закончили программировать, в течение всего дня.

Когда android-эмулятор загрузится, Eclipse автоматически установит и запустит приложение:

app running 550 e1287474474253

Создание вашего первого приложения на Android

Большинство разработчиков (включая меня), постоянное снабжают себя хорошим чаем или кофе. В следующем разделе этой статьи вы будете создавать счетчик приложение для отслеживания, сколько чашек чая (пива) пользователь опустошил и позволит установить таймер для варки каждой чашки.

Вы можете скачать полный код для этой обучающей программы на GitHub.

Разработка под андроид: проектирование пользовательского интерфейса

design sketch
Увеличить изображение

Построение интерфейса

Пользовательский интерфейс Android, или оболочка, которые описаны в документации XML, могут быть найдены в папке res/layouts. Код шаблона, уже сгенерированный Eclipse, объявлен в res/layouts/main.xml и, как вы заметили, уже работает в эмуляторе.

Eclipse располагает собственным инструментарием для проектировки макета, который позволяет создавать интерфейс методом перетаскивания в пределах экрана. Тем не менее, временами легче написать интерфейс в XML и использовать графический макет для предварительного просмотра результатов.

Давайте сделаем это сейчас, изменив main.xml в соответствии с эскизом выше:

Сейчас изменим содержание main.xml на следующее:

Как вы можете видеть, файлов в Android XML много, но это позволит вам контролировать практически каждый элемент на экране.

Одним из наиболее важных элементов интерфейса в Android являются контейнеры Layout, такие как LinearLayout, используемый в этом примере. Эти элементы невидимы для пользователя, но выступают в качестве контейнеров для других элементов, таких как Buttons и TextViews.

Есть несколько типов расположения макета, каждый из которых используется для построения различных типов планировки. Как и LinearLayout и AbsoluteLayout, TableLayout позволяет использование интерфейса с использованием сетки. Вы можете узнать больше об этом в общий макет объектов разделе API-документации.

Привязка вашего макета к коду

После сохранения макет, попробуйте запустить приложение в эмуляторе, нажав Ctrl + F11, или нажмите значок Run в Eclipse. Теперь вместо сообщения «Hello World» вы увидите, что в Android теперь отображается интерфейс приложения.

Если нажать любую кнопку, они будут подсвечиваться, как и ожидалось, но не делайте что-нибудь помимо этого. Давайте продолжим написание кода вслед за интерфейсом макета:

Далее, мы изменим вызов onCreate. Это вызов происходит всякий раз, когда на Android запускается приложение. В коде, сгенерированном Eclipse, onCreateсоздает вид активности на R.layout.main. Это та строка кода, которая дает команду Android декодировать макет документа XML и отображать его пользователю.

Объект ресурса (Resource Object)

«Прослушка» событий

Для определения нажатия кнопок нам необходимо реализовать их прослушивание. Вы можете быть знакомы со слушателями обратного вызова, или callbacks, из других платформ, таких как Javascript / JQuery или Rails.

Android обеспечивает аналогичный механизм путем предоставления интерфейса Listener, такие как OnClickListener, которые определяют методы, которые будут срабатывать при возникновении события. OnClickListener интерфейс уведомит ваше приложение, когда пользователь нажимает на экран или определенную кнопку. Кроме того, необходимо сказать каждой кнопке о ClickListener:

Далее мы добавим код, который обрабатывает каждое из наших нажатий кнопок. Мы также добавим четыре новые свойства Activity, что позволит пользователю установить и отслеживать время пивоварения: сколько варок было сделано и запущен ли таймер.

Обратите внимание, что мы используем CountDownTimer класс, предоставляемый Android. Это позволяет легко создать и запустить простой счетчик и получать уведомления через регулярные промежутки времени в то время, как идет обратный отсчет. Вы будете использовать это в методе startBrew, читайте об этом ниже.

Было бы хорошей практикой переместить этот код в отдельный класс модели, но для простоты мы добавим код в BrewClockActivity:

Только части этого кода, характерные для Android, создают отображения меток, используя метод setText. В startBrew мы создаем и запускаем CountDownTimer для начала посекундного отсчета, когда варка/кипячение окончео. Обратите внимание, что мы определяем слушателей CountDownTimer ( onTick и onFinish). onTick будет вызываться каждые 1000 миллисекунд (1 секунду), в то время как вызов onFinish происходит тогда, когда таймер достигнет нуля.

Избегаем сложности в программировании на Android

Чтобы сохранить это руководство для разработки под Android простым, я намеренно применял надписи непосредственно в коде (например, «Brew Up!», «Start», «Stop»). На самом деле, это не очень хорошая практика, так как затрудняет поиск и изменение этих строк в крупных проектах.

Android обеспечивает аккуратный способ хранения ваших текстовых строк отдельно от кода R-объекта. R позволяет определить все строки приложения в XML-файле (res/values/strings.xml), к которому можно получить доступ в коде по ссылке. Например:

Теперь, если вы хотите изменить Brew Up! что-то другое, нужно изменить его единожды в файле strings.xml. Если ваше приложение содержит десятки файлов кода, надписей в одном месте приобретает огромный смысл!

Проверяем BrewClock

Мы завершили написание кода, и пришло время «опробовать» приложение. Нажмите «Run» или Ctrl + F11, чтобы запустить BrewClock в эмуляторе. Если все прошло хорошо, вы увидите интерфейс настройки и готовы к заварке чая! Попробуйте установить разное время заварки и нажмите Start для обратного отсчета.

Резюме

В этом кратком введении в разработку под Андроид, вы скачали и установили Android SDK и плагин Eclipse Android Development Tools (ADT). Вы настроили эмулятор или виртуальное устройство для тестирования ваших приложений. Вы также создали рабочее приложение для Android который подчеркнул ряд ключевых понятий, которые вы будете использовать при разработке будущих Android приложений.

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

Источник

Создание Android-приложения в среде Eclipse на примере

1130 thumb b 81 94

Vovan_ST

ИТ специалист со стажем. Автор статьи. Профиль

eclipse android appsПроблема

Вы хотите использовать среду Eclipse для разработки своего приложения для платформы Android.

Решение

Установите среду Eclipse и подключаемый модуль AndMore. Затем создайте свой проект и начните писать приложение. Соберите его и протестируйте с помощью эмулятора в среде Eclipse.

Обсуждение

Прежде чем вы сможете начать создание приложения с помощью среды Eclipse, вам необходимо установить три элемента:

Подробнее об установке этих элементов см. здесь.

После того как вы это сделаете, создайте новый Android-проект с помощью меню File → New ( Файл → Новый ), и вы увидите такой экран, как на рис. 1.

Выберите версию SDK для целевого устройства (рис. 3). Версия 4.0 охватывает почти все устройства, используемые сегодня; более поздние версии дают еще больше возможностей. Решать вам!

Starting creation Eclipse project

Рис. 1. Начало создания проекта в среде Eclipse

Setting Eclipse project

Рис. 2. Настройка параметров нового проекта Eclipse

Setting SDK

Рис. 3. Настройка инструментария SDK для нового проекта Eclipse

Using Eclipse editor

Рис. 4. Использование редактора Eclipse для настройки атрибута gravity для представления TextView

Листинг 1. Файл HelloWorld. java

Как всегда, когда вы сохраняете исходный файл, среда Eclipse генерирует скомпи­лированную версию. В проекте для платформы Android она также создает скомпили­рованный пакет АРК, который готов к запуску, поэтому вам нужно только запустить его. Щелкните правой кнопкой мыши на проекте и выберите команду Run As → Android Application ( Запустить как → Приложение для платформы Android ) (рис. 5).

Running Eclipse Android project

Рис. 5. Запуск проекта для платформы Android в среде Eclipse

Эта команда запустит эмулятор Android, если он еще не запущен. В окне эмуля­тора появится слово Android (рис. 6), а через некоторое время вы увидите началь­ный экран Android.

Android project starting

Рис. 6. Запуск проекта для платформы Android в эмуляторе

По истечении некоторого времени ваше приложение будет запущено (на рис. 7) показан только фрагмент экрана самого приложения, поскольку остальная часть представления эмулятора является лишней).

Eclipse project running

Рис. 7. Выполнение проекта для платформы Android в эмуляторе

Источник

Установка Eclipse и подключение плагина Android Development Tools (ADT) для разработки андроид-приложений

Инструменты разработки Eclipse и Android Development Tools

После выхода официального релиза Android Studio у начинающих разработчиков появились проблемы с загрузкой и установкой все еще популярной среды разработки Eclipse и плагина Android Development Tools (ADT) для разработки андроид-приложений. Ниже приводим перевод инструкции с официального сайта, в которой вы узнаете, как скачать и установить Eclipse, а также как подключить и настроить плагин Android Development Tools (ADT), чтобы начать программировать под андроид.

Плагин Eclipse ADT имеет много известных и потенциальных ошибок безопасности, которые не будут исправлены.

Как скачать и установить Android Studio, смотрите здесь

Порядок установки

Вы должны сначала загрузить Eclipse, затем скачать Android SDK и установить плагин ADT (Android Development Tools).

Если Eclipse уже установлен, перед установкой ADT проверьте соответствие следующим требованиям:

Установлен Eclipse 3.7.2 (Indigo) или выше
Примечание: Eclipse 3,6 (Helios) больше не поддерживает последние версии ADT.
Установлен Eclipse JDT плагин (входит в большинство пакетов Eclipse IDE)
Установлена JDK 6 (пакет JRE не является достаточным)

Если все условия выполняются, можно пропустить несколько пунктов и перейти к загрузке и установке ADT плагина для Eclipse.

Если вы начинаете с нуля, то выполните все последующие шаги.

Установить JVM

Независимо от вашей операционной системы, вам нужно будет установить виртуальную машину Java (JVM). Вы собираетесь использовать Eclipse для разработки Java android, поэтому установите JDK (JDK включает в себя — среди других полезных вещей — исходный код для стандартных Java библиотек).

Если вы используете Windows, вы, возможно, уже устанавливали JRE, но этого не достаточно.

Установить JDK (Java Development Kit)

Если у вас не установлен пакет JDK, следуйте инструкции: Установка JDK (Java Development Kit)

Скачать Eclipse

Загрузка будет в виде сжатого (т.е. «.zip», или «.tar.gz») файла. Распакуйте этот файл в директорию по вашему выбору (например, «C:\eclipse» на Windows) и убедитесь, что у вас есть полный доступ на чтение и выполнение. При желании вы можете создать ярлык исполняемого файла («eclipse.exe» на Windows, или «Eclipse» на Linux).

Для разработки приложений Android в Eclipse предлагается пользовательский плагин для Eclipse IDE, называемый Android Development Tools (ADT). Этот плагин представляет собой мощную, интегрированную среду разработки приложений для Android. Это расширяет возможности Eclipse, что позволит вам быстро создать новые Android проекты, построить интерфейс приложения, отлаживать свое приложение, а также подписывать и экспортировать пакеты приложения (APK) для распространения.

Загрузить ADT плагин для Eclipse:

Запустите Eclipse, затем выберите в главном меню Help > Install New Software.

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

Скачать сжатый файл ADT Plugin (не распаковывать его!):

Скачать пакет SDK

Скачайте пакет инструментов Android SDK по этой ссылке.

В открывшейся по ссылке таблице выберите пакет для вашей операционной системы. Для Windows их два: установщик и архив (на выбор). Архив следует распаковать в папку, например, D:\android\sdk. Если выберете установщик, он по умолчанию укажет путь, например, C:\Users\ \AppData\Local\Android\android-sdk, лучше изменить его на более короткий, как в примере выше.

Внимание! В пути к SDK не должно быть кириллицы! Это может быть источником многих проблем в будущем.

Настроить Android SDK

После того, как Eclipse, перезагрузится, необходимо указать расположение каталога Android SDK:

В Eclipse в меню открывайте Window > Android SDK Manager.

Здесь нам показывают SDK-компоненты, которые мы можем скачать, обновить или удалить.

Сначала идет папка Tools — в ней находятся утилиты, необходимые для разработки под Android. Далее идет список версий Android. И в самом низу еще есть папка Extras, в которой обычно находятся дополнительные библиотеки.

Справа от каждого компонента в списке виден его статус: Installed — установлен, Not installed — не установлен, Update available — доступно обновление. Мне сразу автоматически предлагают обновить и установить некоторые компоненты, на них включены чекбоксы. Нажмите снизу ссылку Deselect All, чтобы снять все галки, а затем Updates, чтобы выделить только те пункты, которые требуют обновления. И пока оставим все так, ничего не загружаем.

Нас сейчас интересуют папки с именами версий Android. Для начала установите Android 4.4.2. Когда освоитесь в разработке, вы всегда сможете вернуться сюда и скачать те версии Android, которые вам необходимы. А пока будем работать с проверенной Android 4.4.2 (API 19).

Как минимум для разработки нам необходимы два компонента в папке Android 4.4.2 (API 19):

1) SDK Platform — используется для разработки. Говоря простыми словами, здесь содержатся все программные компоненты системы Android, которые мы будем использовать при создании приложений — т.е. окна, кнопки и т.п.

2) ARM EABI v7a System Image — образ Android системы. Используется для создания эмулятора Android, который нужен будет для тестирования приложений прямо на компе, без подключения реальных устройств.

Т.е. мы сможем создать приложение, использующее компоненты и возможности Android версии 4.4.2 и запустить это приложение на эмуляторе версии 4.4.2. Этого вполне достаточно для начала. Ставьте галки на двух этих пунктах в папке Android 4.4.2 (API 19).

Если вам понадобятся другие версии Android, заходите в SDK Manager и устанавливайте эту пару компонентов для нужной вам версии.

Снизу справа жмем кнопку Install packages, чтобы он установил все компоненты которые мы выделили. Учтите, что плафтормы могут весить несколько сотен мегабайт.

Появится окно со списком установки, отмечаем в нем Accept license и жмем Install. Процесс пошел, снизу замелькали проценты, килобайты и секунды. По завершению процесса снизу будет надпись Done loading package. Все готово для работы. Закрываем и начинаем обучение разработке android приложений.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • ebitda прибыль до вычета процентов налогов и амортизации
  • ebitda после вычета налогов