12. Factor out Internal API’s
● Fill #quail request of removing
implementations from Android framework
○ Mitigates their issues with integrations
● First candidate is Profiles API.
○ Refactor took 6 hours.
13. Benefits of Refactor
● Documentation via CM Framework & build system
○ Easily consumable generated documentation which has little maintenance overhead.
○ Provides a simple introduction when onboarding or providing resources to third parties.
● Abstraction from Android Framework via CM Framework
○ Allows us to maintain internal API’s that are easily rebased against future release of
Android, since the concepts are decoupled from the Android framework.
○ Allows us to “own” the entire implementation vs having to hide it away from android
documentation.
● Easily digestible concepts via CM Framework
○ Much easier to see Cyanogen + CyanogenMod impact on the shipping OS when it’s
bundled together vs spread out in the Android framework.
14. Benefits of Refactor
● Incorruptible resource definitions via CM Framework Resource
Package
○ Allows for specific globally inheritable resource definitions. Which can include common
iconography, common strings, permissions, and common values specific to CM.
● Defined framework versioning via CM Framework
○ The framework versioning definition and API allows us to define functional releases and
create a means of having our own release cycle for the framework and its capabilities
outside of depending on AOSP.
○ Already being leveraged by Themes and Ambient team to see versioning within the OS.
● Defined testing process via CM Framework
○ Since the specific CM framework is more easily digestible, it also allows for a very specific
and targeted means of introducing a testing process which will help facilitate better habits.