一、平台和源码包准备:

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

主界面:

终端界面:(支持FileProvider)

“更多”界面:

“关于”界面:

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

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

下载地址2:gitee

升级 QPython OH 内核至 Python 3.9相关推荐

  1. 一 在应用中升级u-boot、内核以及文件系统

    近期在做在Linux系统中做在应用中升级功能,网络传输数据,实现的目标是:通过网络可以对u-boot.内核.文件系统的文件进行修改升级. 这里记录一下简单思路: 首先从全局考虑,要实现的功能网络通信部 ...

  2. mac系统学python_升级mac自带的python,学python拿mac还是win,使用系统自带Pyth

    升级mac自带的python,学python拿mac还是win,使用系统自带Pyth 使用系统自带Python的弊端 系统自带的python版本比较旧,得不到python开发社区的支持,系统版本pyt ...

  3. Linux 升级到指定内核(Centos7 yum升级内核、centos系统中kernel-devel)

    文章目录 一.Linux 升级内核 Centos7 yum/rpm升级到最新内核 Centos 7 rpm升级到指定内核 关于Linux依赖包资源下载 二.Linux内核源码的编译及安装 三.设置 g ...

  4. 升级 Ubuntu Linux 内核的几种不同方法 | Linux 中国

    转载自:升级 Ubuntu Linux 内核的几种不同方法 | Linux 中国 升级 Ubuntu Linux 内核的几种不同方法 | Linux 中国 译者/Ping Yang  Linux  2 ...

  5. opensuse删除Linux内核,借助OpenSUSE的zypper源升级SLES12 的内核及相关软件

    借助OpenSUSE的zypper源升级SLES12 的内核及相关软件 SLES12正式发行的内核版本号为3.12. 在SLES12中添加OpenSUSE 13.2的ypper源 vIP:~ # zy ...

  6. python应用如何实现升级_一种基于Python实现BMC批量升级的方法与流程

    本发明涉及BMC批量升级,尤其涉及一种基于Python实现BMC批量升级的方法. 背景技术: 随着现代服务器主板技术的发展,主板设计形态复杂多变.无论是设计成本还是后期使用过程中的维护成本都很高.如何 ...

  7. linux升级到指定内核版本,如何在CentOS/RHEL上安装或升级新的内核版本

    Linux内核是一个整体的类Unix计算机操作系统内核.通常我们使用的Linux发行版,如Red Hat.Debian.SUSE等,这些都称为Linux的分发版.一个典型的分发版,是由Linux内核, ...

  8. 如何在 CentOS 7 中安装或升级最新的内核

    转 原创 2017-03-19 译者:geekpi Linux中国 随着新的设备和技术定期出来,如果我们想充分利用它们,保持最新的内核就很重要.此外,更新内核将帮助我们利用新的内核函数,并保护自己免受 ...

  9. 升级SUSE Linux内核的完整步骤!

    http://blog.sina.com.cn/s/blog_491529d60100061h.html 安装完SLED 10后发现仍然有"热启动网络不通"的问题,原因是内核版本较 ...

最新文章

  1. fanuc机器人与plc的通讯_S7-1200PLC与FANUC机器人Profinet通讯方法
  2. 最简单人工智能python_Python人工智能之路 - 第四篇 : jieba gensim 最好别分家之最简单的相似度实现...
  3. leetcode93. 复原 IP 地址
  4. sign check fail: check Sign and Data Fail!-错误处理
  5. Gtk-WARNING : cannot open display----这个问题在NVIDIA TX2上碰到过就是DISPLAY=“:0“
  6. (软件工程复习核心重点)第二章可行性研究-第一节:可行性研究基本介绍
  7. 使用消息中间件时,如何保证消息不丢失且仅仅被消费一次
  8. let的解构赋值_解构赋值还有这么多玩法?
  9. java jsfl是什么_java基础之IO2
  10. android surface windows,Android易混概念辨析之Surface,Window,View,SurfaceView,Bitmap
  11. C#学习笔记第一篇——类进阶
  12. GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
  13. docker相关实验
  14. 论文毕业设计--基于javaweb框架的个人博客系统项目毕业设计论文.doc
  15. haosou属于搜索引擎的_中国的搜索引擎有哪些?
  16. Office2007 sp补丁包安装失败解决办法
  17. 读书有益——》《断舍离·舍·做减法的勇气》
  18. resultful使用
  19. 适合新手小白,一个人一部手机如何做自媒体?看完我的你就懂了
  20. vrchat合并账号

热门文章

  1. AJAX异步请求解决跨域问题的三种方式
  2. 一文读懂图像数据的标准化与归一化
  3. Android SystemUI相关定制(一)
  4. 【机器学习】判别式模型和生成式模型
  5. win10增大任务栏图标尺寸教程
  6. html 引入gif 不会动,GIF图片在电脑上不会动的解决办法
  7. Regression 回归
  8. python type() 判断数据类型
  9. php敏感词过滤的一个方法
  10. 树莓派python蓝牙_用树莓派玩转蓝牙