Convert Figma logo to code with AI

JackyAndroid logoAndroidChromium

chrome browser of android version from chromium open project

3,092
730
3,092
18

Top Related Projects

18,959

The official GitHub mirror of the Chromium source

Brave browser for Android, iOS, Linux, macOS, Windows.

6,465

⚠️ Fenix (Firefox for Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android

2,751

Source-code used in Kiwi Browser for Android

5,836

Bromite is a Chromium fork with ad blocking and privacy enhancements; take back your browser!

Google Chromium, sans integration with Google

Quick Overview

JackyAndroid/AndroidChromium is a project that aims to port Google's Chromium browser to the Android platform. It provides a framework for building a Chromium-based browser application for Android devices, allowing developers to create custom browsers with Chromium's rendering engine and features.

Pros

  • Leverages the powerful Chromium engine for web rendering and JavaScript execution
  • Provides a customizable foundation for building Android browsers
  • Offers access to Chromium's advanced features and security updates
  • Allows for integration of Android-specific functionality with Chromium's core

Cons

  • Requires significant development expertise to implement and maintain
  • Large codebase and complex build process can be challenging for newcomers
  • May require frequent updates to keep pace with Chromium's rapid development cycle
  • Limited documentation and community support compared to official Chromium projects

Code Examples

This project is not primarily a code library, but rather a framework for building Android applications based on Chromium. As such, there are no specific code examples to showcase. The project mainly consists of build configurations, Android-specific implementations, and modifications to the Chromium source code to make it compatible with Android.

Getting Started

To get started with the JackyAndroid/AndroidChromium project:

  1. Clone the repository:

    git clone https://github.com/JackyAndroid/AndroidChromium.git
    
  2. Follow the build instructions in the project's README file. This typically involves:

    • Setting up the Android development environment
    • Installing necessary dependencies
    • Configuring the build system
    • Running the build scripts
  3. Once built, you can open the project in Android Studio to begin customizing and extending the Chromium-based browser application.

Note that building Chromium for Android is a complex process that requires significant computational resources and time. It's recommended to refer to the official Chromium documentation and the project's README for detailed, up-to-date instructions on building and customizing the browser.

Competitor Comparisons

18,959

The official GitHub mirror of the Chromium source

Pros of Chromium

  • Official, up-to-date source code maintained by Google
  • Comprehensive documentation and extensive community support
  • Full feature set and regular updates

Cons of Chromium

  • Large codebase, potentially overwhelming for newcomers
  • Complex build process and system requirements
  • Not specifically optimized for Android

Code Comparison

AndroidChromium:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);
    }
}

Chromium:

class BrowserMainParts {
 public:
  virtual void PreMainMessageLoopRun() = 0;
  virtual void PostMainMessageLoopRun() = 0;
  virtual bool MainMessageLoopRun(int* result_code) = 0;
};

Summary

AndroidChromium is a simplified, Android-focused version of Chromium, making it easier for developers to work with on mobile platforms. It offers a more streamlined approach but may lack some features and updates found in the official Chromium repository.

Chromium, being the official project, provides a complete and regularly updated codebase with extensive documentation. However, its complexity and size can be challenging for developers primarily focused on Android development.

The code comparison illustrates the difference in focus, with AndroidChromium using Java and Android-specific components, while Chromium uses C++ and covers a broader range of functionality.

Brave browser for Android, iOS, Linux, macOS, Windows.

Pros of Brave Browser

  • Active development with frequent updates and new features
  • Built-in ad-blocking and privacy-focused features
  • Larger community and more extensive documentation

Cons of Brave Browser

  • More complex codebase, potentially harder for newcomers to contribute
  • Heavier resource usage due to additional features

Code Comparison

AndroidChromium:

public class ChromeApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ChromePreferenceManager.getInstance().warmUpSharedPrefs();
    }
}

Brave Browser:

const brave = {
  init: async () => {
    await loadPreferences()
    initializeAdBlocker()
    setupPrivacyFeatures()
  }
}

The AndroidChromium example shows a simpler initialization process, while the Brave Browser code (pseudocode for illustration) demonstrates a more complex setup with additional privacy and ad-blocking features.

AndroidChromium focuses on providing a basic Chromium-based browser for Android, making it easier to understand and modify. Brave Browser, on the other hand, offers a full-featured privacy-focused browser with built-in ad-blocking and cryptocurrency features, catering to users who prioritize online privacy and security.

Both projects serve different purposes: AndroidChromium is ideal for developers looking to build custom browsers or learn about Chromium on Android, while Brave Browser is a complete, privacy-centric browser solution for end-users.

6,465

⚠️ Fenix (Firefox for Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android

Pros of Fenix

  • More active development with frequent updates and contributions
  • Built using modern Android development practices and Kotlin
  • Stronger focus on privacy features and customization options

Cons of Fenix

  • Larger codebase, potentially more complex to navigate
  • May have a steeper learning curve for contributors unfamiliar with Mozilla's development practices

Code Comparison

Fenix (Kotlin):

class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        return inflater.inflate(R.layout.fragment_browser, container, false)
    }
}

AndroidChromium (Java):

public class BrowserFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_browser, container, false);
    }
}

The code comparison shows that Fenix uses Kotlin and implements additional interfaces, while AndroidChromium uses Java with a simpler structure. Fenix's approach aligns with modern Android development practices, potentially offering more flexibility and features.

2,751

Source-code used in Kiwi Browser for Android

Pros of Kiwi Browser

  • More actively maintained with recent commits
  • Includes additional features like extension support
  • Better documentation and community engagement

