SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
Android
 裝置開發過程的
軟硬體整合關鍵及挑戰

 Tick Chen, 0xlab
  June, 9, 2009
自我介紹

•TICK
•電玩的時間單位
•貓蝨
Agenda
•Android 是什麼?
•開發 Android 的困難點
•軟硬體整合的關鍵
•結論
Agenda

•Android 是什麼?
•開發 Android 的困難點
•軟硬體整合的關鍵
•結論
What's Android?
•Google 為手持(移動)裝置而設計的一整套系
  統。
  –整合 Google 的服務
  –建構到處上網的環境
  –打破桌機上網的使用習慣
  –建構全新的上網經驗
Android is Linux?
Android 預期中的明天
•到處都可以上網的時代
•更多的個人化服務
•結合地理資訊和個人喜好
•人人都可以寫手機軟體:跳蚤市埸
她!適合你嗎?
•選擇一個軟體平台,也同時決定了很多事。
  –Technology
  –User scenario
•求婚之前…你可以再想一想…
Agenda
•Android 是什麼?
•開發 Android 的困難點
•軟硬體整合的關鍵
•結論
[ 準備出貨嗎? ]
關鍵




在有限的時間及資源下開發出產品
Android 開發時的困難點
•在 porting 時,大於等於 Linux porting
   –所有 devices 的 porting
   –Google hacking
•對於 Framework 的掌握度
•不完整的 HAL 層(現況)
•大量的 hard code
•專為 HTC platform 而寫的部份相當的多
•Android 依然在快速演進
•不易使用現有的 Linux 應用程式
關鍵項目
•人力資源
•工具使用
•良好的溝通
人力資源
•懂架構的人
  –能快速看懂架構,且有能力修改的人
•基本功很重要
  –Trace Code 要能快速確實
  –OS 架構要清楚
  –熟悉 C, C++, Java
  –善用工具
•好品質可以幫你省錢
  –能寫出高品質程式碼的工程師
•細心的人
  –驗証專家
工具
•   提高正確性
•   減少重覆的工作
•   專注資源於問題上
•   避免爆肝和工作狂
•   生命應該要浪費在美好的事物上
工具的使用:人類文化發展的關鍵
•開發工具
•管理,溝通工具
Code 2.0
•Repo
•Git
•分散式開發模式
•以 git branch 來管理程式碼
•程式碼合併 (Merge):
   –Branches merge
   –Cherry-pick
   –Octopus merge
Toolchain
•徹底的發揮硬體效能
•Instruction Set 混用可能出現的問題
   –不可預期的錯誤
   –無法正確使用廠商的 library
•使用正確的 Instruction Set
•統一所使用的 Toolchain
Build System
•不自由的 Build 環境
•Makefile
•Prelink-linux-arm.map – 人工指定
•Android.mk
   –Bionic
   –Autotools?
Tracing Code 工具
•茫茫 Code 海之中找到關鍵程式碼
•跨語言 Tracing
•LXR
•doxygen
•eclipse
•grep
•ctags
管理、溝通工具
•產品規格書的重要性 ? 一個溝通的平台。
   –一個想法,各自表述?
•產品規格書的版本管理
   –同一時間點,每個人要看到相同的規格書
•Issue Tracker 專注資源於真正的問題上
驗證
•穩定、
•驗證、
•可靠性、
•成本、
•驗收、
•先想好如何測試
硬體模組的選擇和搭配

•選擇硬體
  –整合成本
  –Cost
•選用已被証明過的組合
•選用開發動能高的平台
  –支援度高
  –資源多
  –借力使力
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
Community
•“Who write the code, who get the power”
    –聲望在社群之的重要性 -- 機會
    –一步步領導科技的走向
•Patch
    –Community 改 code 的方式
    –用 patch 得到特定領域的主導
    –每個 patch 都有一個也只有一個特定的目地
•upstream 才是王道 ? Yes/No
•Follow up to upstream
Agenda
•Android 是什麼?
•開發 Android 的困難點
•軟硬體整合的關鍵
•結論
結論
•Android 是否符合產品需求
•選擇開發動能較大的平台,借力使力
•尋找,培養有實力的開發團隊
•使用適當的工具,加速開發
•確實的驗証軟體品質
Reference
•https://review.source.android.com/
•http://groups.google.com/group/android-
  porting
