19
PyADK2 -- Introduction 鲜鲜鲜鲜鲜 [email protected] 2012.1.1

PyADK2 -- Introduction 鲜卑拓跋枫 [email protected] 2012.1.1

Embed Size (px)

Citation preview

Page 1: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

PyADK2 -- Introduction

鲜卑拓跋枫 [email protected] 20

12.1.1

Page 2: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

Revision Authors Remarks

0.1 鲜卑拓跋枫 First Draft

2012.1.1

Page 3: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

ContentI. What is PyADK2 Who am I Brief History of PyADKx Design Goal Why PyADK

II. SW Arch of PyADK2 Overview Runtime Core Framework Applications

III. Known IssuesIV. RoadmapV. LicenseVI. Future WorkVII. Reference

Page 4: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

I. What is PyADK21) Who am I A Python fan and Open Source lover from China, and PyADKx are a serial of my Open Source projects

2) Brief History PyADKx stands for Python-based Android Development Kit version x PyADK1 is designed as a Python-based GUI front-end for integrating Andr

oid development and testing tools, and to provide the developers/testers with a better interactive development experience;

It is mainly based on the CPython, wxPython, and IPython; The source code of PyADK1 is not published since it only has limited functionalities and is served as an experimental preparation for PyA

DK2 PyADK2 is far more than PyADK1 which will be explained later in the next s

ession “Design Goal” The design and coding of PyADK2 is still on the way and prone to be chang

ed, and this document will be updated frequently according to the latest change

Page 5: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

3) Design Goal A Python and Qt based Integrated Development Environment (IDE) for Android developers to provide a more intuitive, interactive and flexible development environment It is not only an alternative for the standard Android SDK/ADT from Go

ogle that based on Eclipse, but also could coexist and make fully use of the latter In fact, it is also designed as an IDE framework which just like Eclipse i

n Java, which try to setup a completed, similar and generic component and plug-in based framework that could be used to built an IDE for special purpose easily

User could “refactoring” the behavior of PyADK2 for their own need via the well designed Python-based configuration and APIs of PyADK

2 PyADK2 is also served as a platform that could integrate the exist Pyt

hon and Qt based development tools in a much more simple way

Page 6: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

4) Why PyADK The Eclipse based IDE/SDK has big memory footprint and suffers from the OutOfMemory issue The Python based IDE framework is more suit for the geeks when compared to the Java/Eclipse based ones for its simplicity, high dy

namic, and the transparent build process to the end users There are many existed Python and Qt based mobile development an

d testing tools(even in the source code of Android itself), and their programmers are grown rapidly, but still lacks of a mature framework and visual front-end for integration

Python is fully Open Sourced and Community-Driven In the past decade, we note that Python is becoming very popular in the many areas such like Scientific Computing, especially among the non-professional developers

Page 7: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

II. SW Arch of PyADK21) Overview

Software Architecture of PyADK2

Page 8: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

2) Runtime The PyADK2 is designed to be work on both Linux and Wind

ows, but the built-in functionalities and UI may be slightly different due to the characteristics on each underlying platform

The PyADK2 Runtime consists of Python implementation like CPython and Jython(only support Python 2 cvurrently), the Qt Runtime, and other necessary libraries such like Cython, PySide, and ZeroMQ/PyZmq

ZeroMQ/PyZmq is used as the internal communication mechanism and library among the main components of PyADK2

Page 9: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

3) Core Framework The Core Framework is the key software layer within PyADK

2. It is run on the Runtime layer, and should provides a suite of basic components for constructing IDE, an environment to support applications in the upper layer, and modularization and extensibility are also need to be carefully considered via the service/client and plug-in mechanism

The Core Framework is designed to be implemented by mainly modifying IPython which served as a good code base with great potential to be the IDE framework like Eclipse as we need, many hooks will be added into IPython to customized it for PyADK2

All the functionalities in this software layer come are exposed to the Applications Layer with fully Python based APIs, and also could be directly used by the end users via the IPython based interactive shell within PyADK2

Page 10: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

4) Applications PyADK2 is designed to integrate many useful tools for mobile software develop

