Ⅰ 安卓fastboot原理
安卓刷機大概就兩種方法:
一是recovery方法,就是我們平時將update.zip入到SD卡,然後alt-s的方法,這種方法是調用了recovery的方法將各種img或文件進行復制等操作。想了解recovery的工作原理嗎?我也沒找到好的資料,就在這看了看recovery的一些源碼
二是fastboot方法,這個方法其實是比較酷的方法,說白點,fastboot就是將已有的各分區映象文件(img文件,意義上類似我們對光碟做的映象文件)直接覆蓋寫到指定分區中,有點暴力,也有點類似我們平時操作系統的Ghost還原。
這兩種方法哪種更好,這就不好比高低了,總的來說:
Recovery方法更簡單,只需要傻瓜式的將update.zip放到SD卡的要目錄下,然後進入Recovery模式alt-s就可以了,但和任何傻瓜式東西一樣,他的靈活度就很小了,而且出錯了也都不知道如何解決。一般來說做Rom的高手為了保證Rom的可靠性,在安裝程序中都會對一些安裝環境進行一些確定,而各位的手機環境又是千變萬化的,Rom高手也很難考慮周全,另外,Recovery程序本身也有一些環境驗證。
fastboot方法更靈活,功能也更強大,fastboot方法不需要依賴於recovery,甚至linux底層刷壞了recovery模式都進不了的情況下也可以通過fastboot方工刷回來。fastboot模式其實是調用spl進行刷機的,所以如果刷spl壞了,fastboot模式應該也進不了,也就是磚了。fastboot方法需要各位電腦上有fastboot程序,同時手機要進入fastboot模式才可以操作,關於這些知識,請自己搜索
Ⅱ 安卓手機軟體的後台運行到底是個什麼原理
android基於Linux內核,很多系統也都基於Linux內核。但是android的特別之處除了開發上的特點以外,還有一個就是程序在運行時的行為和以往我接觸到的程序運行機制有很大不同。在傳統PC機或者其他一些手機上,用戶對應用程序有絕對的掌控權,在應用程序的系統菜單上選擇逗退出地或者逗關閉地之類的選項會直接殺死進程,而在android系統中不是這樣的。在android中,應用程序的生命周期並不是由應用程序自身直接控制的,而是由系統,當系統需要釋放內存來運行新進程或者保證某些後台進程和前端進程順利執行的時候才會釋放相應應用程序的資源,這個釋放過程有一個重要性的層次。
android中進程的層次如下(重要性由高到低):
1、前端進程。顧名思義,前端進程就是目前顯示在屏幕上和用戶交互的進程,在系統中前端進程數量很少,而這種進程是對用戶體驗的影響最大,只有系統的內存稀少到不足以維持和用戶的基本交互時才會銷毀前端進程。因此這種進程重要性是最高的。
2、可見進程。可見進程也擁有一個可視化的界面,只是目前不是最上層界面(最上層界面在前端進程裡面),可見進程一般調用了OnPause(),可見進程比前端進程重要性低,但是在交互方面影響還是很大,因為用戶可能隨時切換過去,所以系統不會輕易銷毀它。
3、服務進程。一個服務進程就是一個Service,它調用了startService,就是UNIX中說的守護進程,對用戶不可見,但是保證了一些重要的事件被監聽或者維持著某些狀態,比如網路數據傳輸、後台音樂播放,這類進程在內存不足且為了保證前端交互的順利進行的時候被銷毀。
4、後台進程。這里叫後台進程可能會和一般意義上的後台進程混淆,要說明的是,android里的後台進程是調用了OnStop()的,可以理解成用戶暫時沒有和這個進程交互的願望,所以這里後台進程有點逗待銷毀地的意思。
5、空進程。這是一種系統緩存機制,其實就是個進程的外殼,當有新進程創建的時候,這個空進程可以加快進程創建速度,當系統內存不足的時候,首先銷毀空進程。
android中進程重要性層次