You are on page 1of 28

HC VIN CNG NGH BU CHNH VIN THNG

C S TI THNH PH H CH MINH
------------------------------

BO CO NH K THC TP
TT NGHIP I HC
ti : Xy dng ng dng t taxi trn thit b Android
Gio vin hng dn

: ThS. L Minh Ha

Sinh vin thc hin

: Nguyn Nht Tun

M s sinh vin

: N112104084
Lp : D11CQPM01-N
Kha : 2011
H

: i hc chnh quy

TPHCM, Thng 8/2015

LI CM N
Sau mt thi gian thc hin n n nay, mi cng vic hon thnh. Trong
qu trnh thc hin n ti nhn c nhiu s gip t mi ngi. Ti xin chn
thnh gi li cm n n nhng ngi ti v cng bit n:
Trc ht, ti xin chn thnh cm n Khoa Cng Ngh Thng Tin, Hc Vin Cng
Ngh Bu Chnh Vin Thng c s ti Thnh Ph H Ch Minh to iu kin tt cho
ti thc hin ti thc tp tt nghip ny.
Ti xin chn thnh cm n thy L Minh Ha tn tnh hng dn ti trong sut
thi gian thc hin ti.
Cui cng ti xin chn thnh cm n qu thy c trong khoa tn tnh ging dy,
trang b cho chng ti nhng kin thc qu bu trong nhng nm hc va qua.
Mc d c gng hon thnh ti trong phm vi cho php, nhng y l ngn
ng mi, kh xa l vi ti nn khng th trnh khi sai st, ti rt mong nhn c s
ng gp ph bnh ca cc thy c c nhng kinh nghim khi ra trng v cng
vic sau ny.

TP.H Ch Minh, thng 08 nm 2015


Sinh vin
Nguyn Nht Tun

CNG HA X HI CH NGHA VIT NAM


c lp- T do- Hnh phc
TP. H Ch Minh, ngy

thng

nm 2015

NHN XT CA N V THC TP
THC TP TT NGHIP I HC
1 Tn ti: Xy dng ng dng t taxi trn thit b Android.
2 Sinh vin: Nguyn Nht Tun

Lp: D11CQPM01-N

3 Gio vin hng dn: ThS.L Minh Ha


4 Ni thc tp: Hc vin Cng ngh Bu chnh Vin thng.
NI DUNG NHN XT
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
Xc nhn ca c s thc tp
(K, ghi r h tn, ng du)

CNG HA X HI CH NGHA VIT NAM


c lp- T do- Hnh phc
TP. H Ch Minh, ngy

thng

nm 2015

NHN XT CA GIO VIN HNG DN


THC TP TT NGHIP I HC
1.

Tn ti: Xy dng ng dng t taxi trn thit b Android.

2. Sinh vin: Nguyn Nht Tun

Lp: D11CQPM01-N

3. Gio vin hng dn: ThS. L Minh Ha


4. Ni thc tp: Hc Vin Cng Ngh Bu Chnh Vin Thng.
NI DUNG NHN XT
1.

nh gi chung:

2.

nh gi chi tit:

3.

Nhn xt v tinh thn, thi lm vic:

4.

Kt lun:

5.

im hng dn ():
GING VIN HNG DN
(K, ghi r h tn)

