level 5
KnIfER
楼主
蝼蚁们,快来膜拜哥哥呀。
这贴发过一次,系统当时没删,应该是后来某个**一样的人删的。别让我发现是谁。
。
《方法&&教程:qpython中调用外部库(.so文件)里的函数》
参见链接一,根据该官方文档,无论是在windows还是在linux平台,python都提供了调用外部库(dlls or shared libraries)的模块——ctypes。那么在qpython中应该也能。但是有一个大坑:参见链接二 ,结合实践可见直接加载sd卡(无论外置内置)上的库文件是不可以的,会报错:permission denied;原因应该是sd卡上的文件没有执行权限。解决方法是将库文件复制到qpython app的私有空间里面:/data/user/0/org.qpython.qpy/;app的私有空间有执行权限。未root的手机,无法用文件管理器查看或写入该目录,所以我们要在qpython上用python脚本进行文件操作。将库文件复制到私有空间,就可以加载并执行其中的函数了。python官方案例里面调用了libc.time(None)函数,python脚本里面千万不要漏了None,否则会返回天杀的segmentation error。
/
/
/
/
/
好了,说了那么多,你要做的其实相当简单:复制以下代码保存为dl.py,并下载libcom_googlecode_android_scripting_Exec.so复制到你的存储卡上。qpython里面执行dl.py即可。
from ctypes import *
frompath="/storage/emulated/0/libcom_googlecode_android_scripting_Exec.so"
topath="/data/user/0/org.qpython.qpy/files/lib/libffmpeg.so"
import os
os.system('cp '+frompath+' '+topath)
dl=CDLL(topath)
print dl.time(None)
结果如图。
那一串数字14993....应该就是系统现在的时间码了。
ps.库文件libcom_googlecode_android_scripting_Exec.so由qpython自身解包得到,看名字应该就是官网例子里面的libc.so,看结果无误,哈哈哈机智的我。

2017年07月07日 12点07分
1
这贴发过一次,系统当时没删,应该是后来某个**一样的人删的。别让我发现是谁。
。
《方法&&教程:qpython中调用外部库(.so文件)里的函数》
参见链接一,根据该官方文档,无论是在windows还是在linux平台,python都提供了调用外部库(dlls or shared libraries)的模块——ctypes。那么在qpython中应该也能。但是有一个大坑:参见链接二 ,结合实践可见直接加载sd卡(无论外置内置)上的库文件是不可以的,会报错:permission denied;原因应该是sd卡上的文件没有执行权限。解决方法是将库文件复制到qpython app的私有空间里面:/data/user/0/org.qpython.qpy/;app的私有空间有执行权限。未root的手机,无法用文件管理器查看或写入该目录,所以我们要在qpython上用python脚本进行文件操作。将库文件复制到私有空间,就可以加载并执行其中的函数了。python官方案例里面调用了libc.time(None)函数,python脚本里面千万不要漏了None,否则会返回天杀的segmentation error。
/
/
/
/
/
好了,说了那么多,你要做的其实相当简单:复制以下代码保存为dl.py,并下载libcom_googlecode_android_scripting_Exec.so复制到你的存储卡上。qpython里面执行dl.py即可。
from ctypes import *
frompath="/storage/emulated/0/libcom_googlecode_android_scripting_Exec.so"
topath="/data/user/0/org.qpython.qpy/files/lib/libffmpeg.so"
import os
os.system('cp '+frompath+' '+topath)
dl=CDLL(topath)
print dl.time(None)
结果如图。
那一串数字14993....应该就是系统现在的时间码了。
ps.库文件libcom_googlecode_android_scripting_Exec.so由qpython自身解包得到,看名字应该就是官网例子里面的libc.so,看结果无误,哈哈哈机智的我。


