python调用安卓so库,python .so文件
用Python 1把py文件编译成so文件。原因二。方法2.1。软件环境。源文件2.3。setup.py2.4 .编译2.5。使用2.6。原地
1.理由
Python的解释特性是将py编译成唯一的二进制编码的pyc文件。
然后解释并执行pyc中的指令。
但是pyc的反编译非常简单,可以直接反编译成源代码。
正所谓“防人之心不可无。”
当产品需要向外部环境发布时,对源代码的保护尤为重要。
2.解决方法是先把py转换成C,再把C编译成so文件。
2.1.在软件环境中安装cython
$ pip3安装cython 2.2。源文件在要编译的py_to_so文件夹下新建一个test.py文件,内容如下:
类测试:def hello(): print(你好,CSDN!2.3.setup.py在py_to_so文件夹下新建一个setup.py文件,内容如下:
来自各地区。来自cython的核心导入设置。构建导入cytonize setup(ext _ modules=cytonize([ test . py ]))2.4。执行编译在py_to_so文件夹下执行编译。
$ python3 setup.py build_ext
运行后,将生成如下构建文件夹:
lib.linux-x86_64-3.8文件夹中的test . cpython-38-x86 _ 64-Linux-GNU . so是所需的。所以归档吧。
2.5.使用当前so文件可以像普通py文件一样导入和使用。
$ CD build/lib . Linux-x86 _ 64-3.8 $ python 3 $ from TEST导入测试$ TEST.hello()#你好CSDN!
2.6.in place $ python 3 setup . py build _ ext-in placeinplace:忽略build-lib,将编译后的扩展放入源目录中,与纯Python模块放在一起
忽略build-lib,将编译后的扩展和Python模块放在源目录中。
本文中提到的文件已经在CSDN codechina py_to_so中。
谢谢你
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。