LI M U
Ngy nay h iu hnh Android tr nn qu quen thuc vi s lng thit b s dng
ng u, chim gn 80% s lng ngi dng v khng ngng tng trng.
Android c m ngun m v Google pht hnh m ngun theo Giy php Apache. Chnh
iu ny gip cho Android c c mt cng ng h tr cc ln.
Cc ng dng cho Android c pht trin bng ngn ng Java s dng B pht trin
phn mm Android (SDK). SDK bao gm mt b y cc cng c dng pht trin
gm c cng c g li, th vin phn mm, b gi lp in thoi da trn QEMU, ti liu
hng dn, m ngun mu, v hng dn tng bc. Mi trng pht trin tch hp
(IDE) c h tr c th l Eclipse hoc Android Studio. Cc cng c pht trin khc
cng c sn, gm c B pht trin gc dnh cho cc ng dng hoc phn m rng vit
bng C hoc C++, Google App Inventor, mt mi trng ha cho nhng nh lp trnh
mi bt u, v nhiu nn tng ng dng web di ng a nn tng phong ph.
Sau khi nghin cu ti ti quyt nh chia thi gian nghin cu lm hai giai on:
Giai on mt, tp trung nghin cu v nhng vn c bn ca ngn ng, cch s
dng .Net Web Service trong Android, cch thc t Taxi. Giai on hai s tin hnh vit
chng trnh da trn nhng g nghin cu giai on 1.

Mc lc
CHNG I: TM HIU V WEB SERVICE, GOOGLE CLOUD MESSAGE...............7
I. Gii thiu v Web Service:.......................................................................................7

II.

1.

Khi nim :........................................................................................................7

2.

c im :.........................................................................................................7

3.

Kin trc Web Service:......................................................................................8

4.

Cc thnh phn ca Web Service :.....................................................................8

2.

V d xy dng mt dch v Web:...................................................................12


Gii thiu v Google Cloud Message (GSM).....................................................20

CHNG I: TM HIU V WEB SERVICE, GOOGLE CLOUD MESSAGE


I.

Gii thiu v Web Service:


1. Khi nim :
Theo nh ngha ca W3C (World Wide Web Consortium), Web
service l mt h thng phn mm c thit k h tr kh nng tng
tc gia cc ng dng trn cc my tnh khc nhau thng qua mng
Internet, giao din chung v s gn kt ca n c m t bng XML. Web
service l ti nguyn phn mm c th xc nh bng a ch URL, thc
hin cc chc nng v a ra cc thng tin ngi dng yu cu. Mt Web
service c to nn bng cch ly cc chc nng v ng gi chng sao
cho cc ng dng khc d dng nhn thy v c th truy cp n nhng dch
v m n thc hin, ng thi c th yu cu thng tin t Web service khc.
N bao gm cc m un c lp cho hot ng ca khch hng v doanh
nghip v bn thn n c thc thi trn server.
2. c im :
- Web service cho php client v server tng tc c vi nhau
ngay c trong nhng mi trng khc nhau. V d, t Web server cho ng
dng trn mt my ch chy h iu hnh Linux trong khi ngi dng s
dng my tnh chy h iu hnh Windows, ng dng vn c th chy v
x l bnh thng m khng cn thm yu cu c bit tng thch gia
hai h iu hnh ny.
- Phn ln k thut ca Web service c xy dng da trn m
ngun m v c pht trin t cc chun c cng nhn, v d nh
XML.
- Mt Web service bao gm c nhiu m-un v c th cng b ln
mng Internet.
- L s kt hp ca vic pht trin theo hng tng thnh phn vi
nhng lnh vc c th v c s h tng Web, a ra nhng li ch cho c
doanh nghip, khch hng, nhng nh cung cp khc v c nhng c nhn
thng qua mng Internet.
- Mt ng dng khi c trin khai s hot ng theo m hnh
client-server. N c th c trin khai bi mt phn mm ng dng pha
server v d nh PHP, Oracle Application server hay Microsoft.Net
7

3. Kin trc Web Service:

Tng vn chuyn vi nhng cng ngh chun l HTTP, SMTP,


