[心得] Android BSP team工作心得

看板Tech_Job作者 (小銘)時間11年前 (2013/04/05 22:54), 編輯推噓34(34010)
留言44則, 36人參與, 最新討論串1/3 (看更多)
最近在自己的blog寫了篇文章: http://tinyurl.com/cn5oaxd (無廣告但有自製流程圖) 主要陳述的內容是這一年多來在Android BSP team的工作心得 同時我也想推薦這樣的職務內容 理由也有在文章中提到 不外乎是Android行動裝置正當紅 BSP學的東西從底層到上層都有可能會涉略到 因此可學習到的範圍涵蓋較廣 雖然工作內容是比較偏繁瑣一點 但是對於整個Android的架構 會比較了解些喔 所以如果對於Android的軟體開發(非Framework層)有興趣的人 可以試試看BSP的職務~ 個人覺得只要具備以下的能力即可勝任: (1) 對C語言有最基本的熟識 (2) 有耐心 這是我個人的心得~ 雖然會碰觸到大量的Linux指令,build code環境,以及linux Kerenl的相關知識, 但我覺得到了裡面之後再學就好,之後自然也會熟稔。 也許有些關公面前耍大刀~ 不過可以分享給對於這領域還尚未了解以及想更了解的朋友們~ 如果不想點blog連結的朋友,我也將本文內容貼在下面,還請多指教:) ==================本文內容================== 工作到現在也一年七個月了... 雖然自己研究所的專業是多媒體方面(Major in CS) 但因緣際會,我到後來選擇了ASUS Android BSP team 選擇的原因不外乎: (1)看好Android行動裝置會紅 (2)BSP學的會比較多 (3)有學長的實際經驗分享 從一開始完全不知道BSP在幹嘛的... 到現在大概也懂個至少6~7成了 小弟拋磚引玉,來大概介紹一下BSP是甚麼,以及工作的內容為何。 也分享給可能想來、想來,或即將要來做BSP工作的人們,做為參考~ 讓我們看下去... BSP的全名為「Board Support Package」 BSP可以想成它就是一包source code,而這包source code透過linux所建構出來的 firmware(韌體),可以在Android裝置上開機。 那BSP到底是怎麼形成的呢... 在此簡單解說一下 我們知道,所有的Android行動裝置上,都有一個非常重要的核心角色-CPU 而一些眾所皆知的CPU晶片大廠,像是Qualcomm、Nvidia、TI、MTK...等等,都會提供他 們自己的Pure BSP,讓各晶片廠自己的「公版」能夠開機。 那麼,像一些OEM系統廠(ASUS、HTC、Samsung...etc)是怎麼開發出來他們自己的BSP以及 其產品的呢? 首先,在硬體上,OEM產品就會跟某晶片廠的公版有差異。 這些差異可能包含: Camera、RAM、Display Panel、Touch Panel、Audio、Sensor...etc 而OEM系統廠的BSP team,其最主要的工作,就是將這些差異,基於Pure BSP,作所謂 Porting(移植)的動作。 雖然只是簡單的一句話...但其實做起來並不容易 我之前有提到,BSP會學的比較多一點... 在說明為什麼之前,先看以下這張圖: (這是Android裝置開機大概的流程) 我們可以想像越前面的stage越底層,而到越後面的stage是越上層。 而BSP的工作從Bootloader、Kernel,到Android OS層都會碰到。 底層方面,會常常跟硬體方面的人cowork,了解硬體線路的設計,軟體的人才能夠作對應 的改變,使得某些function能夠work且穩定。 上層方面,APP層的研發人員,也會蠻常跟kernel driver作互動的,所以也必須常常跟 BSP team的人cowork。 因此,我才會說,BSP team的人,是底層跟上層都能夠touch到的~ BSP的工作只有讓Android裝置能夠開機起來就夠了嗎? 絕對不是這樣的!!!!! 能夠開機而且各function work只是基本而已,最重要的是要夠穩定。 穩定的定義為: (1) 不能常當機 (2) 要夠省電 所以這之間,我們會跟CPU晶片廠有著非常密切地往來, 也就是會開bug問他們說: "為什麼某function會crash,為什麼會這麼耗電..."之類的 也因此,BSP team也需要常常做系統的穩定度測試以及電量的量測。 看到這裡,退卻了嗎...? 關於BSP的工作內容? 其實能夠撐下去的話,我覺得能夠學的東西還蠻多的喔,而且對於瑣事的容忍程度也會大 增XD 以上,是個人目前粗淺的心得... 提供給大家 總心得: 簡單回憶一下目前學到的技巧: (1) 了解Android整個系統的架構 (2) Linux指令變得較熟些 (完全無經驗也可入門喔,像我就是) (3) Kernel、boot loader相關知識 (4) 寫說明文件的技巧 (自己看懂跟讓別人看懂是兩回事) 大概就...以上這些拉 其他還沒想到@@" 總之,BSP team的工作,就是產生一包屬於某個Android裝置的BSP code,並且產生 firmware讓此裝置開機且穩定地使用。 對於標題的詮釋: A good choice --> 這是我目前的感想~ for me 但其實自己還是只有學些皮毛而已,希望之後能了解更多方面的知識~! ============================================ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.141.170

