All Projects → Igalia → wpe-android

Igalia / wpe-android

Licence: other
WPE WebKit for Android

Programming Languages

C++
36643 projects - #6 most used programming language
java
68154 projects - #9 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects
c
50402 projects - #5 most used programming language
shell
77523 projects
AIDL
53 projects

WPE Android

logo

WPE WebKit port for Android.

WPEView API

WPEView wraps the WPE WebKit browser engine in a reusable Android library. WPEView serves a similar purpose to Android's built-in WebView and tries to mimick its API aiming to be an easy to use drop-in replacement with extended functionality.

Setting up WPEView in your Android application is fairly simple.

(TODO: package, distribute and document installation)

First, add the WPEView widget to your Activity layout:

<com.wpe.wpeview.WPEView
        android:id="@+id/wpe_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity"/>

And next, wire it in your Activity implementation to start using the API, for example, to load an URL:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    var browser = findViewById(R.id.wpe_view)
    browser?.loadUrl(INITIAL_URL)
}

To see WPEView in action check the examples folder.

Setting up your environment

python3

The bootstrap script requires python3.

Getting the dependencies

WPE Android depends on a considerable amount of libraries, including libWPE and WPEWebKit. To ease the cross-compilation process we use Cerbero. To set all things up run:

python3 ./scripts/bootstrap.py

This command will fetch the required binaries and place them in the expected location.

If you want to build (and/or modify) the dependencies you can pass the --build option:

python3 ./scripts/bootstrap.py --build

This command will fetch Cerbero, the Android NDK and a bunch of dependencies required to cross-compile WPE Android dependencies. The process takes a significant amount of time.

You can optionally create a debug build of WPEWebKit passing the --debug option to the bootstrap command:

python3 ./scripts/bootstrap.py --build --debug

Finally, the bootstrap option accepts the --arch option to set the target architecture. Currently the only supported architecture is arm64.

Android Studio

Android Studio is required to build and run WPE Android. Once the bootstrap process is done and all the dependencies are cross-compiled and installed, you should be able to open the launcher demo with Android Studio and run it on a real device.

Known issues and limitations

  • The only supported architecture at the moment is arm64.
  • WPE Android does not work with an Android emulator due to EGL emulation issues.
  • The scripts and build have only been tested in Linux.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].