導航:首頁 > 操作系統 > android底層開發教程

android底層開發教程

發布時間:2024-12-20 16:44:20

㈠ 怎樣學習android底層開發

Android底層開發技術實戰詳解——內核、移植和驅動

Android與Linux的關系
Linux Kernel的版權是GPL(General Public License),它要求對源代碼的任何修改都必須開源。
Android的Kernel採用的GPL,但Android採用ASL(Apache Software License),不必開源。
Google特意修改了Kernel,將某些功能轉移到上層HAL(Hardware Abstraction Layer)中。
因此,從2010年2月,即Linux2.6.33起,Android Kernel已經從Linux Kernel中刪除。
三種內核
1、Goldfish,它是由Google提供的一種虛擬的ARM處理器,在Android的模擬環境中使用。
2、MSM(Mobile Station Modem),它是由美國高通(Qualcomm)公司提供的ARM處理器晶元組。
3、OMAP(Open Multimedia Application Platform),它是由美國德州儀器(Texas Instruments,簡稱TI)公司提供。
三類驅動程序
1、字元設備
2、塊設備
3、網路設備
兩種驅動類型
1、專用驅動,非Linux標准,純軟體
2、設備驅動

㈡ 手機操作系統是怎樣做出來的

手機操作系統大都是用匯編和C語言編寫內核用JAVA編寫的框架。

手機操作系統目前分為iOS和Android。Android底層驅動,以及操作系統全部內核都是使用C語言和匯編語言編程開發。但是android操作系統本身是使用Java開發,使用JNI調用本地的C語言庫,由操作系統實現對底層調用。iOS系統是蘋果自己開發的,核心合適C語言。

手機的操作系統使用C語言編寫出來之後,是非常的醜陋的,說白了手機的操作系統就是各種各樣的介面而已。手機操作系統的底層,是用來調用手機的各種硬體,這才是操作系統核心的東西。

操作系統的本質是對硬體的調用和控制,所以手機操作系統包含所有相應語言的編譯器,PC端使用編程軟體如VC++6.0編碼後可以直接在手機操作系統上運行。

(2)android底層開發教程擴展閱讀:

兩種當前主流系統的介紹:

Android 英文原意為「機器人」,Andy Rubin於2003 年在美國創辦了一家名為Android 的公司,其主要經營業務為手機軟體和手機操作系統。Google 斥資4 000 萬美元收購了Android 公司。

Android OS是Google(谷歌)與由包括中國移動、摩托羅拉、高通、宏達和T-Mobile 在內的30 多家技術和無線應用的企業組成的開放手機聯盟合作開發的基於Linux 的開放源代碼的開源手機操作系統。

IOS是由蘋果公司開發的手持設備操作系統。蘋果公司於2007 年1 月9 日的Macworld 大會上公布這個系統,以Darwin(Darwin 是由蘋果電腦的一個開放源代碼操作系統)為基礎,屬於類Unix 的商業操作系統。

2012 年11 月,根據Canalys 的數據顯示,iOS 已經占據了全球智能手機系統市場份額的30%,在美國的市場佔有率為43%。

㈢ 關於學習安卓底層,懂得進

我幹了3年Android sdk開發,覺得到了瓶勁沒法更進一步,於是花了一年多點時間,大概摸到點門徑。根據前輩的經驗,Android底層完全入門需要兩年。

先說下我的入門過程:
第零步,下載源碼,我下的4.2的,框架層源碼10G,內核2G多,ctags給框架層建的標簽文件都有600M,當時讓我有點震撼,用的vim+ctags+cscope來閱讀,還算不錯,架構挺清晰的。

第一步,我找到了一本好書《Android的設計與實現 第一卷》它講了Android框架層的啟動,初始化,服務框架初始化,Binder,消息循環,PackageManagerService,ActivityManagerService。據作者說後面會出講UI子系統的第二卷,拭目以待。其實這本書看了幾十頁我就發現需要第二步的知識,否則看不下去,於是跳去第二步。

第二步,學習Linux系統編程,在看《Android的設計與實現》的時候我發現,框架層的Native部分,全是Linux編程。為了掌握這部分知識,我花了4個月學習了《Linux系統編程手冊》(TLPI)這本1000多頁的書,我以前是搞WIndows文件系統這塊的,所以C語言還比較熟,TLPI的習題很有意思,量也比較大,堅持下來還是收獲很多。

