Android中的一些重要概念
之前對(duì)一些概念還是不清楚,這里重新整理了一下
Android應(yīng)用程序
應(yīng)用程序是用戶可以從Play Store安裝或以其他方式下載到其設(shè)備的東西.該應(yīng)用程序應(yīng)該有一些用戶界面,并且可能有其他代碼設(shè)計(jì)為在后臺(tái)工作(多任務(wù))
編程語(yǔ)言
絕大多數(shù)Android應(yīng)用程序都是以Java編寫(xiě)的,但是也有其它的編程語(yǔ)言寫(xiě)的,如:
- 您可以使用C / C ++編寫(xiě)應(yīng)用程序的部分內(nèi)容,以提升性能,移植現(xiàn)有代碼庫(kù)等
- 您可以使用C / C ++編寫(xiě)整個(gè)應(yīng)用程序,主要用于使用OpenGL for 3D動(dòng)畫(huà)的游戲
- 您可以使用HTML,CSS和JavaScript編寫(xiě)應(yīng)用程序的內(nèi)容,使用工具將該材料打包到可通過(guò)Play商店和類似場(chǎng)所分發(fā)的Android應(yīng)用程序中
- 其它
操作系統(tǒng)版本和API級(jí)別
大多數(shù)Android開(kāi)發(fā)人員的API級(jí)別對(duì)于
- API Level 19(Android 4.4)
- API Level 21(Android 5.0)
- API Level 22(Android 5.1)
- API Level 23(Android 6.0)
- API Level 24(Android 7.0)
- API Level 25 (Android 7.1)
- API Level 26 (Android 8.0)
Dalvik和ART
在Android方面,Dalvik和ART是虛擬機(jī)(VM). 虛擬機(jī)被許多編程語(yǔ)言所使用,如Java,Perl和Smalltalk. Dalvik和ART的設(shè)計(jì)非常像Java VM,但是針對(duì)嵌入式Linux環(huán)境進(jìn)行了優(yōu)化
兩者之間的差異在于Android 5.0及更高版本上使用了ART,而Dalvik則在舊設(shè)備上使用
那么當(dāng)某人寫(xiě)一個(gè)Android應(yīng)用程序的時(shí)候真的會(huì)發(fā)生什么呢
- 開(kāi)發(fā)人員編寫(xiě)Java語(yǔ)法源代碼,利用Android項(xiàng)目和第三方發(fā)布的類庫(kù).
- 開(kāi)發(fā)人員使用Java SDK附帶的javac編譯器將源代碼編譯為Java VM字節(jié)碼.
- 開(kāi)發(fā)人員將Java VM字節(jié)碼轉(zhuǎn)換為Dalvik VM字節(jié)碼,其中包含其他文件到.apk擴(kuò)展名(APK文件)的ZIP檔案中.
- Android設(shè)備或模擬器運(yùn)行APK文件,導(dǎo)致字節(jié)碼由Dalvik或ART VM的實(shí)例執(zhí)行.
從您的角度來(lái)看,大多數(shù)構(gòu)建工具都被隱藏. 您在第一步輸入Java源代碼,并在最后輸出APK文件.
進(jìn)程和線程
當(dāng)您的應(yīng)用程序運(yùn)行時(shí),它將在自己的進(jìn)程中執(zhí)行. 這與其他傳統(tǒng)操作系統(tǒng)沒(méi)有什么不同. Dalvik的一部分魔法使許多進(jìn)程可以一次運(yùn)行許多Android應(yīng)用程序,而不會(huì)消耗大量的RAM
Android還將為您的應(yīng)用程序設(shè)置一批線程. 您的代碼將被執(zhí)行的線程大部分時(shí)間被不同地稱為“主應(yīng)用程序線程”或“UI線程”