Pull to refresh

31 метод эффективного программирования под Android

Reading time 5 min
Views 24K
Данная статья является переводом очень хорошего топика с форума Stack Overflow. Так как английский язык не является для меня родным, то какие-либо непонятные мне места я просто пропускал, что бы не разгневать тех, кто его действительно знает. Статья содержит список советов и рекомендаций для начинающих разработчиков под Android.



1. Не забывайте освобождать ресурсы после использования: многие ресурсы, такие как курсоры баз данных часто игнорируют. Освобождайте их. Закрывайте ресурсы (файлы, потоки) после того, как они больше вам не нужны.
2. Не используйте «магические» числа: записи вида values[0] — бессмысленны. Существуют элегантные способы доступа, такие как values[SensorManager.DATA_X].
3. Используйте методы onPause()/onResume() для сохранения или закрытия всего того, что этого требует или того, что не должно быть открыто все время.
4. Создавайте ваши приложения работающими быстро и эффективно: обязательно изучитите доклады конференции Google I/O 2009.
5. Сложите два числа: ваше первое самостоятельное приложение должно брать два числа и складывать их. Это звучит очень просто, но вы можете потратить несколько часов для того, что бы вся разметка (здесь и далее layout), функции обратного вызова, методы onPause()/onResume() работали корректно.
6. Это Java: большая часть разработки приложения под Android – это программирование на Java. Не тратьте время на критику или ее восхваление. Просто программируйте.
7. Любите RelativeLayout: большинство примеров для начинающих используют LinearLayout, но вскоре вы узнаете, что RelativeLayout действительно полезен.
8. Используйте свойство «fill_parent» для самого первого RelativeLayout: наиболее общей и трудно находимой проблемой является использование свойства «wrap_content» для самого первого RelativeLayout и дальнейших выяснений причин того, почему же некоторые элементы прорисовываются странно.
9. Используйте «пустые» элементы разметки: часто вы будете использовать пустые элементы в вашей разметке для относительного позиционирования других элементов. Например, вы можете использовать пустой TextField с нулевой высотой и шириной с параметром «centerInParent» равным «true» только для того, что бы выравнять другие элементы по центру экрана.
10. Используйте цвет фона для разметки: если у вас есть некоторые проблемы с разметкой — попытайтесь установить цвет фона для некоторых объектов. Это поможет выделить ваши ошибки быстрее, чем другие утилиты.
11. Скачайте «Apps-For-Android»: они содержат достаточно много полезного исходного кода. И приятно дополняют стандартные примеры приложений и показывают использование других решений в коде. Скачайте их при помощи команды «svn co apps-for-android.googlecode.com/svn/trunk/apps-for-android-read-only».
12. Скачайте исходный код: исходный Android код необходим для решения некоторых проблем и восполнения пробелов в документации. Не обязательно, что бы это была последняя версия. Посетите соответствующий сайт для его получения.
13. Учитесь искать соответствующий исходный код: самое быстрое решение для большинства проблем — это найти как используется определенный параметр в другом исходном коде. Поместите копию примеров приложений, приложений «apps-for-android» и любых других исходных кодов в одну директорию. При помощи команды «grep -ir параметр директория_с_исходным_кодом/» или любой другой программы вы легко сможете найти как нужно использовать данный параметр.
14. Используйте Eclipse: даже если у вас есть другая любимая IDE или редактор, который вы используете годами, применяйте Eclipse для разработки под Android. Это достаточно хорошая IDE и для нее существует множество утилит помогающих разработчику.
15. Изучите Eclipse: изучайте несколько новых трюков этой IDE каждый день. Мои любимые можно найти здесь и здесь.
16. Программируйте каждый день: программирование под Android может вас разочаровать. Не позволяйте себе останавливаться. Используйте утилиты, примеры приложений, читайте статьи. И снова пишите код.
17. Не используйте один монитор: работа за ноутбуком в кафе замедлит вашу работу. Вам необходимо «разложить» окна приложений хотя бы на пару экранов (окно Eclipse, эмулятор и документация). Работать с тремя мониторами даже еще лучше.
18. Отформатируйте XML-файлы: используйте команду Source – Format для приведения их в приемлемый вид. Если вы захотите выбрать следующий параметр «Eclipse/Windows/Preferences/XML/XML Files/Editor/Formatting/Split XML attributes each on a new line», то нажмите Ctrl + Shift + F для форматирования текста.
19. Редактируйте XML-файлы простым текстовым редактором: не используйте GUI для изменений свойств XML-тэгов.
20. Думайте о пиратстве в MarketPlace: Google не сделал MarketPlace «счастливым местом». Приложения копируются и публикуются заново, но меняются только имена. Не планируйте жить исключительно на поступления из AppStore.
21. Используйте LogCat: часто бывает сложно понять, что же пошло не так. Запустите приложение в отладчике и посмотрите на вывод LogCat. Если вам необходимо раскрасить вывод LogCat используйте Colored LogCat
22. Исследуйте директорию SDK с утилитами: существует много полезных утилит, таких как hierarchyviewer или layoutopt. Изучите их.
23. Обязательно прочтите следующие статьи: дизайн и производительность в Android, лучшие практики пользовательских интерфейсов, лучшие практики «отзывчивых» пользовательских интерфейсов и лучшие практики unit-тестов Android приложений.
24. Не копируйте образцы пользовательских интерфейсов с других платформ (особенно с iPhone): я видел много приложений, которые пытаются копировать «tab bar», который есть у многих приложений на iPhone (android и iPhone). Я против этого. Это смотрится не к месту, не естественно для платформы и засоряет экран. Также, это трудно реализовать, так как SDK никак не помогает в создании этого и вам придется писать это с нуля. Вместо этого, используйте кнопку Menu.
25. Запуск намерений (Intents): всегда запускайте намерения при помощи отдельного метода и называйте этот метод соответствующим образом.
26. Сборщик мусора: запуск сборщика мусора виртуальной машины Dalvik очень «дорог». Он легко может заблокировать пользовательский интерфейс. Если вам необходим плавный скорллинг, вы должны избегать создания множества объектов. Предпочтительно использовать существующие объекты и не создавать новых. Игра Replica Island — это игра с исходным кодом, которая использует этот прием. Исследуйте ее исходные коды. Также вы сможете анализировать создание объектов в приложении на закладке «Allocation Tracker» в DDMS.
27. Потоки: запуск нового потока достаточно «дорог». Используйте только один поток, который выполняет задачи одна за одной или используйте пулы потоков (thread pools). Если необходимо, используйте встроенные классы, такие как AsyncTask.
28. Большие объемы данных: если ваши данные занимают достаточно большой объем (более 100Кб) — не сохраняйте их в текстовых или XML-файлах. Их парсинг будет слишком «дорог». Используйте SQLite.
29. Eclipse MAT: Eclipse Memory Analyzer это хорошая утилита для анализа выделений памяти. Она поможет вам найти утечки памяти в вашем приложении.
30. Метод onDestroy: переопределяйте метод onDestroy для того, что бы «убрать за собой».
31. Антивирус: если вы пользуетесь антивирусом, то исключите директории, где расположен эмулятор из сканирования: образы эмуляторов обычно хранятся в пользовательской директории (например, C:\Documents and Settings\Users.android), директорию Eclipse и директорию, где расположен Android SDK. Если вы отключите сканирование этих директорий скорость программирования и отладки может значительно возрасти.
Tags:
Hubs:
+115
Comments 65
Comments Comments 65

Articles