android与python交互_Android与Python混合编程

本文介绍了如何使用Chaquopy框架在Android应用中集成Python,实现Android与Python的混合编程。Chaquopy是一个基于Gradle的插件,简化了Android与Python的交互,允许开发者使用Python开发部分或全部的Android应用。文章提供了基础用法、配置教程、Python与Java代码的交互示例,以及静态代理和第三方库的引入。尽管存在多线程和内存管理的限制,Chaquopy为Android开发者提供了使用Python的强大能力。
摘要由CSDN通过智能技术生成

前言

早在2017年的时候,出于业余兴趣,我就开始研究关于Python移植到Android上的实现方案,我一直希望能实现Android与Python的混合编程,并为此写了一系列博客,我希望借助JNI技术,实现Java与Python的交互。或许是出于上班忙,时间少,精力有限,人的惰性等等原因,一直没有实现一套框架,降低Android与Python混编的难度,做到尽可能封装C语言代码,让使用者无需掌握NDK开发,C语言编程等。原理是早已走通了,剩下的就是苦力活,写C代码,写JNI代码,对接口一一封装。

现在终于不用遗憾了,因为已经有人做了我一直想做的事,而且是以我想要的思路。我一直关注着Android与Python混合编程的信息,当我看到Chaquopy框架时,真的难掩的开心,比我自己实现的还要开心!

如果有人想探寻Android与Python的混编的原理与实现,那我之前的写的博客还能派上一点用场

Android 平台的Python——基础篇(一)

Android 平台的Python——JNI方案(二)

Android 平台的Python——CLE方案实现(三)

Android 平台的Python——第三方库移植

Android 平台的Python——编译Python解释器

Chaquopy是什么?

简单的直观的解释,它是在Android Studio中基于Gradle的构建系统实现的一个插件。它可以帮助我们用最简便的方式实现Android技术与Python混合编程。甚至对于Python的忠实拥趸来说,可以完全使用Python语言开发一个apk,基本不用写Java代码。

实际上Chaquopy并不仅仅是一个插件那么简单,它是一套框架。gradle插件这部分只是用来打包apk的而已

基础用法-快速入门

首先使用Android studio创建一个hello工程,快速编写代码感受一下

请先确保你当前电脑上的Python环境可用,Chaquopy是根据当前电脑上的Python版本来选择集成对应的版本解释器到apk中的。如你的电脑上有多个Python版本,可通过配置明确指定对应的版本

defaultConfig {

python {

buildPython "C:/Python36/python.exe"

}

}

配置依赖

工程根目录下的 build.gradle

buildscript {

repositories {

google()

jcenter()

// 设置仓库

maven { url "https://chaquo.com/maven" }

}

dependencies {

classpath 'com.android.tools.build:gradle:3.3.1'

// 导入Chaquopy框架的包

classpath "com.chaquo.python:gradle:6.3.0"

}

}

app模块下的 build.gradle

apply plugin: 'com.android.application'

// 应用插件

apply plugin: 'com.chaquo.python'

android {

compileSdkVersion 28

defaultConfig {

applicationId "org.hello"

minSdkVersion 16

targetSdkVersion 28

versionCode 1

versionName "1.0"

// 指定abi,如需在模拟器调试,增加"x86",否则指定"armeabi-v7a"即可

ndk {

abiFilters "armeabi-v7a", "x86"

}

}

buildTypes {}

}

dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'com.android.support:appcompat-v7:28.0.0'

implementation 'com.android.support.constraint:constraint-layout:1.1.3'

}

配置完成后,同步一下gradle,网络状况不良可能会失败,多同步几次,亲测无需代理,同步成功后,所需的依赖就准备好了

编写代码

同步成功后,在工程中的main目录下会生成python文件夹,如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值