python可以開發Android應用。
Python是一種解釋型腳本語言,可以應用於以下領域:
1、Web 和 Internet開發;
2、科學計算和統計;
3、人工智慧;
4、教育;
5、桌面界面開發;
6、軟體開發;
7、後端開發。
操作系統與應用程序的溝通橋梁,應用分為兩層:函數層(Library)和虛擬機(Virtual Machine)。 Bionic是 Android 改良libc的版本。
Android 同時包含了Webkit,所謂的Webkit 就是Apple Safari 瀏覽器背後的引擎。Surface flinger 是就2D或3D的內容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自製的Bionic Libc。
Android採用OpenCORE作為基礎多媒體框架。
Open CORE可分7大塊:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用skia 為核心圖形引擎,搭配OpenGL/ES。skia與linux Cairo功能相當,但相較於Linux Cairo, skia 功能還只是雛形的。
2005年Skia公司被Google收購,2007年初,Skia GL源碼被公開,Skia 也是Google Chrome 的圖形引擎。
Android的多媒體資料庫採用SQLite資料庫系統。資料庫又分為共用資料庫及私用資料庫。用戶可通過ContentResolver類(Column)取得共用資料庫。
Android的中間層多以java 實現,並且採用特殊的Dalvik 虛擬機(Dalvik Virtual Machine)。Dalvik虛擬機是一種「暫存器型態」(Register Based)的Java虛擬機,變數皆存放於暫存器中,虛擬機的指令相對減少。
Dalvik虛擬機可以有多個實例(Instance), 每個Android應用程序都用一個自屬的Dalvik虛擬機來運行,讓系統在運行程序時可達到優化。Dalvik 虛擬機並非運行Java位元組碼(Bytecode),而是運行一種稱為.dex格式的文件。
參考資料:網路-Android
B. 如何選擇編程語言
很多語言,像C、Java、Python和JavaScript在幾十年來一直持續支配著他們的各自的領域。另一方面,也要看到近期流行的需求語言,像Swift、Google Go 和 Rust。
怎樣選擇學習哪一種編程語言,其答案取決於學習之後用它來做什麼。許多人的選擇標准僅僅是「學習一門語言最大的需求就是能找到一份高收入的工作」。但這個標准並非人人都適用,還有很多其它的方面要考慮。例如,在大學里使用Python這門語言給學生講授編程,其主要原因在於Python功能強大,學生們能夠很容易地掌握編程概念。對於初學編程的人來說,使用Python是一個不錯的選擇;對於想從事移動程序開發的人來說,學習Swift、C#、Java和JavaScript是很好的選擇;對於web開發來說,在CSS、HTML、JavaScript這樣的前端技術支持下,使用PHP、Java、Python和Ruby on Rails是第一選擇。
如果要完成像訪問關系資料庫這樣的更加具體化的任務,可以學習SQL編程語言。SQL語言並非是用來開發應用程序的,而是用來支持應用程序和資料庫之間的連接。更何況,很多數據驅動應用都在廣泛地使用SQL,如今,對SQL的需求已經超越了對許多工作表的需求。
如果你對硬體編程感興趣,想要開發嵌入式系統、操作系統、通信設備或者復雜的游戲引擎等,那麼選擇的語言依然是C/C++(主要是C)。
1.JavaScript——多用途編程語言
時至今日,對JavaScript的需求依然巨大,招聘網站上充斥著有關JavaScript及其相關技術的招聘信息。JavaScript由Brendan Eich設計,運行在Netscape瀏覽器中。那時,他或許做夢也沒有想到JavaScript會有如此超乎尋常的發展。
JavaScript是WWW的默認語言,並且幾乎每個web瀏覽器都支持JavaScript,它已經成為了web前端開發的世界標准。隨著Node.js的發展,JavaScript的應用領域又擴展到了伺服器端開發,如今和java、.Net、PHP、Ruby on Rails以及其它的伺服器端技術展開了競爭。
JavaScript除了應用於前端和伺服器端開發外,它也快速地發展成為移動應用開發的選擇。開發者可以使用許多流行的JavaScript框架來構建混合移動應用程序,比如ionic、kendo UI和Sencha touch等。
後來,隨著React native框架的興起(由Facebook提出),JavaScript又出現在了Android和iOS原生應用開發領域。
JavaScript無處不在!然而,JavaScript本身不會讓你擁有最高薪酬的開發工作,你還需要學習基於JavaScript的技術、框架和庫(比如Node.js、React、React Native、ionic、jQuery、D3.js和Kendo UI等等)。相關技術的選擇完全取決於你要從事的工作。
說到學習JavaScript,它是一種動態編程語言,並且非常容易入門。熟悉了JavaScript基礎知識之後,你就可以很容易地學習相關的技術,比如 jQuery、Node.js、Angular或React。
2.Python——最好的編程語言
Python是另一種編程語言,目前世界各地的開發者正在使用它進行快速應用程序開發。Python是一種模塊化的、易於學習的、面向對象以及注重可讀性的高級語言。
Python廣泛地應用於教育領域、web與internet開發、科學與數值計算以及大數據、機器學習演算法開發。
Python的深度和廣度使得它成為教育和研究領域的首選語言,世界各地的學生正使用Python來學習編程和構建研究項目。如今很多進行計算機編程的學生把Python作為他們學習的第一門語言。
Python已經廣泛地用於web和internet開發,並且有許多流行的框架,比如Django、Pyramid、Flask和Bottle。Django CMS和Plone是兩種廣泛使用的基於Python的內容管理系統,許多流行網站和web應用程序都在使用它們。
最近,由於對大數據分析和機器學習演算法的需求急速增長,對Python的需求也在快速增長。用Python編寫的許多開源庫能夠實現數據科學廣泛使用的一些核心的機器學習演算法。R是統計與數據科學領域廣泛使用的另一種語言,但是學習曲線比較陡峭。
庫方面,一些流行的Python庫例如用於數學、工程和科學領域的scipy、用於庫建模和數據分析領域的「pandas」,以及其它一些有用的庫,比如iPython、kivy、pyqt和pyside。
3.Java——大眾化的編程語言
Java是大眾化的編程語言,它也是一種永葆青春的語言,多年來一直是各個招聘板塊的寵兒。Java於1990年由 Sun Microsystems公司發布,後來被Oracle公司收購,Java的哲學理念是「編寫一次,到處運行」。
Java廣泛地應用於web開發、企業軟體開發和Android app開發。隨著對運行在Android平台上的移動app的需求不斷增長,對java的應用也達到一個新高度,這也是為什麼全球范圍內對java的需求依然第一的原因。
Java是高級的面向對象的編程語言,學習起來比C++更容易,但是程序的性能要比C或C++差一些。因此,一般不用java構建核心引擎、操作系統或嵌入式系統開發。
4.SQL——結構化查詢語言
SQL結構化查詢語言是一種能被資料庫理解的語言。SQL是由IBM工程師於1970年開發的,用來創建、更新和檢索「System R」這個資料庫管理系統中的數據。從那時起,SQL已經走過了很長的路,時至今日,它仍然是市場最需要的一種技能。
近年來,使用非SQL資料庫來處理大數據的這種需求給SQL蒙上了陰影,但持續的時間不會太長。不久人們就會認識到SQL提供的大數據分析方法更好,它是一種更具有擴展性、可驗證性和經得起時間檢驗的技術。
SQL語言用以輔助進行數據驅動網站、web應用程序、桌面應用程序以及移動應用程序的開發。SQL在任何應用領域都有應用。從學習的角度看,SQL比較容易掌握,並且由於有很高的市場需求,你可以僅僅通過SQL就能找到第一份工作。
然而,要找到一份高薪酬工作,還需要擁有設計、管理和維護多種資料庫,比如Oracle、MySQL、PostgreSQL、IBM DB2和Microsoft SQL Server等的經驗。
5.C#——排名第一的微軟技術
C#是最通用的語言之一,它使得編程像Java語言一樣簡單。C#是類型安全的、面向對象的編程語言,運行在.NET框架運行時環境中。C#代碼被編譯成符合CLI規范的IL語言(中間語言)。
C#語言正迅速成為構建微軟家族各種應用的首選,你可以用來構建客戶端—伺服器應用程序、資料庫應用程序、web服務、移動應用程序、游戲等等。
C#在游戲開發中也有很好的應用(高級的但並非是硬核心),頂級游戲引擎Unity 3D就把C#作為支持的語言之一,除此外只有JavaScript語言被支持。C#還是許多交叉平台應用程序構建工具(如Xamarin)所採用的編碼語言。你可以使用Xamarin產品套件構建交叉平台移動應用程序。
盡管匯編語言是首選的游戲引擎開發工具,要進行硬核心終端游戲開發,仍然可以使用C或C++,Rust語言也可以應用在該領域。
6.C/C++——古老而金貴的編程語言
有人說C++很古老,但卻一致被認為依然金貴。當涉及更注重性能的硬核心系統編程時,C/C++ 仍然是首選的編程語言。C比C++更接近硬體,並且能提供更好的性能。
許多開發者轉向Java,是因為和C++(&C)相比,使用Java更便於開發,而且在很多情況下性能可以通過對硬體部分進行更多的投資而抵消。但並非總是如此,比如對於嵌入式系統,你就只需要管理最少的硬體組件。
C和C++仍然屬於高級編程語言嗎?
C/C++擁有最好的編譯器、開發環境、庫和核心開發部件,還擁有一個在未來也不可能被替換的巨大的生態系統。現有的生態系統和高性能應用程序的需要,使得對C/C++的需求一直很高,而且C/C++開發人員的工資檔次也比較高。
7.Swift——第一個工業質量級的系統編程語言
Swift是相對較新的語言,並且正快速地流行起來。Swift是完全用於Apple的開發語言,例如iOS應用程序、OS X應用程序、watchOS應用程序和tvOS應用程序。Swift引入了C和Objective-c的優點,並且能和cocoa以及cocoa touch框架很好地協同工作。
Apple擁有自己的巨大生態系統,毫無疑問,Swift將成為在未來幾年中引領其發展的語言。如果你想進入Apple生態系統,Swift正是要學習的語言。
Swift學起來很容易,用起來很有趣,究其原因在於它引入了嚴格類型語言(如C、Java、C++)的所有特性,而使用起來和任何腳本語言(如 Ruby或Python)一樣容易和有趣。你可以通過Swift playgrounds嘗試使用Swift,並且可以馬上看到結果,無需擔憂程序的編譯和運行。
Apple聲稱Swift是第一個工業質量級的系統編程語言,它提供了類似腳本的語法,能使開發變得絕對輕松。
8.PHP——基礎的編程語言
許多人認為PHP不是程序設計的未來,但PHP巨大的生態系統使得在未來幾年裡全世界需要大量的開發人員對其提供支持。排名前三的內容管理系統——WordPress、Drupal和Joomla都是使用PHP構建的,而且迄今大概有80%的網站運行在PHP之上。所以,它是巨大的!
PHP是容易學習的語言,它可以作為你進入編程世界的入門語言。PHP屬於就業市場中炙手可熱的語言,你可以找到大量的需要PHP技能的工作機會。PHP開發者的薪資水平和Java、C++、Python或Swift開發者相比,通常偏低。
PHP生態系統包括上述頂尖的內容管理系統(如WordPress、Drupal和Joomla等 )和PHP框架(如Laravel、Symfony、Yii和FuelPHP等)。這些內容管理系統和框架能使開發者在幾天內就構建出可以投入使用的網站和web應用程序。
近年來隨著 Node.js、Django和Ruby on Rails的出現,PHP蒙上了一層陰影,但是PHP正在改進,更新的版本完全可以和新興的語言與技術展開競爭。
9.Ruby——適合學習的編程語言
Ruby是另外一種開源的、面向對象的、通用的編程語言,這是一種簡單的、有助於快速應用開發的語言。Ruby最有名的框架是Rails(Ruby on Rails),這主要被用來web開發。
它在伺服器端開發是很有用的,有很多公司都使用它,如:Bloomberg、Airbnb、Shopify、Hulu和Slideshare等等,且被用在一個或多個項目之中。
Ruby是用來學習的最好的編程語言嗎?
Ruby常常被用來與Python的可讀性進行比較,它提供類英語的語法,這讓 Ruby 成為一個完美的候選者,最適合作為第一個編程語言來學習。
10.Rust——發展迅速的新一代編程語言
Rust是後起之秀,並且承諾要成為新一代的熱門技術。它快速地成為硬核心開發人員所痴迷的技術,並且以非常快的速度發展著。Rust語言還在發展之中,還是一門新語言,因此,Rust的就業市場尚未形成,傳播的深度與廣度還不夠。
Rust語言由Mozilla公司於2010年開發,它是Graydon Hoare所負責的一個研究項目。而現在開發者社區喜愛它並負責對其維護,他們決心將Rust推向一個新的高度。
Rust是一種低級的系統編程語言,其目標是提供高性能、安全性和並發性,它是一個不錯的C/C++的替代語言。過去,C開發人員努力使用Rust編寫操作系統、資料庫、嵌入式程序、內核以及各種系統程序。
Rust是一種現代語言,它擁有高級語言的靈活性和C這樣的低級語言才有的高性能以及對硬體的可控性。
11.其他
下面是另外的一些很受歡迎的編程語言,它們和排名靠前的那些語言進行著激烈的競爭。
GO——Go是谷歌公司推出的一款相對較新的語言,對於web伺服器開發、網路開發以及命令行程序開發來說,它是又一個比較優秀的選擇。
R——當要進行數據分析和統計軟體開發時,你可以選擇R語言。隨著大數據和機器學習的興起,R得以不斷發展並和Python和Matlab展開了激烈競爭。
Perl——最古老的語言之一,但它正越來越受歡迎並顯示出偉大復甦的跡象。DevOps是新生事物, Perl正發展成為用於DevOps的深受歡迎的語言,它或許會成為像Python語言那樣的下一個重要語言。
VisualBasic .Net——微軟公司推出的一種面向對象編程語言,對於開發.Net程序以及web程序和XML web服務這樣的專業領域程序來說,這是一個很好的選擇。
Haskell——統治著函數式編程的世界。和面向對象編程相比,函數式編程具有完全不同的哲學理念。函數式編程在分布式系統開發中應用廣泛,分布式系統開發的關鍵需求是並行執行和並發性。人工智慧和數學計算是函數式編程的又一應用領域,Haskell的應用同樣如此。
C. 用Python編程需要哪些軟體
一、終端:Upterm:簡略好用,是一個全渠道終端,能夠說是終端里的IDE,有著強壯的自動補全功能。
二、互動式解說器:PtPython:支持語法高亮、提示乃至是Vim和emacs的鍵入模式。
三、包管理:Anaconda:能幫你裝置好許多麻煩的軟體,包括:Python環境、pip包管理東西、常用的庫、配置好環境路徑等。用Python高數據方面的工作,就裝置Anaconda,它乃至開發了一套JIT的解說器Numba。
四、腳本引擎:QPython:QPython是一個能夠在安卓體繫上運行Python腳本引擎,整合了Python解說器、Console、編輯器和SL4A庫,在安卓設備上你照樣可以玩轉Python。
五、編輯器:Sublime3:配合裝置Anaconda或Codelntel插件,就能夠讓Sublime具有近乎IDE的體會。
六、IPython:一個根據Python shell的互動式解說器。它的自動補全非常好用,乃至用了它之後,很多程序員小夥伴們就不想再用自帶的Python shell啦。
D. 安卓手機python編輯器哪個好
pydroid 3
這個編輯器相比於QPython
對於解釋器和命令行終端的支持更好
支持在命令行終端運行pip命令
為pip命令提供了良好的圖形化管理界面
自動檢測代碼導入的庫如果沒有安裝會自動提示安裝
支持kivy、matplotlib等推行庫
手機+一個藍牙鍵盤,隨時隨地可以練習編程,手機變身python學習利器,不要買樹莓派了都
image
能夠導入現在教育教學中常用的庫
image
互動式命令行初級和高級應用
image
支持pyqt5和kivy多種跨平台gui庫
image
如果默認c編譯器不夠快可以自定義pip庫
image
代碼提示和語法檢測
image
通過PyQt5原生支持Matplotlib
image
用qt和kivy對手機編程,APP inventor過時了
E. python開發的gui漂亮嗎
簡單一點的,玩tkinter
你要做產品,pyQT(pySide)
其他的雖然也有一些,但靠譜的並不多.
如果說好看 當然是pyQT的好看
F. python語言的特點是什麼
Python 特點:簡單易學
Python 是一種代表簡單注意思想的語言,閱讀一個良好的 Python 程序,即使是在 Python 語法要求非常嚴格的大環境下,給人的感覺也像是在讀英語段落一樣。
換句話說,Python 編程語言最大的優點之一,是其具有偽代碼的特質,它可以讓我們在開發 Python 程序時,專注於解決問題,而不是搞明白語言本身。
Python 特點:開源
Python 是 FLOSS(自由/開源源碼軟體)之一,簡單地理解就是,用戶使用 Python 進行開發和發布自己編寫的程序,不需要支付任何費用,也不用擔心版權問題,即使作為商業用途,Python 也是免費的。
開源正在成為軟體行業的一種發展趨勢,現在有很多商業軟體公司都開始將自己的產品變成開源的(例如 Java)。也許,Python 的開源正是它如此優秀的原因之一,因為會有這么一群人,他們希望看到一個更加優秀的 Python,從而為了這個目標,不斷地對 Python 進行創造,不斷地改進。
Python 特點:高級語言
Python 是高級語言,因此當使用 Python 語言編寫程序時,我們無需再考慮一些底層細節方面的問題。例如,如何管理程序使用的內存等等。
Python 特點:解釋型語言
一個用編譯型語言(如 C 或 C++)寫的程序,可以從源文件轉換到一個計算機使用的語言。這個過程主要通過編譯器完成。當運行程序的時候,我們可以把程序從硬碟復制到內存中並且運行。
而 Python 語言寫的程序,則不需要編譯成二進制代碼,可以直接從源代碼運行程序。在計算機內部,由 Python 解釋器把源代碼轉換成位元組碼的中間形式,然後再把它翻譯成計算機使用的機器語言並運行。
事實上,由於不再擔心如何編譯程序,使得使用 Python 變得更加簡單,我們只需要將 Python 程序復制到另外一台計算機上,它就可以工作了。因此,Python 程序更加易於移植。
Python 特點:可移植性
由於 Python 是開源的,它已經被移植到許多平台上。如果能夠避免使用依賴系統的特性,那就意味著,所有 Python 程序都無需修改就可以在好多平台上運行,包括 Linux 、Windows、FreeBSD、Solaris 等等,甚至還有 PocketPC、Symbian 以及 Google 基於 Linux 開發的 Android 平台。
解釋型語言幾乎天生就是跨平台的。Python 作為一門解釋型的語言,它天生具有跨平台的特徵,只要為平台提供了相應的 Python 解釋器,Python 就可以在該平台上運行。
Python 特點:面向對象
Python 既支持面向過程編程,也支持面向對象編程。在「面向過程」的語言中(如 C 語言),程序僅僅是由可重用代碼的函數構建起來的;而在「面向對象」的語言(如 C++)中,程序是由數據和功能組合而成的對象構建起來的。
與其他編程語言(如 C++ 和 Java)相比,Python 是以一種非常強大,而又簡單的方式實現的面向對象編程。
Python 特點:強大的功能
Python 強大的功能也許才是很多用戶支持 Python 的最重要的原因,從字元串處理到復雜的 3D 圖形編程,Python 藉助擴展模塊都可以輕松完成。
實際上,Python 的核心模塊已經提供了足夠強大的功能,使用 Python 精心設計的內置對象可以完成許多功能強大的操作。
此外,Python 的社區也很發達,即使一些小眾的應用場景,Python 往往也有對應的開源模塊來提供解決方案。
Python 特點:可擴展性
Python 的可擴展性體現為它的模塊,Python 具有腳本語言中最豐富和強大的類庫,這些類庫覆蓋了文件 I/O、GUI、網路編程、資料庫訪問、文本操作等絕大部分應用場景。
Python 可擴展性一個最好的體現是,當我們需要一段關鍵代碼運行的更快時,可以將其用 C 或 C++ 語言編寫,然後在 Python 程序中使用它們即可。
除了以上幾個特點(也可稱之為優點)之外,作為一個解釋型語言,Python 自然也有一些弱點,比如:
速度慢:Python 程序比 Java、C、C++ 等程序的運行效率都要慢。
源代碼加密困難:不像編譯型語言的源程序會被編譯成目標程序,Python 直接運行源程序,因此對源代碼加密比較困難。
其實,這兩個缺點並不是什麼大問題,首先,由於目前計算機的硬體速度越來越快,軟體工程往往更關注開發過程的效率和可靠性,而不是軟體的運行效率;至於第二個問題就更不是問題了,現在軟體行業的大勢本就是開源,就像 Java 程序同樣很容易反編譯,但絲毫不會影響它的流行。
G. python可以寫軟體么怎麼寫
22點24分准時推送,第一時間送達
編輯:技術君 | 來源:youerning
上一篇:
正文
前言
用 Python 寫安卓 APP 肯定不是最好的選擇,目前用Java和 kotlin 寫的居多,但是肯定也是一個很偷懶的選擇,而且實在不想學習 Java,再者,就編程而言已經會的就 Python與Golang(註:Python,Golang水平都一般),那麼久Google了一下Python 寫安卓的 APP 的可能性,還真行。
既然要寫個APP,那麼總得要有個想法吧。其實想做兩個APP來著,一個是自己寫著好玩的,一個是關於運維的。關於運維的APP,設計應該如下
可能長這樣
然後設計應該是這樣。
如果覺得可行的話,評論留言一下你覺得應該寫進這個APP的運維常用命令吧^_^,筆者暫時想到的是top,free -m,df –h,uptime,iftop,iotop,如果有什麼好的想法就狠狠的砸過來吧,筆者到時應該也會把這個寫成一個項目放到github上,大家一起用嘛,開源才是王道,哈哈。
開發安卓APP
我們使用kivy開發安卓APP,Kivy是一套專門用於跨平台快速應用開發的開源框架,使用Python和Cython編寫,對於多點觸控有著非常良好的支持,不僅能讓開發者快速完成簡潔的交互原型設計,還支持代碼重用和部署,絕對是一款頗讓人驚艷的NUI框架。
因為跨平台的,所以只寫一遍代碼,就可以同時生成安卓及IOS的APP,很酷吧。
本文會帶大家寫一個Hello world並瞧一瞧 Python 版的2048的代碼
kivy安裝
環境說明:筆者在用的是Python2.7.10
這里僅介紹windows平台安裝
所有平台參考: https://kivy.org/#download
更新pip,setuptools
python -m pip install --upgrade pip wheel setuptools
然後是安裝所需要的依賴
python -m pip install docutils pygmentspypiwin32 kivy.deps.sdl2 kivy.deps.glew
kivy.deps.gstreamer --extra-index-url https://kivy.org/downloads/packages/simple/
值得注意的是,上面的安卓需要訪問Google,所以請自備梯子,而且kivy.deps.gstreamer這個包比較大(95MB),可以單獨本地安裝,http://pan..com/s/1o7mlxNk
然後就是安裝kivy了
python -m pip install kivy
至此,安裝就已經完畢了,值得注意的是64位系統沒有開啟虛擬化支持,在導入kivy的時候會報錯,如果是64位系統就設置一下機器的BIOS,開啟虛擬化支持吧。
註:這里只是kivy的運行環境,這樣我就能直接在windows機器上直接調試了,怎麼將代碼編譯成APK文件我們會在後面講到。
如果kivy在python中應該就能導入了。
按照世界慣例,我們」hello」一下吧。
新建一個.py文件
from kivy.app import Appfrom kivy.uix.button importButton
class TestApp(App):
def build(self):
return Button(text='Hello,kivy')
TestApp().run()
運行
然後會彈出一個框,大概如下,點擊」hello,kivy」會變顏色
點擊窗口並按「F1」會這個窗口的一些屬性
然後我們回過頭看一看代碼。
##導入App,然後讓TestApp這個類繼承
from kivy.app import App##導入一個Button,運維有這個button,當你點擊的時候才會有所反應
from kivy.uix.button
importButton
###定義類,名字必須是xxxAppclass TestApp(App):
###build一個Button
def build(self):
###返回一個Button,文字內容是「Hello,kivy」
return Button(text='Hello,kivy')
##運行,因為繼承了App,所以才有的run這個方法TestApp().run()
上面就是我們的Hello了
在windows上運行當然沒有什麼太大的意義,怎麼在安卓手機上運行才是我們想要的,
這時我們需要一個編譯環境。
官方說明的環境,如下:
You』ll need:
A linux computer or a virtual machine
Java
Python 2.7 (not 2.6.)
Jinja2 (python mole)
Apache ant
Android SDK
雖然官方提供了一個似乎還不錯的虛擬機鏡像,但是還是有很多內容需要翻出去,所以筆者在這里提供相對而言更加完善的鏡像
下載地址:http://pan..com/s/1geyAY7x
注:virtualbox,vmware需自行下載
root密碼:kivy
默認使用賬戶kivy,密碼:kivy123
當然你也可以下載官方鏡像,因為第一次編譯需要去國外下一大堆東西,所以請自行去下載。
Virtual Machine
A Virtual Machine with Android SDK and NDK and all otherpre-requisites pre installed to ease apk generation:
Kivy Buildozer VM
Or select the Torrent
在筆者提供的鏡像里,桌面上有一個dev_and,只要將上面寫的代碼,放入這個文件夾即可(當然也可以在其他目錄,後面會講到)。
在公眾號Python人工智慧技術後台回復「面試」,獲取騰訊Python面試題和答案。
cd Desktop/dev_and/
初始化會在當前目錄生成一個buildozer.spec文件 用於配置生成的apk相關信息
buildozer init
###修改buildozer.spec文件
vi buildozer.spec
至少修改下面三項
# (str) Title of your applicationtitle = helloworld
# (str) Package namepackage.name = helloapp
# (str) Package domain (needed for android/ios packaging)package.domain = youer.com
然後注釋
# (str) Application versioning (method 1)#version.regex = __version__ = ['"](.*)['"]#version.filename = %(source.dir)s/main.py
下面這行改為非注釋
version = 1.2.0
最後我們生成我們需要的apk文件
buildozer -v android debug
buildozer.spec更詳細的相關參數配置參考:
http://buildozer.readthedocs.org/en/latest/specifications.html
buildozer命令會在當前文件夾創建一個bin,該文件夾裡面有我們想要的apk文件
helloapp-1.2.0-debug.apk
helloapp-1.2.0-debug.apk
安裝以後是這樣:
話說在編譯的時候可能出現空間不足的情況,根據虛擬機的不同(vmware或virtualbox)自行擴容吧。
最後我們來瞧瞧簡易版Python開發的2048這個游戲的源代碼。
代碼:
https://github.com/mvasilkov/kb/tree/master/6_2048
先看效果圖:
試玩了一下,還是蠻流暢的,有興趣的可以下載玩一下
下載地址:http://pan..com/s/1eQZACDW
這個游戲代碼雖然不長,但是還是蠻占篇幅的,所以簡要的說明一下流程。
主要由三部分組成,一是素材,圖片音頻之類的文件,二是Python代碼,三是kv文件,這個kv文件有點像 html 中的css。
Python代碼的文件名一般命名為 main.py
然後一定有一個叫做 XXXApp 的類,並繼承 App。
比如該類叫做GameApp,那麼該目錄下的kv文件則必須為Game,如上圖所示,如果不是,那麼kv文件中的一些設定就不會生效。
比如設定一個標簽
Label:
id: time
text: 'xxxx'
font_size: 60
id為time,text文本內容為'xxxx',然後字體為60
好吧,點到為止吧,不過似乎什麼都沒點到~~~
你還有什麼想要補充的嗎?
你在看嗎?一起成長