[Feature Request] Add Android support #210
lc-soft posted onGitHub
Is your feature request related to a problem? Please describe.
Some Android apps have a very slow startup speed, large memory usage, and poor performance user interfaces. I don't know how Android developers can reduce the performance of app, even if their user interface is simple.
Therefore, I am interested in trying to use LCUI to build Android to experience its performance, to confirm whether the poor performance of the Android application is due to the technical level of Android developers or the GUI framework they use.
But before that, we need to make LCUI work on Android. Since I am not an Android developer, this work needs to be done by Android developers in the open source community.
Describe the solution you'd like
At first, if you want to work on this issue, please request for a bounty on issuehunt.io to tell everyone how much you need.
Next look at the requirements:
- Drivers
- Video
- Touch screen
- Input
- Event loop
- APIs
- Add a function to get DPI
- Add a function to display virtual keyboard
- Add other required APIs
- Documentation
- Introduction documentation: introduce how you did it, how these drivers work, how Android apps work, etc.
- Development documentation: introduce how to build an Android application based on LCUI and how to debug it
- CI
- Pass all unit tests in Android
- The CI server should compile test/helloworld.c and package into apk file
- The CI server should install and run the apk file, and be able to send screenshots as comment to GitHub
- Examples
- Add an Android project template with helloworld example for rapid development
- Dependent libraries
- Provide a script or other means to make it easier for libpng, freetype, libxml2 and other dependent libraries to compile for Android
Finally, in order to get more bonuses, I recommend writing some articles to introduce this feature that will be added, so that more people know the value of it and are willing to increase the bonus.
Describe alternatives you've considered
If you think this work is very difficult, you can provide other forms of help, such as:
- Provide relevant development documents to make development easier
- Provide technical difficulties that need to be resolved
Additional context
SDL already supports Android, you can refer to its code:
https://github.com/SDL-mirror/SDL/tree/master/src/video/android
For how to develop the Android driver for LCUI, you can refer to the existing driver code: