Mobile/Fatfennec

From MozillaWiki
Jump to: navigation, search

Tracking

Full Query
ID Priority Summary Status Whiteboard Assigned to
71895 -- Remove Hidden Window from Linux and Windows builds NEW pseudo-completed
945123 -- Fennec support for downloadable localization files NEW
1042363 P5 [meta] Reduce Fennec's APK size: building and packaging improvements NEW
1042368 -- [meta] Reduce Fennec's storage impact: measure twice, cut once NEW
1042369 P5 [meta] Reduce Fennec's storage impact: clean up NEW
1042372 -- [meta] Reduce Fennec's storage impact: reduce, reuse, recycle NEW
1044079 -- [meta] Eliminate unnecessary desktop/toolkit resources from Fennec's omni.ja NEW
1048683 -- Optimise nine-patches to remove redundant rows/columns REOPENED Chris Kitching [:ckitching]
1095719 -- [meta] Download hyphenation dictionaries at runtime NEW
1114998 -- [meta] Significant resource space regression between 33 and 37 NEW
1115000 -- Significant libxul space regression between 33 and 37 NEW
1116915 -- Consider drawing the ActionBar action mode background rather than using assets NEW
1130201 -- Investigate dynamically drawing shadows instead of using drawable NEW
1133158 P5 Trigger removal of items from the reader mode cache when they're deleted from the database NEW
1148979 -- Move NewTabUtils into browser/, out of toolkit/ NEW
1149209 -- Explore options for reducing size impact of Charis fonts NEW
1158250 P5 Explore using SVG for icons in Firefox for Android NEW
1158303 -- [meta] Swap all ListView and descendants out for RecyclerView NEW
1158994 -- Draw url_bar_entry asset with code & remove assets NEW
1167446 -- Consolidate magnifying glass icons NEW [lang=java]
1171944 -- Use color filters to replace multiple drawable resources with single gray scale image NEW
1175377 P5 Replace about:reader png images with svg NEW [lang=css][lang=svg]
1175379 -- Ship about:config as an add-on instead of in the product NEW
1177184 -- [Linter: IconDuplicatesConfig] Correct icons duplicated across configurations NEW
1177617 -- Consider removing tab_indicator_selected_focused NEW
1181314 -- Use same assets for url bar on both phone and tablet (through scaling) NEW [lang=java][good next bug]
1192048 -- Replace tab_indicator_selected*.png with static drawables NEW
1194205 -- Remove remaining mdpi assets NEW
1194338 -- [meta] Fennec support for downloadable fonts NEW
1197264 -- Investigate offloading ThemedView methods to external class to remove generated files NEW
1201627 -- Unify alert_* icons across API levels NEW [lang=java]
1212629 -- Consolidate green checkbox icons NEW [lang=java]
1218876 P5 Use webP for Android assets if we ever support >= 4.3 / minSdkVersion >= 18 NEW
1242589 -- New first run images increase APK size NEW
1259137 -- Create custom android lint check to prevent unnecessary support library classes from returning NEW
1263338 -- Investigate removing unnecessary logging from Java code NEW
1266156 -- Investigate cruncherEnabled for AAPT PNG optimization NEW k.krish
1268456 P5 Investigate shipping the VP9 benchmark sample as downloadable content NEW
1277277 P5 Consider using the new "Recent" icon for search history suggestions, too NEW
1310143 P5 Use more vector drawables for simple images / icons to reduce APK size NEW
1312824 P3 Consider repackaging devtools as an add-on NEW
1314902 P5 Remove duplicated vector icons NEW [MobileAS]
1346686 P5 Don't include desktop's date time picker in Fennec NEW
1391715 P3 Implement support for EmojiCompat on Android NEW
1400953 P5 AppCompat assets aren't pngcrushed NEW

45 Total; 45 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Goals

"Fatfennec" is the alias for an ongoing project to have Fennec use fewer bytes.

That means:

  • A smaller APK, which is faster to download, doesn't cause upgrade or install failures due to lack of storage (which helps our Growth and Ecosystem goals), and uses less space on disk.
  • Smaller runtime burden -- smaller and fewer databases, careful discarding of temporary files, etc.

APK

Contributing factors:

  • Raw quantities of Java. We can reduce this via:
  • Raw quantities of JS. We can reduce this via:
    • Removing features that we don't use (e.g., Shumway).
    • Minifying: bug 1039902.
    • Not shipping JS source at all: bug 696095.
  • Assets. We ship:
    • > 7MB of fonts.
    • A few MB of images, some of which are at DPI levels that will never be used on a particular device.
    • More than 50 locales at 120KB each. Not all of these will be functional on every API version.

Approach:

  • Reduce costs for each segment of users by building at least two different APKs. One targets API 9, one targets API 13+ (or 10+ if we want to continue to support Honeycomb). Each of these APKs only includes the relevant code (saving 35KB+ of compressed APK, and making the browser faster). The API 9 APK can exclude fonts, hdpi/xhdpi/xxhdpi/xxxhdpi images, tablet layouts, Android Beam code etc., and locales that don't function on API level 9.
  • Reduce costs for all users by attacking minification and other total-reduction items.

Runtime

To follow.