<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-1  評論-68  文章-98  trackbacks-0
    作者:徐建祥(netpirate@gmail.com)
    日期:2009/12/19
    網(wǎng)址:http://www.anymobile.org

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

    1/ 通過ADB,從Google定制的手機下載相關(guān)的文件(jar/lib庫,apk安裝文件,xml權(quán)限文件等);
    2/ 修改兩個make腳本文件:core.mk和generic_with_google.mk;
    3/ make generic_with_google,生產(chǎn)新的system.img鏡像文件的時候包含這些文件。

    注意點:

    a. 移植的手機需要支持上網(wǎng),通過SetupWizard.apk驗證Google帳戶,該程序在待機界面前運行,驗證失敗的話,會無法進入待機界面;Market;GTalk;GMail均需要驗證Google帳戶,Market需要GTalk服務(wù),設(shè)置ro.setupwizard.mode=DISABLED,則開機不會強制驗證。
    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安裝文件,只可以定位成功,無法讀取定位后的地圖數(shù)據(jù),拋出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版本的相關(guān)文件(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



    posted on 2009-12-19 13:36 Xu Jianxiang 閱讀(3043) 評論(0)  編輯  收藏 所屬分類: Android
    主站蜘蛛池模板: 亚洲乱码日产精品BD在线观看| 亚洲AV日韩AV永久无码久久| 亚洲欧美日韩一区二区三区| 麻豆视频免费观看| 亚洲高清在线视频| 日本免费一区二区三区| 亚洲精品高清国产一久久| 最近最好最新2019中文字幕免费| 亚洲AV日韩AV天堂久久| 无码人妻AV免费一区二区三区| 亚洲午夜久久久久久久久电影网 | 国产片免费福利片永久| 亚洲av永久中文无码精品| 国产做床爱无遮挡免费视频| 免费的黄色的网站| 亚洲精品无码久久久影院相关影片| 黄网站色视频免费在线观看的a站最新| 亚洲成AV人片在线播放无码| 最近中文字幕完整免费视频ww| 亚洲伊人久久大香线蕉在观| 四色在线精品免费观看| 美女视频黄a视频全免费网站色| 在线观看亚洲精品国产| 三年片在线观看免费观看大全一| 亚洲特级aaaaaa毛片| 啦啦啦手机完整免费高清观看| 永久免费无码日韩视频| 亚洲视频在线观看| 四虎永久成人免费| 免费av一区二区三区| 亚洲中文字幕乱码一区| 亚洲国产人成中文幕一级二级| 可以免费观看的毛片| 亚洲日韩一中文字暮| 337p日本欧洲亚洲大胆裸体艺术| 91福利免费视频| 色婷婷综合缴情综免费观看| 亚洲最大的成网4438| 国产一卡二卡≡卡四卡免费乱码| 日本免费一区二区久久人人澡| 亚洲色偷偷色噜噜狠狠99|