mirror of
https://github.com/MetaCubeX/ClashMetaForAndroid.git
synced 2026-05-09 18:11:26 +08:00
b6f4f7ac620a97526193ab37fca2f95c36e0039c
Clash Meta for Android
A Graphical user interface of Clash.Meta for Android
Feature
Feature of Clash.Meta
Requirement
- Android 5.0+ (minimum)
- Android 7.0+ (recommend)
armeabi-v7a,arm64-v8a,x86orx86_64Architecture
Build
-
Update submodules
git submodule update --init --recursive -
Install OpenJDK 11, Android SDK, CMake and Golang
-
Create
local.propertiesin project root withsdk.dir=/path/to/android-sdk -
Create
signing.propertiesin project root withkeystore.path=/path/to/keystore/file keystore.password=<key store password> key.alias=<key alias> key.password=<key password> -
Build
./gradlew app:assembleMeta-AlphaRelease
Kernel Contribution
- CMFA uses the kernel from
android-realbranch underMetaCubeX/Clash.Meta, which is a merge of the mainAlphabranch andandroid-open.- If you want to contribute to the kernel, make PRs to
Alphabranch of the Meta kernel repository. - If you want to contribute Android-specific patches to the kernel, make PRs to
android-openbranch of the Meta kernel repository.
- If you want to contribute to the kernel, make PRs to
Project Maintainance
- When
MetaCubeX/Clash.Metakernel is updated to a new version, theUpdate Dependenciesactions in this repo will be triggered automatically.- It will pull the new version of the meta kernel, update all the golang dependencies, and create a PR without manual intervention.
- If there is any compile error in PR, you need to fix it before merging. Alternatively, you may merge the PR directly.
- Manually triggering
Build Pre-Releaseactions will automatically compile and publish aPreReleaseversion. - Manually triggering
Build Releaseactions will automatically compile, tag and publish aReleaseversion.- There is an option
Auto bump project versionin trigger widget. If this option is checked and triggered, theversionNameandversionCodeinbuild.gradle.ktswill be bumped first, then do the common build release process. - This option is intended for quickly update and release a new version online, without pulling the repository locally and work around by manual.
- There is an option
Languages
Kotlin
87.5%
Go
7.4%
C
4.6%
CMake
0.5%