JMS.
Tng giao thc tng tc dch v (Service Communication
Protocol) vi cng ngh chun l SOAP. SOAP l giao thc nm
gia tng vn chuyn v tng m t thng tin v dch v, cho
php ngi dng triu gi mt dch v t xa thng qua mt thng
ip XML.
Tng m t dch v (Service Description) vi cng ngh chun l
WSDL v XML. WSDL l mt ngn ng m t giao tip v thc
thi da trn XML. Web Service s dng ngn ng WSDL
truyn cc tham s v cc loi d liu cho cc thao tc, cc chc
nng m web service cung cp.
Tng dch v (Service) : Cung cp cc chc nng ca Service.
Tng ng k (Service Registry) vi cng ngh chun l UDDI.
Ngoi ra, cc dch v c tnh an ton, ton vn v bo mt
thng tin, trong kin trc dch v Web, chng ta c thm cc tng
Policy, Security, Transaction, Management.

4. Cc thnh phn ca Web Service :


a. XML eXtensible Markup Language:
L mt chun m do W3C a ra cho cch thc m t d liu, n
c s dng nh ngha cc thnh phn d liu trn trang web v
cho nhng ti liu B2B. V hnh thc, XML hon ton c cu trc th
8

ging nh ngn ng HTML nhng HTML nh ngha thnh phn c


hin th nh th no th XML li nh ngha nhng thnh phn cha
ci g. Vi XML, cc th c th c lp trnh vin t to ra trn mi
trang web v c chn l nh dng thng ip chun bi tnh ph bin
v hiu qu m ngun m.
Do dch v Web l s kt hp ca nhiu thnh phn khc nhau nn
n s dng cc tnh nng v c trng ca cc thnh phn giao
tip. XML l cng c chnh gii quyt vn ny v l kin trc nn
tng cho vic xy dng mt dch v Web, tt c d liu s c chuyn
sang nh dng th XML. Khi , cc thng tin m ha s hon ton ph
hp vi cc thng tin theo chun ca SOAP hoc XML-RPC v c th
tng tc vi nhau trong mt th thng nht.
b. WSDL Web Service Description Language.
WSDL nh ngha cch m t dch v Web theo c php tng qut
ca XML, bao gm cc thng tin:
Tn dch v
Giao thc v kiu m ha s c s dng khi gi cc hm ca dch
v Web
Loi thng tin: thao tc, tham s, nhng kiu d liu (c th l giao
din ca dch v Web cng vi tn cho giao din ny).
Mt WSDL hp l gm hai phn: phn giao din (m t giao din v
phng thc kt ni) v phn thi hnh m t thng tin truy xut CSDL.
C hai phn ny s c lu trong 2 tp tin XML tng ng l tp tin
giao din dch v v tp tin thi hnh dch v. Giao din ca mt dch v
Web c miu t trong phn ny a ra cch thc lm th no giao
tip qua dch v Web. Tn, giao thc lin kt v nh dng thng ip
yu cu tng tc vi dch v Web c a vo th mc ca
WSDL.

WSDL thng c s dng kt hp vi XML schema v SOAP


cung cp dch v Web qua Internet. Mt client khi kt ni ti dch v
Web c th c WSDL xc nh nhng chc nng sn c trn server.
9

Sau , client c th s dng SOAP ly ra chc nng chnh xc c


