這是一個出於好奇而不是實際問題的問題。一個可執行的獨立Java程序需要一個公共靜態void main(String [] args)方法。但在android中沒有這樣的方法。唯一最接近主要方法的是在清單中定義爲類別的android:name =「android.intent.category.LAUNCHER」。因此,我的問題是android是否需要一個主要方法?如果是,它是如何生成的,是它通過解析xml文件並創建類似於res文件夾的gen文件夾中的R.java引用??如果不是我的java文件的執行如何啓動。爲什麼沒有android應用程序需要主要方法
回答
有一個main,但你沒有寫它。主要是Android框架的一部分,它將接受參數並將它們映射到一個Activity或Service來運行,然後調用正確的生命週期函數,所以你不必擔心它,想想onCreate活動(或onStart的服務)取代主。
多數民衆贊成混淆部分*有一個主要*如果它是在框架,那麼它不是我的。此外您的評論以上*每個應用程序有一個主*是主要來自應用程序運行的達爾維克虛擬機。每個應用程序都會運行在它自己的虛擬機上,情況就是如此。我想成爲一名android教練,但我需要自己學習很多 –
想想這樣 - 每個應用程序都有一個功能,將被首先調用。我們稱之爲「主要功能」。在標準的Java中,這是一個名爲main的函數。標準C++也一樣。在Windows的C++中,它是一個名爲WinMain的函數。一些舊的C++框架有一個叫TMain。這裏已經建立了一小段代碼,用於決定要啓動的活動,然後調用正確的生命週期函數。基本上,除了從學術的角度來看,你不需要擔心它 - 只是教授活動的生命週期。 –
The Java用於運行獨立Java程序的虛擬機需要main()才能開始執行。 Android使用目前使用Dalvik虛擬機,該虛擬機搜索Activity子類的實例。在Android 5中,他們切換到ART(Android Runtime)。正如你所提到的那樣,清單指定了LAUNCHER,它的值是這個子類,並在onCreate()中開始執行。
- 1. 沒有主要方法的Java程序
- 2. 爲什麼我需要主機應用程序中的寶石
- 3. 爲什麼主要方法需要是靜態的?
- 4. 爲什麼有些課程需要主要方法而其他課程則不需要?
- 5. 爲什麼在程序中主要需要
- 6. 爲什麼Android Market應用程序需要C2DM服務?
- 7. 爲什麼Scala程序要有主要方法或擴展App特性?
- 8. 爲什麼需要使用'addChildViewController:'方法
- 9. 主要方法是什麼?
- 10. 爲什麼android需要jvm
- 11. 爲什麼程序的主要方法是靜態的?
- 12. 爲什麼java的主要方法不應該有返回值?
- 13. 爲什麼不介紹主要方法?
- 14. 爲什麼spinner listener需要onNothingSelected方法?
- 15. 爲什麼CustomFieldSerializer需要靜態方法?
- 16. 爲什麼我們需要addRequestHeader方法?
- 17. 爲什麼我們需要ContinueWith方法?
- 18. 爲什麼需要DataBind()方法?
- 19. 爲什麼我們需要Buffer.isBuffer方法?
- 20. 爲什麼申請方法需要parens?
- 21. 爲什麼Settings.System.put/get方法需要ContentResolver?
- 22. 爲什麼JSON不需要setXXX方法?
- 23. 爲什麼你需要重載方法?
- 24. 在JAVA主要方法中String array的需要是什麼
- 25. 爲什麼我需要一個需要實例的方法?
- 26. 我的android應用程序沒有顯示在應用程序的主要列表中。我必須做什麼?
- 27. 爲什麼需要線程
- 28. 爲什麼Observable.FromEventPattern需要調度程序?
- 29. 爲什麼sensorManager.registerListener需要處理程序?
- 30. 構建社區(Android應用程序)需要什麼?
@rgamber鏈接不回答我的問題 –
@DerGolem主要方法是一個程序的單一切入點,所以我不認爲這是這種情況。 –
@DerGolem每個應用程序都有一個main-程序啓動的初始入口點。有時它只是名稱不同,或者是運行時/框架的一部分。 –