android与python交互_Android与Python爱之初体验

独家授权码个蛋转载 *

前言

看到这个标题,大家可能会认为就是Android运行python脚本,或者用python写app,这些用QPython和P4A就可以实现了。我在想既然C可以调用Python,那么Android能不能通过JNI去调用C里的方法,C再去调用Python方法,实现Android与Python交互呢?用最近很热的一个概念来说JNI就是个壳。(本文假设大家有JNI开发基础)

想法

由于需求很明确了,所以整体流程大概就是这样。

aba8a1ae783e?from=timeline

交互流程

为什么要用python

首先看下我们为什么要在Android里需要使用Python,我认为主要有一下几个优点

代码简洁,这个真的是极度简洁的语言,比如我们想要print一个hello world,Java要这样做

public class Hello {

public static void main(String[] args) {

System.out.println("Hello world");

}

}

而Python只需要一句话就可以print出来

print ("hello world")

上手快,按网友所说,只需要读完Python API就可以成为大神,实际体验确实如此,十分好上手,如果现在让我推荐一个没有学过编程的人学习一款脚本语言,我会推荐他学一下python。

前期开发效率高,正如前两个优点所说,代码简洁、上手快而且由于属于超高级语言,很多东西都封装好了,决定了他前期开发效率很高。

可移植性强,由于是解释性语言,只需要有解释器,他可以运行在任何平台。

拓展性强,C/JAVA都有接口可以调用到Python,Python也可以调用到C,对Python进项拓展。

丰富的库,由于超高级语言,封装了很多方法,而且好多大牛对其开发了库。

当然还有几个缺点必须要强调一下。

强制缩进,代码简洁是把双刃剑,由于缩进所以简洁,而又由于缩进导致无法自动格式化代码,而且代码块的分割都是靠缩进,这时可能会造成混乱。

运行速度相对较慢,当然这个对相对C这种接近底层的语言来说的,Python在运行时先解析,再运行,而且由于高层语言相比底层语言都会慢那么一点。

版本兼容性较差,这个体现最明显的就是Python3和Python2,Python3不向下兼容

Python C

Python C是C语言调用Python的一组API,通过它我们可以调用到Python方法。

Python C开发步骤

引入头文件Python.h;

初始化python(Py_Initialize();)

引入模块(pModule = PyImport_Import("pythoncode");)

获取模块中的函数(PyObject_GetAttrString(pModule, "hello");

)

调用获取的函数(PyEval_CallObject(pFunction, NULL);

)

释放python(Py_Finalize();)

对应的代码如下:

#include

#include "Python.h"

int main()

{

Py_Initialize();

PyObject *pModule;

PyOb

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值