Android Add-ons

來源:互聯網
上載者:User
Android Add-ons

本文暫時只針對Android 1.5 Cupcake以及1.6 Donut平台對Add-ons進行分析。

Android Add-ons是Android中的可選API。Google和Sun相同,把部分高端應用作為可選API供手機生產商定製不同的硬體支援模組。在JME中Sun是以JSR方式公布而Google採用了Add-ons API。

一.開發用的SDK
從1.5開始,Google release出的android版本會將Google的一些特色服務分出來,整合到Add-ons中,編譯的庫在add- ons\google_apis-3\libs目錄的map. jar下,我們可以將它們反編譯看到裡面的一些“內幕”。
所以我們如果想在自己的應用中應用到Add-ons的東西,在建立Eclipse project的時候,需要選擇Build Target 為3 (SDK1.5 Cupcake) ,或4(SDK1.6 donut) 

這樣我們的程式就可以import Add-ons中的class,使用裡面的方法。

二.裝置運行庫
2.1Emulator(模擬器)
安裝並運行載有Add-ons API的程式,需要建立一個Target ID為3 或者 4的 AVD(Android Virtual Device)
例如:
android create avd –n GoogleAddons –t 3  (1.5和1.6通用)或者
Android create avd –n GoogleAddons –t 4 (只適用於1.6)
AVD啟動之後,我們可以查看到system/framework以及system./etc/permissions中多了一些內容

對,這個就是Add-ons程式在裝置中的運行庫(被最佳化成了dex格式的檔案)。

2.2 Target(手機終端)
作為與Google合作的手機終端的製造商
如果想在自己的Android終端中整合Google的一些應用,例如map,market,picasa,sync等,需要和Google簽約,這樣Google會有專人幫你將這一系列服務整合到你的平台中來。
作為沒有和Google合作的手機終端的製造商
我們可以使用破解的方法將Add-ons中的運行庫整合到自己的framework中來(build到手機終端的system.img中)。
操作如下:
1. 在Android中,額外支援Google Add-ons(Google Maps),需要將如下檔案(從標準的SDK中pull出來的,也可以從GPhone中pull出來)打包進System.img
Google Add-ons只需要1--2
Goolge Maps(Google的地圖程式) 需要1--5

1)system/framework       com.google.android.maps.jar
2)system/etc/permissions  com.google.android.maps.xml
3)system/framework       com.google.android.gtalkservice.jar
4)system/etc/permissions  com.google.android.gtalkservice.xml
5system/app             Maps.apk (Google Maps v3.0)

2.源碼:Android Cupcake Release(經測試,在donut平台同樣適用。)
1)編譯源碼(為了產生out/target目錄中Android最原始的東西)
2)將以上檔案加入out/target/product/generic相應目錄,在源碼根目錄使用make snod打包,獲得新的system.img

三 .SDK中常用類解析
參考SDK中的add-ons\google_apis-4\docs\reference\index.html

3.1 使用Add-ons我們到底能實現那些功能?
1.MapActivity—管理Activity的生命週期,為mapview建立及取消對map service的串連。

2.MapView—控制MapView中的view組件,管理Overlay,提供View的準系統。
使用多種地圖模式(地圖模式(某些城市可即時對交通狀況進行更新),衛星模式,街景模式)來查看Google Map

3.MapControl 地圖移動,伸縮,以某個GPS座標為中心。

4.Overlay—覆蓋到MapView的最上層,可以擴充其ondraw介面,自訂在MapView中顯示一些自己的東西。MapView通過MapView.getOverlays()對Overlay進行管理。
除了Overlay這個基類,Google還擴充了2個比較有用的Overlay
1)MylocationOverlay—整合了Android.location中接收當前座標的介面,整合SersorManager中CompassSensor的介面
我們只需要enableMyLocation(),enableCompass就可以讓我們的程式擁有即時的MyLocation以及Compass 功能。

2)ItemlizedOverlay—管理一個OverlayItem鏈表,用圖片等資源在地圖上作風格相同的標記。

5.Projection—MapView中GPS座標與裝置座標的轉換

3.2 實做
The first steps with Android and Google Maps:
http://blogs.itemis.de/frey/2009/04/04/location-based-services-on-android-part-1/
http://blogs.itemis.de/frey/2009/04/07/location-based-services-on-android-part-2/
http://blogs.itemis.de/frey/2009/04/15/location-based-services-on-android-part-33-customoverlays

四. Add-ons源碼及相關的開源項目
4.1Add-ons的Map.jar的源碼(版本比較早,不過對瞭解Map的整個架構及實做很有協助)
http://gitorious.org/android-maps-api/android-maps-api/trees/master/src/com/anconafamily/android/maps
如果想更深入,只能反編譯add-ons\google_apis-3\libs下的那支Map.jar裡面的class了。

4.2mapview-overlay-manager 讓地圖的應用使用起來更方便
     http://www.anddev.org/viewtopic.php?p=25712

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/clybe/archive/2009/09/27/4602379.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.