{"id":19457703,"url":"https://github.com/luncliff/muffin","last_synced_at":"2025-04-25T05:31:23.671Z","repository":{"id":27699823,"uuid":"149783246","full_name":"luncliff/Muffin","owner":"luncliff","description":"Experiments with the Android NDK","archived":false,"fork":false,"pushed_at":"2025-04-17T10:21:03.000Z","size":16828,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"develop-kotlin","last_synced_at":"2025-04-18T00:48:52.095Z","etag":null,"topics":["android","android-library","android-ndk","cmake","example-project","gradle","jni-android","mobile-development","ndk"],"latest_commit_sha":null,"homepage":"","language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luncliff.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-21T15:35:05.000Z","updated_at":"2025-04-17T09:49:01.000Z","dependencies_parsed_at":"2022-08-07T13:00:59.710Z","dependency_job_id":null,"html_url":"https://github.com/luncliff/Muffin","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncliff%2FMuffin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncliff%2FMuffin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncliff%2FMuffin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncliff%2FMuffin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luncliff","download_url":"https://codeload.github.com/luncliff/Muffin/tar.gz/refs/heads/develop-kotlin","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250760799,"owners_count":21482870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-library","android-ndk","cmake","example-project","gradle","jni-android","mobile-development","ndk"],"created_at":"2024-11-10T17:23:33.349Z","updated_at":"2025-04-25T05:31:22.153Z","avatar_url":"https://github.com/luncliff.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Muffin\n\n[![Build Status](https://dev.azure.com/luncliff/personal/_apis/build/status/luncliff.Muffin?branchName=main)](https://dev.azure.com/luncliff/personal/_build/latest?definitionId=34\u0026branchName=main)\n[![CircleCI](https://dl.circleci.com/status-badge/img/gh/luncliff/Muffin/tree/main.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/luncliff/Muffin/tree/main)\n![Gradle](https://img.shields.io/badge/Gradle-7.2+-02303a)\n![Android NDK](https://img.shields.io/badge/NDK-22+-3ecf7d)\n![CMake](https://img.shields.io/badge/CMake-3.21+-00529b)\n\nTemplate for Android NDK module\n\n### References\n\n* [NDK Samples(GitHub)](https://github.com/android/ndk-samples)\n* [Android Developer Guide](https://developer.android.com/guide)\n  * [Testing](https://developer.android.com/training/testing/unit-testing)\n* [Testing with JUnit 5 for Android](https://github.com/mannodermaus/android-junit5)\n* https://developer.android.com/studio/projects/gradle-external-native-builds\n  * https://developer.android.com/studio/build/native-dependencies?hl=en\n  * https://google.github.io/prefab/\n\n#### Android \n\n* https://developer.android.com/ndk/reference/group/a-hardware-buffer\n* https://developer.android.com/ndk/guides/neuralnetworks\n\n#### EGL\n\n* https://github.com/fuyufjh/GraphicBuffer\n* https://registry.khronos.org/EGL/extensions/ANDROID/\n\n## How to\n\n### Setup\n\n#### ~~NDK Sanitizers~~\n\nIt won't be used anymore.\n\n```bash\ncd ${ANDROID_NDK_HOME}/build/tools\n    INSTALL_PATH=/tmp/llvm/prebuilt/\"$(echo $(uname -s)-$(uname -m) | tr '[:upper:]' '[:lower:]')\"\n    ./make_standalone_toolchain.py --arch=arm64 --api=27 --stl=libc++ --install-dir=${INSTALL_PATH} --force\ncd ${INSTALL_PATH}\n    tree -L 2 ./lib64/clang/9.0.0/lib\n```\n\n### Build\n\nThe build step uses [Gradle 7.2.0+](https://docs.gradle.org/current/userguide/userguide.html). If you don't know how to use it, latest [Android Studio](https://developer.android.com/studio/) can do the work.   \n\n```console\n$ git clone https://github.com/luncliff/Muffin\n$ cd ./Muffin\n$ gradle clean assemble\n```\n\n### Test\n\nConnect your device and run the test with Gradle.\nPlease reference the [test codes](./android/test/).\n\n```console\n$ gradle connectedAndroidTest   # Run test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluncliff%2Fmuffin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluncliff%2Fmuffin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluncliff%2Fmuffin/lists"}