自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

楊云君教你變身優(yōu)秀開發(fā)者的學(xué)習(xí)之道!

移動開發(fā)
楊云君,《Android的設(shè)計與實現(xiàn) 卷Ⅰ》作者,資深A(yù)ndroid系統(tǒng)專家,不僅在Android應(yīng)用開發(fā)方面積累了豐富的經(jīng)驗,而且精通Android系統(tǒng)級開發(fā)和性能優(yōu)化,對整個Android系統(tǒng)的架構(gòu)設(shè)計與實現(xiàn)原理有十分深入的研究和透徹的認識。

[[77393]]

以下為小編對楊云君作者的訪談內(nèi)容:
小編:請和大家介紹下您及所從事的工作?
楊云君:
2006年大學(xué)本科畢業(yè),此后在企業(yè)級應(yīng)用領(lǐng)域做過網(wǎng)銀中間件和運營系統(tǒng)。
2009年初涉足移動通信平臺,開始接觸Symbian和Android。
到目前為止,一直從事Android應(yīng)用層,系統(tǒng)框架層的研發(fā)工作,主要解決ANR,OOM,System Server Watchdog、性能優(yōu)化以及系統(tǒng)級調(diào)試等問題。
小編:您是如何踏上Android開發(fā)這技術(shù)領(lǐng)域的?
楊云君:
踏上Android領(lǐng)域可以說有點陰差陽錯,起因要從2008年開始說起。2008年可以說是一個讓大多數(shù)人悲喜交加的年份,雪災(zāi)、地震、奧運、金融危機、企業(yè)大裁員以及后來的房價大跌。這么多大事集中在一個年份,人總是要有些改變的,不能改變的那只有神了。那一年Java EE及其衍生品SSH(Struct+Hibernate+Spring)在很多領(lǐng)域已經(jīng)是遍地開花,掌握這個領(lǐng)域技術(shù)的人才已經(jīng)飽和,一些有規(guī)模的公司已經(jīng)具備完善的程序庫并形成了自己的開發(fā)模式。很多時候,開發(fā)變成了“配置+Copy/Paste+數(shù)據(jù)庫”的簡單模式,Java EE再也不是那個熟悉EJB便被奉為牛人的輝煌時代了。隨之而來的是大量低技能從業(yè)者的涌入,在此期間也遇到過不少有趣的事情,下面列舉一二:
a.公司招聘的新人問為什么String s = “abc”這句要加String?
b.新人不懂指針,我問:大學(xué)里都學(xué)過C語言,指針應(yīng)該都學(xué)過了。新人答曰:我們老師都不會,講到指針就略過去了。
c.公司里很多人,不會使用Linux和Oracle數(shù)據(jù)庫,甚至都不會安裝,甚至多次不會安裝。
大家可能會說,你這什么公司啊,我們公司的人就比這個強!!實不相瞞,上述事件就發(fā)生在國際知名的世界500強軟件公司。
上述事件,不足以說明問題,但我已經(jīng)隱隱感覺到這個領(lǐng)域是沒有出路了。改變的種子已經(jīng)埋下了,但不知道改變什么,如何改變。
上述事件發(fā)生后,時間就到了2008年的下半年,我有幸被派去國外總部出差學(xué)習(xí),接觸了國外的軟件從業(yè)者。本以為國外從業(yè)者的狀況會比國內(nèi)好一些,可一個月過去了,我發(fā)現(xiàn),他們也好不到哪去,只有核心的幾個人承擔(dān)核心的工作,其余的人還是在打醬油。于是我開始慌了,都是打醬油,那老人如何比新人更優(yōu)秀呢?難道打更多的醬油?
就在此時,美國金融危機全面爆發(fā)(以美國兩大房貸巨頭暴跌為標志),公司在其母國開始重組并裁員。那時候我并沒有意識到問題的嚴重性,或許大多數(shù)人都沒意識到,都沉浸在奧運的歡樂中(呵呵!有朋友炒了幾張奧運門票賺了幾萬)。
時間過的飛快,一段時間的學(xué)習(xí)結(jié)束后,我便回國了,在國內(nèi)分公司繼續(xù)任職。趁著奧運的余溫,我也樂呵了一段時間,暫時忘記了煩惱,晃蕩到2009年。
可好景不長,金融危機遠比想象的嚴重,國內(nèi)分公司也開始裁員了,裁員規(guī)模遠超想象,幾乎每天都有多名同事離開。離開的還好,反正橫豎都是走人,最痛苦的是沒離開的,天天沉浸在折騰中,那種心情可想而知。
大半年折騰過去了,發(fā)現(xiàn)500多人的公司還剩下一100來人,我就被剩下了??偹阕隽嘶?ldquo;剩人”,好歹不是“剩男”。在有些人看來,剩下總是好的,據(jù)說有離開的同事,1年沒找到工作。
大裁員過后,我雖然被委以重任,但我已經(jīng)不想繼續(xù)在這個領(lǐng)域里發(fā)展了,此時我突然想到在國外出差時候,有幾個同事在擺弄一個叫Android的東西,于是開始看Android方面的資料,周圍的同事看到我在學(xué)習(xí)android,便給我推薦了Symbian系統(tǒng),于是我Symbian和Android一起看,后來覺得Symbian沒有前途,便毅然學(xué)習(xí)Android?,F(xiàn)在想想當初真懸,如果學(xué)了Symbian,現(xiàn)在不知道去哪哭了,看來獨立思考的能力是很重要的。
打定主意后,便開始準備了,之后又發(fā)生了一些足以改變我一生的事情,就不便多說了。再后來,告別了器重我的國外領(lǐng)導(dǎo),降薪進入一家國內(nèi)領(lǐng)先的Android方案公司。
小編:您從事Android開發(fā)這么多年,已然是一個老兵,您是如何一路堅持走到今天的?
楊云君:
從2009年從事Android至今已經(jīng)4年多了。09年降薪從Java EE領(lǐng)域轉(zhuǎn)入Android領(lǐng)域,主要是因為這個領(lǐng)域基本是一片空白,如果后續(xù)普及,自己可以有先入者的優(yōu)勢,冒點險是值得的。2011年Android大爆發(fā),用人需求大增,最多的時候一天接到70多個面試電話,周圍陸續(xù)有同事另謀高就,這時候我覺得Android市場已經(jīng)有很大的泡沫了,一旦泡沫破滅,很多公司都要玩完(可以參考上次手機泡沫破滅的例子)。于是我也隨大流迅速換公司,進入一家更穩(wěn)定的公司。一路堅持至今,是想自己的技能獲取***的價值。
小編:據(jù)了解,最近您推出了一本新書——《Android的設(shè)計與實現(xiàn) 卷Ⅰ》,而這書是針對Android四層架構(gòu)中的某一層編寫的,什么原因促使您寫了這本書?可以分享一下寫書過程中印象深刻的經(jīng)歷么?是否還有著書的計劃?
楊云君:

