不管你是待業(yè)還是失業(yè),在這個(gè)被互聯(lián)網(wǎng)圍繞的時(shí)代里,選擇python安卓開(kāi)發(fā),就多了一項(xiàng)技能,還怕找不到工作?,還怕不好找工作?小編就來(lái)告訴你這個(gè)專(zhuān)業(yè)的優(yōu)勢(shì)到底體現(xiàn)在哪里:史上最全的用Python操控手機(jī)APP攻略!建議收藏!,手機(jī)隨時(shí)隨地寫(xiě)Python,還可以開(kāi)發(fā)安卓APP,太厲害了!,用Python開(kāi)發(fā)Android App之Kivy初體驗(yàn)??。
1.史上最全的用Python操控手機(jī)APP攻略!建議收藏!
最近經(jīng)??吹接肞ython操作手機(jī)APP的項(xiàng)目,例如抖音、閑魚(yú)之類(lèi)的,看完后發(fā)現(xiàn)這些項(xiàng)目無(wú)一例外需要部署ADB環(huán)境。至于什么是ADB,很多大神都講過(guò),只是寫(xiě)得比較專(zhuān)業(yè),我等菜鳥(niǎo)看完還是云里霧里。為了使沒(méi)有安卓開(kāi)發(fā)經(jīng)驗(yàn)的人也能快速學(xué)會(huì)用Python操作手機(jī)APP,我從Android SDK部署、ADB基礎(chǔ)應(yīng)用、Python操作手機(jī)等方面入手寫(xiě)了這篇文章,目的是使大家對(duì)ADB的使用有一個(gè)直觀的認(rèn)識(shí),這樣在玩上面提到的這些項(xiàng)目時(shí)會(huì)更輕松一些。事先聲明:本文涉及的各類(lèi)操作可能有多種實(shí)現(xiàn)方法,我只會(huì)提及其中一種,而且我采取的方法很有可能不是*的方法。1Android SDK下載和部署說(shuō)起Android SDK工具,那還真是不少,有SDK Tools、SDK、Platform-tools等等,這里我推薦SDK Tools,進(jìn)入 Manager.exe文件,進(jìn)入Packages安裝管理界面,對(duì)于新手朋友們我建議直接使用默認(rèn)選項(xiàng),然后點(diǎn)擊右下角的 Install XX packages 按鈕,整個(gè)下載安裝過(guò)程大概需要幾十分鐘,具體時(shí)間跟個(gè)人網(wǎng)速有關(guān)。接著就是配置環(huán)境變量了,把a(bǔ)ndroid-sdk目錄下的platform-tools和tools文件夾添加到系統(tǒng)變量中,這一步屬于常規(guī)操作,我就不再演示了。執(zhí)行完以上步驟,ADB環(huán)境就算配置完畢了,之后要做的就是開(kāi)啟手機(jī)的開(kāi)發(fā)者選項(xiàng)、開(kāi)啟USB調(diào)試、用usb線(xiàn)將手機(jī)跟電腦鏈接。下面進(jìn)入關(guān)鍵的一步——通過(guò)ADB測(cè)試手機(jī)是否連接成功。進(jìn)入系統(tǒng)終端,輸入adb devices指令,如果出現(xiàn)下圖中的結(jié)果,就說(shuō)明剛才的環(huán)境部署成功了,其中device前面的是連接的設(shè)備號(hào)。如果連接測(cè)試不成功,例如找不到設(shè)備或者設(shè)備連接不上,可以依次嘗試關(guān)閉并再次開(kāi)始調(diào)試、重啟手機(jī)、重啟電腦、插拔USB線(xiàn)等操作,通常都可以解決。2ADB的一些基本操作雖說(shuō)是基本操作,但ADB的命令也還是挺多的,說(shuō)多了大家一時(shí)也難以消化。所以我這里只列舉幾個(gè)操作手機(jī)APP常用的指令,都是一些基本的操作。1).顯示所有包名adb shell pm list packages這個(gè)指令會(huì)羅列出手機(jī)已經(jīng)安裝的所有應(yīng)用包的名稱(chēng),如果后綴加上參數(shù)-s,則會(huì)列出所有的系統(tǒng)應(yīng)用的名稱(chēng)(下圖),而加上后綴參數(shù)-3則會(huì)列出所有第三方應(yīng)用名稱(chēng)。2).顯示活動(dòng)程序adb shell dumpsys activity 這個(gè)指令能夠獲取到當(dāng)前手機(jī)系統(tǒng)中正在運(yùn)行的程序包的名稱(chēng),例如當(dāng)我在手機(jī)中啟動(dòng)小米手機(jī)的“游戲中心”,運(yùn)行上述指令就會(huì)獲取到下圖中的信息:圖中后面的參數(shù)就是當(dāng)前正在運(yùn)行的Activity名稱(chēng),稍微留意一下就會(huì)發(fā)現(xiàn),這個(gè)名稱(chēng)相比上面的包名稱(chēng)要更加詳細(xì)一些,至于這個(gè)名稱(chēng)有什么用,我們馬上就會(huì)提到。3).啟動(dòng)應(yīng)用程序adb shell am start -n 要啟動(dòng)的應(yīng)用Activity名稱(chēng)這里所使用的Activity名稱(chēng)就是剛才獲取到的后面的參數(shù),使用這個(gè)指令時(shí)要注意,啟動(dòng)APP一定要使用上一條命令獲取到的Activity名稱(chēng),不能使用adb shell pm list packages命令獲取到的包名稱(chēng)。例如,我們?nèi)绻獑?dòng)小米的游戲中心,可以使用命令:adb shell am start -n com.xiaomi./.ui.而如果使用了下面這條命令是無(wú)法順利啟動(dòng)應(yīng)用的:adb shell am start -n com.xiaomi.).停止應(yīng)用程序adb shell am force-stop 要停止的應(yīng)用名稱(chēng)這條指令會(huì)強(qiáng)制停止指定的應(yīng)用程序,跟程序的啟動(dòng)略有差別,在停止應(yīng)用時(shí),使用adb shell pm list packages命令獲取到的包名稱(chēng)就可以了。還是以小米的游戲中心為例,停止應(yīng)用使用以下指令:adb shell am force-stop com.xiaomi.).點(diǎn)擊指定位置adb shell input tap x y這條指令就很好理解了,模擬點(diǎn)擊手機(jī)屏幕中的某個(gè)位置,(x,y)是對(duì)應(yīng)的位置坐標(biāo)。在ADB中默認(rèn)手機(jī)屏幕的左上角坐標(biāo)是(0,0),右下角坐標(biāo)是(xmax,ymax)。這里強(qiáng)調(diào)一點(diǎn):使用模擬點(diǎn)擊功能必須設(shè)置手機(jī)允許通過(guò)USB調(diào)試修改權(quán)限或點(diǎn)擊模擬,下文中的滑動(dòng)手機(jī)屏幕、輸入文字信息等功能也需要進(jìn)行同樣設(shè)置。6).滑動(dòng)手機(jī)屏幕adb shell input swipe x_start y_start x_end y_end這條指令的本質(zhì)是使得坐標(biāo)為(x_start, y_start)的點(diǎn)移動(dòng)到(x_end, y_end)的坐標(biāo)位置,以此來(lái)實(shí)現(xiàn)屏幕滑動(dòng)的效果。7).輸入文字信息adb shell input text 需要輸入的字符這條指令沒(méi)什么好說(shuō)明的,選定對(duì)應(yīng)位置,然后輸入對(duì)應(yīng)的字符即可。8).模擬手機(jī)按鍵adb shell input keyevent X現(xiàn)在的大部分手機(jī)除了常規(guī)鍵盤(pán)字符以外還有一些特殊按鍵,例如HOME鍵、音量+/-,以及軟鍵盤(pán)中有時(shí)會(huì)出現(xiàn)的確認(rèn)鍵等等,這些按鍵的模擬就可以通過(guò)上面這條指令來(lái)實(shí)現(xiàn)。其中X對(duì)應(yīng)的是特殊鍵的編號(hào),下面舉幾個(gè)常用的例子(其他的特殊鍵還有很多):3對(duì)應(yīng)的是HOME鍵24對(duì)應(yīng)的是音量+25對(duì)應(yīng)的是音量-66對(duì)應(yīng)的是確認(rèn)鍵9).獲取元素位置細(xì)心的朋友現(xiàn)在可能會(huì)發(fā)現(xiàn),上面提到的一些關(guān)于模擬點(diǎn)擊、模擬輸入的命令,都涉及到手機(jī)元素定位的問(wèn)題,那么我們?cè)趯?shí)踐中如何確定具體的坐標(biāo)位置和元素信息呢?這里我提議使用.bat這個(gè)工具,它會(huì)隨著SDK Tools一起安裝,就在tools目錄下。來(lái)看下面這幅圖,手機(jī)連接成功后,點(diǎn)擊左上角的綠色圖標(biāo)就會(huì)獲取到手機(jī)的當(dāng)前頁(yè)面信息,然后在屏幕左側(cè)可以點(diǎn)選任意位置或者元素,相關(guān)信息會(huì)在右側(cè)屏幕中顯示。是不是感覺(jué)跟用chrome分析網(wǎng)頁(yè)非常類(lèi)似,有了這些信息,再使用上面提到的幾款指令操作手機(jī)就不是問(wèn)題了。3Python操控手機(jī)App1).命令行操控前面講了ADB操控手機(jī)的一些基本操作,只有理論未免太枯燥,現(xiàn)在我們做個(gè)小試驗(yàn)來(lái)看看效果。我們還是以小米的游戲中心為例,使用ADB依次完成以下任務(wù):切換到“網(wǎng)游”選項(xiàng)卡,指令:adb shell input tap 400 263選中搜索欄,指令:adb shell input tap 776 139輸入“”,指令:adb shell input text 點(diǎn)擊確認(rèn)鍵,指令:adb shell input keyevent 66進(jìn)入王者榮耀游戲頁(yè)面,指令:adb shell input tap 600 500為了錄制方便,我把手機(jī)屏幕同步到電腦中,來(lái)看看試驗(yàn)效果:(手機(jī)同步電腦-視頻)2).Python腳本操控從上面的演示視頻看,使用ADB操作手機(jī)APP還算比較成功,但是如果像剛才那樣逐條輸入指令,可能還不如直接操作手機(jī)來(lái)的方便,那么我們就需要借助Python腳本使其批量化、自動(dòng)化運(yùn)行。Python執(zhí)行終端指令可以借助os.system()函數(shù),我們來(lái)看下面這段代碼:上面代碼所實(shí)現(xiàn)的功能跟我們之前演示的基本一樣,主要增加了一個(gè)打開(kāi)游戲中心的操作、簡(jiǎn)化了一些中間步驟,再來(lái)看這次的操作過(guò)程(下面的視頻),是不是比剛才流暢的多了?(Python演示操作-視頻)小結(jié):今天的文章講到的都是ADB的入門(mén)級(jí)操作,不懂ADB很多跟安卓APP有關(guān)的實(shí)踐都沒(méi)辦法實(shí)現(xiàn),但是僅僅學(xué)會(huì)這些還不足以實(shí)現(xiàn)一個(gè)像樣的控制腳本,想要學(xué)習(xí)更牛逼的操作,可以去參考我在文章開(kāi)頭提到的一些項(xiàng)目。
2.手機(jī)隨時(shí)隨地寫(xiě)Python,還可以開(kāi)發(fā)安卓APP,太厲害了!
python, 近五年最為火爆的編程語(yǔ)言,語(yǔ)法優(yōu)雅,類(lèi)庫(kù)豐富,一行代碼即可完成 Java 十行代碼量。 本次,舞劍來(lái)推薦一款手機(jī)端使用 Python 的APP。是安卓上的Python引擎,它包含一些有趣的特性,比如Python解釋器,運(yùn)行歡迎,編輯器和QPYPI。它讓你更容易地在安卓上使用Python。并且它完全免費(fèi)。QPython在全球范圍內(nèi)已經(jīng)有了數(shù)百萬(wàn)的用戶(hù),它也是一個(gè)開(kāi)源項(xiàng)目。對(duì)于不同的使用場(chǎng)景,QPython有兩個(gè)分支,QPython Ox和3x。QPython 3x,主要是給有經(jīng)驗(yàn)的Python用戶(hù)準(zhǔn)備,它能提供一些高級(jí)特性。QPython OL ,主要定位于編程學(xué)習(xí)者,它為初學(xué)者提供了較友好的特性。通俗的說(shuō),新手入門(mén)用Qpython OL,入門(mén)后可以用QPython 3X。QPython特性離線(xiàn)的Python 3, Python 2解釋器:完全不需要聯(lián)網(wǎng)運(yùn)行Python程序它支持運(yùn)行多種類(lèi)型的項(xiàng)目,包括:控制臺(tái)程序,SL4A程序,WebApp項(xiàng)目等等非常方便的QR碼閱讀器,能幫助你方便地將代碼傳到手機(jī)上QPYPI和一個(gè)自定義的倉(cāng)庫(kù)放了一些預(yù)編譯的包,主要是加強(qiáng)科學(xué)計(jì)算庫(kù),比如numpy, scipy, , scikit-learn, keras等等,方便你學(xué)習(xí)科學(xué)計(jì)算方便使用的編輯器內(nèi)嵌, 和junpyter notebook完全兼容特別注意:整合和拓展了安卓庫(kù)的腳本層(SL4A):它能讓你用Python驅(qū)動(dòng)安卓工作良好的文檔和客戶(hù)支持下面詳細(xì)說(shuō)一下它的特性。支持Python2和3||1大家都知道,Python2 已經(jīng)退出歷史舞臺(tái)了,處于無(wú)人維護(hù)的狀態(tài)。不過(guò),有許多資料和源碼還是低版本的,如果用在 Python3 上,根本性運(yùn)行不了。 這時(shí)候就可以將 QPython 一鍵切換到 2.x 上,非常方便。課程教學(xué)||2前面也說(shuō)了,QPython OL定位新手,很貼心的加入了 Python課程,包括了 QPython新手入門(mén)、開(kāi)發(fā)Web App、開(kāi)發(fā)圖形界面、開(kāi)發(fā)安卓APP等教程。自帶終端,支持Python3.6||3QPython不止是一個(gè)代碼編輯器,它還集成了終端模塊,它*支持了 Python3.6.6版本,對(duì)于大部分 Python 代碼來(lái)說(shuō),夠用了。QPython擁有QPYPI客戶(hù)端||4既然使用 Python,就逃不開(kāi)類(lèi)庫(kù)的使用。類(lèi)庫(kù)可以說(shuō)是 Python 賴(lài)以為生的法寶,沒(méi)有類(lèi)庫(kù),Python 寸步難行。類(lèi)庫(kù)的安裝,都是使用 pip。QPython不但可以 pip 安裝第三方庫(kù),而且還集成了 QPYPI客戶(hù)端,自帶了 Scipy、Numpy等模塊,可以很方便的安裝。開(kāi)發(fā) Android 應(yīng)用||5QPython 集成了 SL4A 模塊,可以用 SL4A 開(kāi)發(fā)安卓應(yīng)用。 它包含了很多 Android 接口,調(diào)用起來(lái)非常方便,對(duì) Python 用戶(hù)很友好。
3.用Python開(kāi)發(fā)Android App之Kivy初體驗(yàn)
Kivy簡(jiǎn)介:Kivy是Python的跨平臺(tái)GUI庫(kù),不僅支持windows,macOS ,linux,還支持android和iOS。憑這一點(diǎn)就非常吸引我,在了解Kivy之前我也了解了一下PyQt,相對(duì)來(lái)說(shuō),感覺(jué)PyQt打包apk還是略顯復(fù)雜,所以選擇了解進(jìn)一步Kivy。Kivy的核心思想是界面邏輯分離,kivy的kv文件控制界面顯示部分,python控制邏輯部分。kivy現(xiàn)在在github上有9000+ star,并且還在繼續(xù)更新維護(hù),所以值得學(xué)習(xí)和了解一下。Kivy安裝:安裝這么復(fù)雜的庫(kù)(處理各種依賴(lài)關(guān)系),我一般會(huì)直接使用anaconda,只需一個(gè)命令conda install kivy -c conda-forge.即可完成kivy安裝,全程自動(dòng)基本無(wú)需任何干預(yù)。當(dāng)然如果你很嫌棄用anaconda 那么你就需要安裝一系列工具包了,請(qǐng)?jiān)诠倬W(wǎng)查閱相關(guān)命令,并做好心理準(zhǔn)備處理各種依賴(lài)關(guān)系。Kivy最簡(jiǎn)單的代碼:from kivy.app import App from kivy.uix.button import Button class TestApp(App): def build(self): return Button(text='Hello World') TestApp().run() 代碼這里不進(jìn)行解釋了,如果您感興趣去,建議閱讀官網(wǎng)教程,或是參考一些這方面的書(shū)籍。Kivy打包Apk:最簡(jiǎn)單的方式就是下載非官方但是持續(xù)更新的VM,里面包括了所有打包相關(guān)的工具。只需調(diào)用一行命令就可以開(kāi)始自動(dòng)打包了。Zen-CODE/kivybits上述vm 是的虛擬文件,要使用這么vm,你首先需要下載。至于每一步的操作方式。我分享一篇英文文檔給大家。這篇文檔來(lái)自kivy官方社區(qū)。How to package Kivy Apps for Android with Python 3.x in Windows 10? Quick answer: you have to use an app called Buildozer running in Linux within a Virtual Machine installed in your Windows 10 computer. If this sounds a bit , be glad that there are already a couple of Virtual Machines with all you need in them and even more such as several examples. Below you have step-by-step to go through this process and have your APK running in your Android device: Set up the Kivy Buildozer Virtual Machine 1. Download and install the version of for your machine (for example Windows host for Windows 10) from: 2. Download and install the extension pack from (probably there are newer version, in such case update to the latest version): 3. Download Kivy Buildozer VM from: 4. Start the , click on File? Import Appliance...Select the file Kivy_Complete_VM_0.5.ova 5. Click on Settings? General? Advanced and select in the drop-down list for Shared Clipboard 6. Click on Settings? Shared Folders and click Adds new shared folder in a your Windows : for example C:\MyVirtual_Box (if you don’t have a folder for this, just create one in Windows) Click on Automount. You will use this folder to transfer your python/kivy project into the Virtual Machine and also to return the APK from the Virtual Machine to Windows. 7. Restart the Virtual Machine so the shared folder is mounted. 8. Done! You have your Virtual Machine ready to build your Android app. Creating the APK for Android 1. Start your Virtual Box in Windows and start the you imported (called Kivy Complete VM) selecting it and clicking on the green arrow. 2. In Windows copy your folder with your project (for example: C:\\) into the Virtual Box. Important: your python file must be called main.py 3. In your Virtual Box double click File System icon (top left) 4. Click on sf_virtual_box, right click on your kivy Project (for example / as mentioned ), the choose Copy 5. Click on Kivy (with the home icon) and then on >> Repos>>Python3>>kivy>>examples. 6. Right click and the folder and paste the folder with your project there. 7. Now go to >>home>>kivy>>Repos>>Python3>>kivy>>examples>>demo>> and right click and copy the file called buildozer.spec 8. Go to your project folder copied earlier in >> Repos>>Python3>>kivy>>examples and paste the file copied in the previous step 9. Double click to edit the buildozer.spec file, and change app name, icon file and other you consider. Save it on exit. 10. Right mouse click and select Open Terminal Here 11. At Terminal command prompt, type buildozer android debug 12. You have your APK in the Bin folder found in your current folder. Go there, right click on the APK and copy it into the share folder which is from Windows (mentioned early as sf_virtual_box) 13. Close the Virtual Machine (as it may interfere in your USB to your Android device). 14. In Windows, and with your Android device plugged through USB, copy the APK from your shared folder in Windows (for example C:\MyVirtual_Box) to your device. 15. Now in your Android device, find and click, or touch, the APK and install it. You may found some warnings and confirm you trust in the developer :-) 16. The End! You should have your App installed in your Android device. Notes:There several steps that can be optimized and better , but if you are new to kivy/APK, this procedure is simple and practical. To honor the geniuses behind all this magic, I’ve obtained most of the from: Document by Maxi Ichazo / version: 2021-04-16Kivy打包成功:
就拿大數(shù)據(jù)說(shuō)話(huà),優(yōu)勢(shì)一目了然,從事IT行業(yè),打開(kāi)IT行業(yè)的新大門(mén),找到適合自己的培訓(xùn)機(jī)構(gòu),進(jìn)行專(zhuān)業(yè)和系統(tǒng)的學(xué)習(xí)。