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

更多相关文章

  1. Android查看外部依赖jar的源码'Android(安卓)Private Libraries'
  2. android 2048游戏、kotlin应用、跑马灯、动画源码
  3. android adb
  4. android高仿抖音、点餐界面、天气项目、自定义view指示、爬取美
  5. Androidの应用源码下载地址
  6. Android中通过NTP服务器获取时间功能源码分析
  7. android 塔防游戏汇总 及android 游戏开发索引
  8. Android(安卓)电话博大流程源码分析
  9. Android主流三方库源码分析(五、深入理解RxJava源码)

随机推荐

  1. Android(安卓)多个Module使用ButterKnife
  2. android traceview分析
  3. android之location01
  4. android 键盘显示与隐藏
  5. Android(安卓)Style.xml 详解
  6. 【Android】hwbinder的selinux配置
  7. [Android] Fastest Way to Get on Track
  8. android 安装apk包 卸载 包
  9. "equals"和"=="的区别
  10. android studio SDK版本的调节