《Android的設(shè)計與實現(xiàn) 卷Ⅰ》是我的***本書,這本書主要針對框架層的核心模塊的運行機制進行詳細分析。我的初衷是想寫一本性能優(yōu)化的專著,可后來發(fā)現(xiàn),如果讀者不理解框架層的運行機制,性能優(yōu)化一說只能泛泛而談。因為性能優(yōu)化涉及應(yīng)用層,框架層,運行庫和內(nèi)核層等,應(yīng)用程序開發(fā)者往往只在應(yīng)用層理解應(yīng)用程序的運行機制,而系統(tǒng)層面的問題很少涉獵,這樣的話,很難以系統(tǒng)的視角分析性能問題以及ANR,OOM等問題。以ANR為例,其成因大約有十幾類,其中大多數(shù)都是系統(tǒng)層面的問題,而非應(yīng)用程序本身的問題。至于是否還有著書計劃,要看市場和讀者的反饋。

小編:Android Framework在Android系統(tǒng)中處于怎樣的地位?
楊云君:
Framework在Android系統(tǒng)中處于一種承上啟下的地位。承上的意思是框架為上層應(yīng)用提供api和運行機制;啟下的意思是框架屏蔽了下層的復(fù)雜性,為上下層的交互定義了一套規(guī)范。
小編:Android Framework運行在Linux內(nèi)核之上,Binder 是Android對Linux內(nèi)核層的一個擴展,您能簡單介紹下Binder的機制和實現(xiàn)么?
楊云君:
從Android體系結(jié)構(gòu)的角度看,Binder是Android對Linux內(nèi)核層的一個擴展,屬于字符設(shè)備驅(qū)動,Android便是通過這個驅(qū)動程序?qū)崿F(xiàn)不同進程之間的間接通信。Android通過對Binder驅(qū)動的封裝,提高了一套Binder操作的框架,便于上層使用,這樣Binder的概念便不僅僅是一個驅(qū)動,而是拓展為一種架構(gòu)。通過這種架構(gòu),Binder實際上成為“框架的框架“,Binder框架分成Native層和Java層兩部分。Android吸收了組件化的設(shè)計思想,將大量核心功能放在不同的Service組件中實現(xiàn),需要使用這些功能的其他組件,可以通過系統(tǒng)提供的接口訪問這些Service。提供服務(wù)的組件和使用服務(wù)的組件可以運行在不同的進程中,通常把Service組件所在的進程稱為Server進程,把使用Service的組件所在的進程稱為Client進程,這其實是一個C/S體系結(jié)構(gòu)。Binder變?yōu)檫@種體系結(jié)構(gòu)提供進程間通信功能。
小編:您有這么些年的Android開發(fā)經(jīng)歷,對Android應(yīng)用層,框架層源碼開發(fā)以及性能優(yōu)化有著深入的研究和認識,在學(xué)習(xí)上有什么心得可分享?Android應(yīng)用開發(fā)者和系統(tǒng)開發(fā)者怎么高效的學(xué)習(xí)Framework呢?需要掌握哪些技能?
楊云君:
學(xué)習(xí)一門技能,最重要的是兩個方面:合適的項目經(jīng)歷和主動的自學(xué)能力。技術(shù)總是在變化的,但核心的東西萬變不離其宗。學(xué)習(xí)者應(yīng)該把一個模塊徹底搞明白,即便后續(xù)版本有變化,也能很快適應(yīng)。理解框架層的運行機制是一個合格應(yīng)用開發(fā)者必備的技能,但框架層浩如煙海,學(xué)習(xí)框架層必須循序漸進各個擊破,不能眉毛胡子一把抓,比較好的入門路線可以參考《Android的設(shè)計與實現(xiàn) 卷Ⅰ》的論述,***以Binder框架層、Package Manager、消息機制、Activity Manager等模塊入手。

 

