也许你可能不知道,智能手机上面装载数量第一的软件是Google Map,人们的生活已经离不开Google了。但是要吐槽的是新版的Google Map也进行了扁平化设计,这一点我个人比较提倡,但是用户体验不如以前,果断装上百度地图。值得注意的是Google Map在大陆的数据库用的是高德地图的数据库,这里面有什么原因,自己想去吧!
我用过百度,Google Map和高德地图,感觉还是Google Map好用准确一些,虽然它在国内很受压迫,但是如果要是选择开发,我还是选择Google Map。好了,话不多讲,今天就说一说Google Map V2在Android上面环境搭建过程。现在好多资料都是针对V1版本进行讲解,但是V2版本和V1版本真是大相径庭。
开始讲解之前,先说一下准备材料。第一,完整的SDK一只。第二,能够上网。第三,两个小软件(apk形式)vending.apk和gms.apk下面是这连个小软件的截图。
开始说搭建环境,第一步:申请gmail邮箱账号,如果有请跳过此步骤。方法很简单,百度上面google一下gmail,点击进入,场面是下面这个样子的。
起个什么样子的用户名是你自己的事情,第一步到此结束。
第二步:拿到你机子的SHA1指纹,这里不说在cmd中敲命令获取,教你一个简单方式。在eclipse中,window>>preferences>>android>>build,里面就有了。下面还是一张截图。
第三步:开始申请key值,网址是https://code.google.com/apis/console/,必须用你刚才那个gmail账号登录,然后会是这个样子。
箭头中的1指代第一步操作,在这里面有好多服务,关键是找到android那一个,下面是截图。
记住,打上勾勾,然后选中箭头指示的2,会出现下面的情形。
选中划框框的那一项,然后会有一个弹框,输入SHA1;包名的形式,上面有提示,很简单的,然后点击创建就OK了。我创建成功了,请看下面截图。
拿到key之后基本就解决了一半问题。
第四步:顺便插一句,刚才没有说创建工程的问题,其实创建工程和普通工程一样,只是用到包名而已。好了,接着往下面说。刚才为什么说需要一直完成的SDK呢,因为下面需要用到。SDK中提供了需要的JAR,这一步我们要导入。导入方式和以往有些不同,是这样的File-Import,选中Android节点下的Existing Android Code Into Workspace,下面有截图。
找到一个神秘的东西,路径是/extras/google/google_play_services/libproject/google-play-services_lib,然后确定进来(根据自己情况是否选择copy到工作空间),导入进来,下面是截图。
然后引用它,方法是右键你的工程然后选择最后一项然后就是下面的截图。
点击add按钮进行选择,选择时候效果是这样。OK,大体就是这样。
第五步:创建模拟器,安装上面的两个软件。不要和V1版本创建的方式一样,原来你怎么创建,现在还怎么创建就可以,不要选择APIs那个东西。创建完成后启动模拟器,然后安装开始说的那连个软件,用CMD命令安装即可。此处就不给图了,默认你可以完成。
第六步:配置文件,完成地图。首先配置manifest文件,这样配置:
12 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.map"
4 android:versionCode="1"
5 android:versionName="1.0" >
6
7 <uses-sdk
8 android:minSdkVersion="8"
9 android:targetSdkVersion="17" />
10
11 <permission
12 android:name="com.map.permission.MAPS_RECEIVE"
13 android:protectionLevel="signature" />
14
15
16
17
18
19
20
21
22 <uses-feature
23 android:glEsVersion="0x00020000"
24 android:required="true" />
25
26 <application
27 android:allowBackup="true"
28 android:icon="@drawable/ic_launcher"
29 android:label="@string/app_name"
30 android:theme="@style/AppTheme" >
31 <meta-data
32 android:name="com.google.android.maps.v2.API_KEY"
33 android:value="AIzaSyAhnUn5q4BG56btFWsFGtVPY9snA6YXdHk" />
34
35 <activity
36 android:name="com.map.MainActivity"
37 android:label="@string/app_name" >
38
39
40
41
42
43
44
45
46
当然,key值要换一下哦。然后是mainactivity.xml。这里需要注意的是API的不同,配置不同。引用网上其他人的说法,下面是代码。
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:paddingBottom="@dimen/activity_vertical_margin"
6 android:paddingLeft="@dimen/activity_horizontal_margin"
7 android:paddingRight="@dimen/activity_horizontal_margin"
8 android:paddingTop="@dimen/activity_vertical_margin"
9 tools:context=".MainActivity" >
10
11 <fragment
12 android:id="@+id/map"
13 android:layout_width="match_parent"
14 android:layout_height="match_parent"
15 class="com.google.android.gms.maps.MapFragment" />
16
17
注意:如果你的Android SDK为3.1(API 12)之前版本,如Android 2.3.3,则需要将MapFragment修改为SupportMapFragment,因为MapFragment只在API 12及之后的版本才有,所以对于之前的版本需要使用Support Library来进行辅助。
MainActivity.java中,如果你的Android SDK为3.1(API 12)之前版本,如Android 2.3.3,则需要进行以下编码,否则请跳过该步骤。
package xxx.xxx.mylbs;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
由于API 12之前的SDK必须借助FragmentActivity对Fragment进行管理,因此,使用了Fragment标签的活动须继承自FragmentActivity,该Activity由android.support.v4.app包定义。
现在基本就搞定了,启动模拟器,然后惊喜就出现了,看截图。
当然了,在做的时候会遇到各种麻烦,需要你自己去解决,我的方法也是通过自己不断找资料和不断发现才总结出来的,希望对你有帮助。
感谢支持