Найти в Дзене
Wendily

Программирование приложений под Android

Android - это операционная система. Каждый разработчик приложений должен изучить все её особенности в избежании некоторых трудностей и получения определенного результата. Существуют некоторые сложности, которые нужно избегать при разработке: 1) приложение требует для установки в два раза (или даже в четыре) больше места чем оригинальный размер приложения; 2) скорость работы с файлами на встроенной флешке падает в десятки раз при уменьшении свободного места; 3) каждый процесс может использовать до 16 Мб (иногда 24 Мб) оперативной памяти.
Принципы разработки производительных приложений под Android. Существует ряд рекомендаций по созданию производительных приложений под Android. Их также можно расширить на основе книг Effective Java — Joshua Bloch и Программирование мобильных устройств на платформе .Net Compact Framework — И.Салмре. Перечислим основные принципы разработки производительных приложений под Android Стратегические: 1) ресурсы нужно экономить; 2) нужно мгновенно выдават

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

1) приложение требует для установки в два раза (или даже в четыре) больше места чем оригинальный размер приложения;

2) скорость работы с файлами на встроенной флешке падает в десятки раз при уменьшении свободного места;

3) каждый процесс может использовать до 16 Мб (иногда 24 Мб) оперативной памяти.


Принципы разработки производительных приложений под Android. Существует ряд рекомендаций по созданию производительных приложений под Android. Их также можно расширить на основе книг Effective Java — Joshua Bloch и Программирование мобильных устройств на платформе .Net Compact Framework — И.Салмре. Перечислим основные принципы разработки производительных приложений под Android

Стратегические:

1) ресурсы нужно экономить;

2) нужно мгновенно выдавать реакцию на действия и поддерживать обратную связь с пользователем;

3) производительность приложения главная цель. Нужно постоянно в процессе разработки оптимизировать производительность не оставляя эту работу на потом;

4) нужно измерять время выполнения, протоколировать и анализировать ход выполнения приложения, узкие участки кода, возникновения событий, выделение памяти, время жизни объектов. Что не измеряется, то нельзя оптимизировать.

Тактические:

1) избегайте создания лишних объектов;

2) по возможности делайте методы статичными;

3) используйте прямой доступ к полям вместо методов посредников;

4) используйте static final для констант;

5) не используйте enum там, где достаточно обычной переменной целого типа.

Android использует специальный механизм описания действий основанный на Intent. Когда нужно выполнить действие (сделать звонок, послать письмо, показать окно), вызывается Intent. Также Android содержит сервисы подобные демонам в Linux для выполнения нужных действий в фоновом режиме (например, проигрывание музыки). Для обмена данными между приложениями используются Content providers (провайдеры содержимого).

Язык для разработки выбран java. Java — сильно типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). В настоящее время проект принадлежит OpenSource и распространяется по лицензии GPL. В OpenJDK вносят вклад крупные компании, такие как — Oracle, RedHat, IBM, Google, JetBrains. Так же на основе OpenJDK эти компании разрабатывают свои сборки JDK. Как утверждает компания Oracle — отличия между OpenJDK и OracleJDK практически отсутствуют за исключением лицензии, отрисовки шрифтов в Swing и некоторых библиотек, на которые лицензия GPL не распространяется. Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре с помощью виртуальной Java-машины. Дата официального выпуска — 23 мая 1995 года. На 2019 год Java — один из самых популярных языков программирования

Основные возможности:

1) автоматическое управление памятью;

2) расширенные возможности обработки исключительных ситуаций;

3) богатый набор средств фильтрации ввода-вывода;

4) набор стандартных коллекций: массив, список, стек;

5) наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI);

6) наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;

7) встроенные в язык средства создания многопоточных приложений, которые потом были портированы на многие языки (например Python);

8) унифицированный доступ к базам данных;

9) на уровне отдельных SQL-запросов — на основе JDBC, SQLJ;

10) на уровне концепции объектов, обладающих способностью к хранению в базе данных — на основе Java Data Objects (англ.) и Java Persistence API;

11) поддержка обобщений;

12) поддержка лямбд, замыканий, встроенные возможности функционального программирования.