Android/Services

From MozillaWiki
Jump to: navigation, search

The Android Background Services module is a collection of related functionality that supports Mozilla's work on Android. Its remit is services, adapters, uploaders, downloaders, and the like that are not primarily user-facing, although UI is not excluded.

As of this writing (March 2013), this growing set includes Firefox Sync, product announcements the native updater, Firefox Health Report's native document manager, homepage snippets, and others.

Much of the code for Android services lives in the android-sync repo. Repository names are hard to change; pretend it's "android-services". Work in this repository is tracked by bugs in Bugzilla, but performed in Git branches and landed incrementally in mozilla-central.

Other work (e.g., the updater) lives in mozilla-central, typically as part of the mobile/ tree.

People

Owner 
Richard Newman
Peers 
Chris Peterson, Nick Alexander, Chenxia Liu, James Willcox

See also: Module owners for Android Background Services.

Look for us in #androidsync, #mobile on IRC.

Bugs

See the following:

Getting started

There are two tiers of working with the Android Services codebase:

  • Standalone, which involves working in Git, probably in Eclipse, using Maven for dependencies, and running JUnit tests. Tests that involve running against a Fennec instance can use a repackaged binary.
  • Integrated, which means you deploy services code into a mozilla-central tree. You need this if you're landing code in the shipping product, or need to run tests using Robocop.

Getting started

Read this.

But in short:

Getting the repo

git clone https://github.com/mozilla-services/android-sync
git checkout develop

Setting up the preprocessor

python preprocess.py

If you plan to use a prepackaged build, you don't need to do anything further.

If you plan to use a custom build, edit the resulting preprocess.ini to change the package name (e.g., to org.mozilla.gecko.fennec_username). Then run the preprocessor again.

Running tests locally

mvn test