Mobile/Fennec/Android: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
Mixedpuppy (talk | contribs) (Fix link to current build doc) |
||
(760 intermediate revisions by more than 100 users not shown) | |||
Line 1: | Line 1: | ||
{{Admon/important|Fennec has been replaced by Fenix. The build documentation has moved!|See the most up to date documentation at https://firefox-source-docs.mozilla.org/contributing/build/building_mobile_firefox.html}} | |||
Here is a table of contents of all the in-depth information you might need to find about Firefox for Android development. | |||
New to the community? Welcome! [[Mobile/Get_Involved|Start here!]] | |||
== | == Develop == | ||
*[[Mobile/Get Involved|New contributor page]] | |||
**[[Mobile/Fennec/Android/Suggested workflow|Suggested workflow]] | |||
*[https://developer.mozilla.org/en-US/docs/Simple_Firefox_for_Android_build Build documentation] | |||
*[[Mobile/Fennec/Android/Testing|Testing]] | |||
*[[Mobile/Fennec/Android/CommonTips|Common tips & how-to's]] | |||
*[[Mobile/Fennec/Android/Multilocale_Builds|Multilocale Builds]] - how to build an apk containing multiple languages (instead of just en-US by default). | |||
*[[Mobile/Fennec/Android/Development/Addons|Useful addons for development (e.g. copy profile)]] | |||
*[[Mobile/Fennec/Android/AdvancedTopics|Advanced topics (e.g. special build configs & advanced debugging)]] | |||
*[https://gecko.readthedocs.org/en/latest/mobile/android/fennec/index.html In-tree Firefox for Android documentation] | |||
*[[Mobile/Triage|Triage]] | |||
*[[Mobile/Metrics|Metrics]] | |||
*[[Mobile/Fennec/Android/png_optimisation|png optimisation]] - a guide on how to prepare png and raster images for landing in the tree, in order to minimise their size. This includes details on webp conversion, when applicable. | |||
* [[Android/ | === App and development overview === | ||
* | * [[Mobile/Fennec/Android/App_Structure|App Structure]]: Fennec is a combination of Java frontend code, Javascript glue and display code, and C++ rendering code. Here's a brief 9000m (30'000ft) overview of what each of those parts does. | ||
* | ** [[Mobile/Fennec/Android/Build_Systems|Build Systems]]: Our app structure results in a complex build process. Moreover, we are in the process of migrating our builds from a custom (Makefile based) build, to using Gradle for the frontend/Java portions of our app. This is a brief description of our parallel build systems and what we're trying to achieve in the future. | ||
== | === Feature development === | ||
* [[Mobile/Distribution_Files|Distribution files]] | |||
* [[Mobile/Fennec/Android/Java_telemetry|Java telemetry]] | |||
* [[Mobile/Fennec/Android/Switchboard|Switchboard]] | |||
* [[Mobile/Fennec/Android/Downloadable_Content|Downloadable Content]] | |||
=== Test results === | |||
*[https://scan.coverity.com/projects/firefox-mobile Coverity static analysis] | |||
=== Build infrastructure === | |||
*[[Mobile/Fennec/Android/Task Cluster notes|Task Cluster notes]] | |||
*[[Mobile/Fennec/Android/mach_bootstrap_SDK_dependencies|`./mach bootstrap` SDK dependencies]] | |||
== | === General developer resources === | ||
*[https://mozilla-version-control-tools.readthedocs.org/en/latest/hgmozilla/index.html Mercurial for Mozillians] | |||
*[https://moz-conduit.readthedocs.io/en/latest/phabricator-user.html Mozilla Phabricator User Guide] | |||
=== Crash Stats === | |||
* The crash-stats page lives at https://crash-stats.mozilla.com/home/product/FennecAndroid | |||
** Be careful to select "'''FennecAndroid'''" under the product dropdown to see Firefox on Android crashes. | |||
*** Nightly has the name XX.0a1 (e.g. 52.0a1) | |||
=== | *** Aurora has the name XX.0a2 (e.g. 51.0a1 - the number is one lower than nightly) | ||
*** Beta is XX.0bN (e.g. 50.0b12). N is increased every time a new beta is released (usually weekly). | |||
**** '''Note:''' Multiple beta versions can be listed under the versions dropdown, the first one listed might not be the currently released beta. | |||
*** Release is XX.0.N (e.g. 49.0.2). N is increased every time there is a dot release, we usually try to avoid dot releases. | |||
** Beware: a single device (which potentially has a hardware issue and/or a user who has done something strange with their configuration) can result in a crash-spike on nightly, or even aurora - not every crash is something significant. | |||
** You can view devices that are affected by selecting a crash-signature, then going to "Aggregations", followed by clicking on the "Aggregate on" dropdown and selecting "Android device". Some issues might be device or manufacturer specific. | |||
** To create a bugzilla entry for a given crash, open a crash report (if you are viewing a signature, go to "reports" and click on one of the items there). From the crash report search for "Bugzilla - Report this bug in" and select the appropriate module. | |||
''' | |||
Android | |||
* | |||
* | |||
* | |||
* | |||
* | |||
* | |||
* | |||
* | |||
* | |||
** | |||
** | |||
* | |||
** ( | |||
* You can | |||
* | |||
* | |||
Latest revision as of 14:52, 16 February 2023
Here is a table of contents of all the in-depth information you might need to find about Firefox for Android development.
New to the community? Welcome! Start here!
Develop
- New contributor page
- Build documentation
- Testing
- Common tips & how-to's
- Multilocale Builds - how to build an apk containing multiple languages (instead of just en-US by default).
- Useful addons for development (e.g. copy profile)
- Advanced topics (e.g. special build configs & advanced debugging)
- In-tree Firefox for Android documentation
- Triage
- Metrics
- png optimisation - a guide on how to prepare png and raster images for landing in the tree, in order to minimise their size. This includes details on webp conversion, when applicable.
App and development overview
- App Structure: Fennec is a combination of Java frontend code, Javascript glue and display code, and C++ rendering code. Here's a brief 9000m (30'000ft) overview of what each of those parts does.
- Build Systems: Our app structure results in a complex build process. Moreover, we are in the process of migrating our builds from a custom (Makefile based) build, to using Gradle for the frontend/Java portions of our app. This is a brief description of our parallel build systems and what we're trying to achieve in the future.
Feature development
Test results
Build infrastructure
General developer resources
Crash Stats
- The crash-stats page lives at https://crash-stats.mozilla.com/home/product/FennecAndroid
- Be careful to select "FennecAndroid" under the product dropdown to see Firefox on Android crashes.
- Nightly has the name XX.0a1 (e.g. 52.0a1)
- Aurora has the name XX.0a2 (e.g. 51.0a1 - the number is one lower than nightly)
- Beta is XX.0bN (e.g. 50.0b12). N is increased every time a new beta is released (usually weekly).
- Note: Multiple beta versions can be listed under the versions dropdown, the first one listed might not be the currently released beta.
- Release is XX.0.N (e.g. 49.0.2). N is increased every time there is a dot release, we usually try to avoid dot releases.
- Beware: a single device (which potentially has a hardware issue and/or a user who has done something strange with their configuration) can result in a crash-spike on nightly, or even aurora - not every crash is something significant.
- You can view devices that are affected by selecting a crash-signature, then going to "Aggregations", followed by clicking on the "Aggregate on" dropdown and selecting "Android device". Some issues might be device or manufacturer specific.
- To create a bugzilla entry for a given crash, open a crash report (if you are viewing a signature, go to "reports" and click on one of the items there). From the crash report search for "Bugzilla - Report this bug in" and select the appropriate module.
- Be careful to select "FennecAndroid" under the product dropdown to see Firefox on Android crashes.