Special Thanks
~Q&A~
Thank you.

Weitere ähnliche Inhalte

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

Android快速发布&持续集成
Android快速发布&持续集成Android快速发布&持续集成
Android快速发布&持续集成whykill
 
2013年京JS参会分享
2013年京JS参会分享2013年京JS参会分享
2013年京JS参会分享Jiyee Sheng
 
Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)
Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)
Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)Calvin C. Yu
 
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)My own sweet home!
 
1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdfFEG
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)My own sweet home!
 
EtherCodes中的HTML5
EtherCodes中的HTML5EtherCodes中的HTML5
EtherCodes中的HTML5Garry Yao
 
Layer 8 - Open source communities and your product
Layer 8  - Open source communities and your productLayer 8  - Open source communities and your product
Layer 8 - Open source communities and your productRex Tsai
 
愛創小小聚201307 小強分享
愛創小小聚201307 小強分享愛創小小聚201307 小強分享
愛創小小聚201307 小強分享iTrEnD
 
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0) 開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0) My own sweet home!
 
Android 研发的昨天、今天 和 明天
Android 研发的昨天、今天 和 明天Android 研发的昨天、今天 和 明天
Android 研发的昨天、今天 和 明天oasisfeng
 
ARM ® mbed™ 平台之研究及實作
ARM ® mbed™ 平台之研究及實作ARM ® mbed™ 平台之研究及實作
ARM ® mbed™ 平台之研究及實作艾鍗科技
 
HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型Tom Fan
 
Appcan平台介绍
Appcan平台介绍Appcan平台介绍
Appcan平台介绍36Kr.com
 
Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作kewuc
 
注重实效的编程(2)
注重实效的编程(2)注重实效的编程(2)
注重实效的编程(2)Horky Chen
 
课题二:Node.js那些事儿
课题二:Node.js那些事儿课题二:Node.js那些事儿
课题二:Node.js那些事儿Liu Allen
 
Drupal7第一堂
Drupal7第一堂Drupal7第一堂
Drupal7第一堂Hen Chen
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?Kirk Chen
 
DevOps的神鬼奇航
DevOps的神鬼奇航DevOps的神鬼奇航
DevOps的神鬼奇航Edward Kuo
 

Ähnlich wie Android裝置開發過程的軟硬整合關鍵及挑戰 (20)

Android快速发布&持续集成
Android快速发布&持续集成Android快速发布&持续集成
Android快速发布&持续集成
 
2013年京JS参会分享
2013年京JS参会分享2013年京JS参会分享
2013年京JS参会分享
 
Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)
Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)
Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)
 
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
 
1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
 
EtherCodes中的HTML5
EtherCodes中的HTML5EtherCodes中的HTML5
EtherCodes中的HTML5
 
Layer 8 - Open source communities and your product
Layer 8  - Open source communities and your productLayer 8  - Open source communities and your product
Layer 8 - Open source communities and your product
 
愛創小小聚201307 小強分享
愛創小小聚201307 小強分享愛創小小聚201307 小強分享
愛創小小聚201307 小強分享
 
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0) 開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
 
Android 研发的昨天、今天 和 明天
Android 研发的昨天、今天 和 明天Android 研发的昨天、今天 和 明天
Android 研发的昨天、今天 和 明天
 
ARM ® mbed™ 平台之研究及實作
ARM ® mbed™ 平台之研究及實作ARM ® mbed™ 平台之研究及實作
ARM ® mbed™ 平台之研究及實作
 
HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型
 
Appcan平台介绍
Appcan平台介绍Appcan平台介绍
Appcan平台介绍
 
Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作
 
注重实效的编程(2)
注重实效的编程(2)注重实效的编程(2)
注重实效的编程(2)
 
课题二:Node.js那些事儿
课题二:Node.js那些事儿课题二:Node.js那些事儿
课题二:Node.js那些事儿
 
Drupal7第一堂
Drupal7第一堂Drupal7第一堂
Drupal7第一堂
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?
 
DevOps的神鬼奇航
DevOps的神鬼奇航DevOps的神鬼奇航
DevOps的神鬼奇航
 

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