, Что точно первый класс программирует конструкцию?
Что-то - первоклассная конструкция, если язык поддерживает ее способом, который походит на другие виды объектов .
, Например, в C++, функции не считали бы первоклассными конструкциями: можно сделать другие виды объектов во времени выполнения, но Вы не можете инстанцировать новых функций. В отличие от этого, в C# 3 и позже, функции, вероятно, считали бы первоклассными конструкциями с введением лямбд/анонимных функций.
Как с очень многими другими вещами, это - естественно субъективное определение. Википедия имеет хорошая сводка для более конкретных примеров, как делает C2.
У разработчиков Android есть хорошая статья о предотвращении утечек памяти за счет хранения контекстных ссылок. Там тоже много других интересных постов.
Здесь можно много чего сказать.
Видео для Android с Google I / O 2009 охватывают большинство аспектов, которые следует учитывать при программировании на Android. Фактически, статьи http://android-developers.blogspot.com/ являются источником, который расширяет эти презентации, и их объяснения от лучших инженеров Google (и в качестве бонуса вы Получу раздел вопросов и ответов) необходим для каждого разработчика Android, IMO.
Некоторые из вещей, которые можно упомянуть:
Не используйте числа с плавающей запятой, если вы можете добиться аналогичных результатов с целыми числами, потому что Android не делает
Я бы не назвал их ловушками как таковые, но всегда помните, что это не компьютер, подключенный к стене, который можно просто модернизировать различными способами. У вас есть цикл обновления примерно каждые 2 года (продолжительность стандартного мобильного контракта в наши дни), и оборудование (A) не самое быстрое и (B) статическое в течение этого времени.
На что следует обратить внимание:
1) Как то, что ваше приложение влияет на время автономной работы? Вы повсюду разбрызгиваете яркую графику? У вас много потоков в фоновом режиме? Службы?
2) Сколько места ваше приложение должно занимать на устройстве? Может ли информация храниться на сервере и передаваться на устройство для временного использования только тогда, когда оно? требуется?
3) Что касается пункта 2, терпимо ли ваше приложение к плохим / несуществующим сетевым / мобильным соединениям? Как он работает в сети EDGE по сравнению с 3G?
Я уверен, что вы можете придумать больше, но это то, что я имею в виду при написании своих приложений.