最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

簡(jiǎn)單介紹QPython源碼包組成及如何修改QPython

2022-02-26 01:24 作者:乘著船  | 我要投稿

開(kāi)源軟件QPython是一款手機(jī)Python編程軟件,它突破了安卓平臺(tái)不能很好運(yùn)行Python的限制,下面介紹QPython源碼包組成及如何修改QPython。


原版QPython

開(kāi)源地址:https://github.com/qpython-android/qpython

魔改原版QPython的方法:https://www.bilibili.com/read/cv10833697


魔改版QPython(QPython 3C)

一、開(kāi)源地址:

https://www.bilibili.com/read/cv13322251

這里重點(diǎn)介紹一下QPython 3C。


二、魔改QPython 3C需要Android Studio,Android SDK (minSdk=21,targetSdk=28,compileSdk=31) + NDK 22,簽名僅V2。網(wǎng)盤(pán)里的源碼文件已經(jīng)從原版QPython那里組合好并經(jīng)過(guò)深度修改,可直接用來(lái)構(gòu)建。一開(kāi)始構(gòu)建可能會(huì)失敗幾次,主要是從我的電腦到你的電腦的路徑和環(huán)境差異,簡(jiǎn)單修改下多試幾次就可以成功編譯了。


三、QPython 3C組成分為兩部分:


(一)Java代碼部分:

各模塊含義:qbaselib(基礎(chǔ)庫(kù)),qftplib(FTP服務(wù)庫(kù)),qpypluginman(插件管理),qpysdk(開(kāi)發(fā)工具庫(kù)),qpysl4a(安卓腳本層)、qpython(中心模塊)、termemulator(終端模擬器)、termexec(終端執(zhí)行器)。


(二)腳本代碼部分

以Python為主,輔以shell、html和js等。主要文件是qpython-master\qpython\src\main\assets\resource.mp3。

?

四、首次啟動(dòng)(自釋放)過(guò)程:

1.?Android Java 檢測(cè) shared-preference,看下是否同意 QPython 3C 安全提示(security_tip),如果未同意,準(zhǔn)備解壓縮 resource.mp3

2.?Android Java 解壓縮 resource.mp3?(tar.gz) 到 /data/data/indi.czc.qpython/files/

a)?resource.mp3-中心區(qū)?包括 7z模塊(p7zip(去掉7z-shared,7z-rar,延遲到private2.7z釋放),中英文 安全提示(text/zh/security_tip和text/en/security_tip),追加libc++_shared.so,libiconv.so),一級(jí)啟動(dòng)引導(dǎo)(qpython.sh,qpython-root.sh)

b)?resource.mp3-外圍區(qū)?包括 private1.7z,private2.7zpublic.7z

3.?Android Java 根據(jù) 系統(tǒng)語(yǔ)言 讀取對(duì)應(yīng) security_tip,顯示安全提示

4.?用戶(hù)確認(rèn)安全提示:

a)?如果不同意,退出 QPython 3C

b)?如果同意,記錄 同意信息 到 shared-preference

5.?Android Java 打開(kāi) /data/data/indi.czc.qpython/files/text/ver/qpython,檢測(cè)為不存在或QPython版本號(hào)不相同,則啟動(dòng)自釋放更新過(guò)程

6.?Android Java 檢查是否已經(jīng)執(zhí)行 resource.mp3 解壓縮

a)?如果未執(zhí)行,按照步驟(2)解壓縮

b)?如果已執(zhí)行,跳過(guò)此第(6)步

7.?Android Java 寫(xiě)入 QPython當(dāng)前版本號(hào) 到 /data/data/indi.czc.qpython/files/resource.version