ment, especially for Android Some of those tools are from their existed version and may not need to be modified, and what is provided to the end users is via a portable and executable method And many tools are specially developed by ourselves for PyADK2 A brief introduction of the main applications that planned to be integrated into P

yADK2 is as below: AutoTestAndroid: it is an integration of AutoTest and Lava for various Android testing like that for Linux kernel, Android benchmarks, and Android applications and a visual front-end for tests like CTS QtADB: it is base on the QtADB project which is a visual wrapper Manager using Android Debug Bridge that based on Qt PyRemote: it is a Python/Qt based terminal program like Putty, and also integrates some Python based remote access libraries together with Android tools like repo

Page 11: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

AndroDebug: it is mainly inspired by the LLDB, AndBug, and Immunity Debugger projects, which aims at providing developers a visually and sciptable debugger for Android debugging, both Java and native or their mixing are supported

PyFT4A: which means the Python-based Forensics Toolkit for Android, and it will integrate the tools like AndroGuard. As security is becoming an very important issue for mobile devices, this toolkit should be very useful for Geeks

SL4A: it is based on the SL4A project which seems inactive recently, and actually I have another idea of implementing Python runtime on Android for mobile development which will be exposed in another Open Source project that hope to published in the next year, which hope to instead of SL4A finally

Page 12: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

PyVCT: which means the Python-based Virtualization and Cloud Computing Toolkit, and it is mainly used for integrating many virtualization/cloud computing tools on Linux

PyQVT4A: which means the Python and Qt based Visual Programming Toolkit. As Visual Programming is becoming much more popular in SW/HW development, our goal is to provide a Labview and Orange liked toolkit for mobile developers with a more intuitive and convenient programming method, which means even non- professional developers could develope a mobile application in a short time and enjoy the fun of the programming itself. And porting such Visual Programming environment directly to the mobile devices will be implemented late

Page 13: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

III. Known Issues PyADK2 is a complex software system, while I am still young to master such big Python/Qt mixed project actually, so your help, support and contribution is the most important thing to this Open Source project There is no common Open Sourced IDE framework in Python world like Eclipse in Java (Enthought seems to be the most similar one, but it is not Open Sourced), maybe Eric is another good reference, while there are still many critical issues need to be resolved There are some attempts to implement OSGi via Python previously, but it seems that that may not be a good idea The core projects like IPython and Qt that PyADK2 depends on are in rapidly developed status and prone to be changed

Page 14: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

IV. Roadmap PyADK2 is planned to be released every four months, and its first

release is hoped to be released at the early of May, 2012 Your ideas and code contribution to this project is very expected

Page 15: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

V. License The Code license for all PyADKx are Apache v2: http://www.apache.org/licenses/LICENSE-2.0

Page 16: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

VI. Future WorkThe planned major changes for the PyADK3 are listed as below: The PyADK Runtime is migrated to PyPy(for Python 3) and Qt5 The packaging for PyADK will be fully portable, which means user just need to download a standalone package(The PyADK Runtime will also be included in it) and only extract it for installation and using then Add the ARM version support for PyADK The most important thing is a mature Core Framework

Page 17: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

VII. Reference http://www.python.org http://qt-project.org/ http://www.oracle.com/technetwork/java/index.html http://www.eclipse.org http://www.ipython.org http://www.jython.org http://www.cython.org http://www.zeromq.org http://www.zeromq.org/bindings:python http://www.pyside.org http://www.wxpython.org http://www.pypy.org http://www.arm.com http://autotest.kernel.org/ https://wiki.linaro.org/Platform/Validation/LAVA http://source.android.com/compatibility/cts-intro.html http://qtadb.wordpress.com http://lldb.llvm.org/ http://immunityinc.com/products-immdbg.shtml

Page 18: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

https://github.com/swdunlop/AndBug/ http://code.google.com/p/androguard/ http://code.google.com/p/android-scripting/ http://www.ni.com/labview/ http://orange.biolab.si http://www.enthought.com/ http://eric-ide.python-projects.org http://www.osgi.org

Page 19: PyADK2 -- Introduction 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1

Thanks !