• Like
Android裝置開發過程的軟硬整合關鍵及挑戰
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

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

  • 4,006 views
Published

A general talk for android porting. …

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,006
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
169
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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