trong WSDL.
c. Universal Description, Discovery, and Integration (UDDI)
c th s dng cc dch v, trc tin client phi tm dch v, ghi
nhn thng tin v cch s dng v bit c i tng no cung cp
dch v. UDDI nh ngha mt s thnh phn cho bit cc thng tin ny,
cho php cc client truy tm v nhn nhng thng tin c yu cu khi
s dng dch v Web.
d. SOAP Simple Object Access Protocol
Chng ta hiu c bn Web service nh th no nhng vn cn
mt vn kh quan trng. l lm th no truy xut dch v khi
tm thy? Cu tr li l cc Web service c th truy xut bng mt
giao thc l Simple Object Access Protocol SOAP. Ni cch khc
chng ta c th truy xut n UDDI registry bng cc lnh gi hon
ton theo nh dng ca SOAP.
SOAP l mt giao thc giao tip c cu trc nh XML. N c
xem l cu trc xng sng ca cc ng dng phn tn c xy dng
t nhiu ngn ng v cc h iu hnh khc nhau. SOAP l giao thc
thay i cc thng ip da trn XML qua mng my tnh, thng
thng s dng giao thc HTTP.
Mt client s gi thng ip yu cu ti server v ngay lp tc
server s gi nhng thng ip tr li ti client. C SMTP v HTTP u
l nhng giao thc lp ng dng ca SOAP nhng HTTP c s
dng v chp nhn rng ri hn bi ngy nay n c th lm vic rt tt
vi c s h tng Internet.
Thng ip theo nh dng SOAP l mt vn bn XML bnh thng
bao gm cc phn t sau:
- Phn t gc envelop: phn t bao trm ni dung thng ip, khai bo
vn bn XML nh l mt thng ip SOAP.
- Phn t u trang header: cha cc thng tin tiu cho trang, phn
t ny khng bt buc khai bo trong vn bn. Header cn c th mang
nhng d liu chng thc, nhng ch k s, thng tin m ha hay ci
t cho cc giao dch khc.
10

- Phn t khai bo ni dung chnh trong thng ip body, cha cc


thng tin yu cu v thng tin c phn hi.
- Phn t a ra cc thng tin v li -fault, cung cp thng tin li xy ra
trong qa trnh x l thng ip.
Mt SOAP n gin trong body s lu cc thng tin v tn thng
ip, tham chiu ti mt th hin ca dch v, mt hoc nhiu tham s.
C 3 kiu thng bo s c a ra khi truyn thng tin: request
message(tham s gi thc thi mt thng ip), respond message (cc
tham s tr v, c s dng khi yu cu c p ng) v cui cng l
fault message (thng bo tnh trng li).

Kiu truyn thng: C 2 kiu truyn thng


- Remote procedure call (RPC): cho php gi hm hoc th tc qua
mng. Kiu ny c khai thc bi nhiu Web service.
- Document: c bit n nh kiu hng thng ip, n cung cp
giao tip mc tru tng thp, kh hiu v yu cu lp trnh vin mt
cng sc hn.

Hai kiu truyn thng ny cung cp cc nh dng thng ip, tham


s, li gi n cc API khc nhau nn vic s dng chng ty thuc vo
thi gian v s ph hp vi Web service cn xy dng.

Cu trc d liu: Cung cp nhng nh dng v khi nim c bn


ging nh trong cc ngn ng lp trnh khc nh kiu d liu (int,
string, date) hay nhng kiu phc tp hn nh struct, array, vector
nh ngha cu trc d liu SOAP c t trong namespace SOAPENC.

M ha: Gi s service rquester v service provider c pht trin


trong Java, khi m ha SOAP l lm th no chuyn i t cu trc
11

d liu Java sang SOAP XML v ngc li, bi v nh dng cho Web
Service chnh l XML. Bt k mt mi trng thc thi SOAP no cng
phi c mt bng cha thng tin nh x nhm chuyn i t ngn ng
Java sang XML v t XML sang Java bng c gi l
SOAPMappingRegistry. Nu mt kiu d liu c s dng di mt
dng m ha th s c mt nh x tn ti trong b ng k ca mi
trng thc thi SOAP .

5. V d xy dng mt dch v Web:


B1: To c s d liu nh sau:

B2: Dng Visual Studio to mt Web Service:


-

To ASP.NET Web Application.

12

To Web Service:

13

B3: Tin hnh tng tc CSDL vit cc dch v (dng Linq)


-

To kt ni: Chn Server Explorer, chn biu tng c khoanh


.

14

Mn hnh kt ni hin ra, tin hnh in thng tin thch hp.


(Ch Test Connection nu Succeeded l c).

15

16

Add Linq:

Tin hnh ko th CSDL, Store Proceduce.

17

B4: Tin hnh vit dch v getListTaxiNearCustomer tr v danh


