This is a unit test and example project for vgandroid, which is a lightweight 2D vector drawing framework for Android.
-
Don't want to build libtouchvg.so and libdemocmds.so ?
- Download the prebuilt libraries.
- Extract
touchvg_libs
in the zip package tovgandroid/TouchVG/libs
. - Extract
democmds_libs
in the zip package toDemoCmds/android/DemoCmds/libs
. - Import all projects (touchvg, democmds, vgdemo1 and VGTest) in eclipse. Android SDK version in the projects may need to modify according to your installation.
-
Enter the directory of this project, then type
./build.sh
to clone and build libraries needed.-
Need to add the NDK installation location to PATH.
-
If the error
build/gmsl/__gmsl:512: *** non-numeric second argument to wordlist function
occurs, then open thebuild/gmsl/__gmsl
file in the NDK installation directory, and change line 512 to:int_encode = $(__gmsl_tr1)$(wordlist 1,$(words $1),$(__gmsl_input_int))
-
MSYS is recommended on Windows to run UNIX commands such as rm, sh and make. MinGW and Cygwin are not necessary for TouchVG.
-
-
Import all projects (touchvg, democmds, vgdemo1 and VGTest) in eclipse, then run
VGTest
orvgdemo1
project to view the demonstration.-
Android SDK version of the projects may need to modify according to your installation.
-
Recommend using the newer ADT Bundle to avoid complex configuration.
-
-
Regenerate libtouchvg.so and JNI classes:
-
Type
./build.sh -B
to rebuild the native libraries. -
Type
./build.sh APP_ABI=x86
to build for the x86 (Intel Atom) Emulator. -
Type
./build.sh -swig
to regenerate the kernel JNI classes. -
Need to install the lastest version of SWIG 3.0, and add the location to PATH on Windows. SWIG 2.x may can't parse UTF-8 header files on Windows.
-
-
Add
#include "mglog.h"
and useLOGD("your message %d", someint)
in the C++ files needed to debug. -
Set LogCat filter in Eclipse:
tag:dalvikvm|AndroidRuntime|vgjni|touchvg|vgstack|libc|DEBUG
. -
Print JNI functions to locate problems of libc crash:
- Add
python addlog.py
inTouchVG/jni/build.sh
. - Type
./build.sh -swig
to add log in all JNI entry functions, or removetouchvg_java_wrap.cpp
and type./build.sh
.
- Add
-
Do not want to write C++ code? Please reference to test/src/vgtest/testview/shape package to write your own shape and command classes.
-
You can create library project containing your own shapes and commands. So the TouchVG and TouchVGCore libraries does not require changes.
-
Checkout and enter DemoCmds directory, then type
python newproj.py YourCmds
:git clone https://github.com/rhcad/DemoCmds.git cd DemoCmds python newproj.py MyCmds
-
-
You can customize the drawing behavior via implement your CmdObserver class (see the example in DemoCmds ).
This is an open source BSD licensed project. It uses the following open source projects:
- vgandroid (BSD): Vector drawing framework for Android.
- vgcore (BSD): Cross-platform vector drawing libraries using C++.
- DemoCmds: A template and example project containing customized shape and command classes.
Contributors and sponsors are welcome. You may translate, commit issues or pull requests on this Github site. To contribute, please follow the branching model outlined here: A successful Git branching model.