不管你是待業(yè)還是失業(yè),在這個(gè)被互聯(lián)網(wǎng)圍繞的時(shí)代里,選擇python安卓開發(fā),就多了一項(xiàng)技能,還怕找不到工作?,還怕不好找工作?小編就來告訴你這個(gè)專業(yè)的優(yōu)勢到底體現(xiàn)在哪里:史上最全的用Python操控手機(jī)APP攻略!建議收藏!,手機(jī)隨時(shí)隨地寫Python,還可以開發(fā)安卓APP,太厲害了!,用Python開發(fā)Android App之Kivy初體驗(yàn)??。
1.史上最全的用Python操控手機(jī)APP攻略!建議收藏!
最近經(jīng)常看到用Python操作手機(jī)APP的項(xiàng)目,例如抖音、閑魚之類的,看完后發(fā)現(xiàn)這些項(xiàng)目無一例外需要部署ADB環(huán)境。至于什么是ADB,很多大神都講過,只是寫得比較專業(yè),我等菜鳥看完還是云里霧里。為了使沒有安卓開發(fā)經(jīng)驗(yàn)的人也能快速學(xué)會用Python操作手機(jī)APP,我從Android SDK部署、ADB基礎(chǔ)應(yīng)用、Python操作手機(jī)等方面入手寫了這篇文章,目的是使大家對ADB的使用有一個(gè)直觀的認(rèn)識,這樣在玩上面提到的這些項(xiàng)目時(shí)會更輕松一些。事先聲明:本文涉及的各類操作可能有多種實(shí)現(xiàn)方法,我只會提及其中一種,而且我采取的方法很有可能不是*的方法。1Android SDK下載和部署說起Android SDK工具,那還真是不少,有SDK Tools、SDK、Platform-tools等等,這里我推薦SDK Tools,進(jìn)入 Manager.exe文件,進(jìn)入Packages安裝管理界面,對于新手朋友們我建議直接使用默認(rèn)選項(xiàng),然后點(diǎn)擊右下角的 Install XX packages 按鈕,整個(gè)下載安裝過程大概需要幾十分鐘,具體時(shí)間跟個(gè)人網(wǎng)速有關(guān)。接著就是配置環(huán)境變量了,把a(bǔ)ndroid-sdk目錄下的platform-tools和tools文件夾添加到系統(tǒng)變量中,這一步屬于常規(guī)操作,我就不再演示了。執(zhí)行完以上步驟,ADB環(huán)境就算配置完畢了,之后要做的就是開啟手機(jī)的開發(fā)者選項(xiàng)、開啟USB調(diào)試、用usb線將手機(jī)跟電腦鏈接。下面進(jìn)入關(guān)鍵的一步——通過ADB測試手機(jī)是否連接成功。進(jìn)入系統(tǒng)終端,輸入adb devices指令,如果出現(xiàn)下圖中的結(jié)果,就說明剛才的環(huán)境部署成功了,其中device前面的是連接的設(shè)備號。如果連接測試不成功,例如找不到設(shè)備或者設(shè)備連接不上,可以依次嘗試關(guān)閉并再次開始調(diào)試、重啟手機(jī)、重啟電腦、插拔USB線等操作,通常都可以解決。2ADB的一些基本操作雖說是基本操作,但ADB的命令也還是挺多的,說多了大家一時(shí)也難以消化。所以我這里只列舉幾個(gè)操作手機(jī)APP常用的指令,都是一些基本的操作。1).顯示所有包名adb shell pm list packages這個(gè)指令會羅列出手機(jī)已經(jīng)安裝的所有應(yīng)用包的名稱,如果后綴加上參數(shù)-s,則會列出所有的系統(tǒng)應(yīng)用的名稱(下圖),而加上后綴參數(shù)-3則會列出所有第三方應(yīng)用名稱。2).顯示活動程序adb shell dumpsys activity 這個(gè)指令能夠獲取到當(dāng)前手機(jī)系統(tǒng)中正在運(yùn)行的程序包的名稱,例如當(dāng)我在手機(jī)中啟動小米手機(jī)的“游戲中心”,運(yùn)行上述指令就會獲取到下圖中的信息:圖中后面的參數(shù)就是當(dāng)前正在運(yùn)行的Activity名稱,稍微留意一下就會發(fā)現(xiàn),這個(gè)名稱相比上面的包名稱要更加詳細(xì)一些,至于這個(gè)名稱有什么用,我們馬上就會提到。3).啟動應(yīng)用程序adb shell am start -n 要啟動的應(yīng)用Activity名稱這里所使用的Activity名稱就是剛才獲取到的后面的參數(shù),使用這個(gè)指令時(shí)要注意,啟動APP一定要使用上一條命令獲取到的Activity名稱,不能使用adb shell pm list packages命令獲取到的包名稱。例如,我們?nèi)绻獑有∶椎挠螒蛑行?,可以使用命令:adb shell am start -n com.xiaomi./.ui.而如果使用了下面這條命令是無法順利啟動應(yīng)用的:adb shell am start -n com.xiaomi.).停止應(yīng)用程序adb shell am force-stop 要停止的應(yīng)用名稱這條指令會強(qiáng)制停止指定的應(yīng)用程序,跟程序的啟動略有差別,在停止應(yīng)用時(shí),使用adb shell pm list packages命令獲取到的包名稱就可以了。還是以小米的游戲中心為例,停止應(yīng)用使用以下指令:adb shell am force-stop com.xiaomi.).點(diǎn)擊指定位置adb shell input tap x y這條指令就很好理解了,模擬點(diǎn)擊手機(jī)屏幕中的某個(gè)位置,(x,y)是對應(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ī)允許通過USB調(diào)試修改權(quán)限或點(diǎn)擊模擬,下文中的滑動手機(jī)屏幕、輸入文字信息等功能也需要進(jìn)行同樣設(shè)置。6).滑動手機(jī)屏幕adb shell input swipe x_start y_start x_end y_end這條指令的本質(zhì)是使得坐標(biāo)為(x_start, y_start)的點(diǎn)移動到(x_end, y_end)的坐標(biāo)位置,以此來實(shí)現(xiàn)屏幕滑動的效果。7).輸入文字信息adb shell input text 需要輸入的字符這條指令沒什么好說明的,選定對應(yīng)位置,然后輸入對應(yīng)的字符即可。8).模擬手機(jī)按鍵adb shell input keyevent X現(xiàn)在的大部分手機(jī)除了常規(guī)鍵盤字符以外還有一些特殊按鍵,例如HOME鍵、音量+/-,以及軟鍵盤中有時(shí)會出現(xiàn)的確認(rèn)鍵等等,這些按鍵的模擬就可以通過上面這條指令來實(shí)現(xiàn)。其中X對應(yīng)的是特殊鍵的編號,下面舉幾個(gè)常用的例子(其他的特殊鍵還有很多):3對應(yīng)的是HOME鍵24對應(yīng)的是音量+25對應(yīng)的是音量-66對應(yīng)的是確認(rèn)鍵9).獲取元素位置細(xì)心的朋友現(xiàn)在可能會發(fā)現(xiàn),上面提到的一些關(guān)于模擬點(diǎn)擊、模擬輸入的命令,都涉及到手機(jī)元素定位的問題,那么我們在實(shí)踐中如何確定具體的坐標(biāo)位置和元素信息呢?這里我提議使用.bat這個(gè)工具,它會隨著SDK Tools一起安裝,就在tools目錄下。來看下面這幅圖,手機(jī)連接成功后,點(diǎn)擊左上角的綠色圖標(biāo)就會獲取到手機(jī)的當(dāng)前頁面信息,然后在屏幕左側(cè)可以點(diǎn)選任意位置或者元素,相關(guān)信息會在右側(cè)屏幕中顯示。是不是感覺跟用chrome分析網(wǎng)頁非常類似,有了這些信息,再使用上面提到的幾款指令操作手機(jī)就不是問題了。3Python操控手機(jī)App1).命令行操控前面講了ADB操控手機(jī)的一些基本操作,只有理論未免太枯燥,現(xiàn)在我們做個(gè)小試驗(yàn)來看看效果。我們還是以小米的游戲中心為例,使用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)入王者榮耀游戲頁面,指令:adb shell input tap 600 500為了錄制方便,我把手機(jī)屏幕同步到電腦中,來看看試驗(yàn)效果:(手機(jī)同步電腦-視頻)2).Python腳本操控從上面的演示視頻看,使用ADB操作手機(jī)APP還算比較成功,但是如果像剛才那樣逐條輸入指令,可能還不如直接操作手機(jī)來的方便,那么我們就需要借助Python腳本使其批量化、自動化運(yùn)行。Python執(zhí)行終端指令可以借助os.system()函數(shù),我們來看下面這段代碼:上面代碼所實(shí)現(xiàn)的功能跟我們之前演示的基本一樣,主要增加了一個(gè)打開游戲中心的操作、簡化了一些中間步驟,再來看這次的操作過程(下面的視頻),是不是比剛才流暢的多了?(Python演示操作-視頻)小結(jié):今天的文章講到的都是ADB的入門級操作,不懂ADB很多跟安卓APP有關(guān)的實(shí)踐都沒辦法實(shí)現(xiàn),但是僅僅學(xué)會這些還不足以實(shí)現(xiàn)一個(gè)像樣的控制腳本,想要學(xué)習(xí)更牛逼的操作,可以去參考我在文章開頭提到的一些項(xiàng)目。
2.手機(jī)隨時(shí)隨地寫Python,還可以開發(fā)安卓APP,太厲害了!
python, 近五年最為火爆的編程語言,語法優(yōu)雅,類庫豐富,一行代碼即可完成 Java 十行代碼量。 本次,舞劍來推薦一款手機(jī)端使用 Python 的APP。是安卓上的Python引擎,它包含一些有趣的特性,比如Python解釋器,運(yùn)行歡迎,編輯器和QPYPI。它讓你更容易地在安卓上使用Python。并且它完全免費(fèi)。QPython在全球范圍內(nèi)已經(jīng)有了數(shù)百萬的用戶,它也是一個(gè)開源項(xiàng)目。對于不同的使用場景,QPython有兩個(gè)分支,QPython Ox和3x。QPython 3x,主要是給有經(jīng)驗(yàn)的Python用戶準(zhǔn)備,它能提供一些高級特性。QPython OL ,主要定位于編程學(xué)習(xí)者,它為初學(xué)者提供了較友好的特性。通俗的說,新手入門用Qpython OL,入門后可以用QPython 3X。QPython特性離線的Python 3, Python 2解釋器:完全不需要聯(lián)網(wǎng)運(yùn)行Python程序它支持運(yùn)行多種類型的項(xiàng)目,包括:控制臺程序,SL4A程序,WebApp項(xiàng)目等等非常方便的QR碼閱讀器,能幫助你方便地將代碼傳到手機(jī)上QPYPI和一個(gè)自定義的倉庫放了一些預(yù)編譯的包,主要是加強(qiáng)科學(xué)計(jì)算庫,比如numpy, scipy, , scikit-learn, keras等等,方便你學(xué)習(xí)科學(xué)計(jì)算方便使用的編輯器內(nèi)嵌, 和junpyter notebook完全兼容特別注意:整合和拓展了安卓庫的腳本層(SL4A):它能讓你用Python驅(qū)動安卓工作良好的文檔和客戶支持下面詳細(xì)說一下它的特性。支持Python2和3||1大家都知道,Python2 已經(jīng)退出歷史舞臺了,處于無人維護(hù)的狀態(tài)。不過,有許多資料和源碼還是低版本的,如果用在 Python3 上,根本性運(yùn)行不了。 這時(shí)候就可以將 QPython 一鍵切換到 2.x 上,非常方便。課程教學(xué)||2前面也說了,QPython OL定位新手,很貼心的加入了 Python課程,包括了 QPython新手入門、開發(fā)Web App、開發(fā)圖形界面、開發(fā)安卓APP等教程。自帶終端,支持Python3.6||3QPython不止是一個(gè)代碼編輯器,它還集成了終端模塊,它*支持了 Python3.6.6版本,對于大部分 Python 代碼來說,夠用了。QPython擁有QPYPI客戶端||4既然使用 Python,就逃不開類庫的使用。類庫可以說是 Python 賴以為生的法寶,沒有類庫,Python 寸步難行。類庫的安裝,都是使用 pip。QPython不但可以 pip 安裝第三方庫,而且還集成了 QPYPI客戶端,自帶了 Scipy、Numpy等模塊,可以很方便的安裝。開發(fā) Android 應(yīng)用||5QPython 集成了 SL4A 模塊,可以用 SL4A 開發(fā)安卓應(yīng)用。 它包含了很多 Android 接口,調(diào)用起來非常方便,對 Python 用戶很友好。
3.用Python開發(fā)Android App之Kivy初體驗(yàn)
Kivy簡介:Kivy是Python的跨平臺GUI庫,不僅支持windows,macOS ,linux,還支持android和iOS。憑這一點(diǎn)就非常吸引我,在了解Kivy之前我也了解了一下PyQt,相對來說,感覺PyQt打包apk還是略顯復(fù)雜,所以選擇了解進(jìn)一步Kivy。Kivy的核心思想是界面邏輯分離,kivy的kv文件控制界面顯示部分,python控制邏輯部分。kivy現(xiàn)在在github上有9000+ star,并且還在繼續(xù)更新維護(hù),所以值得學(xué)習(xí)和了解一下。Kivy安裝:安裝這么復(fù)雜的庫(處理各種依賴關(guān)系),我一般會直接使用anaconda,只需一個(gè)命令conda install kivy -c conda-forge.即可完成kivy安裝,全程自動基本無需任何干預(yù)。當(dāng)然如果你很嫌棄用anaconda 那么你就需要安裝一系列工具包了,請?jiān)诠倬W(wǎng)查閱相關(guān)命令,并做好心理準(zhǔn)備處理各種依賴關(guān)系。Kivy最簡單的代碼: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)教程,或是參考一些這方面的書籍。Kivy打包Apk:最簡單的方式就是下載非官方但是持續(xù)更新的VM,里面包括了所有打包相關(guān)的工具。只需調(diào)用一行命令就可以開始自動打包了。Zen-CODE/kivybits上述vm 是的虛擬文件,要使用這么vm,你首先需要下載。至于每一步的操作方式。我分享一篇英文文檔給大家。這篇文檔來自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ù)說話,優(yōu)勢一目了然,從事IT行業(yè),打開IT行業(yè)的新大門,找到適合自己的培訓(xùn)機(jī)構(gòu),進(jìn)行專業(yè)和系統(tǒng)的學(xué)習(xí)。