Linux C++工程師2小時瞭解Android記錄

來源:互聯網
上載者:User

標籤:

(一)Android?

Andoid是一個在linux上的,多用於移動終端的作業系統,不是類似redhat的伺服器OS,也不是類似Windows的標準案頭OS,只是一種手持功能的較為簡單的圖形OS,Android應用程式使用Java開發。Android從linux kernel開出的分支,比如我的華為手機android是4.3,使用的linux kernel是3.4。

android代碼已經被linux kernel社區剔除。android由於繼承了linux kernel代碼,根據linux GPL規定即對開原始碼的任何修改,都必須開源,所以android開源了。同時android屬於ASL許可證,ASL許可證規定可以隨意使用代碼不用開源,所以android上的應用程式和驅動程式都似乎閉源的,這也滿足了很多硬體廠商的要求。

與Liinux嵌入式開發使用系統調用和glibc介面不同的是,Android沒有glibc的支援,自己使用BionicLibc庫。並且,按照移動終端OS的需求提煉出了自己的一套介面,開發人員在Android介面上開發,Android介面就是我們下面提到的一系列java基礎類庫。

額外的一個問題:為什麼android使用了linux核心:

答:回答這個問題需要先瞭解核心的作用,核心提供了進程管理/檔案網路管理/系統安全許可權管理等。核心對上層操作者是不可見的,只能針對提供出來的操作介面進行操作。所以核心對整個系統來說是基礎性的,不是功能性的。

借用知乎上的話,開發一個核心不難,難在成千上萬的裝置為他做驅動。Apple和Windows有獨立的自有硬體或者有能力說服硬體廠商為之作驅動,但是android開發之初,只能選擇Linux。

 

(二)Android的應用組件

Android應用程式沒有為應用準備一個單獨的程式入口(比如說,沒有main方法),而是為系統依照需求執行個體化提供了基本的組件。共有四種類型的組件:

Activity:一個應用程式可以有一個或多個activity,每個使用者介面都是以activity為基類的子類。Activity生命週期包含active/pause/stop,android會對組件的生命週期作管理,會在系統需要記憶體時候自動銷毀stop的Activity組件。

Service:後台服務可以在後台做一些檔案處理網路處理等,將結果提供給需要的activity使用,每個服務都繼承Service類。服務運行於應用進程的主線程內,耗時服務會使用新縣城執行。

BroadcastRecvice:廣播訊息接收類,用於接收廣播訊息並作出處理的組件,很多廣播訊息源於系統代碼比如時區的改變,電池電量低,拍攝了照片或者改變了語言選項。

Intent:訊息組件,用於各個組件之間的訊息傳遞。

Android的線程是以標準的Java Thread對象建立的。

Android有一個輕量級的遠端程序呼叫(RPC)機制,既在本地調用一個方法,在遠端然後將結果返回。

 

(三)Android對Linux kernel的增強

android對kernel的增強主要體現在對Linux kernel驅動的增強。Android將裝置驅動提到Userspace中,不繼承在核心中。

1)OpenBinder架構的驅動,用於提供Android平台的處理序間通訊IPC功能,代碼在drivers/staging/android/binder.c

2)Android電源管理,一個基於標準Linux電源管理系統的輕量級Android電源管理系統。

3)低記憶體管理器:比OOM機制更加靈活,可以根據需要殺死進程以釋放需要的記憶體。drivers/staging/android/lowmemkiller.c

4)匿名共用記憶體(Ashmem)為進程提供大塊的共用記憶體,同時也提供管理和回收這個記憶體的機制。

5)Physical MEM:向使用者提供連續的實體記憶體空間。

6)Android Logger:輕量級的日誌裝置

7)Android Alarm:定時器的android定製/

8)Yaffs2檔案系統。

 

Linux C++工程師2小時瞭解Android記錄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.