Cons of Kiwi Browser

  • Larger codebase, potentially more complex to navigate
  • May have more dependencies and build requirements
  • Possibly less focused on pure Chromium implementation

Code Comparison

AndroidChromium:

public class ChromiumApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ChromiumLibraryLoader.ensureInitialized(this);
    }
}

Kiwi Browser:

#include "chrome/browser/ui/android/native_window_android.h"
#include "components/browser_ui/widget/android/native_window_android.h"

void NativeWindowAndroid::SetContentView(JNIEnv* env,
                                         const base::android::JavaParamRef<jobject>& obj,
                                         jint content_view_id) {
  // Implementation details...
}

The code snippets show different approaches: AndroidChromium uses Java for application setup, while Kiwi Browser employs C++ for native window management, indicating a more low-level implementation in Kiwi Browser.

5,836

Bromite is a Chromium fork with ad blocking and privacy enhancements; take back your browser!

Pros of Bromite

  • Actively maintained with regular updates and security patches
  • Enhanced privacy features like ad blocking and fingerprinting protection
  • Customized UI and additional features not found in standard Chromium

Cons of Bromite

  • Smaller community and less documentation compared to AndroidChromium
  • May have compatibility issues with some websites due to privacy modifications
  • Limited to Android platform, while AndroidChromium supports multiple platforms

Code Comparison

AndroidChromium:

public class ChromeApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ChromePreferenceManager.getInstance().warmUpSharedPrefs();
    }
}

Bromite:

public class BromiteApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        BromitePreferenceManager.getInstance().initializePreferences();
        AdBlocker.initialize(this);
    }
}

The code snippets show that Bromite includes additional functionality like ad blocking initialization, which aligns with its focus on privacy and security features. AndroidChromium's code appears more straightforward, potentially offering better performance but fewer built-in privacy enhancements.

Google Chromium, sans integration with Google

Pros of ungoogled-chromium

  • Focuses on privacy by removing Google-specific integrations and features
  • Actively maintained with regular updates and a large community
  • Provides builds for multiple platforms (Windows, macOS, Linux)

Cons of ungoogled-chromium

  • Lacks Android-specific optimizations and features
  • May have compatibility issues with some Google services
  • Requires more technical knowledge to build and maintain

Code comparison

AndroidChromium:

public class ChromiumApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ChromiumInitializer.initialize(this);
    }
}

ungoogled-chromium:

#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"

Browser* GetLastActiveBrowser() {
  return chrome::FindLastActiveWithHostDesktopType(
      chrome::GetActiveDesktop());
}

The code snippets show that AndroidChromium is specifically tailored for Android development using Java, while ungoogled-chromium uses C++ and focuses on desktop browser functionality. This reflects the different target platforms and goals of each project.

ungoogled-chromium provides a more privacy-focused approach by removing Google integrations, making it suitable for users concerned about data collection. However, it may require more technical expertise to set up and use compared to AndroidChromium, which is designed for easier integration into Android applications.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

AndroidChromium

中文文档

Brief Introduction

  • Google browser android version of the source program
  • This project is a world-class android architecture
  • Clarify the project business logic can completely fit for domestic company engineer
  • This project will follow up and update Google browser kernel version for a long time, welcome to the star

Notice

If you are using AndroidStudio above 2.0 version and open instant run function, suggested to debug after closing (instant run will modify on the Application of the result in chrome provider context reference error)

Screenshots

The upgrade Chromium kernel steps are as follows


Preparation

Refer to official and other tutorial compile chromium source code, and can generate chrome apk

purpose

Using AndroidStudio debugging Chromium Android

The build process

  1. Android Studio as a development environment, from Chromium for Android from chrome module source code, to join the Android project.
  2. Native code in the chromium environment to build, as so file to join the Android project
  3. Basic module (base, the content, net, etc.) in the chromium environment to build into a jar package, then add to the Android project
  4. content, chrome, UI modules such as resource file to join an Android library project

Why can't a resource file are directly added to the Android project?

Because namespace problems, such as the content of the module resources namespace is org.chromium.content,the chrome module namespace is org.chromium.chrome, so need to build different Android library project, specify different package name.

Directory corresponding relation

app/libs ----------- chromium/src/out/gnbuild/lib.java

app/src/main/aidl ----------- chromium/src/chrome/android/java/src/android/support/customtabs/*.aidl

app/src/main/assets ----------- chromium/src/out/gnbuild/

app/src/main/java ------------ chromium/src/chrome/android/java/src

app/src/main/jniLibs ----------- chromium/src/out/gnbuild/

app/src/main/res(app module init res)

libraries/androidmedia_res ----------- chromium/src/third_party/android_media/java/res

libraries/chrome_res ----------- chromium/src/chrome/android/java/res & chromium/src/chrome/android/java/res_chromium

libraries/content_res ----------- chromium/src/content/public/android/java/res

libraries/datausagechart_res --------- chromium/src/third_party/android_data_chart/java/res

libraries/ui_res ---------- chromium/src/ui/android/java/res

The kernel upgrade matters needing attention

  1. Pak and dat files need to be added to the assets directory, and cannot be compressed
  2. Aidl files added to the main/aidl
  3. The current build chromium version is 55.0.2883.99
  4. Because some Java file is through the C compiler generated, there is the chromium/src/out directory or exist in the jars.If according to corresponding relation between the above updated version missing files, please go to the out/directory search, add corresponding files according to the namespace.There are some temporary generated XML resource file also need the out/directory on copy to the corresponding resource module.

Thanks

The project is inspiration from the 365 browser

License

Copyright 2016 Jacky Wang<jacky.android@foxmail.com>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.