Android裝置開發過程的軟硬整合關鍵及挑戰

4,475 views
4,379 views

Published on

A general talk for android porting.
target audience are managers and senior developers who wants to build up team porting Android.

Published in: Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,475
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
171
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Android裝置開發過程的軟硬整合關鍵及挑戰

  1. 1. Android 裝置開發過程的 軟硬體整合關鍵及挑戰 Tick Chen, 0xlab June, 9, 2009
  2. 2. 自我介紹 •TICK •電玩的時間單位 •貓蝨
  3. 3. Agenda •Android 是什麼? •開發 Android 的困難點 •軟硬體整合的關鍵 •結論
  4. 4. Agenda •Android 是什麼? •開發 Android 的困難點 •軟硬體整合的關鍵 •結論
  5. 5. What's Android? •Google 為手持(移動)裝置而設計的一整套系 統。 –整合 Google 的服務 –建構到處上網的環境 –打破桌機上網的使用習慣 –建構全新的上網經驗
  6. 6. Android is Linux?
  7. 7. Android 預期中的明天 •到處都可以上網的時代 •更多的個人化服務 •結合地理資訊和個人喜好 •人人都可以寫手機軟體:跳蚤市埸
  8. 8. 她!適合你嗎? •選擇一個軟體平台,也同時決定了很多事。 –Technology –User scenario •求婚之前…你可以再想一想…
  9. 9. Agenda •Android 是什麼? •開發 Android 的困難點 •軟硬體整合的關鍵 •結論
  10. 10. [ 準備出貨嗎? ]
  11. 11. 關鍵 在有限的時間及資源下開發出產品
  12. 12. Android 開發時的困難點 •在 porting 時,大於等於 Linux porting –所有 devices 的 porting –Google hacking •對於 Framework 的掌握度 •不完整的 HAL 層(現況) •大量的 hard code •專為 HTC platform 而寫的部份相當的多 •Android 依然在快速演進 •不易使用現有的 Linux 應用程式
  13. 13. 關鍵項目 •人力資源 •工具使用 •良好的溝通
  14. 14. 人力資源 •懂架構的人 –能快速看懂架構,且有能力修改的人 •基本功很重要 –Trace Code 要能快速確實 –OS 架構要清楚 –熟悉 C, C++, Java –善用工具 •好品質可以幫你省錢 –能寫出高品質程式碼的工程師 •細心的人 –驗証專家
  15. 15. 工具 • 提高正確性 • 減少重覆的工作 • 專注資源於問題上 • 避免爆肝和工作狂 • 生命應該要浪費在美好的事物上
  16. 16. 工具的使用:人類文化發展的關鍵 •開發工具 •管理,溝通工具
  17. 17. Code 2.0 •Repo •Git •分散式開發模式 •以 git branch 來管理程式碼 •程式碼合併 (Merge): –Branches merge –Cherry-pick –Octopus merge
  18. 18. Toolchain •徹底的發揮硬體效能 •Instruction Set 混用可能出現的問題 –不可預期的錯誤 –無法正確使用廠商的 library •使用正確的 Instruction Set •統一所使用的 Toolchain
  19. 19. Build System •不自由的 Build 環境 •Makefile •Prelink-linux-arm.map – 人工指定 •Android.mk –Bionic –Autotools?
  20. 20. Tracing Code 工具 •茫茫 Code 海之中找到關鍵程式碼 •跨語言 Tracing •LXR •doxygen •eclipse •grep •ctags
  21. 21. 管理、溝通工具 •產品規格書的重要性 ? 一個溝通的平台。 –一個想法,各自表述? •產品規格書的版本管理 –同一時間點,每個人要看到相同的規格書 •Issue Tracker 專注資源於真正的問題上
  22. 22. 驗證 •穩定、 •驗證、 •可靠性、 •成本、 •驗收、 •先想好如何測試
  23. 23. 硬體模組的選擇和搭配 •選擇硬體 –整合成本 –Cost •選用已被証明過的組合 •選用開發動能高的平台 –支援度高 –資源多 –借力使力
  24. 24. Driver Checklist •CPU •NAND/NOR Flash •Memory •SD/MMC •Uart •USB host/OTG •Video chip •Connectivity: WiFi, •LCD/Panel •Bluetooth, GSM/UMTS/ CDMA •Audio codec Camera / GPS •Touchpanel/Mouse/Tra • ceball •Power Manager
  25. 25. Community •“Who write the code, who get the power” –聲望在社群之的重要性 -- 機會 –一步步領導科技的走向 •Patch –Community 改 code 的方式 –用 patch 得到特定領域的主導 –每個 patch 都有一個也只有一個特定的目地 •upstream 才是王道 ? Yes/No •Follow up to upstream
  26. 26. Agenda •Android 是什麼? •開發 Android 的困難點 •軟硬體整合的關鍵 •結論
  27. 27. 結論 •Android 是否符合產品需求 •選擇開發動能較大的平台,借力使力 •尋找,培養有實力的開發團隊 •使用適當的工具,加速開發 •確實的驗証軟體品質
  28. 28. Reference •https://review.source.android.com/ •http://groups.google.com/group/android- porting
  29. 29. Special Thanks
  30. 30. ~Q&A~ Thank you.

×