ANT — это беспроводной протокол, аналогичный Bluetooth®, который в основном используется для беспроводного подключения к спорту и фитнесу. Этот сервис, предварительно установленный производителем телефона, позволяет подключать устройства ANT + к приложениям на вашем телефоне. ANT Wireless является подразделением Garmin Canada Inc.
Приложения с поддержкой ANT могут использовать эту услугу для подключения:
• Частота сердечных сокращений. Получайте данные о частоте сердечных сокращений в реальном времени с помощью ремней или носимых устройств, выпускаемых многими популярными производителями
• Фитнес-оборудование: подключите фитнес-оборудование с поддержкой ANT + и велотренажеры к популярным приложениям для тренировок и тренировок.
• Скорость и частота вращения велосипеда. Получение данных о скорости, расстоянии и / или частоте вращения велосипеда.
• Bike Power: захват данных от измерителей цикличной мощности ANT +, таких как Garmin Vector
• Монитор скорости и расстояния на основе шага: захватывает данные о скорости и расстоянии от беговых стоек
Телефонные мошенники используют новый способ кражи денег у клиентов банков
Для получения полного списка совместимых приложений и устройств ANT + посетите страницу https://www.thisisant.com/directory/.
ВОПРОСЫ-ОТВЕТЫ:
Как это приложение попало на мой телефон и это шпионское ПО?
Эта услуга является стандартным программным обеспечением, поставляемым производителем вашего телефона. Это не незаконно загружено, и это не шпионское ПО. Это не приведет к сбою системы или появлению всплывающей рекламы. Это не вредоносная программа, и обычно она занимает не более 20 МБ пространства. Например, на телефоне 16 ГБ эта услуга занимает 0,0013% пространства.
Мы не платим производителям телефонов за предварительную установку этой услуги.
Как я могу удалить этот сервис?
Поскольку этот сервис является стандартным программным обеспечением, вы не можете удалить его со своего телефона. Вместо этого вы можете отключить эту услугу, следуя инструкциям производителя. Типичный процесс: настройки> приложения> диспетчер приложений> соответствующее приложение> принудительная остановка> отключение
Отключение этой услуги не повлияет на программное обеспечение вашего телефона. Если в будущем вам потребуется возможность подключения к службам и устройствам через ANT +, просто включите службу снова.
ПРИМЕЧАНИЕ. Так как это служба, установленная на заводе, она может быть включена / загружена повторно, если вы перезагрузите и / или обновите свой телефон. Не паникуйте! Просто следуйте инструкциям, чтобы отключить его снова.
Этот сервис отслеживает меня без моего ведома?
Нет. Приложения ANT Radio Service и ANT + Plugins Service предоставляют услуги беспроводной связи, аналогичные Bluetooth или WiFi, но с очень низким энергопотреблением. Эти сервисы не собирают никаких личных данных.
Источник: play.google.com
После отключения этого приложения заряда батареи хватит на дольше! | Как увеличить работу android?
Apache Ant – быстрый старт
Apache Ant должен быть знаком каждому Java-программисту: это популярный инструмент сборки ПО (build tool), полностью написанный на Java. Ant использует сценарий, который является обычным XML-файлом. Несмотря на его Java-направленность, веб-разработчики тоже используют этот инструмент.
- Скачаем, установим и проверим.
- Напишем простой HelloWorld сценарий.
- Разберёмся с принципами работы и XML форматом сценария сборки.
- Узнаем минимально необходимый список заданий.
- Напишем сценарий для полного цикла сборки и тестирования учебного проекта.
1. Скачиваем, устанавливаем, проверяем
Linux: устанавливаем из репозитария командой вроде sudo apt-get install ant (замените apt-get на yum если необходимо). Важно: нам нужна версия не ниже 1.8.*. В репозитарии CentOS 6.8 версия 1.7.1, поэтому лучше использовать скрипт, описанный в предыдущей статье.
Windows: посещаем веб-сайт ant.apache.org, заходим в раздел Download/Binary Distributions и скачиваем архив apache-ant-1.10.1-bin.zip (возможно сейчас есть уже более свежая версия). Содержимое архива копируем в любой каталог, например в «C:Program FilesApache Ant». Затем добавляем путь к каталогу bin (C:Program FilesApache Antbin) в системную переменную Path.
Проверяем работоспособность, вызвав ant в командной строке:
$ ant -version
Apache Ant(TM) version 1.10.1 compiled on February 2 2017
Если аналогичное сообщение получено – всё в порядке.
2. Пишем HelloWorld сценарий
Hello, World!
Создаём в домашнем каталоге подкаталог hello (в Linux это делает команда mkdir, в Windows – md) и сохраняем туда файл с именем build.xml, содержащий предложенный выше сценарий. Переходим в этот каталог и вызываем ant:
$ mkdir hello
$ cd hello
$ ant
Buildfile: /home/lamp/hello/build.xml
hello:
[echo] Hello, World!
BUILD SUCCESSFULL
Total time: 0 seconds
Что произошло? Ant нашел файл сценария с именем по умолчанию (build.xml) и выполнил target c именем hello, также указанный по умолчанию в теге project с помощью атрибута default (обратите внимание что в теге project мы ещё указали имя проекта, используя атрибут name). Мы получим такой же результат, если при вызове ant укажем в качестве параметра hello:
3. Основные принципы работы
Сценарий сборки – обычный XML-файл. Текст открывается (и закрывается) тегом project, в котором можно указать имя проекта и цель по умолчанию. Далее он содержит определение целей (target), зависимостей (depends) и свойств (property). Простейший сценарий должен иметь хотя бы одну цель. В теге target мы описываем вызов одного или нескольких заданий (tasks).
Для target можно задать имя с помощью атрибута name (name=«name_of_target»). Заданное имя становится командой для нашего сценария и вызвать соответствующий target можно так:
$ ant name_of_target
В target есть возможность указать зависимость с помощью атрибута depends. Зависимости связывают target’ы между собой. Например, есть target c именем “compile”, а есть – с именем “run”, зависимый от “compile”. И если мы захотим выполнить “run”, сначала выполнится “compile”.
4. Минимально необходимый список заданий (tasks)
Стандартная версия Ant содержит более 150 заданий (https://ant.apache.org/manual/tasklist.html). Нам пока потребуются только семь:
- echo – вывод сообщений в консоль
- mkdir – создание директорий
- delete – удаление файлов и директорий
- javac – компиляция Java–кода
- java – запуск class и jar файлов
- jar – создание jar файла
- junit – запуск тестов
5. Сценарий для сборки и тестирования Java проекта
Ant предоставляет полную свободу в формировании структуры каталогов. Создаём в нашем каталоге hello подкаталог src для исходных текстов на Java:
И сохраняем туда файл HelloWorld.java следующего содержания:
public class HelloWorld < public static void main(String[] args) < System.out.println(«Hello, World!»); >>
А затем немного усложняем текст нашего сценария (build.xml):
Теперь сценарий содержит три target (команды): compile (компиляция файла(ов) .java), run (запуск файла .class), clean (удаление папок с результатами компиляции). При этом compile содержит два tasks – mkdir и javac. Обратите внимание на зависимость: target run предварительно вызовет compile. Кроме того run – это target по умолчанию для проекта.
Запускаем сценарий без параметров и видим результат работы Java программы: Hello, World!
Прямое указание имен каталогов не говорит о хорошем стиле. Особенно если имена в сценарии повторяются. Модифицируем build.xml, используя property (обратите внимание, как нам пригодилось имя проекта, заданное в project) и добавив пару комментариев:
/classes»/> «/> » destdir=»$» includeAntRuntime=»false»/> » classpath=»$»/> «/>
Теперь добавим в сценарий target package для формирования jar файла:
и убедимся что всё работает:
$ ant package
$ java -jar build/HelloWorld.jar
Hello, World!
Перейдём к тестированию. Изменим код проекта (чтобы было что тестировать):
public class HelloWorld < public static void main(String[] args) < HelloWorld hello = new HelloWorld(); System.out.println(hello.sayHello()); >String sayHello() < return «Hello, World!»; >>
и добавим в каталог src файл/класс TestHello.java с простым тестом:
Используя информацию со страницы https://github.com/junit-team/junit4/wiki/getting-started скачиваем два файла, junit-4.12.jar и hamcrest-core-1.3.jar и копируем их в каталог нашего JDK/jre/lib/ext (такую команду копирования используем в CentOS 6.8):
$ sudo cp ~/Downloads/*.jar /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el6_8.i386/jre/lib/ext/
Теперь можно проверить как работает тест в командной строке:
$ java -cp build/classes org.junit.runner.JUnitCore TestHello
JUnit version 4.12
.
Time: 0,281
OK (1 test)
Добавляем в наш сценарий ещё один target – test:
и дополняем строку в target package (jar):
/$.jar» basedir=»$» excludes=»Test*.class»>
Теперь к списку команд нашего сценария (compile, run, package, clean) добавилась test.
В заключение меняем код нашего проекта так, чтобы приветствие выводилось в отдельном графическом окне. Затем формируем jar файл и запускаем его двойным кликом мыши (у вас должно быть настроено выполнение jar файлов по двойному клику).
Третья версия Java кода:
import javax.swing.*; import java.awt.*; public class HelloWorld extends JFrame < public static void main(String[] args) < new HelloWorld(); >HelloWorld() < setTitle(sayHello()); setDefaultCloseOperation(EXIT_ON_CLOSE); setBounds(200, 200, 300, 200); JLabel label = new JLabel(sayHello(), SwingConstants.CENTER); label.setFont(new Font(«», Font.BOLD, 24)); add(label); setVisible(true); >String sayHello() < return «Hello, World!»; >>
Слегка дополняем сценарий (в target run), дописав fork=«true» (запуск выполнения класса в другой виртуальной машине). В противном случае run не сработает (проверено экспериментально):
» classpath=»$» fork=»true»/>
Выполняем команду формирования jar файла ($ ant package), открываем в проводнике файлов каталог ~/hello/build, находим там HelloWorld.jar, дважды кликаем по нему мышкой и получаем удовольствие от созерцания графического окошка с приветствием.
Источник: habr.com
4 марта 2009
Когда речь идет об использовании интегрированной среды разработки (IDE), часто приходится сталкиваться с мнением о том, что ее функционал слишком избыточен для решения повседневных задач. Доля правды в этом есть: появляются новые сущности, незнакомые механизмы, много настроек, о которых раньше не приходилось задумываться.
Однако не стоит забывать, что работа в IDE — совершенно новый уровень разработки и многие привычные задачи в ней решаются по-другому. Прелесть интегрированной среды в том, что у разработчика есть возможность собрать под одной крышей (то есть в одной программе) много разных инструментов, которые будут не только решать разные задачи, но и тесно взаимодействовать друг с другом.
Таким образом, перед разработчиком откроются абсолютно новые способы работы над проектом. В прошлых статьях я рассказывал об инструментах для работы с исходным кодом, сейчас начнем знакомиться с приемами работы над проектом в целом. И начнем с автоматизации рутинных задач с помощью Ant.
Apache Ant известен любому Java-программисту: это популярный инструмент сборки ПО (build tool), полностью написанный на Java. Его поддерживают все IDE: NetBeans, IntelliJ IDEA, Eclipse. Сценарий сборки Ant представляет собой простой XML-файл. Несмотря на всю свою Java-направленность, и обычные веб-разработчики пользуются этим инструментом для решения своих задач.
Hello world!
Давайте начнем изучение Ant с классического примера: текст Hello world! выведем в консоль. Для начала нам нужно убедиться, что файл build.xml (так обычно называют сценарии сборки) привязан к редактору Ant в Eclipse. Идем в Preferences → General → Editor → File Associations и ищем там файл build.xml, привязанный к редактору Ant Editor. Если такой записи нет, добавьте ее: сначала нажмите Add напротив File types и введите туда build.xml, затем выделите только что добавленную запись и нажмите Add напротив Associated editors и в списке выберите Ant Editor. Выделите Ant Editor и нажмите кнопку Default.
- Создадим новый проект и назовем его, например, ant-test.
- В этом проекте создадим новый файл с именем build.xml. Файл должен сразу же открыться в Ant Editor.
- Запишем туда вот такой сценарий:
01
02
03
04
05
06
Hello world!
Рассмотрим подробнее структуру сценария. Родительским элементом является с атрибутом name — это название сценария построения.
Внутри тега находится тег , внутри которого — . Тут мы подходим к двум важным понятиям Ant, которые поначалу могут немного запутать: это цели (targets) и задания (tasks). В данном случае мы выполнили цель hello-world (обязательный атрибут name у тега ) с помощью задания . Чтобы легче было запомнить, предлагаю пользоваться следующими правилами: цель указывает, что именно нужно сделать, а задания — с помощью чего достигается цель.
Чтобы лучше освоиться с Ant, давайте создадим что-нибудь полезное, например, актуальное на сегодняшний день сжатие набора js-файлов с помощью YUICompressor.
Поставим себе задачу. У нас есть набор JavaScript-файлов, представляющих собой одну библиотеку. Чтобы эта библиотека загрузилась максимально быстро для пользователя, нужно объединить все файлы в один и сжать результат с помощью YUICompressor. Создадим в нашем проекте ant-test две папки: js_src и js. В первой будем хранить исходник, а во второй — сжатый результат.
Создадим несколько файлов в папке js_src: file1.js, file2.js и file3.js, в каждый из этих файлов напишем какой-нибудь код.
Приступим к написанию сценария. Определимся, каких целей мы хотим достичь. Нам нужно построить библиотеку lib.js (первая цель), для чего нужно объединить все файлы в один (вторая цель) и сжать их (третья цель). Вот примерный сценарий:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Done. Concatenating files Minifying files
Сразу рассмотрим все новые элементы и атрибуты. У элемента появился атрибут default — это цель или набор целей, которые будут выполняться по умолчанию при вызове этого сценария. Нам это понадобится чуть позже. Атрибут basedir задает директорию, относительно которой будут считаться все относительные пути к файлам и директориям. Его указывать необязательно, по умолчанию он равен абсолютному пути к проекту, в котором находится сценарий.
Обратите внимание на атрибут depends у цели build-lib. Он определяет цели, от которых зависит текущая цель. В данном случае мы говорим: «Выполнить цель build-lib только после того, как будут выполнены concat-files и minify». Это очень удобный (но далеко не единственный) механизм для использования одинаковых последовательностей заданий в разных целях.
Особенность зависимостей Ant заключается в том, что одна цель будет выполнена только один раз в течение сессии. Подробнее об этом читайте в документации.
Как видно из примера, у нас есть точка входа — цель build-lib (атрибут default у ), которая зависит от двух других целей: concat-files и minify. Объединение (конкатенация) файлов выполняется с помощью задания , в атрибуте destfile указываем, в какой файл хотим сохранить результат.
За то, какие именно файлы и в какой последовательности должны быть объединены, отвечает файловый ресурс , который мы отдаем заданию . Думаю, здесь все понятно: в атрибуте dir указываем, в какой директории нужно искать файлы, а с помощью элементов задаем конкретные файлы. Типов ресурсов существует довольно много, большинство из них нужны Java-программистам. Для нас наиболее востребованными будут и . Основное их различие в том, что в первом случае указывается четкий набор файлов, а во втором — задается набор файлов с помощью паттернов включения и исключения. Например, сейчас мы могли бы заменить на такую конструкцию:
01
02
03
Но у этого способа есть ряд недостатков. Во-первых, в набор попадут абсолютно все файлы с расширением js в папке js_src, что не всегда нужно на реальных проектах. А во-вторых, даже если указать в паттернах названия файлов, этот ресурс не гарантирует тот порядок следования, в котором вы хотите их объединить. То есть если важно, в каком порядке должны объединяться файлы, лучше задавать набор через .
В приведенном примере смущает то, что пути к папкам жестко зашиты в код сценария, поэтому давайте вынесем их в отдельные свойства:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
25
Done. Concatenating files Minifying files
Свойства в Ant задаются с помощью тега . Свойства очень похожи на константы в языках программирования: задав один раз, вы больше не сможете поменять их во время исполнения сценария. Обращаться к свойствам следует через конструкцию $ . Свойства можно задавать не только внутри , но и внутри , а также глобально для всего IDE через Preferences → Ant → Runtime → Properties.
Хозяйке на заметку
Проверьте работу сценария: сделайте двойной клик в Ant View на цели build-lib. У вас в папке js должен появиться файл lib.js, в котором будет содержимое всех трех файлов. Если файл не появился, обновите (Refresh) папку js в Project Explorer.
Файлы объединять мы научились, теперь научимся сжимать их с помощью YUICompressor. Сам разработчик этой замечательной библиотеки рекомендует вызывать компрессор как внешнюю программу, мы же поступим куда более интересно: создадим отдельную задачу, которая будет сжимать файлы.
Модульная структура Ant позволяет расширять его, дописывая новые задачи на Java. Сейчас мы научимся одному из способов добавления таких задач в сценарий сборки.
- Скачайте YUICompressor и распакуйте куда-нибудь архив, например, в папку C:yuicompressor.
- Скачайте YUIAnt.jar и положите его в папку build, где вы распаковали YUICompressor (C:yuicompressorbuild).
- Добавьте вот такую конструкцию в сценарий внутрь тега :
01
02
03
04
05
06
07
С помощью нее мы создали новую задачу . Чтобы она работала, нужно указать полный путь к Java-классу этой задачи (com.yahoo.platform.yui.compressor.YUICompressTask), а также указать путь, где находится файл с этим классом ( / ). Теперь можно дописать цель minify:
01
02
03
04
05
06
07
08
Minifying files