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' whic
  2. android 2048游戏、kotlin应用、跑马灯、动画源码
  3. android高仿抖音、点餐界面、天气项目、自定义view指示、爬取美
  4. android简单计算器源码
  5. Androidの应用源码下载地址
  6. android通讯录解析源码
  7. Android 疯狂足球游戏源码
  8. Android主流三方库源码分析(五、深入理解RxJava源码)

随机推荐

  1. 单例模式中的懒汉模式和饿汉模式
  2. tomcat启动web项目时候突然卡住
  3. 导致org.hibernate创建记录。MappingExce
  4. php RSA加密 JAVA 证书生成
  5. android与后台服务器的前后端通信
  6. java动态加载jar文件
  7. 003 恶补java运算(内容网摘)
  8. WebBrowser 遇到 javascript:void(0) 页
  9. IT兄弟连 JavaWeb教程 文件上传技术
  10. 读取Excel文件并跳过空行但不是空列