小編:您作為一位專門從事Android手機定制和開發(fā)的工程師,可以談?wù)剬ndroid系統(tǒng)的認識么?
楊云君:
Android系統(tǒng)是一款優(yōu)秀的智能手機操作系統(tǒng)之一。沒有Android的普及,大多數(shù)人可能還停留在以Symbian為代表的功能機時代。Android的優(yōu)點不必多說,相信大家都比較認同。Android不足的地方主要體現(xiàn)在性能方面,這個隨著系統(tǒng)的完善,或許會進一步優(yōu)化。
小編:目前有很多Android的手機,商家為滿足一些需求都會修改rom然后定制它們,這樣很容易導(dǎo)致開發(fā)的功能在不同的手機上顯示各不同,產(chǎn)生各種問題。面對這樣的情況,解決此類問題您有什么建議?

楊云君:

Android既然是開源的操作系統(tǒng),廠商定制是不可避免的,這個就需要應(yīng)用程序開發(fā)者和美工配合做好不同機型的適配工作。
小編:要成為一位優(yōu)秀的開發(fā)者,是否存在快速成長的捷徑?普通程序員如何一步步向優(yōu)秀的開發(fā)者目標靠近?
楊云君:
我想,快速成長的捷徑只存在于天賦極好的人身上,大多數(shù)人還是需要不斷的主動學(xué)習(xí)和項目鍛煉才能快速成長。普通程序員要想一步步向優(yōu)秀開發(fā)者的目標靠近,不斷的主動學(xué)習(xí)和項目鍛煉是很必要的。不斷的主動學(xué)習(xí),就是要不斷夯實自己的編程基礎(chǔ),對Java、C++、C等基礎(chǔ)語言需要有一定的掌握,對基本的算法有一個足夠的理解。項目鍛煉指的是要早項目中鍛煉自己分析問題和解決問題的能力,并總結(jié)經(jīng)驗。
小編:不同的Android開發(fā)階段,需要掌握的知識也不同,更清晰的了解自己處于哪一階段哪一水平對開發(fā)者來說很重要,您可否對學(xué)習(xí)Android的開發(fā)者提供一個發(fā)展規(guī)劃呢?
楊云君:
要清晰自己所處的階段,必須首先熟悉Android的體系結(jié)構(gòu)中各層涉及的技術(shù)。初學(xué)者往往以為Android是以Java編寫的,這是極大的錯誤。Android是集Java、JNI、C++、C、匯編,腳本,Linux,modem、硬件體系結(jié)構(gòu)等等于一身的集大成者。通常應(yīng)用層主要以Java為主,框架層以JNI、C++和C為主,編譯模塊以腳本為主,內(nèi)核層會涉及l(fā)inux操作系統(tǒng),以C和ARM匯編語言為主,此外還有特定硬件的實現(xiàn)庫以及modem主要也以C和匯編為主??梢娍蚣軐邮荍ava和C語系的分水嶺。以Java為主的開發(fā)者,可以應(yīng)用層和框架層為重心,以C語系為主的開發(fā)者,可以內(nèi)核、modem為重心。我的初衷是以《Android的設(shè)計與實現(xiàn)》系列圖書為引線,規(guī)劃一個完整的框架層學(xué)習(xí)路線圖,卷1以JNI,Android啟動,Binder,消息通信異步處理,Package Manager,Activity Manager為主,卷2則主要分析UI系統(tǒng)
小編寄語:生活在變化、科技在更新,世界萬物的改變,或潛移默化,或轟轟烈烈,但萬變不離其宗,技術(shù)也不會例外??焖俪砷L的捷徑就如作者說的,只可能發(fā)生在少數(shù)人身上,大多數(shù)人需要不斷的自我學(xué)習(xí)以及項目的磨礪成長起來。只要我們肯堅持,不放棄,我想一定會成功的!

 

