Skip to content

CDroid is a android like GUI toolkit base on C++11,It is a cross-platform GUI engine for embedded system.Mybe an other choice of QT . IMGUI ,Flutter.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

UI Components:

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 LayerDrawable StateListDrawable LevelListDrawable ClipDrawable
GradientDrawable RotateDrawable AnimatedRotateDrawable ScaleDrawable AnimatedImageDrawable
VectorDrawable RippleDrawable AnimatedStateListDrawable AnimationDrawable

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 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

About

CDroid is a android like GUI toolkit base on C++11,It is a cross-platform GUI engine for embedded system.Mybe an other choice of QT . IMGUI ,Flutter.it is more friendly for android developers.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •