[Android] 在AndroidStudio中使用Python

这篇文章不包含Python的安装教程,请确保你已经安装好Python解释器。

安装Chaquopy

  1. /build.gradle 中添加如下语句:

    plugins {
         id 'com.chaquo.python' version '14.0.2' apply false
     }
    
  2. /app/src/build.gradle 中添加如下语句:

    plugins {
         id 'com.android.application'
         id 'com.chaquo.python'
     }   
    
  3. /app/src/build.gradle 中的 android 中添加如下语句:

     defaultConfig {
         ndk {
         abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
         }
         python{
             version "3.8" //python版本,建议使用3.8
             buildPython "C:\\python.exe" //设置python解释器位置,注意版本对应
             pip{
                 install "libgen-api"
             }//安装python库,“libgen-api”是测试用的
         }
     }
    

调用Python代码

  1. 启动Python环境:

        if (!Python.isStarted()) {
            Python.start(new AndroidPlatform(this));
        }
        ...
        python 代码
        ...
    
  2. 利用 Java equivalent 调用Python代码,详见 Java API

  3. 设置联网权限,在 /app/src/main/AndroidManifest.xml 中的 manifest 块中添加如下语句:

     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    

测试代码

import android.widget.Toast;
import com.chaquo.python.PyObject;
import com.chaquo.python.Python;
import com.chaquo.python.android.AndroidPlatform;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (!Python.isStarted()) {
            Python.start(new AndroidPlatform(this));
        }
        if(Python.isStarted()){
            Toast.makeText(MainActivity.this, "this is debug message!", 5000).show();
            System.out.println("This is debug msg!");

        }
        Python py = Python.getInstance();   //获得Python实例
        PyObject libgen_api = py.getModule("libgen_api"); //import libgen_api
        PyObject libgen = libgen_api.callAttr("LibgenSearch"); //调用libgen_api.LibgenSearch()
        try{
        PyObject result = libgen.callAttr("search_author","Jane Austen");
        System.out.println(result);
        }catch (RuntimeException runtimeException){
            System.out.println("网络异常");
        }
        //测试时请连接VPN
        //虚拟机可能有网络问题,建议使用真实机
        //可通过Android Studio 下方 Logcat 选项卡查看输出。

    }
}

参考资料

  1. Gradle Plugin
  2. Java API
  3. Class Python

原文链接:在AndroidStudio中使用Python

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值