关于Android引路蜂map应用源码的简单说明
关于Android引路蜂地图应用源码的简单说明前面完整的Android引路蜂地图应用源码下载 提供了源码下载,这里
关于Android引路蜂地图应用源码的简单说明
前面完整的Android引路蜂地图应用源码下载 提供了源码下载,这里对这个项目做个简单的说明以方便阅读。
整个应用代码量在4000行左右,不算很大,下面是对代码中主要Package的说明:
文件名空行注释代码行说明AboutActivity.java13447关于软件说明app\GNavigatorApplication.java272393主应用类app\SessionInfo.java9311保持一些全局变量app\SharedMapInstance.java133818保存RasterMap类实例app\SharedSearchResults.java12022保存查询结果database\DatabaseAssistant.java4263122用于数据库访问,用来管理设备,这部分可以不看database\DBAdapter.java2712677database\DBMapper.java4387database\DeviceDBMapper.java2086130database\DeviceLocationHistoryDBMapper.java195660database\PersistentFacade.java2816867dataobject\Device.java14015设备定义,设备命令,这部分可以不看dataobject\DeviceCommand.java7017dataobject\DeviceLocationHistory.java507device\AddDeviceActivity.java14170软件可以用来跟踪其他设备或者报告设备当前位置,这部分可以不看device\DeviceCommandListActivity.java394202device\DeviceControlTabActivity.java16180device\DeviceInfoActivity.java8149device\DeviceLocationHistoryListActivity.java19181device\ManageDeviceListActivity.java444208drawing\AndroidFont.java92717和Android平台相关的引路蜂图形接口实现drawing\AndroidGraphics.java2015057drawing\AndroidGraphicsFactory.java108323drawing\AndroidImage.java2011465gis\FileMapTiledZone.java172343用来访问离线地图文件GNavigatorActivity.java8231516主ActivityGuidebeeMapView.java5225301地图View,可以自定义并扩展,支持Gesture缩放等location\LocationService.java545590GPS服务mapmode\MapModeListActivity.java161150选项地图模式界面routing\RouteDetailActivity.java5234274显示详细路径routing\RoutingActivity.java261159路径查询界面search\SearchResultListActivity.java4125246查询结果search\SearchSuggestionProvider.java209查询提示settings\SettingsActivity.java192686软件设置界面sms\DeviceMessage.java405控制设备的短消息处理,这部分可以不看sms\DeviceMessageCenter.java7018sms\DeviceMessageProcessor.java451209sms\SmsMessageReceiver.java131528ToolbarButton.java361259工具条自定义View
其中和Device相关的部分,包database, dataobject, device, sms 部分可以跳过不需要看,这部分和地图API使用关系不大,主要用来监视GPS设备或其它手机的位置。
drawing 包实现了地图API中和图形系统相关接口的Android平台上实现 ,引路蜂地图开发包中Gis.Drawing 类定义了几个抽象类或接口,对不同平台的图形系统进行了抽象。这些绘图的接口不同,如果在引路蜂地图开发包直接引用这些类方法,这样不同平台就会需要编译不同的开发包。通过抽象处理,引路蜂地图开发包并直接调用平台相关的图形类方法。而是通过 开发包 + 平台相关图形系统实现的方法,就可以实现跨平台.具体可以参见图形子系统。
GuidebeeMapView 主要用来显示地图,这个给出的是一个参考实现,支持触摸屏平移,事件你可以把地图放在任何可以显示Image对象的控件上,添加你自己的Logo,支持MultiTouch 缩放等,本身是个自定义View (为View的子类),你可以自由扩展其功能。
FileMapTiledZone 用来支持从文件读取离线地图,这部分代码可以不需修改应用到你自己编写的引路蜂地图应用中。
应用程序框架基于RoboGuice 以简化代码,关于RoboGuice的使用可以参见本博客 的Android RoboGuice 使用指南。
搜索使用Android平台的Search Framework。可以参见
App/Search/Invoke SearchApp/Search/Query Search Results
再看一下项目的AndroidManifest.xml
项目引用三个库,其中libgisengine.jar 为引路蜂地图API,其它两个为roboguice 库。 支持中英文两种资源 values-zh-rCN 为中文string 资源。