GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||
GeezerVison is showing github.com — Android Android
cpovirk edited this page
Once upon a time, use of Guava was generally frowned upon in Android apps developed at Google, as Guava was designed, tested, benchmarked, and optimized for the conditions found in server Java development. This situation was suboptimal: Android developers found themselves reinventing wheels, awkwardly working around API gaps, and their best practices diverged from best practices for other Java development. Over 2017, we worked extensively to change this situation: to optimize a branch of Guava for suitability for Android, in collaboration with Google's Android experts. We converged on the following set of priorities:
As a result of this work, Google's internal Android best practices have gone from forbidding the use of Guava to actively recommending key parts of Guava. Even after this work, not all of Guava is recommended for use on Android. We focused our optimization work on some key data structures and APIs. Loosely, we recommend against the following:
This work consisted of lots of nitty gritty optimization work, but we can pick
out some high points. First, we made significant strides on reducing code size
footprint of many types, with most of that effort focused on
We found many tricks for reducing code size, but the most important were
This work often went hand in hand with rewriting of underlying data structures,
especially in
This required rewriting many of our core data structures in the Android fork,
especially requiring us to avoid entry objects wherever possible. For example,
Generally speaking, we did not achieve data structures that were as compact as
Android's
Other data structures, unique to Guava, showed similar improvements even if they did not have competition. For example:
We did, in some cases, accept asymptotic slowdowns to view collections where
workarounds were easily available. For example, few users know -- or care --
that
Clone this wiki locally | ||||||||||||
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |