# AidLearning
**Repository Path**: icorecool/AidLearning
## Basic Information
- **Project Name**: AidLearning
- **Description**: AidLearning App在Android手机上构建了一个带图形界面的Linux系统(不需要root),和你的Android系统共生共存,并内置了目前排名top7的深度学习框架
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: https://www.oschina.net/p/aidlearning
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 15
- **Created**: 2019-09-09
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[中文版](intr.md)
**AidLearning** is a Linux system running on the Android with GUI, Deep-Learning and Python Visual Programming support . The [AidLearning](http://www.aidlearning.net) framework which have the Linux+Anroid+AI+Python 4in1 environments Developed and Maintained by several students from [Cas University](http://english.cas.cn) and [Yale University](https://www.yale.edu).
### Table of Contents
- ⚘ introduce
- ⚘ Dependencies
- ⚘ Installation
- ⚘ Support Powerfully
- ⚘ Touch and Drag Style Programming
- ⚘ SSH (pc connected)
- ⚘ Aid_code IDE of python
- ⚘ Examples inside
- ⚘ References
# Introduce
[](license.md)
AidLearning App builds a ***graphical interface Linux*** system (without need root) **on Android phones** and coexists with your Android system. The App has a built-in system of leading deep learning frameworks, including ***Caffe, Tensorflow, Mxnet, pytorch, keras, ncnn and opencv***. You no longer need complex configuration, wall-turning downloads and Install dependency packages.
AidLearning is also a ***pocket AI programming tool***. The built-in AICode visual IDE allows you to easily program on your mobile phone with Python (supporting Python 2 and Python 3), support ***touch-and-drag*** interface design, support real-time debugging and graphical running of codes. AidLearning has a large number of AI source code examples, which include face recognition, pose recognition and classification. You can develop the AI App on mobile phones on a ***zero-based*** basis.
In addition, AidLearning provides wifi-based mapping projection technology, which can project mobile phone code to PC for Web interactive programming and ***SSH*** remote command interaction. Easy viewing on televisions and the ability to projector for large screen display, ensures the ability to present in group settings.
In short, AidLearning has created a touch-and-drag programming platform for rapid development and learning that combines ***Android + Linux + AI 3IN1 environments***. It utilizes mobile phones for fragmented programming and fully optimizes use of the development advantages of the two major operating systems (Android + Linux) and the perfect terminal advantages of mobile phones. AidLearning offers a distinct advantage to its users through an effective new platform for programming learning and development.
AidLearning App在Android手机上构建了一个带图形界面的Linux系统(不需要root),和你的Android系统共生共存,并内置了目前排名top7的深度学习框架包括Caffe、Tensorflow、Mxnet、pytorch、keras、ncnn、opencv,你不再需要复杂的配置和翻墙安装依赖包。
AidLearning同时是一款口袋AI编程工具,内置的AiCode可视化编程器,可以让你在手机上用python(同时支持Python2和Python3)轻松零基础编程,支持触摸拖拽式界面设计 ,支持代码实时调试和图形化运行。Aid Learning内置大量人脸识别、行为识别、分类等AI源码例子程序,你可以零基础在手机上开发AI App。
此外,Aid Learning提供了基于wifi的映射投屏技术,可以把手机的代码投屏到电脑pc进行web互动编程和SSH远程命令交互,同时也可投影到电视机、投影仪进行大屏显示。
总之,Aid Learning打造了一个Android+Linux+AI 三合一的触摸拖拽式的快速开发和学习平台,不仅可利用手机进行碎片式编程,同时可充分利用两大主流操作系统(Android+Linux)的开发优势和手机的完美终端优势,利用这种优势,Aid Learning打造了一个完美的编程学习和开发的新平台。
[更多中文介绍请参考!](https://www.jianshu.com/u/d319e817a013)

## Dependencies
All you need is an Android devices (phone ,tablet or arm board) that supports the CPU of **Arm64(aarch64)**. The Android version requires more than 6.0. If you think the parameters are not clear enough, I would like to say that most of the mainstream mobile phones support it, such as _Samsung, Huawei, MI, OPPO, VIVO, nubia_ etc. In addition, the requirement of storage space is a little big. It is suggested that there should be **2G** free storage space.
## Installation
To install **AidLearing**, Simply download an App (apk file) and install it on your mobile device. download newest version at :
[ Download v0.76 now!](http://www.aidlearning.net/downloads/aidlux-09-04.apk)
Other version at:[https://github.com/aidlearning/AidLearning-FrameWork/releases](https://github.com/aidlearning/AidLearning-FrameWork/releases)
The APP (apk) is only 9M,when you install the apk and launch,the apk will auto download the dependence of the linux and examples of codes . all is about 1G size to download .So it's recommended that you install it _in a wifi environment_.
**Important reminder:** Click the setting icon after entering the desktop, the dialog box for the camera permission will pop up, please click agree, if you want to use the built-in examples.
[Download v0.76 for chinese version now!](http://www.aidlearning.net/downloads/aidlux-09-04.apk)
## Support
---
Support AI Framework:

* [Caffe]https://github.com/BVLC/caffe
* [Tensorflow]https://github.com/tensorflow/tensorflow
* [Mxnet]https://github.com/apache/incubator-mxnet
* [Keras]https://github.com/keras-team/keras
* [ncnn]https://github.com/Tencent/ncnn
* [pytorch]https://github.com/pytorch/pytorch
* [opencv]https://github.com/opencv/opencv
---
Support Python2.7 and Python3.6.4:
| AidLearning | Python2.7 | Python3.6|
| --------- | -------- | -----: |
| caffe | ✓1.0.0 | ✓ 1.0.0|
| mxnet | ✓1.0.0 | ✓1.5.0 |
| tensorflow | ✓1.10.0 | ✓1.5.0 |
| Gluoncv | ✗ | ✓ 0.40|
| Keras | ✓2.2.4 | ✓2.2.4 |
| Pytorch | ✗ | ✓1.1.0 |
| Opencv(cv2) | ✓2.4.9 | ✓3.4.6 |
| Scipy | ✓0.18.1 | ✓1.3.0 |
| Numpy | ✓1.14.5 | ✓1.16.3 |

## Touch_and_Drag_Programming
Now you can easily customize your GUI with touch and drag using wizard!Wizard will produce the code automatic like this:
```
class MyApp(App):
def __init__(self, *args):
super(MyApp, self).__init__(*args)
def main(self):
container = gui.VBox(width=120, height=100)
self.lbl = gui.Label('Hello world!')
self.bt = gui.Button('Press me!')
# setting the listener for the onclick event of the button
self.bt.onclick.do(self.on_button_pressed)
# appending a widget to another, the first argument is a string key
container.append(self.lbl)
container.append(self.bt)
# returning the root widget
return container
#listener function
def on_button_pressed(self, widget):
self.lbl.set_text('Button pressed!')
self.bt.set_text('Hi!')
```