04/05 23:00, , 1F
推好文喔
04/05 23:00, 1F

04/05 23:15, , 2F
04/05 23:15, 2F

04/05 23:23, , 3F
為啥離開啊?平版部分?
04/05 23:23, 3F

04/05 23:24, , 4F
三樓?
04/05 23:24, 4F

04/05 23:41, , 5F
04/05 23:41, 5F

04/05 23:43, , 6F
有看有推
04/05 23:43, 6F

04/05 23:48, , 7F
04/05 23:48, 7F

04/05 23:52, , 8F
Cool
04/05 23:52, 8F

04/06 00:07, , 9F
推 很棒的分享!
04/06 00:07, 9F

04/06 00:16, , 10F
04/06 00:16, 10F

04/06 00:19, , 11F
推 :)
04/06 00:19, 11F

04/06 00:26, , 12F
回3F:我還沒離開阿XD
04/06 00:26, 12F

04/06 01:00, , 13F
04/06 01:00, 13F

04/06 01:07, , 14F
國內除了M跟HTC還有誰在做這一塊阿
04/06 01:07, 14F

04/06 01:15, , 15F
每次看到這種文就覺得作者一定是學佛的 有大愛精神
04/06 01:15, 15F

04/06 01:17, , 16F
之前也有個人很詳細的解釋了BSP的一些細節 也是很佛心
04/06 01:17, 16F

04/06 01:23, , 17F
victor!
04/06 01:23, 17F

04/06 01:50, , 18F
Thanks....淺顯易懂.....
04/06 01:50, 18F

04/06 01:56, , 19F
bsp 待遇好 樂勝所有的軟體工程師
04/06 01:56, 19F

04/06 01:57, , 20F
看到bsp我就要跪著看這篇了
04/06 01:57, 20F

04/06 02:05, , 21F
感謝分享
04/06 02:05, 21F

04/06 03:42, , 22F
asus也有這塊阿...
04/06 03:42, 22F

04/06 07:26, , 23F
手機廠都有BSP team吧
04/06 07:26, 23F

04/06 10:16, , 24F
Victor大大@@
04/06 10:16, 24F

04/06 11:40, , 25F
寫的不錯 但我比較想知道三四年後的心得 XD
04/06 11:40, 25F

04/06 11:57, , 26F
04/06 11:57, 26F

04/06 13:35, , 27F
push~!
04/06 13:35, 27F

04/06 13:49, , 28F
三四年大概是除錯經驗的累積
04/06 13:49, 28F

04/06 14:12, , 29F
真正做過才知道 BSP並沒多好 薪水少 事情雜 不是vendor
04/06 14:12, 29F

04/06 14:14, , 30F
樓上內行喔 專業打雜組
04/06 14:14, 30F

04/06 14:51, , 31F
樓上推考公職
04/06 14:51, 31F

04/06 15:30, , 32F
那什麼team比較好呢?
04/06 15:30, 32F

04/06 16:05, , 33F
感謝分享
04/06 16:05, 33F

04/06 18:06, , 34F
好的主管+能夠接受的薪水+下班時間 就是好team
04/06 18:06, 34F

04/06 18:21, , 35F
樓上,你這不是廢話嗎? 你這答案就是通解
04/06 18:21, 35F

04/06 20:24, , 36F
這世界有那麼爽的嗎?
04/06 20:24, 36F

04/07 00:46, , 37F
這一次接觸這個詞是看VxWorks Manual porting 感概..
04/07 00:46, 37F

04/07 00:46, , 38F
VxWorks也差不多了...
04/07 00:46, 38F

04/07 00:56, , 39F
04/07 00:56, 39F

04/07 13:44, , 40F
下班時間 跟 年薪 有些人很難取得平衡 不是嗎?
04/07 13:44, 40F

04/08 10:49, , 41F
推yolasiku,很專業的打雜
04/08 10:49, 41F

04/08 20:56, , 42F
不是大多丟給SOC廠嗎 XD
04/08 20:56, 42F

04/14 09:01, , 43F
我們會跟CPU晶片廠有著非常密切地往來----->這句重點
04/14 09:01, 43F

04/14 09:02, , 44F
有bug叫vendor的FAE/AE過來關廁所^_<
04/14 09:02, 44F
文章代碼(AID): #1HNkMbMM (Tech_Job)
文章代碼(AID): #1HNkMbMM (Tech_Job)