8.?Android Java 賦予 /data/data/indi.czc.qpython/files/bin/* 可執(zhí)行權(quán)限,運(yùn)行 一級(jí)啟動(dòng)引導(dǎo) qpython.sh?(一級(jí)啟動(dòng)引導(dǎo) qpython-root.sh 通過(guò)啟動(dòng) qpython.sh 來(lái)實(shí)現(xiàn)),一級(jí)啟動(dòng)引導(dǎo) qpython.sh 寫(xiě)入 bin/7z,賦予 bin/7z 和 lib/p7zip/7z?可執(zhí)行權(quán)限,調(diào)用 7z模塊

9.?7z模塊 解壓縮 private1.7z?到 /data/data/indi.czc.qpython/files/ 并刪除 private1.7z

??private1.7z 包括 Python內(nèi)核,IPython模塊,必要精簡(jiǎn)linux組件(不含libc++_shared.so,libiconv.so,這兩so文件已提前在7z模塊釋放)

10.?7z模塊 解壓縮 private2.7z?到 /data/data/indi.czc.qpython/files/ 并刪除 private2.7z

??private2.7z 包括 androidhelper(SL4A),QPython自定義終端(bin/colorConsole.py,bin/ipython.py,bin/SL4A_GUI_Console.py,bin/browserConsole.py,bin/shell.py),中英文 語(yǔ)言包(text/zh/和text/en/),二級(jí)啟動(dòng)引導(dǎo)(qpython.sh,qpython-root.sh,同文件名不同內(nèi)容,覆蓋一級(jí)啟動(dòng)引導(dǎo)),三級(jí)啟動(dòng)引導(dǎo)setup.py,延遲釋放的7z-shared,7z-rar,其他QPython內(nèi)部自定義模塊

11.7z模塊 解壓縮 public.7z 到 /sdcard/qpython/ 并刪除 public.7z

? public.7z 包括 QPython公開(kāi)自定義模塊(projects3,scripts3等)

12.一級(jí)啟動(dòng)引導(dǎo) qpython.sh (此時(shí)已被覆蓋) 賦予 /data/data/indi.czc.qpython/files/bin/* 可執(zhí)行權(quán)限 并運(yùn)行 二級(jí)啟動(dòng)引導(dǎo) qpython.sh

13.二級(jí)啟動(dòng)引導(dǎo) qpython.sh 啟動(dòng)python內(nèi)核,調(diào)用 三級(jí)啟動(dòng)引導(dǎo) setup.py

14.setup.py 調(diào)用 /data/data/indi.czc.qpython/files/bin/SymLinkAll.py ,鏈接部分相同文件,以減少空間占用

15.setup.py 寫(xiě)入Python版本號(hào)到/data/data/indi.czc.qpython/files/text/ver/python,調(diào)用 androidhelper,Toast解壓縮完成通知,刪除 setup.py 自身,改名 /data/data/indi.czc.qpython/files/resource.version 為 /data/data/indi.czc.qpython/files/text/ver/qpython,print解壓縮完成通知,到此解壓縮全部完成。

?

五、魔改QPython的SL4A

1.SL4A是Scripting Layer For Android,安卓腳本層的縮寫(xiě),用來(lái)在Android設(shè)備用Python執(zhí)行Android指令。原理:初始Python指令-->SL4A-Python端出口-->Socket傳輸出去-->SL4A-Java端入口-->Java執(zhí)行Android指令-->SL4A-Java端出口-->Socket傳輸回來(lái)-->SL4A-Python端入口-->繼續(xù)Python指令;

2.SL4A-Java端:qpython-master/qpysl4a;

3.SL4A-Python端:resource.mp3-->private2.7z-->lib/python3.10/site-packages/androidhelper;

4.魔改SL4A一般需要同時(shí)修改Java端和Python端。


作者:乘著船@Bilibili

更多文章+下載鏈接:https://www.bilibili.com/read/readlist/rl321663

簡(jiǎn)單介紹QPython源碼包組成及如何修改QPython的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
平阴县| 新田县| 永寿县| 泰宁县| 信宜市| 杭州市| 扎兰屯市| 赤城县| 巨鹿县| 邯郸市| 昭苏县| 古交市| 西城区| 子长县| 乌兰察布市| 邵阳县| 双峰县| 汝南县| 裕民县| 襄城县| 卫辉市| 普格县| 新干县| 崇礼县| 白玉县| 临安市| 朝阳区| 廊坊市| 栖霞市| 鸡西市| 文水县| 清镇市| 万源市| 西乡县| 礼泉县| 江川县| 内黄县| 江孜县| 新兴县| 阳曲县| 婺源县|