劉波平,施煒利,裘 鋒,胡 敏,付 康
(1.江西省計算技術研究所,江西南昌 330003;2.江西省軟件工程技術研究中心,江西南昌 330003)
?
基于Android平臺的規模化養殖管理用戶定位系統的設計與開發
劉波平1,2,施煒利1,2,裘 鋒1,2,胡 敏1,2,付 康1,2
(1.江西省計算技術研究所,江西南昌 330003;2.江西省軟件工程技術研究中心,江西南昌 330003)
[目的]針對當前規模化養殖人員的有效管理。[方法]設計基于Android平臺的定位系統,獲取人員定位的位置數據。[結果]對單人軌跡和多人軌跡實現可視化查看,并進行實時監控。[結論]定位系統運行穩定,能夠較好地達到實時定位的目的。
Android;用戶定位;GPS;規模化養殖
隨著3G無線網絡通信技術的不斷提升和移動智能設備的大量研發生產,智能手機作為一種便捷、美觀、實用的通訊設備正被越來越多的人接受,已經成為人們日常生活中獲取主要信息的重要工具之一,如自動控制[1-2]、醫療儀器[3-5]、消費電子[2,6-9]等領域取得了許多成功的應用案例。因此,在手機端安裝更多應用并推廣其服務更大程度上滿足了用戶需求,移動設備的Web地圖服務就是其重要的一部分,尤其是地圖服務中的一項基于位置信息的服務(Location Based Service,LBS),倍受喜愛和關注。通過利用移動終端的定位技術,設備與服務器之間互聯通信,為用戶提供了各種與位置有關的信息服務。
隨著江西省畜禽養殖業的迅猛發展,傳統的畜禽養殖開始由粗放式的管理向集約化的管理方式轉變,規模化畜禽養殖因管理落后而出現的問題也越來越多,尤其在人員管理中存在的問題顯得尤為突出。針對此問題,通過研究多種形式的用戶定位方法如GPS、WIFI或者基站等,筆者設計了一套基于Android平臺的用戶定位系統,并在規模化養殖管理人員中推廣試用,取得了較明顯的效果。
Android系統[10-12]架構從下層到上層有Linux內核層、系統運行庫層、應用程序框架層、應用層四層結構。
1.1Linux內核層位于Android系統架構最底層,Android的核心系統服務主要有安全性、內存管理、進程管理、網絡協議棧和驅動模型等,這些服務都依賴于Android系統基于Linux2.6內核。Linux內核同時也作為硬件和軟件棧之間的抽象層,它可隱藏具體硬件細節而為上層提供統一的服務。
1.2系統運行庫層是Android系統架構中的第三層,這一層主要包含了手機系統平臺必須的C/C++核心庫、Dalvik虛擬機運行環境和HAL子層。
1.3應用程序框架層是一個應用程序的核心,一個項目中所有參與開發的程序員都應使用和遵守的該框架層中的相關約定,進而使程序達到清晰的目的,在滿足不同需求的同時又不互相影響。
1.4應用層是用Java語言編寫的運行在虛擬機上的程序,開發人員也可以根據需要替換掉系統默認的應用程序,與其他的把軟件固化在系統內部的手機操作系統不同,更具靈個性和靈活性。
目前常用的定位方式有GPS定位、WIFI、基站定位、IP定位、RFID/二維碼等標簽識別定位、場景識別定位等[13,14]。簡單的介紹如下三種定位技術:
2.1GPS定位GPS全球定位系統,是一個衛星導航定位系統,該系統由美國建立。使用GPS在全球無論任何地方用戶不僅能實時、連續、全天候實現測速和三維導航定位的目的,而且還能夠高精度地定位和時間傳遞。GPS系統由三大部分組成:用戶部分、空間部分、地面控制部分。
2.2WIFI定位WIFI定位是利用現有的無線網絡,配合WIFI標簽和相關的移動終端設備(如WIFI手機、PDA、筆記本電腦等),再結合相應的定位算法,來確定相關人員和物品位置的一種技術。
2.3基站定位基站定位一般應用于手機用戶,手機基站定位服務又叫做移動位置服務(LBS-Location Based Service),它是通過電信移動運營商的網絡(如GSM網)獲取移動終端用戶的位置信息(經緯度坐標),在電子地圖平臺的支持下,為用戶提供相應服務的一種增值業務,例如目前中國移動動感地帶提供的動感位置查詢服務等。
3.1系統整體框架分析詳細闡述了用戶定位管理系統的總計設計和實現方式,系統的整體框架如圖1所示:

