編輯:初級開發
運行:keytool -list -keystore ~/.android/debug.keystore
用得到的MD5碼到:
注冊完成後會得到如下的網頁:
您的密鑰是:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
此密鑰適用於所有使用以下指紋所對應證書進行驗證的應用程序:
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
下面是一個 XML 格式的示例,幫助您了解地圖功能:
<com.google.android.maps.MapVIEw
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:apiKey="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
/>
模擬器設置
建立一個"Google Inc.:Google APIs:3"的模擬器。
手機終端需要支持Google Add-ons
作為與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
5)system/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
權限和Maps庫設置
在manifest.XML中設置全相應的權限,比如:
<uses-permission android:name="android.permission.Access_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET" />
在manifest.XML中加上要用的maps庫:
<manifest XMLns:android="http://schemas.android.com/apk/res/android"
package="com.example.package.name">
...
<application android:name="MyApplication" >
<uses-library android:name="com.google.android.maps" />
...
</application>
...
</manifest>
Maps庫分析
Maps庫提供了十幾個類,具體可以參考這裡http://code.google.com/intl/ja/android/add-ons/google-apis/reference/index.Html,包括MapvIEw,MapController,MapActivity等。
(1)MapController
控制地圖移動,伸縮,以某個GPS坐標為中心,控制MapView中的view組件,管理Overlay,提供VIEw的基本功能。使用多種地圖模式(地圖模式(某些城市可實時對交通狀況進行更新),衛星模式,街景模式)來查看Google Map。
常用方法:animateTo(GeoPoint point) setCenter(GeoPoint point) setZoom(int zoomLevel) 等。
(2)MapVIEw
Mapview是用來顯示地圖的vIEw, 它派生自android.view.ViewGroup。當MapVIEw獲得焦點,可以控制地圖的移動和縮放。
地圖可以以不同的形式來顯示出來,如街景模式,衛星模式等,通過setSatellite(boolean) setTraffic(boolean), setStreetVIEw(boolean) 方法。
MapView只能被MapActivity來創建,這是因為mapvIEw需要通過後台的線程來連接網絡或者文件系統,而這些線程要由mapActivity來管理。
需要特別說明的一點是,android 1.5中,map的zoom采用了built-in機制,可以通過setBuiltInZoomControls(boolean)來設置是否在地圖上顯示zoom控件。
常用方法:getController() getOverlays() setSatellite(boolean) setTraffic(boolean), setStreetVIEw(boolean) setBuiltInZoomControls(boolean)等。
(3)MapActivity
管理Activity的生命周期,為mapvIEw建立及取消對map service的連接。
MapActivity是一個抽象類,任何想要顯示MapView的activity都需要派生自MapActivity。並且在其派生類的onCreate()中,都要創建一個MapView實例,可以通過MapViewconstructor (然後添加到View中ViewGroup.addView(VIEw)) 或者通過layout XML來創建。
(4)Overlay
Overlay是覆蓋到MapView的最上層,可以擴展其ondraw接口,自定義在MapView中顯示一些自己的東西。MapView通過MapVIEw.getOverlays()對Overlay進行管理。
除了Overlay這個基類,Google還擴展了2個比較有用的Overlay
1)MylocationOverlay—集成了android.location中接收當前坐標的接口,集成SersorManager中CompassSensor的接口
我們只需要enableMyLocation(),enableCompass就可以讓我們的程序擁有實時的MyLocation以及Compass 功能(Activity.onResume()中)。
2)ItemlizedOverlay—管理一個OverlayItem鏈表,用圖片等資源在地圖上作風格相同的標記。
(5)Projection:MapVIEw中GPS坐標與設備坐標的轉換(GeoPoint和Point)。
一個簡單的小例子
用一個小程序來演示一下android中地圖功能的開發。主要功能是實現了地圖的縮放,添加了菜單,從而可以手動選擇地圖的顯示模式等。
Step1: 新建一個android project, 注意這裡要選擇的buildtarget為"GoogleAPIs"
Step 2: 修改menifest文件:
<?xmlversion="1.0"encoding="utf-8"?> <manifest XMLns:android="http://schemas.android.com/apk/res/android" package="com.map.prac" android:versionCode="1" android:versionName="1.0"> <uses-permission android:name="android.permission.Access_COARSE_LOCATION"/> <uses-permission android:name="android.permission.INTERNET" />RelativeLayout關系布局:在form中的用法:@[+][package:]type:name (@id/vIEwName)在主題模式form中的用法: ?[
Intent比較簡單,類似消息,發送給別的activity,別的activity會立即執行我主要說說什麼是PendingIntent以及它的執行過程以alarm ser
ps:對於軟件開發人員來說,保護代碼安全也是比較重要的因素之一,不過目前來說Google Android平台選擇了Java Dalvik VM的方式使其程序很容易破解和
最近正在學習android的相關知識,遇到了很多問題,其中之一就是再往sdcard卡中添加文件時會出現下面類似的問題: &