项目描述:该应用是格力手机的一个自带指南针应用,实现了指示方向、水平仪、垂直仪,显示地理位置、经纬度等信息以及方向校准功能。 个人职责:1、 实现指南针方向指示功能。采用了监听方向传感器获得目的方向并同以前方向对比的方法,如果两者不同,则以后者为准,并重绘指南针转盘的方式(根据距基本方向的偏离角度和圆的半径确定表盘数据的位置并用Canvas绘制,以保证表盘数据始终朝上,同时把表盘圆旋转相应角度,以保证表盘圆的显示和表盘数据的显示相匹配)。 2、 实现了水平仪功能。根据加速度传感器的测量值(滚转角roll、俯仰角pitch),在不同位置进行小圆(根据偏离大圆圆心的x轴和y轴的位置确定)与大圆的绘制。 3、 实现了垂直仪功能。根据加速度传感器的测量值(滚转角roll、俯仰角pitch),在不同位置进行直线的绘制(固定点和斜率确定直线)。 4、 实现了指南针校准功能。采用监听方向传感器,并根据准确度参数进行判读,如果当前准确度低于某一阈值,则显示校准提示视图,否则校准提示视图消失。 5、 实现了地址和经纬度的显示。采用了添加高德地图api的方式,然后实现接口AMapLocationListener并重写onLocationChanged方法,可以获得地址、经纬度等参数。 6、 针对指南针功耗大的bug进行了优化。采取措施包括:在指南针视图显示时才对各种传感器进行监听以及开启服务,否则关闭;获取各种数据后只有和以前有变化才进行视图更新,否则不更新;对于数据获取更新的频率进行控制,尽量在满足条件的前提下减少更新。