Facebook — одно из самых функциональных приложений, доступных на Android. С такими функциями, как push-нотификации, новостная лента и встроенная версия Facebook Messenger (фактически, являющаяся полноценным приложением), которые работают одновременно в реальном времени, сложность и объём кода порождает ряд технических сложностей, с которыми сталкиваются в том числе и другие Android разработчики — особенно на старых версиях платформы. (Наши последние приложения поддерживают старую версию Android 2.2 — Froyo, которой уже почти 3 года).
Одна из таких проблем связана с тем, как виртуальная машина Android — Dalvik, обращается с Java методами. В конце прошлого года мы
закончили переработку нашего Android приложения, которая включала в себя перевод большого объёма JavaScript кода в Java, а так же использование новых абстракций, которые породили большое число небольших методов (в большинстве случаев, это считается хорошей практикой программирования). К сожалению, это привело к резкому увеличению числа методов в нашем приложении.