Когда есть готовый проект приложения для Android STUDIO гораздо проще начать собственную разработку.
Проекты Android JAVA приложений высокой степени готовности
Здесь предлагаются полные бесплатные проекты Android JAVA приложений. Каждый Andriod STUDIO проект содержит полный набор файлов для компиляции. Вест код содержит подробные комментарии. Все приложения протестированы на реальных смартфонах.
Android приложение делает фотографии по таймеру и загружает их на Ваш веб сервер. Вы можете из любой точки мира следить за своим домом, магазином, складом, стоянкой, дачей.
Ничего сложного. В приложении есть модуль для работы с фотокамерой смартфона. Все настройки берутся из настроек смартфона. Это сильно упрощает код приложения.
Снимок загружается на веб сервер по FTP. Используется известная библиотека Apache Commons Net FTP
В готовом проекте библиотека уже подключена.
Параметры подключения к веб серверу задаются на отдельном экране. Я использовал бесплатный веб хостинг, поддерживающий загрузку файлов по FTP. Для просмотра фотографий на веь сайте создал специальную PHP веб страницу.
В приложении можно указать имя графических файлов (к нему добавляется порядковый номер) и максимальное количество файлов, после которого нумерация начнется снова (режим ротации). Вы так же можете задать временной интервал между фотоснимками. Но надо учитывать, что если GSM-Интернет будет медленный, то фотография не успеет полностью загрузиться на сервер.
В приложении есть автономный режим, когда фотографии записываются в память смартфона.
Зачем все так сложно?
Да, есть приложения для фоторегистрации, для которых не нужно возиться с веб сервером. Там ваше коиентское приложение подключается к серверу разработчика... И он конечно же сможет просматривать Ваши фотографии и быть в курсе Ваших событий. Уехали в отпуск? Он будет знать!
В этом Open Sorce проекте всё под Вашим контролем: приложение, веб сервер, исходный код.
Если в приложении задавать разные имена для фотографий, то можно на один веб сайт загружать картинки с нескольких смартфонов и отслеживать несколько мест. И вообще, смартфон с приложением можер поставить в автомобиле и припарковать напротив своего дома. Питание смартфона через прикуриватель - хватит на месяц. А в офисе можно воткнуть в USB разъем системного блока.
Скачать полный готовый проект с Google DRIVE
https://drive.google.com/file/d/1hAeNqKd-3nXiMhk_t41p4bXXOuE3kcWH/view?usp=sharing
Проект работает с смартфоном в вертикальной ориентации. Приложение можно отлаживать на подключенном по USB кабелю реальном смартфоне - эмулятор не тянет.
В приложении проверяется наличие Интернет- встроенной командой Ping. В приложении есть телеметрия - в специальное окно выводится полезная информация.
В приложении можно выбрать используемую фотокамеру и есть режим темного экрана - когда приложение работает (STARTED), экран затемняется для экономии ресурса матрицы, электроэнергии и уменьшения заметности.
Качество фотографий определяется в стандартных настройках фотокамеры смартфона.
Экран настроек. Здесь 50 - время в секундах между фотоснимками (для отладки выбрано очень маленькое).
7 и 20 это время ы часах, с какого и по какое вести фотосъемку - с 7 утра до 20 часов (вечера). Ночью снимать чаще всего бессмысленно - темно.
build.dtn.ru - бесплатный веб сайт с FTP доступом. У Вас будет другой адрес.
perfect - имя файла для фотографий
10 - количество фотографий. От perfect1.jpg до perfect10.jpg
Далее две строки - логин и пароль на веб сайт. У Вас это будет другое.
public_html - имя подпапки (если необходимо), в которую записываются фотографии. У некоторых хостинглов по FTP файлы записываются не в ту папку, где располагается стартовая веб страница index.htm и броузер не сможет просмотреть фотографии. Либо надо делать PHP веб страницу, которая будеь иметь туда доступ, либо указывать папку явно (как здесь).
Это подсказка по функциям приложения. всегда можно посмотреть.
Вообще, код приложения хорошо комментирован. Для него есть хороший сайт с пояснениями http://oflameron.com/ Там же есть много бесплатных хостингов с поддержкой загрузки по FTP.
Вообще, приложение получилось довольно навороченным. Учитывая, что это была моя первая программа на Android JAVA для смартфона. При написании приложения пришлось решить массу технических сложностей:
получение разрешений
работа с фотокамерой для новых версий Android
загрузка по FTP
передача параметров между Activity
фиксация ориентации экрана
сохранение и восстановление яркости экрана
Ping
Иконки приложения
Фоторегистратор имеет хорошие перспективы для размещения в Интернет-магазинах. И вот почему. Смартфоны устаревают и люди покупают новые смартфоны. А Ваше приложение может превратить уже бросовый девайс в полноценную систему наблюдения. Которую и не жалко - телефон старый, веб сервер бесплатный. Батарейка у смартфона не держит? Включайте через блок питания или к USB батарее. Экран выгорел? А кому он нужен? Фотографии загружаются на веб сервер и смотрятся на современном устройстве за 100500 км оттуда.
Аудиорегистратор
Это готовое приложение несколько похоже на предыдущее. Оно умеет записывать звук с микрофона в файл и загружать файл на веб сервер. Рекордер с FTP загрузкой записанного. Вы можете скачать с сайта файлы потом или прослушать в броузере.
Для упрощения приложения, все настройки рекордера выполняются штатными средствами OS Android.
Для чего нужно? Например, Вас останавливает ГАИ или полиция. Вы нажимаете на запуск приложения и у Вас есть аудиосвидетель. Причем, если даже Ваш смартфон "изымут", записи у Вас останутся. В приложении предусмотрен режим включения записи сразу при старте. Причем, после настройки, параметры подключения к веб серверу становятся недоступны. Их нельзя посмотреть и узнать, куда загружены файлы.
Download Full Project
https://drive.google.com/file/d/1LSNO8cYlhkXuM2mnHF3FkLblqiN_E9cH/view?usp=sharing
Для чего это приложение?
Контроль состояния квартиры или офиса, когда Вас там нет. Анализ записей поможет Вам выявить незаконное вторжение. В отличие от видеокамер, аудио-регистратор может не находиться на виду, а может быть включен в розетку под столом.
Если кто-то из Ваших знакомых или родных попадает в сложную криминальную ситуацию, такие звуковые файлы могут служить данными для поиска и помощи или алиби или свидетельствами.
В приложении используется стандартный рекордер операционной системы Android. Это упрощает приложение и упрощает совместимость с следующими версиями операционной системы.
Вест JAVA код приложения очень тщательно комментирован. Отладку приложения необходимо производить на реальном смартфоне, т.к. эмулятор "не тянет". Смартфон следует подключать через USB-шнурок. В Интернет-е полно сайтов, показывающих как это настроить. Я использовал Samsung M21.
Для приложения создан набор иконок. При отладке приложения (если Вы будете что-то менять) в окно Debug выводится много принтов - сообщений из разных мест кода (Log D или Log I). Вы можете из почистить.
Т.к. проект доступен Вам как Open Source, то Вы можете просмотреть и поправить любые части кода.
Загрузка звуковых файлов на веб сервер удобнее, чем загрузка на какой-то специальный сервер. Вы можете использовать много отечественных или зарубежных хостингов, в т.ч. и бесплатные. Через броузер можно прослушать звуковые файлы или скачать. Здесь Вы можете обеспечить бОльшую конфиденциальность своих данных.
Когда приложение настроено на смартфоне (подключение к веб серверу, время записи и т.д.), можно заблокировать приложение - при его запуске оно сразу начинает запись и невозможно что-то поменять или посмотреть в настройках. Это сделано для безопасности. Если у Вас отберут телефон, запись и загрузка файлов будет продолжаться в фоновом режиме.
Использование стандартного рекордера Android существенно упрощает программирование приложения и его адаптацию к следующим версиям Android.
Довольно просто добавить возможность сохранять аудио файлы на два веб сервера. Можно добавить загрузку геолокации места записи.
Готовый проект.
(c) by Valery Shmelev
RSA шифрование
Регулярно можно слышать об утечках персональных данных. За это уже полагаются крупные штрафы для компаний.
Одно из эффективных средств от незаконного получения персональных данных - стойкое шифрование записей в базах данных. В OS Android есть встроенное стойкое RSA шифрование с ключом 1024 или 2048 бит. RSA - алгоритм несимметричного шифрования, которым обычно шифруют сообщения с длиной, меньшей длины ключа (245 байт для 2048 битного ключа). Но ведь в Вашей базе данных могут быть более длинные записи. Поэтому обычно алгоритмом RSA шифруют ключ симметричного (более быстрого алгоритма) AES и уже им шифруют записи. Но стойкость AES шифрования существенно ниже.
Поэтому создан и доступен специальный JAVA Class для RSA шифрования. В нем есть методы для шифрования и декодирования длинных текстов (любой длины).
Этот JAVA Class содержит все необходимые методы для работы с RSA шифрованием - генерацию, сохранение и восстановление ключей, экспорт-импорт ключей, шифрование и декодирование больших текстов. Использовать этот Class очень просто.
JAVA Class для работы с RSA шифрованием и примеры на GitHUB
https://github.com/vallshmeleff/androidrsa
Собственно класс
https://github.com/vallshmeleff/androidrsa/blob/main/RSACode.java
Все очень хорошо комментировано. JAVA код использовался в приложениях для Android 10 на смартфоне Samsung M21
NOTES. Обычно несимметричное RSA шифрование не используют для офисных задач. Считается, что оно медленное. Но RSA шифрование существенно более стойкое. Кроме того, если у Вас компания на 50-100 человек и Вы шифруете только 2-3 критических поля в базе данных, то производительности современных компьютеров и серверов хватит с большим запасом. Тем более, что сервер вообще может не заниматься шифрованием и декодированием, а только хранить зашифрованные данные.
Как при этом делать поиск и выборку?
Поиск чаще всего выполняется по фамилии и имени (из персональных данных). Если это интернет-магазин, то как правило, никогда не задают в поиск номер или серию паспорта. А значит, все кроме Ф.И.О. о клиенте можно шифровать и хранить и пересылать в зашифрованном виде. Если же надо делать выборку из базы по району, типу товаров, стоимости покупок, то это не персональные данные.
Этот JAVA Class для работы с RSA шифрованием используем в следующем проекте приложения - SQLite база данных с RSA шифрованием некоторых полей записей, экспортом-импортом базы данных и ключей шифрования.
Готовый проект.
(c) by Valery Shmelev
SQLite база данных с RSA шифрованием
Большое число приложений для Android работает с базами данных - курьерские службы, интерне-магазины, справочники, складские программы и т.д. Мы добавим стойкое RSA шифрование для некоторых полей и функцию расширения полей SQLiteBoost.
Это приложение - полностью работающая заготовка для Вашего приложения. Все технические вопросы решены, отлажены и закомментированы. Делаете свой дизайн и добавляете необходимые функции. Приложение умеет создавать базу данных, создавать, добавлять и редактировать записи, шифровать записи с использованием RSA, экспортировать и импортировать базу данных и ключи шифрования. Это готовая программная часть для смартфона менеджера торговой точки или курьера.
SQLite база данных легко ставится на Windows компьютер и конвертируется в Excel.
https://github.com/vallshmeleff/sqliteandrsa
Здесь размещены все значащие файлы проекта. Создайте пустой проект в Android Stugio с таким же именем, замените в нем те файлы, которые доступны в этом репозитории и можно производить компиляцию.
Шифрование данных
В проекте приложения использовано надёжное RSA шифрование одного поля в записях. Любое количество полей добавляется аналогично. Как правило, не шифруют поля, по которым производится поиск. Т.к. поиск производится по незашифрованным данным, использование шифрования мало сказывается на производительности.
RSA шифрование
RSA шифрование с ключом 2048 байт весьма надежное. Вам только надо обеспечить защиту приватного ключа, с помощью которого расшифровываются данные. В приложении используется ключ длиной 2048 байт. Т.к. Вы работаете с зашифрованной базой данных и расшифровываете только некоторые поля некоторых записей, хакерам потребуется найти приватный ключ. Рассмотрим варианты защиты ключа.
Самых простых вариантов два:
создание большого количества ложных приватных ключей в хранилищах
внесение 1-2 байт изменений в используемый приватный ключ
Большое количество приватных ключей можно разместить в файлах, хранилищах, токенах. Анализ и поиск рабочего ключа может стать для хакера затратной задачей.
В рабочий ключ можно вносить ошибки - 1-2 байта, которые специалист будет помнить и корректировать вручную при перезапуске системы.
[Текст дописывается / Версия от 04.04.2023]
Готовый проект.
(c) by Valery Shmelev
Приложение для изучения иностранных слов
Приложение WordMaster для эффективного запоминания иностранных слов -полностью готовый проект. Можно компилировать и использовать.
Есть много приложений для запоминания иностранных слов. WordMaster использует свой собственный алгоритм обучения. Изучая иностранное слово, Вы уаждый раз решаете простую логическую задачу - как из предоставленного набора букв составить неизвестное Вам слово. В европейских языках почти нет слов, которые звучат "не натурально". Если Вам предоставить набор букв, например, "MNYOE", то с небольшим усилием Вы составите слово "MONEY"
Полный Android Studio проект
https://drive.google.com/file/d/13KB_uhrUpIJfBvA_wg5s2LH2orY7d4Wa/view?usp=sharing
В проект включены словари. На каждую букву английского алфавита используется один текстовый файл, но это не обязательно. При старте приложение считывает список файлов из папки /DATA/FILES
Каждый файл словаря - обычный текстовый файл, редактируемый в notepad.exe
На каждой строчке - отдельное английское слово и через запятую еще 6 переводов.
Можно использовать любое количество файлов словарей. Полный список словарей считывается приложением из папки и выбирается словарь и слово из словаря для изучения.
По умолчанию при запуске приложения выбран изучаемый язык Английский. Окно приложения поддерживает скроллинг. Сдвиньте его вверх и Вы сможете выбрать родной язык и изучаемый язык.
Поддержка проекта на GitHUB
https://github.com/vallshmeleff/wordmaster
Проект приложения еще не готов для размещения в магазинах приложений. Это полная работающая "заготовка" для Вашего проекта. Сделайте красивое оформление, добавьте словарей или языков, сделайте проверку правильности составленного слова и т.д.
Приложение предназначено для пополнения набора иностранных слов. В словари записаны наиболее часто используемые слова.
Приложение заменяет обычные бумажные карточки для изучения иностранных слов. Но делает это на более интересном уровне - на уровне логических задач. Есть ещё несколько интересных алгоритмов из серии Oflameron для изучения иностранных слов или фраз, которые можно использовать в этом приложении.
Текст дописывается / Версия от 12.04.2023]
Система Управления на Android
Система управления Беспилотными летательными аппаратами самолетного типа с использованием Android смартфона.
(Unmanned aerial vehicles (UAV) control system using an Android smartphone.)
Наличие датчиков давления, ускорения, координат, магнитного поля позволяет создать систему автономного управления Беспилотным Летательным Аппаратом. Не смотря на то, что JAVA код для получения измеряемых значений совсем простой, разработка такой системы связана с существенными трудностями, если нужен реально работающий образец.
Интересный вариант - с использованием двух смартфонов разных производителей с разными физическими датчиками. При этом девиации, дрейф, ошибки измерения можно будет заметно уменьшить. Но начинать надо с одного Андроид смартфона. Нужно измерять угловое положение, скорости вращения (или ускорение), высоту над уровнем моря и пройденное расстояние.
Сначала создадим проекты для использования отдельных датчиков: гироскопов, акселерометров, магнитометров. Затем напишем код для получения координат от GPS и вычисления направления до указанной точки полета. Затеи напишем JAVA код для передачи и получения сигналов управления через USB разъем.
В следующем проекте получим список датчиков смартфона и JAVA код для работы с датчиком давления и гироскопом
PressureMonitor.zip https://drive.google.com/file/d/1jLUPUZglVHV4N0YoUZZWMigyFWLqm5hf/view?usp=sharing
Как оказывается, датчики атмосферного давления есть не во всех смартфонах. Поэтому высоту будем определять из сигнала GPS (в том числе) и попробуем лазерную рулетку с USB выходом.
Добавил получение высоты из GPS сигнала и из Network (GSM станций). Показывает близкие значения
166 и 171 метр. В принципе, можно брать среднее из 3-4 "тех и тех" значений.
Добавлен проект для работы с GSM - получение от двух провайдеров - GSM и Network (базовых станций) координат, высоты полёта, вычисление пеленга на заданную точку назначения, получение скорости движения.
Autopilot for UAV - GPS navigation https://github.com/vallshmeleff/autopilotforUAV_GPS
Интересно было бы создать обработку сигналов с датчиков на Android Java, а управление - на нейронной сети на втором смартфоне. Тогда самолет можно было бы не настраивать, а обучать.
Текст дописывается / Версия от 21.04.2023]
Видео-регистратор для автомобиля
Видеорегистратор на базе Android смартфона очень удобен - огромный экран, хорошая видеокамера с стабилизацией, возможность сразу отослать нужный файл.
Учитывая, что проект будет бесплатным Open Source, Вы сможете делать кастомные версии приложения. Например, с SMS трекером. Ваши родные будут знать, где Вы сейчас. Это важно в дальних путешествиях или для пожилых водителей.
Germany. Eine Seite für russischsprachige Programmierer basierend auf dem englischsprachigen Original. Google übersetzer übersetzung
Ich entwickle alle Anwendungen für Android - JAVA Programmer. Schreiben Sie an den Blog https://androidjavaopensource.blogspot.com/