常丹妮+何君+王佩+劉展+許夢(mèng)田+童亞拉
摘 要:目前國內(nèi)市場(chǎng)旅游軟件,本文開發(fā)了一款基于安卓的“行·走”APP客戶端。技術(shù)主要有XML、SQLite數(shù)據(jù)庫和LBS位置服務(wù)等,功能分為登錄注冊(cè)模塊、GPS定位模塊、游記模塊、個(gè)人中心模塊等,基本實(shí)現(xiàn)了軟件的各個(gè)功能。調(diào)試運(yùn)行的結(jié)果表明,該系統(tǒng)運(yùn)行正常,人機(jī)界面交互性較好。
關(guān)鍵詞:Android平臺(tái);旅游APP;地圖定位;游記;GPS
目前旅行越來越成為人們假期休閑娛樂的必然選擇,在QQ動(dòng)態(tài)、朋友圈里曬游記也成為時(shí)尚,但大部分放棄了文字,偏向于照片,使游記過于空洞。國內(nèi)旅游類APP記錄類軟件就是記事本,如小米便簽、加密日記等,其主要特點(diǎn)是界面簡(jiǎn)單,功能單一,不能插入圖片等[1]。針對(duì)此現(xiàn)狀,本文基于Android設(shè)計(jì)一款手機(jī)APP,為用戶提供一個(gè)專門用來寫游經(jīng),為喜歡曬旅行的朋友創(chuàng)建一個(gè)回憶的平臺(tái)。
1 相關(guān)技術(shù)及開發(fā)運(yùn)行環(huán)境
1.1 Android系統(tǒng)
Android系統(tǒng)由操作系統(tǒng)、用戶界面和應(yīng)用程序組成,提供了一套開源的手機(jī)終端解決方案[2],為軟件開發(fā)人員提供了大量的使用庫和工具:Http類、Android shell類、文件類、JSONUtils類、Map類、Object類等,軟件開發(fā)人員利用使用庫和工具類可快速創(chuàng)建應(yīng)用程序[3]。
1.2 Android中的數(shù)據(jù)存儲(chǔ)
SQLite是Android自帶的關(guān)系型數(shù)據(jù)庫,是專門為嵌入式設(shè)備打造的基于文件的輕量型數(shù)據(jù)庫,每個(gè) Android 應(yīng)用程序都可以直接使用 SQLite 數(shù)據(jù)庫,不需要導(dǎo)入操作。本文利用第三方類庫Afinal來操作Android自帶庫SQLite[4][5]。
2 “行·走”APP的設(shè)計(jì)與實(shí)現(xiàn)
2.1 軟件系統(tǒng)構(gòu)成模塊
會(huì)員功能 用戶注冊(cè)為系統(tǒng)會(huì)員;會(huì)員信息管理功能,登錄后可在個(gè)人中心進(jìn)行信息管理,查看旅行記錄;
定位功能 用戶登錄后,彈出對(duì)話框是否定位,選擇定位后,顯示當(dāng)前具體位置;
查閱功能 進(jìn)入個(gè)人中心后顯示全部旅行記憶;
增刪功能 這是本軟件的特色,用戶可在上傳的游記上修改,隨時(shí)記錄隨時(shí)上傳。
2.2 APP的功能設(shè)計(jì)與實(shí)現(xiàn)
本系統(tǒng)采用TabLayout + ViewPager + Fragment結(jié)構(gòu),這是系統(tǒng)的核心組件。鑒于文章篇幅,僅闡述記錄游記功能的設(shè)計(jì)與實(shí)現(xiàn)。
(1)開發(fā)XML界面布局,主要由res/layout目錄下的activity_daily.xml文件實(shí)現(xiàn),寫游記頁面則由主頁面(activity_main.xml)切換過來。
(2)記錄游記的實(shí)現(xiàn)通過src目錄下的com.rose.travels.log包實(shí)現(xiàn),WriteTourDailyActivity.java文件用來顯示游記,當(dāng)用戶在主界面點(diǎn)擊寫游記按鈕,進(jìn)程跳轉(zhuǎn)到寫游記頁面,核心代碼如下:
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_daily); findViews();
tvTime.setOnClickListener(new OnClickListener()
public void onClick(View arg0) {
CanlenderDialogUtil.showDataSelecterDialog(getSupportFragmentManager(), new ISelectDayCallBack() {@Override public void getSelectedDay(String day,long timpStamp) { tvTime.setText(day);timeStr = day; } },true);
protected void doSaveWork() {
DailyBean bean = new DailyBean();
bean.setName(etDailyName.getText().toString());
bean.setContent(etContent.getText().toString());
bean.setAddress(etAddress.getText().toString());
bean.setDate(timeStr);
OrientApplication.getInstance().db.save(bean);
ToastUtil.shortShow(“保存成功”);finish();}
noScrollgridview = (GridView) findViewById(R.id.noScrollgridview);
noScrollgridview.setSelector(new ColorDrawable(Color.TRANSPARENT));
adapter = new GridAdapter(this); adapter.update();
noScrollgridview.setAdapter(adapter);
noScrollgridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
if (arg2 == Bimp.bmp.size()) { new PopupWindows(PublishedActivity.this, noScrollgridview);} else {Intent intent = new Intent(PublishedActivity.this, PhotoActivity.class);
intent.putExtra(“ID”, arg2);startActivity(intent);
3 結(jié)束語
在對(duì)國內(nèi)外同類手機(jī)軟件分析的基礎(chǔ)上,根據(jù)曬游記需求進(jìn)行了功能文壇分析,結(jié)合安卓系統(tǒng)開發(fā)的系統(tǒng)結(jié)構(gòu)框架和五大應(yīng)用組件,探討了“行走”APP前端界面如何實(shí)現(xiàn)交互,編程如何實(shí)現(xiàn)功能等,上線效果良好。但本軟件仍存在一些不足,如GPS的應(yīng)用僅僅局限于定位當(dāng)前位置,不能實(shí)現(xiàn)導(dǎo)航,甚至路線分享,這是尚須改進(jìn)之處。
參考文獻(xiàn)
[1]胡霞.Android版某記事本旅游記憶模塊的設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué).2013.
[2]王雅寧.輕松學(xué)Android開發(fā)[M].北京:電子工業(yè)出版社.2013.
[3]葉達(dá)峰.Eclipse編程技術(shù)與實(shí)例[M].北京:人民郵電出版社.2012.
[4]Paul POCATILU. Developing Mobile Learning Applications for Android using web Services[J].Informatica Economica.2010.
[5]尹京花、王華軍.基于安卓開發(fā)的數(shù)據(jù)存儲(chǔ)[J].數(shù)字通信.2012.
通訊作者
童亞拉(1966-),女,湖南桃源人,教授,博士,湖北工業(yè)大學(xué)理學(xué)院,研究方向:智能計(jì)算,復(fù)雜網(wǎng)絡(luò)。