python在Android
‘壹’ python可以进行android开发么
完全没问题,目前python for android项目的进展很迅速,python能在android上稳定运行。是否流畅还要看硬件配置如何了。图形界面也有成熟的项目,比如kivy等。可以制作稳定实用的App。
‘贰’ python 能开发 Android 应用吗
python可以开发Android应用。
Python是一种解释型脚本语言,可以应用于以下领域:
1、Web 和 Internet开发;
2、科学计算和统计;
3、人工智能;
4、教育;
5、桌面界面开发;
6、软件开发;
7、后端开发。
(2)python在Android扩展阅读:
操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。
Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。
Android采用OpenCORE作为基础多媒体框架。
Open CORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。
2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,Skia 也是Google Chrome 的图形引擎。
Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。
Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。
Dalvik虚拟机可以有多个实例(Instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。
参考资料:网络-Android
‘叁’ 如何使用python做android的自动化测试
一、首先说说手机自动化测试的原理 1、手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口、USB或者无线方式将PC与手机终端相连,然后应用测试工具向手机发送请求或者命令,手机收到命令或者请求后,交给agent端解析,然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作。完成这些操作后,手机会返回一些信息,agent可以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测试。 2、关键点在于agent,有的公司是向自己的手机终端的软件功能模块中植入测试程序响应代码,有的公司可以利用MMI_Command的方式来控制手机终端;原理就是给手机提供一个响应的接口。 3、而对于PC控制端,这个测试脚本用各种编程语言都可以,看如何定义 4、而又的自动化测试设计成录制的机制,说通俗点,就是记录手工操作的键盘信息或者LCD的操作信息(LCD需要用到智能识别机制) 5、自动化测试框架的搭建方法是通用的,你需要有一套自己的测试框架才能保证自动化测试的顺利开展。 二、Android自动化测试方向: 1、CTS,CTS 测试基于Android instrumentation 测试, 其又基于JUnit 测试。说白了, CTS 就是一堆单元测试用例。这也是Java 语言的擅长部分。 2、 Monkey工具,Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。 3、ASE,ASE 意思为Android 脚本环境, 即我们可以通过脚本(比如Python)调用Android 的功能,从而定制一些测试。比如打电话,发短信,浏览网页,等。我们可以扩充它的API(Java 部分), 并用python 脚本调用这些API, 从而实现丰富的测试功能。用于API 部分可以访问到Android 全部API, python 又能灵活部署测试,所以ASE 的扩展性非常好。 4、Robotium,该工具用于黑盒的自动化测试。可以在有源码或者只有APK 的情况下对目标应用 进行测试。Robotimu 提供了模仿用户操作行为的API,比如在某个控件上点击,输入Text 等等。(推举你可以研究一下这个工具,开源的,我有资料) 5、可以自己开发一个手机方面的自动化测试工具,原理上一样的 如果你想要什么资料的话或者想一起学习研究的话,可以给我发邮件:[email protected]
‘肆’ 如何在android上运行Python代码
在android上运行python脚本,或者在android上使用python交互界面,对熟悉python的研究或开发人员来说,是一件很有吸引力的事情,因为python脚本真是非常高效,另外,有很多非常好的库
android官方目前没有支持在android设备运行python,但是网上有一些项目组做了这个事情on-apps-scripts-on-android/ 这个链接就提供好几个项目,我稍微尝试了 Kivy 这种方式, 需要安装
的东西太多,就放弃了. 推荐 e/28这种方式,使用 qpython 项目, 可以用非常少的付出得到 android 上可以运行的 python 环境.
1. Please download QPython from url:hcom/ 这里我采用不同的方式,直接从360手机助手搜索并安装 qpython , 更加方便
2. adb install qpython package into device or emulator
3. change /system folder to be readable and writeable
4. modify /system/etc/mkshrc to add following at the end of the file
ANDROID_PRIVATE=/data/data/com.hipipal.qpyplus/files;export ANDROID_PRIVATE
ANDROID_PUBLIC=/storage/sdcard/com.hipipal.qpyplus;export ANDROID_PUBLIC
ANDROID_SOCKET_zygote=9;export ANDROID_SOCKET_zygote
AP_HANDSHAKE=10e4c98a-4216-47a3-bf67-57b99d7d516e;export AP_HANDSHAKE
AP_HOST=127.0.0.1;export AP_HOST
AP_PORT=45367;export AP_PORT
LD_LIBRARY_PATH=/vendor/lib:/system/lib:/data/data/com.hipipal.qpyplus/files/lib:/data/data/com.hipipal.qpyplus/files:/data/data/com.hipipal.qpyplus/lib
export LD_LIBRARY_PATH
PATH=/data/data/com.hipipal.qpyplus/files/bin:/sbin:/vendor/bin:/system/bin:/system/xbin
export PATH
PYTHONHOME=/data/data/com.hipipal.qpyplus/files;export PYTHONHOME
PYTHONOPTIMIZE=2;export PYTHONOPTIMIZE
PYTHONPATH=/data/data/com.hipipal.qpyplus/files/lib/python2.7/:/data/data/com.hipipal.qpyplus/files/lib/python2.7/lib-dynload/:/data/data/com.hipipal.qpyplus/files/lib/python2.7/site-packages/:/storage/sdcard/com.hipipal.qpyplus/lib/python2.7/site-packages/:
export PYTHONPATH
PYTHONSTARTUP=/storage/sdcard/com.hipipal.qpyplus/lib/python2.7/site-packages/qpythoninit.py
export PYTHONSTARTUP
TMPDIR=/storage/sdcard/com.hipipal.qpyplus/cache;export TMPDIR
5 relogin the shell
6. type python in the adb shell
root@generic:/ # python // 我尝试的时候,直接运行 python (其实是运行 /data/data/com.hipipal.qpyplus/files/bin/python) 会报错: error: only position independent executables (PIE) are supported. 我测试的设备是 Nexus 6 , android 6.0 , 在
这些比较新的 android 系统上有保护,需要可执行程序使用 -PIE 进行编译,否则无法运行. 但我发现同样的目录下 python-android5 是可以运行的, 所以就 mv python python.bak ; ln -s python-android5 python ; 这样后面就可以直接运行 python 了.
分类:android
‘伍’ android中python有什么作用
Python解释器的位置是一个安装选项,因此它可能在其它的位置。必要时询问你身边的Python专家或者系统管理员(/usr/local/python是另一个常见的安装路径)。在Windows上,Python通常安装在C:\Python24[U1] ,但你可以在安装时改变这个路径。要把这个路径加入到你的path中,请在命令行窗口里执行以下命令
在Python的提示符候输入一个文件结束符(Control-D on Unix and Control-Z on Windows)会使解释器退出并返回状态码0。如果文件结束符不起作用,你还可以执行命令”import sys;sys.quit()”来退出解释器。解释器的行编辑功能通常并不是很强大。但在Unix上,安装了解释器就激活了GNU readline库的支持。该库加入了很多复杂的交互式编辑和历史纪录的功能。
最快的检测命令行编辑是否支持的办法也许是在你遇到的第一个Python提示符候输入Control-P。如果听到嘟嘟响,就说明你可以使用命令行编辑。在附录A中可以看到关于这些编辑键的介绍。如果什么都没有发生或者显示了字母P,则表示命令行编辑功能不可用,你只能使用backspace从当前行删除字符。
解释器有些像Unix的Shell:当调用时的标准输入连接到一个tty设备时,交互的读入命令并执行。如果跟着一个文件名作为参数,或者以一个文件作为标准输入,则从该文件读入并执行脚本。
第二种启动解释器的办法是”python –c command [arg]…”。解释器会执行传入的命令,就像shell的-c选项一样。因为Python的语句经常包含空格或者其它对shell有特殊意义的字符,最好把命令用双引号引起来。一些Python模块也是很有用的脚本。可以用”python –m mole [arg]…”的方式来调用。解释器会执行模块的源文件,就如同你在命令行上给出了模块的全名一样。
注意”python file”和”python <file”有一点区别。后一种方式程序需要的输入,如input()和raw_input()的调用会从输入文件读。同时在程序执行以前解释器已经读到输入文件的末尾了。
因此程序会立刻遇到一个end-of-file。在前一种情况下(通常是你希望的)输入从Python解释器标准输入相关联的任何文件或者设备读入。当使用脚本文件时,有时需要在执行完脚本候进入交互模式。可以通过在脚本前加上-i达到这种效果。(当脚本从标准输入读入时该方法不起作用,和上一段解释的原因一样)。
脚本名称和附加的参数被放在sys.argv中传入脚本。sys.argv是一个字符串行表,长度最少为1。当没有脚本和参数传入时,sys.argv[0]是一个空串。当脚本名用’-‘指定时(表示标准输入),sys.argv[0]被置为’-‘。使用-m mole选项时,sys.argv[0]被置为模块的全名。
-c command 或-m mole以后的选项不被Python解释器处理,而是作为sys.argv传给要执行的命令或模块。
从tty读入命令时,解释器处于交互模式。
在这种模式下它用主提示符来提示用户输入下一个命令。主提示符通常是三个大于号(“>>>”)。在一行输入没有终结需要在下一行继续输入时的副提示符缺省时三个点号(“…”)。
‘陆’ 如何使用python做android的自动化测试
目前大家对Python都有一个共识,就是他对测试非常有用,自动化测试里Python用途也很广,但是Python到底怎么进行自动化测试呢?今天就简单的向大家介绍一下怎么使用Python进行自动化测试,本文只是自己的一点点分享,若有错误,请大家多多批评指正。这里主要介绍的是一些Python测试的框架
1、单元测试
a、unittest :Python自带的单元测试框架
b、pyunit:Junit的Python版本
2、使用Pyhon进行Windows GUI测试
这部分的功能主要就是和大家平时使用的QTP类似。在Windows下我们可以使用pywinauto这个开源的框架:
来个小例子:
app.Notepad.MenuSelect("Help->About Notepad")
app.AboutNotepad.OK.Click()
app.Notepad.Edit.TypeKeys ("pywinauto Works!", with_spaces = True)
呵呵,强大吧
3、使用Python进行Web自动化测试
使用Python进行Web自动化测试的工具有很多,这里就向大家推荐一下我比较熟悉的Selenium(Web Driver)吧。