升级 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/等文件;

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,然后修改bin/pip3到对应版本;

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更有潜力。

Python3.9字典合并
字典合并

支持FileProvider,新的SL4A函数,可用来调用系统默认打开方式打开文件,不会出现UriExposed错误
FileProvider
中途会出现选择用哪种方式打开这个文件的窗口(图略)。

支持安卓原生加解密,新的SL4A函数
加解密

视频演示:https://www.bilibili.com/BV1kf4y1W7Q3

作者:乘着船@Segmentfault
更多文章+下载链接,QPython3开源库

阅读 1.1k
1 声望
2 粉丝
0 条评论
1 声望
2 粉丝
文章目录
宣传栏