|
|
| (63 intermediate revisions by 18 users not shown) |
| Line 1: |
Line 1: |
| ==Features==
| | This page has been deleted because it's archaic. Please see the main [[Mobile/Fennec/Android | Fennec]] development page. |
| | |
| * Awesome Bar – Go to your favorite sites in just a couple of keystrokes with intelligent and personalized searching
| |
| * Firefox Sync – Sync your Firefox tabs, history, bookmarks and passwords between your desktop and mobile device for a seamless browsing experience
| |
| * Tabbed browsing – View open tabs as thumbnails to easily identify and select the Web page you’d like to go to next
| |
| | |
| * Fast - Instantly startup (<300ms)
| |
| * Small - Low memory usage (consistent with other browsers)
| |
| * Energy - Doesn't eat your battery
| |
| | |
| ==Background==
| |
| [http://dougt.org/wordpress/2011/09/fennec-and-native-android-uis/]
| |
| | |
| ==How To Build==
| |
| The project repository is here: http://hg.mozilla.org/projects/birch
| |
| | |
| Follow the instructions from [[Mobile/Fennec/Android]]. Build as you normally would (make -f client.mk), just with a different mozconfig.
| |
| | |
| Here's an example mozconfig:
| |
| | |
| # Add the correct paths here:
| |
| ac_add_options --with-android-ndk="$HOME/android-ndk-r6"
| |
| ac_add_options --with-android-sdk="$HOME/android-sdk-linux_x86/platforms/android-13"
| |
| ac_add_options --with-android-version=5
| |
|
| |
| # android options
| |
| ac_add_options --enable-application=mobile
| |
| ac_add_options --target=arm-linux-androideabi
| |
| ac_add_options --with-endian=little
| |
| ac_add_options --with-ccache
| |
| ac_add_options --enable-tests
| |
|
| |
| mk_add_options MOZ_OBJDIR=./objdir-droid
| |
| mk_add_options MOZ_MAKE_FLAGS="-j9 -s"
| |
| | |
| | |
| hg clone http://hg.mozilla.org/projects/birch/ src
| |
| cd src
| |
| vi mozconfig-droid
| |
| ...
| |
| export MOZCONFIG=~/src/mozconfig-droid
| |
| make -f client.mk
| |
| | |
| ==Architecture Overview==
| |
| | |
| Get a bird's eye view of how the native UI version of Fennec is [[Fennec/NativeUI/Architecture_Overview|structured]].
| |
| | |
| ==Known Issue==
| |
| | |
| ===Near Term===
| |
| * tabs (dougt / ram)
| |
| * Dialogs
| |
| ** http auth
| |
| ** nsIPrompt
| |
| ** cert auth (xul)
| |
| * door hangers (gcp)
| |
| ** content permission (geolocation, desktop notification, indexedDb)
| |
| ** popup permission
| |
| * preferences (alexp)
| |
| * bookmarking (blassey)
| |
| * Panning perf (clord)
| |
| * zooming perf (clord)
| |
| * IME (alexp)
| |
| * Don't initialize this early. https://github.com/snorp/mozilla-central/blob/faster/embedding/android/GeckoApp.java#L383. So far, the only usage is here: https://github.com/snorp/mozilla-central/blob/faster/embedding/android/GeckoAppShell.java#L1717 -- which is after a page has loaded. I would recommend the initialization happen right there, when the mDb is null. Or probably at the end of onCreate in GeckApp.java
| |
| * https://github.com/snorp/mozilla-central/blob/faster/embedding/android/AwesomeBar.java#L178 -- This can be moved to an AsyncTask. A database access can happen in the background and the results can be pushed to the UI. In that way, the responsiveness of AwesomeBar will be faster and better.
| |
| * Setting the FilterQueryProvider automatically processes the SQL in a background thread (see http://developer.android.com/reference/android/widget/CursorAdapter.html#runQueryOnBackgroundThread%28java.lang.CharSequence%29). I verified this by adding a Thread.sleep() call in the filter - the UI remains responsive.
| |
| * Better to use styles in layout. This helps in reusability. (sriram)
| |
| * GeckoApp activity uses a lot of static variables. This has issues while rotation (they tend to hold previous values). It's better to avoid static variables and use getter and setters. [see http://stackoverflow.com/questions/2475978/using-static-variables-in-android]
| |
| * Change directory structure under embedding/android to follow a more traditional Android app layout (src, res, gen, etc) for better integration with Eclipse.
| |
| | |
| ===Mid Term===
| |
| | |
| * Sync support (thebnich) ** see https://github.com/rnewman/clj-weave to start
| |
| * page info
| |
| * sharing
| |
| * Ability to pan around last screen shot.
| |
| * Remove unused cruft from the APK.
| |
| | |
| ===Longer term===
| |
| | |
| * addons (going to use jetpack - mossop)
| |
| * Download
| |
| * find on page
| |
| * selection
| |
| * removing xul
| |
| * profile migration
| |
| * Touch events
| |
| | |
| === Low priority bugs ===
| |
| * The HttpRequestObsever is not appropriate for one.
| |
| http://hg.mozilla.org/projects/birch/file/2f3d39316c54/mobile/chrome/content/browser.js#l22
| |
| * OpenURI is not supposed to load the frame, only provide the frame:
| |
| http://hg.mozilla.org/projects/birch/file/2f3d39316c54/mobile/chrome/content/browser.js#l80
| |