高俊男 胡樹煜

[摘? ? 要] 本文通過對公眾服務平臺的APP應用程序分析,設計了A/S系統架構模式、數據庫和Android環境架設方式,用Activity實現頁面操作、用Intent傳遞信息、用Vibrator實現用藥提醒、用SensorManager實現血壓和心率測量,完成了APP主體功能的構建,對其他APP程序開發起到了導引作用,具有較高的推廣價值。
[關鍵詞] Android;公眾;服務;APP;開發
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2021. 01. 048
[中圖分類號] TP315? ? [文獻標識碼]? A? ? ? [文章編號]? 1673 - 0194(2021)01- 0119- 03
0? ? ? 引? ? 言
5G時代的到來,使移動互聯網高速發展,智能終端的使用,更成為人們生活中必不可少的一部分。APP(Application)是指安裝在智能終端上的應用軟件,使智能終端功能全面化,使用方便化,成為人們處理數據信息業務的主要途徑之一。
公眾服務平臺是根據特定用戶的共同需求,在一定時期內,進行組織、整合、集成、優化各類軟硬件資源,提供可共享的設施、設備、服務等共享資源的環境,達到用戶需求目的的一種特定的解決方案。公眾服務平臺具有基礎性、開放性和公益性特征。老年慢性病社區護理服務平臺是一種公益性的公眾服務平臺,使用APP為老年慢性病患者提供社區護理服務,更能快速高效的達到服務目的和標準,具有重要的現實意義,下面以此平臺為例進行描述公眾服務類APP的開發過程。
1? ? ? 系統需求分析
老年人由于生理功能減退、抵抗力下降、各項健康指標不達標,容易患上久治不愈的慢性病,老年人的健康水平受到社會各界的普遍關注。慢性病的問題是眾多老年人生活中的最大阻礙,對于老年人的慢性病的護理是當前護理研究中最重要的組成部分。基于Android的老年慢性病管理服務APP,不僅可以快捷方便的為老年人提供經濟實惠的高品質服務,更是提高生活質量,促進社會和諧發展的有效途徑,在老年人品質生活中具有大量的需求,在現實生活中具有重要的積極的意義。
2? ? ? 系統設計
2.1? ?系統架構
采用A/S(APP/Server,APP應用/服務器)模式是基于C/S(Client/Server,客戶端/服務器)模式的擴展模式,是APP應用程序作為客戶端與服務器進行數據交換的一種模式,如圖1所示,服務器上配置資源,搭載Android運行環境,開發的老年慢性病管理服務公眾平臺基于服務器運行,平臺的所有數據通過服務器和數據管道與數據庫進行交互,進行存儲、查詢、修改等數據操作,在公眾服務平臺上嵌入智能APP應用,用戶通過智能手機、平板等終端設備下載、安裝、應用APP上的服務和功能。
2.2? ?數據庫
MySQL是一種關系數據庫管理系統,從上市以來它的開源性、多線程、多用戶、良好的圖形界面等特性,一直受到廣大用戶的歡迎,使SQL結構化查詢語言操作更加方便、快捷。
我們使用Windows系統,安裝MySQL 8.0版本,另外還需要安裝它的圖形化用戶界面工具:數據庫管理MySQL Administrator、數據查詢MySQL Query Browser、數據遷移MySQL Migration Toolkit。
MySQL使用前需要進行配置,進行系統配置時,選擇默認參數即可,操作簡單,后期如果需要調整參數時,可以使用MySQL Server Instance Config Wizard工具進行修改即可。
安裝和配置好MySQL后,它會以Windows服務的形式存在,在服務管理器中對MySQL進行啟動應用即可。
2.3? ?Android環境架設
Android是基于Linux開放性內核的手機操作系統,最初是由Android公司開發,2005年被谷歌收購。Android平臺的開放性,自其上市以來就受到客戶群體的歡迎,其中在2011年的時候就在市場占有率中占有絕對優勢,擊敗諾基亞的“塞班”系統成為領頭羊。目前,Android已經成為主流手機操作系統,并占有持續性優勢。在系統的使用中,目前已經走向了各種智能領域,包括了智能手機、智能電視以及平板電腦等。
Android Studio是個新的開發環境,與早期開發App使用Eclipse相比,擁有更強大的功能和更高效的性能。本次開發使用Android Studio 9.0版本,在安裝前需要安裝JDK(Java Development Kit),JDK是Java的編譯器,因為Android應用是使用Java語言開發編寫的,所以先要安裝JDK作為編譯器。另外還需要安裝NDK(Native Development Kit),NDK是C/C++代碼的編譯器,主要用于接口使用。
Android Studio安裝后,還需要下載安裝軟件開發工具包SDK(Software Development Kit),便于后續開發工作。
安裝完成后,可以使用USB接口連接真實手機的方式、Android SDK提供的Android Virtual Device(AVD)虛擬手機方式、安裝第三方模擬器(如Genymotion模擬器)方式來運行環境。
3? ? ? 功能實現
3.1? ?用Activity實現頁面操作
在頁面設計中,根據視覺注意力聚焦點,把重要內容放在人們集中關注的左中上部。一個Activity代表一個頁面,我們可以通過調用Activity的onCreate方法可以建立函數的入口來實現頁面操作過程, AMS是通過ActivitvStack和其他數據結構,來記錄、管理、查詢Activity的一個系統服務,主要是以創建頁面(onCreate)、開始頁面(onStart)、恢復頁面(onResume)、暫停頁面(onPause)、停止頁面(onStop)、銷毀頁面(onDestroy)、重啟頁面(onRestart)幾個操作為中心進行,例如,從ActAActivity頁面跳轉到ActBActivity頁面的順序是:
A頁面onPause→B頁面onCreate→onStart→onResume→A頁面onStop
代碼實現如下:
@Override
protected void onStop() {? //停止活動頁面
refreshLife("onStop");
super.onStop();
}
@Override
protected void onCreate(Bundle savedInstanceState){? //創建活勸頁面
super.onCreate(savedlnstanceState);
setContentView(R.layout.activiry_ act_jump);
findViewById(R.id.btn_act_ next).setOnClickListener(this);
tv_ life=findViewById(R.id.tv_ life);
refreshLife("onCreate");
}
……
另外,也可以通過調用Activity的startActivity方法實現頁面跳轉。
3.2? ?用Intent傳遞信息
Intent主要用來傳遞信息,可以Android的各組件Activity、Service、Broadcast之間進行通信。Intent采用顯式和隱式方式來表達路徑方式。顯式Intent屬于精確匹配,直接指定來源類與目標類名,清晰明確,一般通過構造函數、setClass方法、setComponent方法來指定,代碼如下:
Intent intent=new Intent();//創建一個新意圖
ComponzntName component=new ComponentName(this, ActResponseActivity.class);
intent.setComnonent(comnonent);//設置意圖攜帶的組件信息
隱式Intent屬于模糊匹配,并不給出明確指定要跳轉的類名,只給出一個動作讓系統匹配擁有相同字串的目標,這個動作一般通過setAction方法、構造函數Intent(String action)指定,APP中調用系統撥號程序代碼如下設計:
Intent intent = new Intent();//創建一個新意圖
intent.setAction(Intent.ACTTON_CALL);//設置直接撥號為意圖動作
Uri uri=Uri.parse("tel:" + phone);//聲明撥號的Uri
intent. setData(uri);//設置意圖前往的路徑
startActivity(intent);//啟動意圖通往的話動頁面
3.3? ?用Vibrator實現用藥提醒
老年人用藥可以利用手機震動功能提醒,在Android的VIBRATOR_SERVICE服務中有一個震動器Vibrator,可以完成我們所需要的功能,在AndroidManifest.xml 中加上權限,否則無法使用震動器,代碼如下:
<!--震動-->
控制手機震動的代碼如下:
Vibrator vibrator= (Vibrator) getSystemServicer(Context. VIBRATOR_SERVICE);//從系統服務中獲取震動器
vibrator.vibrate(10000);//設置震動器震動10秒
3.4? ?用SensorManager實現血壓和心率測量
Android系統提供了傳感器功能,使用SensorManager控件進行注冊后使用,測量血壓可以使用壓力傳感器,代碼設計如下:
public class MainActivity extends Activity implements SensorEventListener
{
private TextView etPressure;//定義壓力管理器
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity main);//獲取界面上的TextView組件
etPressure=findViewById(R.id.etPressure);
mSensorManager=(SensorManager)
getSystemService(Context.SENSOR SERVICE);//獲取傳感器管理服務
}
@Override
public void onResume()
{
mSensorManager .registerListener(this,
mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE),
SensorManager .SENSOR DELAY GAME);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy)
@Override
public void onSensorChanged(SensorEvent event)
{
s=new? StringBuilder();
s.append (“當前血壓為:”);
s.append (values[0]);
etPressure·setText(s.toString());
break;
……
心率判斷可以通過android.permission.BODY SENSORS獲得權限,通過SensorEvent的accuracy屬性判斷是否準確,如果該屬性值為SENSOR_ STATUS_ UNRELIABLE或SENSOR STATUS NO CONTACT,則表明傳感器返回的心率值是不太可靠的,應該丟棄。
4? ? ? 結? ? 語
隨著智能手機的不斷革新,APP現在已經成為附帶的主流應用工具,老年慢性病社區護理服務平臺的開發是公眾服務平臺開發中最典型的應用,具有一定的代表性,在后期的實踐應用中會不斷完善其功能。Android系統開發具有開放性、普遍性,通過本文的架構,希望帶給大家更多的創作靈感,開發出更高效、實用的APP程序。
主要參考文獻
[1]趙娟.基于Android的人臉識別系統開發[J].中國管理信息化,2020(11):184-186.
[2]傅天泓.基于Android的掌上醫院APP的設計與實現[J].安徽電子信息職業技術學院學報,2019(6):1-5.
[3]韓旭.基于Android的出行助手App的設計與實現[J].電子世界,2018(24):194,196.
[4]潘慶紅,黎明,寧金偉.基于Android的“家校通”APP設計與實現[J].湖南科技學院學報,2018(10):85-88.