今天非常榮幸的是,不僅是我們現(xiàn)場的朋友可以感受到這次大會的盛況,由于有了新浪網(wǎng)以及CSDN網(wǎng)站的現(xiàn)場直播,有更多的朋友都在和我們共同見證這一激動人心的時刻。剛才在滾動大屏幕上,看到有朋友說今天的現(xiàn)場真是高手云集,不僅是高手而且是頂級的高手,在這里我們有請Google工程研究院副院長林斌來到我們現(xiàn)場,林斌曾經(jīng)擔(dān)任微軟亞洲工程院工程總監(jiān),2006年底加入Google,任Google中國工程研究院副院長工程總監(jiān),全權(quán)負責(zé)Google在中國的移動搜索與服務(wù)的團隊組織與工程研發(fā)工作,有請。
林斌:謝謝主持人的介紹。 最近幾個月Google有很多跟我們在座每位 Open Social也是我們發(fā)布的跟程序員相關(guān)的產(chǎn)品,今天下午會有Google中國工程研究院的另外一位副院長姚寶鋼給大家講另外一個相關(guān)的技術(shù),大家也都用過見過聽過,叫Gear,今天下午大概是一點鐘,歡迎大家去寶鋼的講座,非常有意思。今天我用20分鐘的時間跟大家介紹一個最近很熱門的產(chǎn)品Android,聽過這個我就不問了,我想在座的程序員,下載過SDK的程序員請舉手,還可以,大概20、30位的朋友。除了下載以后,真正用Android編過程序的在座的程序員請舉手,有好幾位。編起來感覺怎么樣?不錯啊。有沒有死機過的?我自己編過一次,第一次還好,第二次就死機了,問題還是很多。 所以我今天給大家 Android主要的目的就是一個,希望在座的每一位程序員以及全社會30億的手機用戶能夠有一個一流的用戶體驗,而且可以用它訪問全球信息的,并且讓每位朋友從中受益的這樣一個手機 這里有另外一張圖,這是由第三方權(quán)威機構(gòu)統(tǒng)計的圖,這張圖基本上就是手機的 講到全面的原因以后,我們再看一下究竟Android是一個什么東西,Android其實是很基本的兩點:第一點,Android是一個手機的開發(fā)平臺,平臺有幾個要素:一個是它是開源的,開源對在座的每一位程序員都有幫助,開放源代碼就是什么地方不好可以改動,對每一位程序員都是非常好的事情。同時因為是開源,自然是免費的,所以操作系統(tǒng)的價格就可以降下來,這樣用戶就可以從中得益。除此以外,還是一個完整的系統(tǒng),這個系統(tǒng)除了最底層的操作系統(tǒng)以外,還有中間層,還有上面的一些很有用的應(yīng)用軟件,都是包括在了這個平臺里面,可以說這個平臺是已經(jīng)包括了所有的需要構(gòu)造一個手機的整個系統(tǒng)的必須的元素,都具備了,有了這樣的一個平臺,拿起來是開源的代碼,可以往上加一些自己喜歡的應(yīng)用程序,就可以發(fā)布一臺手機了。 第二點,這么一個系統(tǒng)聽起來很好,非常的強大,什么都有。怎么做?做這個系統(tǒng),純粹Google的能力是很難做到的,純粹任何一家公司是很難做到的。所以我們成立了一個開放手機的聯(lián)盟,這個聯(lián)盟有很多很多我們的 我們來仔細看一下開放聯(lián)盟是什么樣的。這個聯(lián)盟分了五類的合作伙伴在這面,第一類就是我們很熟悉的手機運營商,運營商有很多的資源、很多的能力,能夠提供非常好的服務(wù)以及支持。比如我們很熟悉的在日本的KDDI,Docomo,Sprint,以及中國移動都是手機開發(fā)聯(lián)盟的一部分。做手機總得有手機的廠商,在這個聯(lián)盟里面有很多出名的手機廠商,比如HTC,在臺灣做的很棒的手機制作,還有三星和LG。除此以外,有了手機廠商自己是重視手機的,如果沒有這一系列的半導(dǎo)體公司給他們提供各種各樣非常好的芯片的設(shè)計和技術(shù),第三類公司就是所謂的半導(dǎo)體公司,像大家很熟悉的Intel、BROADCOM,GPS全球定位的,都在里面。除了有了硬件、有了運營商以外,下來比較需要的就是所謂的軟件服務(wù)公司,Google在這里,除了Google還有eBay,還有,都是一些軟件公司。最后一類的公司就是所謂的系統(tǒng)集成商,他們能夠跟公司很多一起合作,做的非常好把它做出來。整個聯(lián)盟的目的就是做服務(wù)貢獻,以開源方式給全世界的手機廠商跟有興趣做手機的朋友們開放。 另外我們回到Android這個平臺的設(shè)計理念,實際上我們的理念非常簡單,我們就想做一個一流手機體驗的平臺。一流怎么定義呢?分析很酷的東西多媒體等等這些,這些是應(yīng)用程序上可以做的,在手機平臺上設(shè)計的話,其實就是根據(jù)這四點的設(shè)計理念來做的。有很多就是及時響應(yīng),我用手機經(jīng)常碰到一個問題,我手機打開,用一個軟件瀏覽器按下去出來了,網(wǎng)絡(luò)的問題上不了網(wǎng),就死在那里,等半天,想換到別的程序也不行,所以響應(yīng)非常慢。及時響應(yīng)很難做,因為網(wǎng)絡(luò)的問題以及手機的內(nèi)存問題,我們希望手機的平臺及時響應(yīng),什么程序馬上反應(yīng)。 第二點,不會死機,這點很難做。我拿一個手機,上面跑一個程序,程序死機非常簡單,做程序員的都知道,程序死機不存在,程序死機不代表我的手機掛掉, 通話切換,也是簡單的要求,如果打電話的時候,我突然想起來要記一個人的地址、姓名,打開聯(lián)系人的軟件,然后輸入,但是發(fā)現(xiàn)不行,因為我在通話,把通話掛斷才能輸入信息。程序之間轉(zhuǎn)換非常難。我用一個程序,到另外一個程序,這個程序的狀態(tài)不會變,我現(xiàn)在瀏覽一個網(wǎng)頁,然后我跑去打開聯(lián)系人、打開電話,回來的時候我看網(wǎng)頁的時候應(yīng)該就是我前面在看的網(wǎng)頁的內(nèi)容,不應(yīng)該讓這個網(wǎng)頁刪掉或者看不見,所以這些理念聽起來蠻簡單的,但真正實現(xiàn)起來有很多很多困難,所以我們在做平臺設(shè)計的時候,同時跟手機聯(lián)盟一起做Android平臺的時候要解決這個問題。整個技術(shù)的平臺都是基于Linux做的,都是做的很好的平臺管理,可以支持手機。 因為時間關(guān)系,我這里有非常詳細的介紹就是整個Android系統(tǒng)框架的介紹,基本底層就是Linux內(nèi)核,是基于Linux2.6做移植的,驅(qū)動都非常成熟了。再往上走是我們的Android的本地庫,Libraries,都是用C++寫的,所以運作的效率非常高,像OpenGL是支持三維庫的,這個庫還有一個好處,如果你的手機有硬件圖象加速器的話,可以充分調(diào)動這個加速器。這邊還有一個Media Framework是能夠播放所有類型的解碼器,所以大家在這個手機上就可以聽音樂、看視頻,都沒有問題。FreeType是字體的。這邊是Android有一個很大的方面,就是虛擬機叫做Dalvik,有三點主要的特征,它非常優(yōu)化:第一是完全優(yōu)化的虛擬機,在虛擬機里面是共享的,還有一個是對內(nèi)存的應(yīng)用非常有效。這個Dalvik虛擬機在不同的程序都可以運行,如果一個程序造成Dalvik死機的話,另外一個是不會死機的。 上面是用JAVA語言來實現(xiàn)的,在這上面標(biāo)了一層應(yīng)用程序,這是整個Android,大家在網(wǎng)上下載的就可以看到,比如有聯(lián)系人、有打電話等等這樣子。 在編寫每一個程序的時候,實際上每一個程序可以分成四類,簡單說一下: Activities是一個用戶界面,一個可以想像成一個屏幕一屏,舉個例子,大家要編寫一個郵件程序,可能要有三個Activities,一個是可能是顯示一個郵件的,第二個顯示郵件內(nèi)容,第三個是編寫新郵件的時候Activities。 IntentReceivers,我可以編寫一個程序,我的Intent是要瀏覽網(wǎng)頁,當(dāng)別的程序觸發(fā)你的程序我要瀏覽網(wǎng)頁,就會觸發(fā)你的程序,你的網(wǎng)頁就會跳出來,然后就可以瀏覽網(wǎng)頁了,所以實際上是各個聯(lián)系整個所有的程度的一個很重要的機制,也是這么一個東西使的它在這個程序上完全顯現(xiàn),所有的程序都是一個完全關(guān)聯(lián)的,都能夠互相調(diào)用的體驗。服務(wù)Services就是沒有意外的,比如聽音樂,打開以后就放了。最后ContentProviders,可以讓你的程序所有的程序共享,比如聯(lián)系人,就是一個共享的,我可以讓所有在這個手機上的別的應(yīng)有程序訪問聯(lián)系人的姓名、電話、地址,所以它是一個蠻重要的組成部分。 最后舉個例子,所有的應(yīng)用程序都有一個共同的目的就是要挑選圖片,比如在我的HOME的時候我要挑選一個墻紙,挑一個聯(lián)系人的圖片放在里面,在彩信的時候挑選圖片發(fā)出去,挑選圖片這樣一個請求,請求出來以后系統(tǒng)會根據(jù)在整個手機上的注冊,挑一個最好的,一開始會跳出Photo Gallery的程序,你要挑圖片嘛,給你一個UI然后挑出圖片。我覺得這個系統(tǒng)不好,選擇Picasa這個,下次再挑圖片的時候就會自動去Picasa這樣的東西。 還有Google公司出了1000萬美元,出了一個Android程序員挑戰(zhàn),能夠制作出最有創(chuàng)新創(chuàng)新的Android程序員和程序員的公司,1000萬美元。大家有興趣的話,可以上我們的網(wǎng)上看看SDK,可以下載下來。我簡單做一個Demo。大家如果下載了SDK的話,所有的Demo內(nèi)容都在里面,打開以后,到這里來Others,這里面打一個項目名字,隨便打一個,Project的名字可以打上大家覺得有用的,ActivityName就打一個項目測試二的名字,Application就可以打一個名字,點擊以后就生成了一個文件,這個文件里面有打開源程序,這個源程序關(guān)鍵還是這個源程序。還是剛才講的Activity,是只有一個屏幕和界面的非常簡單的程序,我們什么都不用做,馬上執(zhí)行Debug,這里就編譯這個地方就出來了,這是一個仿真器,這個仿真器裝了SDK就有,是跟著SDK來的。我這么簡單好象不過癮,我們用里面一個類,這個類可以改它的字體和大小。我們可以在這個代碼這里加進去一個類:TextView tv=new TextView(this),這里面會出現(xiàn)很多的類,比如打上tv.setTextColor,用16位表示的話,前面兩位是亮度,后面的六位是紅綠藍三個顏色,所以如果我們讓顏色變成紅色的話,把后面兩個就變成FF,最后兩個變成00,一共是四個0。我們再把Size改一下,這個Size打大一點36。再下來我們要把字體打上去,就SetText好了,我們打上(“Hello Android from CSDN 2.0”),我們在SetContentView就把TV打上去,這么簡單的程序,再運行看看。選Yes,Yes、Yes、繼續(xù)。然后就出來了,效果就出來了,非常簡單的程序。歡迎大家下載,希望我們的SDK的下載量第一的同時的話,也可以贏取1000萬美元的大獎吧。謝謝大家。 主持人:非常感謝林先生。其實我們與在座各位的相聚才不過一個小時的時間,大家都和我同一個感覺,就是不虛此行、滿載而歸,我們的承諾是在這兩天里,我們將給您更多,讓我們期待吧,在接下來的30分鐘里面,我們稍微休息一下,共同回味一下所思所想所得,我們期待著您再次光臨我們的現(xiàn)場,踏上我們的科技之旅。稍候再見。 |
|