sch taxi trong bn knh 3km tnh t v tr ngi dng.

18

B5: F5 chy th dch v.

19

II.

Gii thiu v Google Cloud Message (GSM).


1. Gii thiu :
Google Cloud Messaging (GCM) l mt dch v cho php gi d liu t
my ch ca bn n cc thit b Android ca ngi dng, v ngc li.
GCM c s dng cho hot ng giao dch gia cc ng dng v my ch
h tr u cui. Cloud Messaging hin ang c tch hp vo Google Play
Services v nh nhng ci tin mnh m.

2. Nguyn tc hot ng :

3. Thnh phn :
C 3 thnh phn chnh l:
20

- GCM Connection Servers: My ch google dng gi tin nhn gia server


v client.
- Client app.
- App server.
- Sender ID: Chnh l project ID dng xc nhn app server no c quyn
gi tin nhn n client.
- API Key: app server dng API key truy cp vo cc dch v ca Google.
- Application ID.
- Registration Token: do my ch GCM cung cp cho client, cho php client
nhn c tin nhn.
4. S dng:
4.1 Client:
- s dng, ta cn ng k token vi GCM. lm c iu ny s dng
i tng InstanceID.
InstanceID instanceID = InstanceID.getInstance(this);
String token = instanceID.getToken(senderId,
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
- S dng mt service extend InstanceIDListenerService theo di s thay
i ca token. Phng thc onTokenRefresh c gi khi token b thay i.
@Override
public void onTokenRefresh() {
// Do something
}
- S dng mt service extend GcmListenerService nhn tin nhn. Phng
thc onMessageReceived c gi khi c tin nhn truyn ti.
@Override
21

public void onMessageReceived(String from, Bundle data) {


String message = data.getString("message");
Log.i(TAG, "From: " + from);
Log.i(TAG, "Message: " + message);
}
4.2 Server:
- gi mt tin nhn, s dng POST request gm 2 phn HTTP header v
HTTP body.
- HTTP header cn c cc thnh phn sau:
+ Authorization: key = YOUR_API_KEY
+ Content-Type: application/json cho nh dng JSON hoc application/xwww-form-urlencoded;charset=UTF-8 cho nh dng plant text. Nu khng
khai bo th mc nh l plant text. V d:
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{
"to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
"data" : {
...
},
}
- HTTP body ph thuc vo vic phn HTTP header s dng JSON hay plant
text. Mt vi tham s c bn:
+ registration_ids: tham s ny xc nh danh sch cc thit b nhn c tin
nhn (token). Ch s dng vi nh dng JSON.

22

+ time_to_live: quy nh thi gian lu tr b nh GCM nu thit b offline.


Ti a l 4 tun.
V d:
{ "collapse_key": "score_update",
"time_to_live": 108,
"data": {
"score": "4x8",
"time": "15:16.2342"
},
"to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."
}

III.

Gii thiu v KSOAP2 API.


1. Gii thiu :
L mt th vin c thit k v pht trin cho cc h thng nhng nh
in thoi.
kSOAP2 c to thnh t XML parse, de/serializer v transport layer.
- XML parse: kSOAP2 s dng kXML v pull parse xml phn tch c

php.
- De/serializer: Mapping cc i tng vo ti liu XML v ngc li. C 2
i tng chnh thc hin l l SoapPrimitives hoc SoapObjects.
- The transport layer: tng ny cung cp cc c ch server v client
truyn thng ip vi nhau.
2. S dng :
- To phn body gm namespace v tn phng thc. Thm thuc tnh nu
cn thit.

23

+ V d mt HTTP Request nh hnh di. Namespace s l http://nhattuan.org,


Method name l driverLogin. Chng ta cn c thm mt thuc tnh imei dng string/

Final String NAMESPACE = http://nhattuan.org;


Final String METHOD_NAME = driverLogin;
SoapObject request = new
SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("imei",imei);

- To mt Envelop (S dng SOAP 1.1):


SoapSerializationEnvelope envelope = new
SoapSerializationEnvelope(SoapEnvelope.VER11);
// S dng Web Service chy trn .Net
envelope.dotNet = true;
// Thm phn body vo envelop
envelope.setOutputSoapObject(request);

- To i tng HTTPTransportSE gi request.


24

// URL a ch ca web service, v d:


// http://ttaxi.somee.com/TTaxiWebService.asmx
HttpTransportSE transportSE = new HttpTransportSE(URL);
- Gi request:
// SOAPAction = NAMESPACE + METHOD_NAME
transportSE.call(SOAP_ACTION, envelope);
- Nhn response t server:
+ D liu tr v c kiu Primitive Data:
SoapPrimitive response=(SoapPrimitive) envelope.getResponse();
+ D liu tr v c kiu Complex Data:
SoapObject response = (SoapObject) envelope.getResponse();
// C th duyt mng nu c nhiu gi tr
for(int i=0; i< response.getPropertyCount(); i++)
{
SoapObject soapItem =(SoapObject) response.getProperty(i);
String item1 = soapItem.getProperty (item1).toString();
//.
}

IV.

Gii thiu Google Play services location APIs.


1. Gii thiu :
S dng Google Play services location APIs, ng dng c th yu cu v tr
cui cng ca thit b. Trong hu ht cc trng hp, v tr ny chnh l v
tr hin ti ca ngi dng.
C th, s dng mt fused location provider ly v tr cui cng ca thit
b. Fused location provider l mt trong cc location APIs ca Google play
25

service. N qun l cng ngh nh v v cung cp mt API c bn dng


bn c th thit lp cc yu cu mc cao, v d ch d tm vi
chnh xc cao, hoc in nng thp.

2. S dng :
- kt ni ti cc API, chng ta cn to mt th hin ca Google Play
services API client. Trong phng thc onCreate(), s dng
GoogleApiClient.Builder to mt th hin Google API Client, ng
thi thm LocationServices API s dng.
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
- Sau khi kt ni, ta c th s dng phng thc getLastLocation() ly v
tr cui cng ca thit b. Phng thc ny tr v mt i tng Location,
t i tng ny c th ly c kinh , v tng ng. Tuy nhin cng
c mt s trng hp tr v null.
- cp nht v tr thit b, trc tin ta cn to mt i tng
LocationRequest dng lu tr cc tham s thit lp yu cu n fused
location provider.
+ setInterval () - Phng thc ny t tc tnh bng mili giy ng
dng ca bn s nhn c v tr cp nht.
+ setFastestInterval () - Phng php ny t tc nhanh nht tnh bng
mili giy m ng dng ca bn c th x l vic cp nht v tr.
+ setPriority () - phng thc ny t u tin ca cc yu cu.

LocationRequest mLocationRequest = new LocationRequest();


mLocationRequest.setInterval(10000);
26

mLocationRequest.setFastestInterval(5000);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_
ACCURACY);
- Yu cu cp nht:
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mLocationRequest, this);
- Khi c s thay i v v tr, phng thc
LocationListener.onLocationChanged() c gi:
@Override
public void onLocationChanged(Location location) {
// Do something
}
- Dng cp nht:
LocationServices.FusedLocationApi.removeLocationUpdates(
mGoogleApiClient, this);
- Ly tn v tr: S dng i tng Geocoder.
+ Khi to mt i tng Geocoder:
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
+ c c mt a tng ng vi mt v tr a l, gi phng thuwcsc
getFromLocation (), tham s truyn vo l v v kinh t i tng v
tr v s lng ti a ca cc a ch m bn mun ly.
List<Address> addresses = null;
try {
addresses = geocoder.getFromLocation(
location.getLatitude(),
27

location.getLongitude(),
// y ch ly 1 a ch tr v.
1);
} catch (Exception e) {
}

28

You might also like