скрытое меню

Андроид Mqtt клиент

Андроид Mqtt клиент

Мой первый опыт разработки андроид приложения, первые впечатления так сказать: Чтобы запустить Hello World хотя бы на эмуляторе пришлось дня 3-4 "получать удовольствие" от правильной установки Android Studio и Eclipse на Windows 7-64 и Ubuntu 12.04,16.04.

Характерный эпизод - на Ubuntu 2Gb памяти хватало на разработку на IDE QT Creator, Appache+MySql+PHP сервер , но для Андроид Студио этого Недостаточно! 4 GB извольте выложить.

Так как Windows для меня лично менее предпочтительна с радостью сообщаю через 5 дней на Ubuntu 12.04 запустилась первая Hello World. Пришлось установить как полагается JDK , потом Android studio , Eclipse только для того , чтобы настроить Android Virtual Device (Android studio тут заклинило). Выбор в сторону среды разработки Андроид студио , а не Eclipse трудно объяснить , мне показалось так будет проще, дальше посмотрим.

Наша задача разработать свой Mqtt клиент , который будет висеть как сервис всегда на связи с сервером mqtt и информировать о важных событиях, например сработках сигнализации , заметным образом. Почему нужен свой mqtt клиент , когда много бесплатных - потому-что просмотрев штук 15 бесплатных я не понял у как можно вывести картинку с камеры где сработалоо датчик движения например. используем paho mqtt библотеку.

Итак андроид студио : огромное количество закладок, кнопок, меню, списков вводит в ступор. Делаем шпаргалку:

если чего ищем лучше CTRL-SHIFT-F жмем

настройка компиляции и сборки

    в app.build.cradle в dependencies добавляем
  • compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
  • compile 'org.eclipse.paho:org.eclipse.paho.android.service:1.0.2'
    в build.cradle в repositories добавляем
  • maven { url "https://repo.eclipse.org/content/repositories/paho-snapshots/" }
    в Manifest:
  • <!-- Permissions the Application Requires -->
  • <uses-permission android:name="android.permission.WAKE_LOCK" />
  • <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  • <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  • <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  • <uses-permission android:name="android.permission.INTERNET" />

Перед! тегом application : <uses-permission android:name="android.permission.INTERNET" />