{"id":22018749,"url":"https://github.com/rhcad/vgandroid","last_synced_at":"2025-12-17T22:05:06.843Z","repository":{"id":142628078,"uuid":"21231214","full_name":"rhcad/vgandroid","owner":"rhcad","description":"A lightweight 2D vector drawing framework for Android.","archived":false,"fork":false,"pushed_at":"2017-10-11T02:35:30.000Z","size":56658,"stargazers_count":40,"open_issues_count":7,"forks_count":9,"subscribers_count":8,"default_branch":"develop","last_synced_at":"2025-05-07T03:34:46.912Z","etag":null,"topics":["android","touchvg"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rhcad.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-06-26T06:58:55.000Z","updated_at":"2025-01-22T10:19:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"5bad392a-bb16-4306-afc7-090af456b61d","html_url":"https://github.com/rhcad/vgandroid","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/rhcad/vgandroid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhcad%2Fvgandroid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhcad%2Fvgandroid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhcad%2Fvgandroid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhcad%2Fvgandroid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhcad","download_url":"https://codeload.github.com/rhcad/vgandroid/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhcad%2Fvgandroid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27787280,"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","status":"online","status_checked_at":"2025-12-17T02:00:08.291Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","touchvg"],"created_at":"2024-11-30T05:13:59.769Z","updated_at":"2025-12-17T22:05:06.837Z","avatar_url":"https://github.com/rhcad.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TouchVG for Android\n\nThis is a lightweight 2D vector drawing framework using [vgcore](https://github.com/rhcad/vgcore) for Android.\nIt uses `android.graphics` and `android.view` packages to render shapes and handle touches.\n\nFeatures described in [Online document](http://touchvg.github.io). Please visit [vgandroid-demo](https://github.com/rhcad/vgandroid-demo) to see more examples.\n\n![arch](http://touchvg.github.io/images/arch.svg) \n![android1](http://touchvg.github.io/images/android1.png)\n\n## How to Compile\n\n- Don't want to build libtouchvg.so and jar ?\n  - Download the [prebuilt libraries](https://github.com/rhcad/vgandroid/archive/prebuilt.zip).\n  - Extract `touchvg_libs` in the zip package to `vgandroid/TouchVG/libs` or `yourapp/libs`.\n  - Import this project in eclipse. Android SDK version in the project.properties may need to modify according to your installation.\n\n- Enter the directory of this project, then type `./build.sh` to clone and build libraries needed.\n  \n  - Need to add the [NDK](http://developer.android.com/tools/sdk/ndk/index.html) installation location to PATH.\n  \n  - If the error `build/gmsl/__gmsl:512: *** non-numeric second argument to wordlist function` occurs, then open the `build/gmsl/__gmsl` file in the NDK installation directory, and change line 512 to:\n     `int_encode = $(__gmsl_tr1)$(wordlist 1,$(words $1),$(__gmsl_input_int))`\n\n   - [MSYS](http://www.mingw.org/wiki/msys) is recommended on Windows to run UNIX commands such as rm, sh and make. MinGW and Cygwin are not necessary for TouchVG.\n\n- Import this project in eclipse, then build  `touchvg` project.\n\n  - Android SDK version in the project.properties may need to modify according to your installation.\n  \n  - Recommend using the newer [ADT Bundle](http://developer.android.com/sdk/index.html) to avoid complex configuration.\n\n-  Regenerate libtouchvg.so and JNI classes:\n\n   - Type `./build.sh -B` to rebuild the native libraries.\n   \n   - Type `./build.sh APP_ABI=x86` to build for the x86 (Intel Atom) Emulator.\n   \n   - Type `./build.sh -swig` to regenerate the kernel JNI classes.\n   \n   - Need to install the lastest version of [SWIG](http://sourceforge.net/projects/swig/files/) 3.0, and add the location to PATH on Windows. SWIG 2.x may can't parse UTF-8 header files on Windows.\n\n## How to Debug native code\n\n  - Add `#include \"mglog.h\"` and use `LOGD(\"your message %d\", someint)` in the C++ files needed to debug.\n  \n  - Set LogCat filter in Eclipse: `tag:dalvikvm|AndroidRuntime|vgjni|touchvg|vgstack|libc|DEBUG`.\n  \n  - Print JNI functions to locate problems of libc crash:\n    1. Add `python addlog.py` in [jni/build.sh](TouchVG/jni/build.sh).\n    2. Type `./build.sh -swig` to add log in all JNI entry functions, or remove `touchvg_java_wrap.cpp` and type `./build.sh`.\n \n## Add more shapes and commands\n\n- You can use [newproj.py](https://github.com/rhcad/DemoCmds/blob/master/newproj.py) to create library project containing your own shapes and commands. So the TouchVG and TouchVGCore libraries does not require changes.\n\n  - Checkout and enter [DemoCmds](https://github.com/rhcad/DemoCmds) directory, then type `python newproj.py YourCmds`:\n\n     ```shell\n     git clone https://github.com/rhcad/DemoCmds.git\n     cd DemoCmds\n     python newproj.py MyCmds\n     ```\n\n## License\n\nThis is an open source [BSD licensed](LICENSE) project. It uses the following open source projects:\n\n- [vgcore](https://github.com/rhcad/vgcore) (BSD): Cross-platform vector drawing libraries using C++.\n- [AndroidSVG](https://code.google.com/p/androidsvg) (Apache): SVG rendering library for Android.\n- [x3py](https://github.com/rhcad/x3py) (Apache): Compile script files.\n- [SWIG](https://github.com/swig/swig) (GPL): Use the tool to generate the glue code for Java and C#.\n\n## How to Contribute\n\nContributors and sponsors are welcome. You may translate, commit issues or pull requests on this Github site.\nTo contribute, please follow the branching model outlined here: [A successful Git branching model](http://nvie.com/posts/a-successful-git-branching-model/).\n\n## Contributors\n\n- [Zhang Yungui](https://github.com/rhcad)\n- [Proteas](https://github.com/proteas)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhcad%2Fvgandroid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhcad%2Fvgandroid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhcad%2Fvgandroid/lists"}