升级 QPython OH 内核至 Python 3.9
一、平台和源码包准备:
需要Android Studio,Android SDK 28 + NDK 22,QPython开源项目地址:http://github.com/qpython-android,QPython GitHub构建说明:https://mp.weixin.qq.com/s/b9opLK95EktFXIck25PlNA。此处不再赘述。
二、更换Python3.9内核大致步骤,繁琐但也不是很复杂:
1.安卓手机下载Linux终端模拟器Termux;
2.在终端执行 pkg install python,安装Python最新版3.9.4;
3.运行python复制出里面的所有私有文件'/data/data/com.turmux/'到SD卡上;
4.从私有文件中,找出python3.9内核,bin/python、include/python3.9/、lib/、bin/sh、bin/pip3等文件;
5.去掉内核当中过大的、不大能用到的一些so文件和会导致QPython终端异常的libandroid-support.so文件;
6.用QPython3H代码批量全文搜索,对3.9内核当中termux部分进行手动修改:lib/python3.9/subprocess.py, 把'/data/data/com.termux/files/usr/bin/sh'字符串改为'/system/bin/sh';
7.把3.9内核拷贝到QPython源码包'qpython-master/qpython/src/main/assets/private31.mp3'(实为tar.gz压缩包)里,替换掉原有的python3.6内核;
8.修改'qpython-master/qpython/src/main/assets/private31.mp3'里的lib/python3.9/site-packages/pip,把pip版本升级到21.0;
9.修改'qpython-master/qpython/src/main/assets/private32.mp3'里的lib/python3.6/site-packages里的qpy.py,去掉imp导入,把python3.6重命名为python3.9;
10.修改'qpython-master/qpython/src/main/assets/'里的private31.mp3、private32.mp3、private33.mp3、public3.mp3、notebook3.mp3文件,把其余3.6的部分手动替换为3.9;
11.把'qpython-master\qpython\src\main\res\values\strings.xml'里的private31_version、private32_version、private33_version、public3_version、notebook3_version改为3.9内核日期对应秒数;
12.把bin/python改名为bin/python3-android5;
13.利用QPython3H代码批量全文搜索,把QPythonOH其余3.6的部分手动改为3.9:'qpython-master\qpython\src\main\java\org\qpython\qpy\console\ScriptExec.java、'qpython-master\qpython\src\main\java\org\qpython\qpy\main\app\CONF.java';
14.Android Studio重新签名打包QPython.apk;
15.两者区别和QPython内核升级意义:Termux里的Python更加Linux原生,安装Python环境需要三百多MB。制作成的QPython.apk只有六十多MB,且可以通过SL4A服务,把Python脚本与Android原生Java/C连接起来,调用Android原生API明显QPython更有潜力。
视频演示:https://www.bilibili.com/BV1kf4y1W7Q3
如果需要 修改版 Apk/源代码,请点击以下链接:
作者:乘着船@Bilibili