All Projects → jin → android-projects

jin / android-projects

Licence: other
Android benchmark projects for Bazel and Gradle

Programming Languages

java
68154 projects - #9 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to android-projects

create-bazel-workspace
Generate a new polyglot Bazel workspace with minimal configuration
Stars: ✭ 16 (-44.83%)
Mutual labels:  bazel, build-system
Awesome Bazel
A curated list of Bazel rules, tooling and resources.
Stars: ✭ 640 (+2106.9%)
Mutual labels:  bazel, build-system
Bazel
a fast, scalable, multi-language and extensible build system
Stars: ✭ 17,790 (+61244.83%)
Mutual labels:  bazel, build-system
Please
High-performance extensible build system for reproducible multi-language builds.
Stars: ✭ 1,856 (+6300%)
Mutual labels:  bazel, build-system
Android Studio Poet
Generate large Android Studio projects
Stars: ✭ 489 (+1586.21%)
Mutual labels:  bazel, android-studio
Rules haskell
Haskell rules for Bazel.
Stars: ✭ 196 (+575.86%)
Mutual labels:  bazel, build-system
Pokedex
An application that uses Retrofit to consume the Pokeapi API, in addition to loading images with Glide.
Stars: ✭ 21 (-27.59%)
Mutual labels:  android-studio
Android-WebView-in-Kotlin
Native Android WebView Example in Kotlin. Website to android app github open source template.
Stars: ✭ 87 (+200%)
Mutual labels:  android-studio
Bazel Watcher
Tools for building Bazel targets when source files change.
Stars: ✭ 245 (+744.83%)
Mutual labels:  bazel
Index Import
Tool to import swiftc and clang index-store files into Xcode
Stars: ✭ 240 (+727.59%)
Mutual labels:  bazel
bazel-action
A GitHub action to run @bazelbuild commands
Stars: ✭ 18 (-37.93%)
Mutual labels:  bazel
bazel-emscripten
C++ to WASM or JS using Bazel and Emscripten
Stars: ✭ 40 (+37.93%)
Mutual labels:  bazel
cmake-python-distributions
This project provides a `setup.py` script that build CMake Python wheels.
Stars: ✭ 93 (+220.69%)
Mutual labels:  build-system
rules openapi
🍃 bazel rules for generating code from openapi specifications
Stars: ✭ 49 (+68.97%)
Mutual labels:  bazel
solbuild
The Solus package build system
Stars: ✭ 79 (+172.41%)
Mutual labels:  build-system
MacGyver
🤖 A simple application using Google's MLkit library and cameraX api.
Stars: ✭ 73 (+151.72%)
Mutual labels:  android-studio
rules proto grpc
Bazel rules for building Protobuf and gRPC code and libraries from proto_library targets
Stars: ✭ 201 (+593.1%)
Mutual labels:  bazel
Rules rust
Rust rules for Bazel
Stars: ✭ 241 (+731.03%)
Mutual labels:  bazel
java-client
Java SDK client for Split Software
Stars: ✭ 20 (-31.03%)
Mutual labels:  ab-testing
FastWaiMai
仿写美团外卖电商项目
Stars: ✭ 123 (+324.14%)
Mutual labels:  android-studio

android-projects

A selection of generated Android projects buildable with Gradle and Bazel, inspired by https://github.com/sunyal/gradle-profiler. This project reuses some of the configuration and scripts in https://github.com/sunyal/gradle-profiler as well.

These projects are used for A/B testing build optimizations with the build systems.

Building and benchmarking

For all projects, in each subdirectory:

  • bazel build //androidAppModule0
  • gradle assembleDebug

To benchmark, run the project's benchmark.sh script to trigger builds with Gradle and Bazel. The results are recorded as CSV and HTML in the project's output folder.

Project generation

The projects are generated using various topologies, listed here.

You can generate more by running:

# Generate the project sources
$ java -jar third_party/android-studio-poet-all.jar example_config.json

# Prepare the benchmark scripts and generate the Bazel and Gradle dependency graph PNGs
$ ./prepare_project.sh $name_of_project 

where example_config.json contains your desired project setup.

Remember to refer to the dependency graphs when modifying the file paths in the project's performance.scenarios. Every project has different Java/Android modules for leaf and root nodes.

Benchmarking

Go into the project subdirectory and run ./benchmark.sh. This will trigger Gradle and Bazel to run the scenarios defined in the project's performance.scenarios.

Projects

simple_tree

Gradle graph

Bazel graph

variable_tree

Gradle graph

Bazel graph

big_variable_tree

Gradle graph

Bazel graph

full

Gradle graph

Bazel graph

connected

Gradle graph

Bazel graph

big_connected

Gradle graph

Bazel graph

linear

Gradle graph

Bazel graph

star

Gradle graph

Bazel graph

rectangle

Gradle graph

Bazel graph

connected_rectangle

Gradle graph

Bazel graph

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].