开发应用层的需要了解 framework层吗?---不需要!!!!
寫于2015年12月3日
不同的android版本,不同的framework實(shí)現(xiàn),framework有近2億行代碼,版本越高,代碼行數(shù)越大,這個(gè)過程是很痛苦的。所以不要去學(xué)習(xí)和閱讀framework的源代碼。
閱讀它的源代碼,還不如去學(xué)英語,多看應(yīng)用層的API,多看理財(cái)?shù)臅?/p>
如果不做framework開發(fā),做app開發(fā)的話,看了framework的代碼對(duì)app開發(fā)的幫助是很少的,公司不會(huì)因?yàn)檫@個(gè)而給你加工資,還不如去學(xué)習(xí)英語,金融等給自己加薪,和用錢賺錢。
------------
1、首先覺得你的題目和問題描述不太搭邊。你所說的復(fù)雜功能效果實(shí)際上幾乎都是應(yīng)用層的,和framework不搭邊。因?yàn)槿绻皇亲鰬?yīng)用開發(fā),那就完全依賴現(xiàn)成的基礎(chǔ)組件和接口,最多自定義一下組件和布局。你在網(wǎng)上找到的很流暢很美觀的現(xiàn)成組件都是別人自定義之后封裝的。別人能做,實(shí)際上你應(yīng)該也能做。多看看別人的demo,試著對(duì)你不滿意的地方做點(diǎn)改進(jìn),總會(huì)有收獲。一旦覺得有點(diǎn)心得,記錄下來或者把你封裝的東西拿出來讓大家用用,一起討論討論,必然收獲更多。
2、關(guān)于framework,更多是做的應(yīng)用層之下的系統(tǒng)層面的東西。比如電源管理、消息隊(duì)列、包管理等等,還包括對(duì)硬件的支持及系統(tǒng)提供給上層的硬件功能調(diào)用接口。framework的學(xué)習(xí)必然離不開不斷編譯rom和刷機(jī)。這就要求有耐心有時(shí)間有興趣。而且由于framework層多數(shù)模塊都是以JNI方式被調(diào)用的,因此你需要有比較扎實(shí)的C語言基礎(chǔ),之少能看懂程序結(jié)構(gòu)。除此之外,對(duì)你想要詳細(xì)研讀的模塊在應(yīng)用層的應(yīng)用需要有必要的理解。我剛開始看源碼的時(shí)候是從電源管理模塊開始看的,就是因?yàn)楫?dāng)時(shí)對(duì)android系統(tǒng)自帶的電源提醒方式以及電量通知不太滿意,想重新定義更多層級(jí)的提醒。剛開始也是一頭霧水,但還是硬著頭皮一點(diǎn)點(diǎn)啃。這個(gè)過程中,為了防止忘記之前看過什么,所以又不斷對(duì)看過的源碼做注釋并做閱讀筆記。大概兩三個(gè)月,雖然了解的也比較淺顯,但是我的目的達(dá)到了。源碼之路漫漫,看個(gè)三五年都不一定敢說能夠整體吃透。雖如此,但只要有鉆研的方向和基本的能力,相信工作中遇到的framework層的改動(dòng)應(yīng)當(dāng)還是能夠負(fù)擔(dān)得住的。
3、如果不想深入framework,其實(shí)你也可以做android系統(tǒng)應(yīng)用的開發(fā)。這一步幾乎和上層應(yīng)用開發(fā)差不多,不過可以調(diào)用的庫(kù)更豐富,權(quán)限更高罷了。這個(gè)可以自己研究,參照android系統(tǒng)出場(chǎng)自帶的應(yīng)用。
說了這些。希望能夠有點(diǎn)幫助。
總結(jié)
以上是生活随笔為你收集整理的开发应用层的需要了解 framework层吗?---不需要!!!!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux卸载Mysql
- 下一篇: 快学Scala习题解答—第一章 基础