Android 1.5 平台整合 Google Apps (Market;GTalk;Google Maps;GMail;Voice Search)

來源:互聯網
上載者:User

作者:徐建祥(netpirate@gmail.com)
日期:2009/12/19
網址:http://www.anymobile.org

移植Google Apps (Market;GTalk;Google Maps;GMail;Voice Search)的大致步驟如下:

1/ 通過ADB,從Google定製的手機下載相關的檔案(jar/lib庫,apk安裝檔案,xml許可權檔案等);
2/ 修改兩個make指令檔:core.mk和generic_with_google.mk;
3/ make generic_with_google,生產新的system.img鏡像檔案的時候包含這些檔案。

注意點:

a. 移植的手機需要支援上網,通過SetupWizard.apk驗證Google帳戶,該程式在待機介面前運行,驗證失敗的話,會無法進入待機介面;Market;GTalk;GMail均需要驗證Google帳戶,Market需要GTalk服務。
b. Android 1.5版本不支援街景;
c. 如果只移植Google Maps,則只需要移植以下3個檔案:
Adding vendor/google/app/Maps.apk
Adding vendor/google/etc/permissions/com.google.android.maps.xml
Adding vendor/google/framework/com.google.android.maps.jar

下面是core.mk和generic_with_google.mk的代碼修改:

Sending build/target/product/core.mk

 1  PRODUCT_BRAND :=
 2  PRODUCT_NAME :=
 3  PRODUCT_DEVICE :=
 4  PRODUCT_POLICY :=  android.policy_phone
 5  PRODUCT_PROPERTY_OVERRIDES :=  /
 6      ro.config.notification_sound=F1_New_SMS.ogg
 7  
 8  PRODUCT_PACKAGES :=  /
 9      framework-res /
10      Browser /
11      Contacts /
12      Launcher /
13      HTMLViewer /
14      Phone /
15      ContactsProvider /
16      DownloadProvider /
17      GoogleSearch /
18      MediaProvider /
19      SettingsProvider /
20      TelephonyProvider /
21      UserDictionaryProvider /
22      PackageInstaller /
23      Bugreport /
24      ImProvider

Sending build/target/product/generic_with_google.mk

 1  # This is a generic product that isn't specialized for a specific device.
 2  # It includes the base Android platform including some Google-specific features.
 3  # If you do not want to include Google specific features, you should derive 
 4  # from generic.mk
 5   PRODUCT_PROPERTY_OVERRIDES := /
         ro.com.google.locationfeatures=1 /
         ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html /
         ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html /
         ro.setupwizard.mode=DISABLED
 6  PRODUCT_PACKAGES :=  /
 7      GoogleContactsProvider /
 8      GoogleSubscribedFeedsProvider
 9  #     /
10  #    com.google.android.gtalkservice /
11  #    com.google.android.maps
12  PRODUCT_COPY_FILES :=  /
13      vendor/google/app/checkin.apk:system/app/checkin.apk /
14      vendor/google/app/Gmail.apk:system/app/Gmail.apk /
15      vendor/google/app/GmailProvider.apk:system/app/GmailProvider.apk /
16      vendor/google/app/GoogleApps.apk:system/app/GoogleApps.apk /
17      vendor/google/app/GooglePartnerSetup.apk:system/app/GooglePartnerSetup.apk /
18      vendor/google/app/GoogleSettingsProvider.apk:system/app/GoogleSettingsProvider.apk /
19      vendor/google/app/gtalkservice.apk:system/app/gtalkservice.apk /
20      vendor/google/app/Maps.apk:system/app/Maps.apk /
21      vendor/google/app/MediaUploader.apk:system/app/MediaUploader.apk /
22      vendor/google/app/NetworkLocation.apk:system/app/NetworkLocation.apk /
23      vendor/google/app/SetupWizard.apk:system/app/ SetupWizard .apk /
24      vendor/google/app/Street.apk:system/app/Street.apk /
25      vendor/google/app/Talk.apk:system/app/Talk.apk /
26      vendor/google/app/Vending.apk:system/app/Vending.apk /
27      vendor/google/app/VoiceSearch.apk:system/app/VoiceSearch.apk /
28      vendor/google/etc/permissions/com.google.android.gtalkservice.xml:system/etc/permissions/com.google.android.gtalkservice.xml /
29      vendor/google/etc/permissions/com.google.android.maps.xml:system/etc/permissions/com.google.android.maps.xml /
30      vendor/google/framework/com.google.android.gtalkservice.jar:system/framework/com.google.android.gtalkservice.jar /
31      vendor/google/framework/com.google.android.maps.jar:system/framework/com.google.android.maps.jar /
32      vendor/google/lib/libspeech.so:system/lib/libspeech.so
33  
34  $(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)
35  
36  # Overrides
37  PRODUCT_NAME :=  generic_with_google
38  

 

注意:

 

我用的HTC的image提取的google maps 3.0的jar庫和apk安裝檔案,只可以定位成功,無法讀取定位後的地圖資料,拋出ClassCastException異常:

03-01 16:52:58.561 E/AndroidRuntime( 2453): Uncaught handler: thread main exiting due to uncaught exception
03-01 16:52:58.936 E/AndroidRuntime( 2453): java.lang.ClassCastException: android.graphics.drawable.BitmapDrawable
03-01 16:52:58.936 E/AndroidRuntime( 2453):     at com.google.android.maps.MyLocationOverlay.getLocationDot(MyLocationOverlay.java:180)

 

最後,我是提取的release版的Android 1.5版本的相關檔案(Google Add-ons),方法如下:

 

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

 

參考:

Google Mobile
http://www.google.com/mobile/

HTC Developer Center
http://developer.htc.com/index.html

Building Android 1.5 – Google Apps and audio files
http://www.johandekoning.nl/index.php/2009/07/12/building-android-1-5-google-apps-and-audio-files/

Google Voice Search Wiki
http://en.wikipedia.org/wiki/Google_Voice_Search

 

Using Google Maps in Android
http://mobiforge.com/developing/story/using-google-maps-android

 

Android Add-ons(Map API)
http://android.nanshapo.com/topic/view/812.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.