責(zé)任編輯:張葉青 來源: 安卓巴士
相關(guān)推薦

2022-05-31 17:36:25

技術(shù)面試編程

2012-06-13 01:23:30

開發(fā)者程序員

2012-11-09 10:54:13

阿里云開發(fā)者開發(fā)

2010-06-08 15:45:58

PHP

2013-03-11 11:20:05

2012-03-13 09:17:38

開發(fā)

2013-06-07 10:07:28

開發(fā)者優(yōu)秀開發(fā)者

2019-07-08 09:36:57

Angular前端框架

2021-03-09 23:22:04

區(qū)塊鏈以太坊開發(fā)

2015-10-14 17:47:15

開發(fā)者技術(shù)

2014-01-06 03:08:29

回顧開源獨立開發(fā)者

2016-02-17 09:58:29

云之家,云之家開發(fā)者大金蝶云之家

2016-02-16 14:10:59

云之家,云之家開發(fā)者大

2012-12-25 09:49:41

FIT馮華君果粉

2020-09-22 10:36:07

Java技術(shù)開發(fā)

2015-06-11 09:16:08

開發(fā)人員云計算技術(shù)學(xué)習(xí)

2013-10-31 11:04:12

2013阿里云開發(fā)者大

2012-06-06 08:58:03

云快照云開發(fā)VMware

2015-09-23 09:18:23

開發(fā)者經(jīng)驗工具
點贊
收藏

51CTO技術(shù)棧公眾號