Facebook zwrócił ostatnio swoją uwagę na projekt Redex mający na celu optymalizację kodu cyfrowego Javy aby zoptymalizować jego działanie pod Androidem.
Aby przyspieszyć wyświetlanie na urządzeniach mobilnych, Facebook zmienia kod cyfrowy Java na platformie poprzez zapewnienie optymalizacji plików Android DEX.
We wpisie na blogu, inżynierowie Facebooka: Marty Greenia, Bert Maher oraz Shane Ney, wskazują na odpowiedzialność za optymalizację szybkości, szczególnie w obszarze deweloperskim, gdzie narzędzia pozostają na rynku dłużej.

„Android jest jedną z naszych największych platform, a także mobilną platformą z największą różnorodnością urządzeń końcowych. Każde polepszenie wydajności lub efektywności na te urządzenia może polepszyć doświadczenia milionów ludzi na całym świecie”

Jak dotąd, Rednex będzie ograniczony jedynie do platformy Facebook. Podczas gdy Facebook był aktywny w wydawaniu narzędzi i programów poprzez kanał open source ostatnio, obecnie nie ma planów, aby uczynić to z Redex.
Inżynierowie twierdzą iż Redex składa się z serii konfigurowalnych transformacji, tak aby źródłowy plik DEX był maksymalnie zoptymalizowany przed włączeniem w APK (Android Application Package).

„Przewagą robienia naszej optymalizacji na poziomie kodu cyfrowego (w przeciwieństwie do optymalizacji kodu źródłowego bezpośrednio) jest danie nam maksymalnej zdolności do zrobienia tego globalnie, na poziomie całego kodu, zamiast na poziomie poszczególnych klas.”

„Skłaniamy się ku wykonywaniu transformacji raczej na kodzie cyfrowym DEX, niż kodzie cyfrowym Javy ponieważ pewne transformacje mogą zostać zrobione jedynie na tym etapie.”

Proces optymalizacji transformuje oryginalny plik DEX poprzez serię etapów, gdzie każdy z etapów przynosi samodzielny „optymalizacyjny plugin” zastępujący poprzedni stan.
„Rednex pozwala na dowolnego rodzaju transformację plików DEX, jednak obecnie pragniemy się skupić na używaniu Rednex do minimalizacji tego ile kodu cyfrowego przenoszonego jest w APK”

„Mniej bajtów oznacza również szybszy czas downloadu, szybszy czas instalacji i mniejsze zużycie danych dla posiadaczy smartfonów. Co więcej, mniej kodu przekłada się także na szybsze uruchamianie, mniej kodu znaczy mniej instrukcji do wykonania oraz mniej stron pamięci do zajęcia przez program”