Skip to content

CDroid is an open-source, Android-compatible GUI framework built on C++11, designed for cross-platform embedded systems development.it is more friendly for android developers.

License

Notifications You must be signed in to change notification settings

houstudio/cdroid

Repository files navigation

Introduction

CDroid is a android like GUI toolkit base on C++11,It is a cross-platform GUI engine for embedded system.

Features:

  • Multi Layer/Multi Window
  • Integrated with 40+ UI Components and 20+ Drawables(compatible with android)
  • All UI Components(Layouts,Drawables...)can be designed in AndroidStudio or Eclipse
  • Vector Graph supported via Cairo

Quick Start

  • VM(Ware):https://pan.baidu.com/s/1-v-rLcHxo5W5TXvJ2NUWxA fetchcode:spux (VM Ubuntu User:cdroid password:123456)
  • After login pls run git pull to get new version of cdroid
  • You'd better remove outXXX and run build.sh to rebuild makefiles after each git pull.

IDE(AndroidStudio/Eclipse)

IDE

ScreenShots

demo0 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 Pott

View TextView Button ImageView ImageButton
CompoundButton ToggleButton CheckBox RadioButton ProgressBar
SeekBar Chronometer AnalogClock ViewGroup RadioGroup
ScrollView ViewPager SimpleMonthView Switch RatingBar
NumberPicker ListView GridView RecyclerView ViewFlipper
ViewAnimator AdapterViewAnimator Calendarview SimpleMonthView Chronometer
ScrollView NestedScrollView HorizontalScrollView DateTimeView ViewPager2
YearPickerView

Supported Layouts:

FrameLayout LinearLayout RelativeLayout TableRow
TableLayout AbsoluteLayout GridLayout

Supported Drawables:

ColorDrawable BitmapDrawable NinepatchDrawable InsetDrawable
ShapeDrawable TransitionDrawable AnimatedVectorDrawable StateListDrawable
LevelListDrawable ClipDrawable AnimatedRotateDrawable RotateDrawable
GradientDrawable ScaleDrawable AnimatedImageDrawable VectorDrawable
RippleDrawable AnimationDrawable AnimatedStateListDrawable LayerDrawable

Porting guide:

  • 1 A new product porting should be placed to src/porting/xxx(where xxx is you chipset name)
  • 2 implement your porting api to xxx directory
  • 3 modify build.sh to support your port(you should configure sysroot toolchain...).
  • 4 call build.sh --product=xxx
  • 5 make you project(SeeAlso Building CDROID)

Building CDROID:

1.install dependencs:

sudo apt install autoconf libtool build-essential cmake gdb pkg-config zip gettext libx11-dev bison python>=3.7 pip3-python python3-lxml meson

2.install vcpkg:

3. install cdroid supported toolchain's patch

  • cp cdroid/script/vcpkgpatch4cdroid.patch vcpkg/
  • cd vcpkg
  • patch -p1< vcpkgpatch4cdroid.patch

4.install cdroid deplibs:

  • ./cdroid_install_libs.sh --triplet=x64-linux-dynamic

5.download cdroid source code:

6.build cdroid:

  • cd cdroid
  • ./build.sh --build=debug
  • cd outX64-Debug
  • make -j

7.prepare system and app resource

The cdroid.pak and yourapp's pak must be in your working directory

  • cp src/gui/cdroid.pak ./
  • cp apps/appname/appname.pak ./

8.run samples(in directory outX64-Debug

  • apps/samples/helloworld
  • apps/uidemo1/uidemo1