劉波平,施煒利,裘 鋒,胡 敏,付 康
(1.江西省計算技術(shù)研究所,江西南昌 330003;2.江西省軟件工程技術(shù)研究中心,江西南昌 330003)
?
基于Android平臺的規(guī)模化養(yǎng)殖管理用戶定位系統(tǒng)的設(shè)計與開發(fā)
劉波平1,2,施煒利1,2,裘 鋒1,2,胡 敏1,2,付 康1,2
(1.江西省計算技術(shù)研究所,江西南昌 330003;2.江西省軟件工程技術(shù)研究中心,江西南昌 330003)
[目的]針對當(dāng)前規(guī)?;B(yǎng)殖人員的有效管理。[方法]設(shè)計基于Android平臺的定位系統(tǒng),獲取人員定位的位置數(shù)據(jù)。[結(jié)果]對單人軌跡和多人軌跡實現(xiàn)可視化查看,并進行實時監(jiān)控。[結(jié)論]定位系統(tǒng)運行穩(wěn)定,能夠較好地達到實時定位的目的。
Android;用戶定位;GPS;規(guī)模化養(yǎng)殖
隨著3G無線網(wǎng)絡(luò)通信技術(shù)的不斷提升和移動智能設(shè)備的大量研發(fā)生產(chǎn),智能手機作為一種便捷、美觀、實用的通訊設(shè)備正被越來越多的人接受,已經(jīng)成為人們?nèi)粘I钪蝎@取主要信息的重要工具之一,如自動控制[1-2]、醫(yī)療儀器[3-5]、消費電子[2,6-9]等領(lǐng)域取得了許多成功的應(yīng)用案例。因此,在手機端安裝更多應(yīng)用并推廣其服務(wù)更大程度上滿足了用戶需求,移動設(shè)備的Web地圖服務(wù)就是其重要的一部分,尤其是地圖服務(wù)中的一項基于位置信息的服務(wù)(Location Based Service,LBS),倍受喜愛和關(guān)注。通過利用移動終端的定位技術(shù),設(shè)備與服務(wù)器之間互聯(lián)通信,為用戶提供了各種與位置有關(guān)的信息服務(wù)。
隨著江西省畜禽養(yǎng)殖業(yè)的迅猛發(fā)展,傳統(tǒng)的畜禽養(yǎng)殖開始由粗放式的管理向集約化的管理方式轉(zhuǎn)變,規(guī)?;笄蒺B(yǎng)殖因管理落后而出現(xiàn)的問題也越來越多,尤其在人員管理中存在的問題顯得尤為突出。針對此問題,通過研究多種形式的用戶定位方法如GPS、WIFI或者基站等,筆者設(shè)計了一套基于Android平臺的用戶定位系統(tǒng),并在規(guī)?;B(yǎng)殖管理人員中推廣試用,取得了較明顯的效果。
Android系統(tǒng)[10-12]架構(gòu)從下層到上層有Linux內(nèi)核層、系統(tǒng)運行庫層、應(yīng)用程序框架層、應(yīng)用層四層結(jié)構(gòu)。
1.1Linux內(nèi)核層位于Android系統(tǒng)架構(gòu)最底層,Android的核心系統(tǒng)服務(wù)主要有安全性、內(nèi)存管理、進程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型等,這些服務(wù)都依賴于Android系統(tǒng)基于Linux2.6內(nèi)核。Linux內(nèi)核同時也作為硬件和軟件棧之間的抽象層,它可隱藏具體硬件細節(jié)而為上層提供統(tǒng)一的服務(wù)。
1.2系統(tǒng)運行庫層是Android系統(tǒng)架構(gòu)中的第三層,這一層主要包含了手機系統(tǒng)平臺必須的C/C++核心庫、Dalvik虛擬機運行環(huán)境和HAL子層。
1.3應(yīng)用程序框架層是一個應(yīng)用程序的核心,一個項目中所有參與開發(fā)的程序員都應(yīng)使用和遵守的該框架層中的相關(guān)約定,進而使程序達到清晰的目的,在滿足不同需求的同時又不互相影響。
1.4應(yīng)用層是用Java語言編寫的運行在虛擬機上的程序,開發(fā)人員也可以根據(jù)需要替換掉系統(tǒng)默認的應(yīng)用程序,與其他的把軟件固化在系統(tǒng)內(nèi)部的手機操作系統(tǒng)不同,更具靈個性和靈活性。
目前常用的定位方式有GPS定位、WIFI、基站定位、IP定位、RFID/二維碼等標(biāo)簽識別定位、場景識別定位等[13,14]。簡單的介紹如下三種定位技術(shù):
2.1GPS定位GPS全球定位系統(tǒng),是一個衛(wèi)星導(dǎo)航定位系統(tǒng),該系統(tǒng)由美國建立。使用GPS在全球無論任何地方用戶不僅能實時、連續(xù)、全天候?qū)崿F(xiàn)測速和三維導(dǎo)航定位的目的,而且還能夠高精度地定位和時間傳遞。GPS系統(tǒng)由三大部分組成:用戶部分、空間部分、地面控制部分。
2.2WIFI定位WIFI定位是利用現(xiàn)有的無線網(wǎng)絡(luò),配合WIFI標(biāo)簽和相關(guān)的移動終端設(shè)備(如WIFI手機、PDA、筆記本電腦等),再結(jié)合相應(yīng)的定位算法,來確定相關(guān)人員和物品位置的一種技術(shù)。
2.3基站定位基站定位一般應(yīng)用于手機用戶,手機基站定位服務(wù)又叫做移動位置服務(wù)(LBS-Location Based Service),它是通過電信移動運營商的網(wǎng)絡(luò)(如GSM網(wǎng))獲取移動終端用戶的位置信息(經(jīng)緯度坐標(biāo)),在電子地圖平臺的支持下,為用戶提供相應(yīng)服務(wù)的一種增值業(yè)務(wù),例如目前中國移動動感地帶提供的動感位置查詢服務(wù)等。
3.1系統(tǒng)整體框架分析詳細闡述了用戶定位管理系統(tǒng)的總計設(shè)計和實現(xiàn)方式,系統(tǒng)的整體框架如圖1所示:
圖1 系統(tǒng)整體框架Fig.1 System general frame
3.2系統(tǒng)功能模塊分析系統(tǒng)主要為規(guī)?;B(yǎng)殖場的管理人員及相關(guān)外出工作人員設(shè)計,進一步提高人員管理水平。養(yǎng)殖場管理人員通過系統(tǒng)可查看工作人員的位置信息、實時關(guān)注工作情況,經(jīng)跟蹤、統(tǒng)計分析,可以很好地做出相應(yīng)的決策。工作人員通過本系統(tǒng)可以總結(jié)自己的工作情況,以便調(diào)整自身,提高工作效率。本系統(tǒng)對不同角色、不同崗位的用戶采用靈活的方式提供相應(yīng)的功能和服務(wù)。總體上分為管理員和普通工作人員,管理人員又可以分級別,管理人員只能管理自己級別以下的用戶。系統(tǒng)的總體功能模塊如圖2所示。
圖2 系統(tǒng)功能圖Fig.2 System function diagram
從圖2的系統(tǒng)功能圖可以得知,系統(tǒng)主要有四大模塊,用戶登錄和鑒權(quán)控制主要是為用戶指定角色,分配不同級別的權(quán)限。按照系統(tǒng)的設(shè)計思路來分析,管理人員可以分為不同的等級,例如一級主管、二級主管等,這些級別的主管分管其下屬的工作人員,而不能夠跨越權(quán)限。普通工作人員可以被他所屬的所有上級管理,而本身沒有任何的管理權(quán)限,只能使用系統(tǒng)中的個人信息模塊的功能。在此模塊中,普通工作人員可以通過地圖查看自己以往的歷史活動軌跡,并在每次登陸后上報個人當(dāng)前位置信息供上級主管查看,還可以使用Android系統(tǒng)內(nèi)置的google地圖服務(wù),以便獲取路線、查找周邊設(shè)施等場所。
用戶管理模塊為管理人員所用,管理人員可以對下屬工作人員進行查看信息、添加人員、刪除人員的操作,同時管理人員可以查看工作人員的位置、追蹤活動軌跡,通過google地圖直觀地顯示位置信息。管理人員不僅能夠查看不同時刻單一人員的位置信息,而且還能查看同一時刻全部人員的位置信息。
角色與功能模塊的關(guān)系如圖3所示:
圖3 角色與功能模塊的關(guān)系圖Fig.3 Relationship between role and function module
3.3單人活動軌跡模塊的設(shè)計與實現(xiàn)布局關(guān)鍵代碼(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)一:查詢?nèi)藛T全部位置信息 dao = new PersonDao(); Cursor cursor = dao.query(this,"select * from information where person_id=" + personId); while(cursor.moveToNext()){ mark(cursor); } //關(guān)閉游標(biāo) cursor.close(); 功能核心代碼(PersonelInfo.java)二:畫點,標(biāo)出位置信息(日期、地點) 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。難點是把人員的每次位置顯示在地圖上,主要通過編程實現(xiàn)。圖4所示為單人活動軌跡: 圖4 單人活動軌跡Fig.4 Single people activity trajectory 3.4查看全部人員活動軌跡模塊設(shè)計與實現(xiàn)使用一個MapView進行表示人員的位置信息,可以通過前進、后退按鈕查看每一天的人員位置信息;全部人員當(dāng)天的位置都顯示在地圖上,在地圖上點擊每個標(biāo)記會彈出窗口用于顯示該人員的詳細位置信息。如圖5所示: 布局關(guān)鍵代碼(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)一:請求數(shù)據(jù),更新地圖 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中設(shè)置 popView = getLayoutInflater().inflate(R.layout.overlay_pop,null); // 由于氣泡的尾巴是在下邊居中的,因此要設(shè)置成 MapView.LayoutParams.BOTTOM_CENTER 圖5 多人活動軌跡圖Fig.5 Many people activities trajectory 隨著網(wǎng)絡(luò)的高速發(fā)展,信息技術(shù)的不斷提升,基于位置服務(wù)的應(yīng)用越來越得到廣泛的需求,成為人們生活重要的一部分。本文運用Android平臺實現(xiàn)系統(tǒng)的設(shè)計,主要包括用戶管理、權(quán)限管理、活動軌跡查詢、用戶登錄、個人信息展示、Google地圖服務(wù)調(diào)用、地圖位置標(biāo)識等功能,使信息可視化,提高了規(guī)模化養(yǎng)殖場人員管理的信息化水平,能夠游俠管理利用各種數(shù)據(jù)信息、減輕工作量并提高工作效率,具有較強的使用價值。 [1] 肖梁軍.基于Android智能終端的遠程控制電腦系統(tǒng)設(shè)計與實現(xiàn)[D].昆明:云南大學(xué),2012. [2] 高榮.基于S3C2440的智能家居控制中心設(shè)計[D].蘇州:蘇州大學(xué),2012. [3] 高宇.基于ARM和Android平臺的智能醫(yī)療監(jiān)控系統(tǒng)的研究[D].太原:太原理工大學(xué),2012. [4] 楊博菲,呂衛(wèi),褚晶輝,等.基于Android平臺的醫(yī)學(xué)圖像顯示軟件[J].中國醫(yī)學(xué)物理學(xué)雜志,2012,29(3):3375-3379. [5] 包巍.基于安卓的動物疫病遠程診斷系統(tǒng)設(shè)計與開發(fā)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2012(7):29-31. [6] 程磊,胡景春,孫國峰.基于Android和WISMO228的遠程控制系統(tǒng)[J].計算機技術(shù)與發(fā)展,2012,22(10):233-236,241. [7] 王朝華,陳德艷,黃國宏,等.基于Android的智能家居系統(tǒng)的研究與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2012,22(6):225-228,233. [8] 高峰,畢經(jīng)平,郭景峰,等.汽車狀態(tài)感知系統(tǒng)的Android客戶端[J].清華大學(xué)學(xué)報(自然科學(xué)版),2011,51(S1):1393-1396. [9] 楊雪春,胡江天,董懿瓊.基于Android的電動汽車車載信息顯示終端[J].南昌大學(xué)學(xué)報:工科版,2011,33(3):273-276. [10] 康德爾.Android移動應(yīng)用開發(fā)從入門到精通[M].北京:人民郵電出版社,2010. [11] 百度文庫:android軟件開發(fā)揭秘[EB/OL].(2011-01-05)[2016-04-01].http://wenku.baidu.com/view/5fd2941655270722192ef7dc?fr=hittag&album=doc&tag_type=1. [12] 百度文庫:Android手機開發(fā)入門簡介[EB/OL].(2011-11-02)[2016-04-01].http://wenku.baidu.com/view/eb10f846336c1eb91a 375d62.html. [13] 代敏.基于Android平臺下手機定位程序的設(shè)計及實現(xiàn)[J].計算機與數(shù)字工程,2012,40(4):143-145. [14] 郭蕊.基于Android平臺的GPS定位系統(tǒng)的設(shè)計與實現(xiàn)[J].北京職業(yè)技術(shù)學(xué)院學(xué)報,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 國家科技支撐計劃項目“特色區(qū)域農(nóng)村信息化集成技術(shù)與應(yīng)用”(2014BAD10B00),課題“中部經(jīng)濟區(qū)農(nóng)村信息化技術(shù)集成應(yīng)用”(2014BAD10B05)。 劉波平(1963- ),男,江西吉安人,教授級工程師,博士研究生,從事信息管理與檢測分析。 2016-05-18 S 818 A 0517-6611(2016)18-260-034 結(jié)束語