第三步,花了4個月學習了一些Linux內核的知識,看了LKD,PLKA看了一半多。越學越沒底,覺得不懂得越來越多,不過這個也正常,只有靠慢慢磨,估計以後要不斷的磨這塊。

第四步,回頭看Android源碼,這次一口氣看完了《Android的設計與實現 第一卷》,終於對框架層有了譜。同時真的數次把我看暈,前面看Linux內核源碼都沒這么暈,不斷在Java層和Native層之間跳有點磨腦漿。其中我又覺得Java的基礎沒有打太牢,回去補了一個月的《Core Java》第八版。但是這書沒有涉及UI子系統,於是又看了《Android內核剖析》

第五步,《Android內核剖析》(這本書實際上是講框架層的,作者也是個搞嵌入式的,所以他在寫框架層的時候文筆不太好,很羅嗦,不過還是有很多看點,到他後來寫做ROM,玩開發板時估計是說到了他的本行,一下子遛起來了看得出還是挺有水平的,這本書知識有點舊畢竟講的是2.3很多代碼已經過時,但是作者很多點子很有參考價值)這本書講UI子系統和按鍵/觸摸消息處理系統還是很有分量的,尤其13章View繪制那裡,結合源碼研究很有收獲。而後面他講編譯框架和ROM相關的東西都是挺寶貴的資料。

第六步,為了再補一下其他諸如電源管理模塊等子系統的知識看了,《深入理解android》系列,個人認為這個系列看起來有點不太舒服,不過作為補充印證還是比較有價值。

第七步,《Android系統源代碼情景分析》,羅升陽的源碼分析大作,比《Android的設計與實現》分析得更細致,但缺點是涉及到模塊比較少,選用的源碼也比《Android的設計與實現》更舊一點。看完書後需要去研究作者的博客,東西挺多的,一定讓你滿意。

第八步,買塊開發板自己玩。這步我還沒走到,原因是我覺得我還差點准備知識。可能要再幾個月,到時准備入塊6410或者樹莓派。

最後,由於我11年以前都是搞Windows這塊的,所以對Linux知識不是很了解,不得已看了這么些書,如果是一直做Linux的人,很多步驟估計可以省掉了。直接上源碼才是正道。

我本身做著移動GIS開發的工作,學框架層全是因為興趣,但招聘平台Android框架層開發人員還是蠻有競爭力的有不少定製ROM,智能電視的工作都處於人才難求狀態,畢竟有一定的門檻,現在各種ios培訓,讓奔著錢干開發的人紛紛湧入,而ios只能幹sdk開發的缺點就暴露出來了,一堆新手老手,菜鳥大牛全擠在SDK開發這塊,我覺得不太妙。 反觀Android這邊,雖然入門菜鳥沒有搞ios來錢,但是可持續性很好,從sdk-》框架》驅動》內核這樣幹下去。干著干著發現自己漸漸變成了Linux開發者/嵌入式開發者的人也不少,新人,老手,菜鳥大牛各居其位,層次性很好。

閱讀全文

與android底層開發教程相關的資料

熱點內容
760貼片機編程視頻 瀏覽:333
歐姆龍plc編程第36講 瀏覽:915
我的世界如何將一個伺服器弄崩 瀏覽:8
php網站訪問量代碼 瀏覽:431
怠速壓縮機咔咔響 瀏覽:176
怎麼才能修改APP中的數據 瀏覽:688
哪裡有搶單的app 瀏覽:462
演算法概率題 瀏覽:465
長方形拉伸的命令 瀏覽:279
python代碼函數編程技術 瀏覽:194
java正則式 瀏覽:429
外包程序員好進嗎 瀏覽:384
雲伺服器服務模型架構 瀏覽:901
刪文件夾什麼指令 瀏覽:509
極速抖音已加密怎麼辦 瀏覽:603
matlab拉格朗日演算法框圖 瀏覽:430
華為公司計算機視覺演算法顧問 瀏覽:254
夏老師講的單片機 瀏覽:298
在編程中如何將圖片放大 瀏覽:163
appstore怎麼看是否付費 瀏覽:603