3 回答

TA貢獻1860條經驗 獲得超9個贊
1.背景知識 1.1 手機平臺: 平臺是指 MTK、展訊、英特爾等芯片公司推出的,相對應于其處理器芯片的平臺。 不同公司的源碼不太相同,一個公司不同平臺有差異。 1.2 手機平臺: 源碼+編譯工具+燒寫工具+調試工具 2.使用到的工具 2.1 dos 命令 tree 指令:用于分析源碼目錄結構,大致了解一個項目由各哪幾部分構成。 2.2 source insight / VIM : 這是常用的源碼編輯工具,可以用它們進行主要的源碼閱讀。 2.3 VS2008 : 這是常用的編輯器,調試器了,這個和手機平臺中的編譯工具、調試工具是一樣的。 2.4 熟悉語言的語法,調用規則 2.5 豐富的源碼閱讀經驗(非必需) 3.分析步驟*(3.0 在你當前的環境中能成功編譯源碼) 3.1 分析源碼的組成結構。項目的目錄結構的劃分肯定是經過規劃了的。因此,拿到一部分源碼,根據其目錄的劃分,對源碼進行一次大體的了解是非常有必要的。比如說 drv 這個目錄下肯定放的是驅動相關的源碼,Game這個目錄下放置的是游戲源碼,DB目錄下放置的是訪問數據庫的源碼等。(在這一步,適當使用 tree 命令,將源碼的目錄結構輸出出來,對整個分析工作是大有幫助的) 3.2 尋找項目的主函數。每個程序都有主函數,第二步是找出他的主函數。 在C/C++ 函數中,就是 main 函數。 尋找的方法很多,比如在SourceInsight 中按 F7 查找,也可以使用 grep 工具查找,也可以在window 自帶的搜索工具。方法很多。找到主函數以后,注意看其啟動參數,以及啟動之后開了那些線程,一般是一些列的 init(), 函數構成。 3.3 尋找自己負責的部分的源碼。經過以上兩步,就能對項目有個大致了解,接下來,就是尋找自己工作相關的那部分源碼了。如果你想修改一下某個游戲的實現,則去Game文件夾中尋找對應的源碼進行熟悉,如果你是想修改驅動,你就去 drv 目錄下熟悉相關源碼。 3.3.2 熟悉重要的數據結構,重要的函數,厘清細節。 *3.4 編譯源碼,使用調試工具,打印log等各種手段,理清程序運行的規律。 3.5 多于同項目的同事交流 4.后期工作 4.1 保存文檔經過你的艱苦的工作,你終于弄明白了整個項目的構成,請不要忘記將探尋過程編寫成文檔,方便后人。
添加回答
舉報