1 / 19

PyADK2 -- Introduction

PyADK2 -- Introduction. 鲜卑拓跋枫 XianBei2011@gmail.com 2012.1.1. Content. I. What is PyADK2 Who am I Brief History of PyADKx Design Goal Why PyADK II. SW Arch of PyADK2

esben
Télécharger la présentation

PyADK2 -- Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Content I. 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 Issues IV. Roadmap V. License VI. Future Work VII. Reference

  3. I. What is PyADK2 1) 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 Android 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 notpublished since it only has limited functionalities and is served as an experimentalpreparation for PyADK2 • PyADK2 is far more than PyADK1 which will be explained later in the next session “Design Goal” • The design and coding of PyADK2 is still on the way and prone to be changed, and this document will be updated frequently according to the latest change

  4. 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 Google 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 in 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 PyADK2 • PyADK2 is also served as a platform that could integrate the exist Python and Qt based development tools in a much more simple way

  5. 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 dynamic, and the transparent build process to the end users • There are many existed Python and Qt based mobile development and 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 isfully 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

  6. II. SW Arch of PyADK2 1) Overview Software Architecture of PyADK2

  7. 2) Runtime • The PyADK2 isdesigned tobe work on both Linux and Windows, but thebuilt-in functionalities and UI may be slightlydifferent due to the characteristicson each underlying platform • The PyADK2 Runtime consists ofPython 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 theinternal communication mechanism and library among the main components of PyADK2

  8. 3) Core Framework • The CoreFramework isthe keysoftware layerwithin PyADK2. 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 CoreFramework 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

  9. 4) Applications • PyADK2 is designed tointegrate many useful tools for mobile software development, 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 PyADK2 is as below: AutoTestAndroid: it isanintegration 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

  10. AndroDebug: it ismainly 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 forAndroid, 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

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

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

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

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

  15. VI. Future Work The 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 befully 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

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

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

  18. Thanks !

More Related