圖1 系統整體框架Fig.1 System general frame
3.2系統功能模塊分析系統主要為規模化養殖場的管理人員及相關外出工作人員設計,進一步提高人員管理水平。養殖場管理人員通過系統可查看工作人員的位置信息、實時關注工作情況,經跟蹤、統計分析,可以很好地做出相應的決策。工作人員通過本系統可以總結自己的工作情況,以便調整自身,提高工作效率。本系統對不同角色、不同崗位的用戶采用靈活的方式提供相應的功能和服務。總體上分為管理員和普通工作人員,管理人員又可以分級別,管理人員只能管理自己級別以下的用戶。系統的總體功能模塊如圖2所示。

圖2 系統功能圖Fig.2 System function diagram
從圖2的系統功能圖可以得知,系統主要有四大模塊,用戶登錄和鑒權控制主要是為用戶指定角色,分配不同級別的權限。按照系統的設計思路來分析,管理人員可以分為不同的等級,例如一級主管、二級主管等,這些級別的主管分管其下屬的工作人員,而不能夠跨越權限。普通工作人員可以被他所屬的所有上級管理,而本身沒有任何的管理權限,只能使用系統中的個人信息模塊的功能。在此模塊中,普通工作人員可以通過地圖查看自己以往的歷史活動軌跡,并在每次登陸后上報個人當前位置信息供上級主管查看,還可以使用Android系統內置的google地圖服務,以便獲取路線、查找周邊設施等場所。
用戶管理模塊為管理人員所用,管理人員可以對下屬工作人員進行查看信息、添加人員、刪除人員的操作,同時管理人員可以查看工作人員的位置、追蹤活動軌跡,通過google地圖直觀地顯示位置信息。管理人員不僅能夠查看不同時刻單一人員的位置信息,而且還能查看同一時刻全部人員的位置信息。
角色與功能模塊的關系如圖3所示:

圖3 角色與功能模塊的關系圖Fig.3 Relationship between role and function module
3.3單人活動軌跡模塊的設計與實現布局關鍵代碼(single_info.xml):
android:="@+id/pcrsoncl_mapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="0pVhBR--AKIFd9bZVEKlfuDcjPbYGN-neueopkw" dandroid:clickable=""true" android:enabled="true"/> 功能核心代碼(PersonelInfo.java)一:查詢人員全部位置信息 dao = new PersonDao(); Cursor cursor = dao.query(this,"select * from information where person_id=" + personId); while(cursor.moveToNext()){ mark(cursor); } //關閉游標 cursor.close(); 功能核心代碼(PersonelInfo.java)二:畫點,標出位置信息(日期、地點) public void draw(Canvas canvas, Mapview mapv,boolean shadow){ super.draw(canvas,mapv,shadow); projection.toPixcls(gcoPoint,point); Bitmap bmp=BitmapFactory.decodeResource(getresources() R.drawable.mark); } 功能核心代碼(PersonelInfo.java)三:畫線 public void draw(Canvas canvas,MapView mapv,boolean shadow){ super.draw(canvas,mapv,shadow); Paint paint=New Paint(); paint.setStrokeWidth(2); paint.setStyle(Paint.Style.FILL_AND_STROKE)... } 整個界面是一個LinearLayout,僅包含一個地圖視圖MapView。難點是把人員的每次位置顯示在地圖上,主要通過編程實現。圖4所示為單人活動軌跡: 圖4 單人活動軌跡Fig.4 Single people activity trajectory 3.4查看全部人員活動軌跡模塊設計與實現使用一個MapView進行表示人員的位置信息,可以通過前進、后退按鈕查看每一天的人員位置信息;全部人員當天的位置都顯示在地圖上,在地圖上點擊每個標記會彈出窗口用于顯示該人員的詳細位置信息。如圖5所示: 布局關鍵代碼(all_info.xml): android:id="@+id/pre_datebutton" android:layout_width="80dip" android:layout_height="40dip" android:background="@android:color/transparent" android:scaleType="fitXY" android:src="@drawable/prebtn_bg" /> android:="@+id/allpersonel_mapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="0pVhBR--AKIFd9bZVEKIfuDcjPbYGN-neueopkw" android:clickablc="true" android:enabled="true"/> 功能核心代碼(AllPersonelInfo.java)一:請求數據,更新地圖 private void updateMap(String date){ // 獲取要更新的信息 Cursor tempc = tempdao.query(this,"select name,latitude,longitude,position,time from person inner join information on person.id=information.person_id where date(time)='"+ date + "'")... str = str.append(name).append("
位置:").append(position).append("
時間:"+time); geoPoint = new GeoPoint(latitude.intValue(), longitude.intValue()); if(tempc.getPosition()== 0){ mapController.animateTo(geoPoint); } OverlayItem overlayitem = new OverlayItem(geoPoint,"人員位置信息", str.toString()); overlay.addOverlayItem(overlayitem); 功能核心代碼(AllPersonelInfo.java)二:獲取彈出窗口布局,用于顯示位置信息 // 初始化彈出窗口,顯示人員的信息 private void initPopview(){ // 這里沒有給GeoPoint,在onFocusChangeListener中設置 popView = getLayoutInflater().inflate(R.layout.overlay_pop,null); // 由于氣泡的尾巴是在下邊居中的,因此要設置成 MapView.LayoutParams.BOTTOM_CENTER 圖5 多人活動軌跡圖Fig.5 Many people activities trajectory 隨著網絡的高速發展,信息技術的不斷提升,基于位置服務的應用越來越得到廣泛的需求,成為人們生活重要的一部分。本文運用Android平臺實現系統的設計,主要包括用戶管理、權限管理、活動軌跡查詢、用戶登錄、個人信息展示、Google地圖服務調用、地圖位置標識等功能,使信息可視化,提高了規模化養殖場人員管理的信息化水平,能夠游俠管理利用各種數據信息、減輕工作量并提高工作效率,具有較強的使用價值。 [1] 肖梁軍.基于Android智能終端的遠程控制電腦系統設計與實現[D].昆明:云南大學,2012. [2] 高榮.基于S3C2440的智能家居控制中心設計[D].蘇州:蘇州大學,2012. [3] 高宇.基于ARM和Android平臺的智能醫療監控系統的研究[D].太原:太原理工大學,2012. [4] 楊博菲,呂衛,褚晶輝,等.基于Android平臺的醫學圖像顯示軟件[J].中國醫學物理學雜志,2012,29(3):3375-3379. [5] 包巍.基于安卓的動物疫病遠程診斷系統設計與開發[J].農業網絡信息,2012(7):29-31. [6] 程磊,胡景春,孫國峰.基于Android和WISMO228的遠程控制系統[J].計算機技術與發展,2012,22(10):233-236,241. [7] 王朝華,陳德艷,黃國宏,等.基于Android的智能家居系統的研究與實現[J].計算機技術與發展,2012,22(6):225-228,233. [8] 高峰,畢經平,郭景峰,等.汽車狀態感知系統的Android客戶端[J].清華大學學報(自然科學版),2011,51(S1):1393-1396. [9] 楊雪春,胡江天,董懿瓊.基于Android的電動汽車車載信息顯示終端[J].南昌大學學報:工科版,2011,33(3):273-276. [10] 康德爾.Android移動應用開發從入門到精通[M].北京:人民郵電出版社,2010. [11] 百度文庫:android軟件開發揭秘[EB/OL].(2011-01-05)[2016-04-01].http://wenku.baidu.com/view/5fd2941655270722192ef7dc?fr=hittag&album=doc&tag_type=1. [12] 百度文庫:Android手機開發入門簡介[EB/OL].(2011-11-02)[2016-04-01].http://wenku.baidu.com/view/eb10f846336c1eb91a 375d62.html. [13] 代敏.基于Android平臺下手機定位程序的設計及實現[J].計算機與數字工程,2012,40(4):143-145. [14] 郭蕊.基于Android平臺的GPS定位系統的設計與實現[J].北京職業技術學院學報,2012,2(11):54-57,58. Design and Development of User Positioning System for Intensive Culture Management Based on Android Platform LIU Bo-ping1,2, SHI Wei-li1,2, QIU Feng1,2et al (1. Jiangxi Institute of Computing Technology, Nanchang, Jiangxi 330003; 2. Software Engineering and Technical Research Center of Jiangxi Province, Nanchang, Jiangxi 330003) [Objective] The aim was to study the effective management of intensive culture personnel. [Method] A positioning system based on Android platform was designed to obtain the location data of personnel. [Result] The positioning system, which is real-time monitoring, realized to check visually for single trajectory or more people trajectory. [Conclusion] The positioning system runs stably and can achieve the goal of real-time positioning. Android; User positioning system; GPS; Intensive culture 國家科技支撐計劃項目“特色區域農村信息化集成技術與應用”(2014BAD10B00),課題“中部經濟區農村信息化技術集成應用”(2014BAD10B05)。 劉波平(1963- ),男,江西吉安人,教授級工程師,博士研究生,從事信息管理與檢測分析。 2016-05-18 S 818 A 0517-6611(2016)18-260-03

4 結束語