我有一個奇怪的問題,當我們開發一個android應用程序或其他人時,我們需要將android.jar導入到我們的項目中,我知道如果我們不導入jar進入項目,我們無法編譯項目,也無法生成apk文件,但我的問題是我們的手機是在Android系統上建立的,Android系統包含android.jar中的所有類,當我們運行我們的apk文件在Android系統上,它將使用哪些類。我的意思是一個Activity類都存在於Android系統框架和Android.jar中,這個Activity類將在應用程序運行時使用。請有人幫我解決這個問題。很感謝我不明白爲什麼我們需要導入Android sdk到項目中
回答
Java是一種編譯語言。
這是一個兩步process--首先必須對代碼進行編譯成字節碼,然後編譯後的字節代碼已實際運行(俗稱執行)
你有可能注意到編譯錯誤和運行時錯誤之間的區別。例如,編譯錯誤通常被視爲日食中的紅色下劃線和紅色x。在您的手機上運行應用程序時發生運行時錯誤。
知道我在說什麼嗎?
所以有編譯環境(Eclipse中)和運行時環境(安卓)之間的完全分離。因此,他們都需要知道Android類,並且必須導入android sdk。
好的答案... – 2013-04-25 02:09:32
這是一個詳細的答案。 – StoneBird 2013-04-25 02:10:49
因此,如果我在android.jar中的某個類中添加方法,但該方法在android框架(運行時)中不存在,它會拋出異常,儘管我可以傳遞編譯過程。 – 2013-04-25 02:11:20
- 1. 爲什麼我不需要導入sys?
- 2. 爲什麼我們需要Android項目的多個清單?
- 3. 我不明白,石墨支持udp,爲什麼我們需要statsd
- 4. 爲什麼Facebook SDK無法導入我的Android項目?
- 5. 如何從引導我們需要爲我們的項目
- 6. in solrImportScheduler爲什麼我們需要爲delta導入定義reBuildIndexBeginTime?
- 7. Ruby:爲什麼我們不需要`attr_accessor`?
- 8. 爲什麼我們需要android中的首選項?
- 9. 爲什麼我們需要鍵入 '( 「+ I +」)',而不僅僅是 '(我)'
- 10. 不明白爲什麼我得到空
- 11. 爲什麼我們需要9補丁?
- 12. 不明白我們爲什麼會出現錯誤CS0234
- 13. AutofacInstanceContext.Current爲空,我不明白爲什麼
- 14. 爲什麼我們只需要導入定義文件
- 15. 斯卡拉,爲什麼我不需要導入推導類型
- 16. 爲什麼我不能將現有項目導入到eclipse中?
- 17. 我不明白他想要什麼
- 18. 爲什麼我們需要Java NIO Selector?
- 19. 爲什麼我們不要在div中導入css?
- 20. 爲什麼我們需要scalaz.stream迭代?
- 21. 爲什麼我們需要爲IMessenger.Subscribe()明確設置收件人?
- 22. DavLockDB:我們需要什麼?
- 23. 爲什麼我們需要TensorFlow tf.Graph?
- 24. mongodb爲什麼我們需要getSisterDB
- 25. 爲什麼我們需要fieldset標籤?
- 26. 爲什麼我不需要
- 27. 爲什麼我們需要crossCheckMatching功能?
- 28. 裝配需要什麼?爲什麼我們使用它們?
- 29. 爲什麼我們需要時代?
- 30. 爲什麼我們需要.htaccess的worpdress?
Android在Delvik上運行,它讀取.dex文件;你用java寫的你的應用程序是.java文件。 – StoneBird 2013-04-25 02:07:46