BQ MAO DUC DAO T30

D3I HQC THANG LONG

---o0o---

ICHOA LUAN TOT NGHIEP

TIM HIEU NCH VI) GOOGLE MAP XAY DIJSNG ffNG DIJNG CHIA SE VI TRi VOI BAN BE TREN NEN TANG ANDROID

MAO VIEN HUONG DAN : Ths. Le Minh Tula

Tan Trung

SINN VIEN THVC EltN : (cid:9)

(cid:9)

: A14986

MA SINK VIEN

(cid:9)

: Khoa hue may tinh

CHUAN NGANH

HA NQI - 2014

(cid:9)

MVC LVC

1

(cid:9)

LEI NOI DAU

-3

CH1TONG 1. GIO.1 THI$U BAI TORN

VAI NET VE GOOGLEMAP (cid:9)

3 3 3

1.1. (cid:9) 1.2. NNONo GI GOOGLEMAP KHONG HO TROT (cid:9) 1.3. (cid:9)

1.4.

4 4 4 4

Tim SAO LAI CAN ONG DUNG CHIA SE VI lid? (cid:9) MOI THONG HOAT %NG (cid:9) 1.4.1. Tai sao lai ding Android? (cid:9) 1.4.2. Google Map API la gi? (cid:9) 1.4.3. Server gamin 11 , hoot dong (cid:9)

CH1U'ONG 2. GIOI THI$U HE DIEU HANH ANDROID-----..------ .....

5

ANDROID LA GI? (cid:9)

2.1. (cid:9)

2.2. (cid:9)

LjCH Sll PRAT TRIEN (cid:9) 2.2.1. Su ra dei cia Android (cid:9) 2.22. Ctic phien ban Android (cid:9)

KEEN TROC HE DIEU HANH ANDROID (cid:9)

2.3. (cid:9)

6 6 7 11 11 12 12 13 14

2.3.1. Linux Kernel (cid:9) 2.3.2. Libraries (cid:9) 2.3.3. Android Runtime (cid:9) 2.3.4. Application Framework (cid:9) 2.3.5. Application (cid:9)

2.4. (cid:9)

(cid:9)

14 14 14 15

fiNG DUNG THEN TIBET BI ANDROID (cid:9) 2.4.1. 1VhOng gidi hpn cua thilt bi di Ong 2.4.2. Ngen ng9 lop trinh (cid:9) 2.4.3. Most truing hgp trinh (cid:9)

—16

CHUVNG 3. TONG QUAN VE GOOGLE MAP API (cid:9)

16

3.1. (cid:9)

GICsi THI$U VE GOOGLE MAP API (cid:9) SO' DUNG GOGGLE MAP API (cid:9)

3.2. (cid:9)

3.2.1.

cai d4t va arch ery Google Map API (cid:9)

3.3. CAC DOI WONG QUAN THONG WONG GOOGLE MAP API (cid:9) tuong ben db - The Map Object (cid:9)

16 16 24 24 24 27

13.1. (cid:9) 3.3.2. Marker (cid:9) 13.3. !Info Windows (cid:9)

...29

(cid:9)

CHITONG 4. CHHONG TRINH 2FRIEND

4.1. (cid:9)

4.2. (cid:9)

4.3. (cid:9)

29 30 31 32 36 39

GI& Tilleu BA1 TOAN (cid:9) MOT s0 flu cAu COA BA1 ToAN (cid:9) CAc nitre NANG cHINN (cid:9) 4.3.1. Chic ming &mg kyStai !chain (cid:9) 4.3.2. Chtic :tong demo MO (cid:9) 4.13. Chic ming xem ban do (cid:9)

p

42

46

51

53

57

61

4.14. Chic ming xem vi tri mkt mink (cid:9) 4.15. Char ndng xem vi tri bon bi (cid:9) 4.3.6. Chile nang nip nh4t t4 tri (cid:9) 4.3. 7. Chtk mIng gui yiu cdu kit bon (cid:9) 4.3.8. Chic mkg xcic nIttrm yiu eau kit bon (cid:9) 4.3.9. Chtic ntIng tim ditimg din vi tri bon (cid:9)

63

4.3.10. (cid:9)

66

Chile rating xem thong tin bon (cid:9) Char ?tang giao tilp vol bon (cid:9)

4.3.11. (cid:9)

69

4.112. (cid:9)

72

Chic neng Miy kit bon. (cid:9) Chic ming Op MO thong tin cli ?them (cid:9)

4.3.13. (cid:9)

76

Chile :tang thay dal met khiu (cid:9)

4.3.14. (cid:9)

80

Chic mIng (Yang mit (cid:9)

4.3.15. (cid:9)

82

MQT SO VAN DE icHAc (cid:9)

4.4. (cid:9)

82

85

88

4.4.1. Kin di chi duir• ng - Direction API (cid:9) 4.4.2. Kin di dinh vi vi tri thiit bj (cid:9) 4.4.3. Kin di idn suit cdp nhtit de lieu (cid:9)

THIET KE cO set al LIEU (cid:9)

4.5. (cid:9)

89

4.11. M6 hinh quan hf (cid:9)

89

4.5.2. Cac bang ate !Nu (cid:9)

92

KET LUAN VA DINH WANG PHAT TRIEN (cid:9)

4.6. (cid:9)

92

92

4.6.1. Kit qua dot &or (cid:9) 4.6.2. Dinh Throng phcit Men (cid:9)

(cid:9)

94

CH1UONG 5. PHU LOC - CODE MQT So alit NANG CHINH•

94

5.1.1. Cher Wing deng kY tii khoint (cid:9)

95

5.11 Chtk ?tang ddng nhdp (cid:9)

96

5.1.3. Chic ming hien tri vi tri bon (cid:9)

97

98

5.1.4. Chile :tang gut yiu cdu kit km (cid:9) 5.1.5. Char ming xac nhtin yiu cdu kelt bon (cid:9)

100

5.1.6. Chtec Mug dinh vi vj tri (cid:9)

101

105

11.7. Char tiling tim dventg din vi tri 5.1.8. Chile ?tang cdp Mule thong tin ca thin (cid:9)

108

5.1.9. Char nang thay doi mot khtiu (cid:9)

(cid:9)

110

TAI LIEU THAM !CHAO

DANII MVC HITNH ANH

11 Hinh 2-1: Cac thanh phen cila he dieu himh Android (cid:9)

11 Hinh 2-2: M8 hinh hqp tac gifts may io Dalvik vi Native code (cid:9)

16 Hirsh 3-1: Android SDK Manager (cid:9)

17 Hinh 3-2: Cai det Google API (cid:9)

18 Google API (tiep) (cid:9) HInh 3-3: Cai (cid:9)

18 Hinh 3-4: Import thu vien (cid:9)

19 Hinh 3-5: Import thu vien (tiep) (cid:9)

20 HIM 3-6: Bet Google Maps Android API v2 (cid:9)

20 Hinh 3-7: To API Key (cid:9)

21 Hin ► 3-8: Tao API Key 2 (cid:9)

21 HIM 3-9: Tao API Key 3 (cid:9)

22 Hinh 3-10: Tao project m6i (cid:9)

23 HInh 3-11: Them thu vien vio du an (cid:9)

28 H1nh 3-12: Infowindow thy Bien (cid:9)

29 HInh 4-1: Min hlnh kheri dOng (cid:9)

35 Hinh 4-2: Deng k, tai Ichoen med (cid:9)

38 Ifinh 4-3: Man hinh ding nhep (cid:9)

41 Hinh 4-4: Hien th1 ban de (cid:9)

45 HInh 4-5: Dinh v1 va hien th1 vi tri ngtrbi dung (cid:9)

50 Hinh 4-6: Xem vita ban be (cid:9)

56 Binh 4-7: Giri yeu eau ket ban (cid:9)

56 Minh 4-8: 'Chong the girl them yeu cku (cid:9)

ket ban (cid:9)

60 Hinh 4-9: Xic nhen yeu (cid:9)

62 Hinh 4-10: Tim &Ong di den vj tri ban (cid:9)

65 Hinh 4-11: Xem thong tin ban (cid:9)

68 Binh 4-12: Giao tiep ved ban (cid:9)

71 Hinh 4-13: Hity kit ban (x6a ban) (cid:9)

75 Hinh 4-14: Cep fillet thong tin ca Mien (cid:9)

79 Hinh 4-15: Thay doi mat khan (cid:9)

86 Hinh 4-16: Dinh vi bang sling di dOng (cid:9)

DANH MVC BANG BLEU

85 Bang 4-1: Cac each dinh vi vi tri (cid:9)

89 Bang 4-2: Bang Users (cid:9)

90 Bang 4-3: Bang Location (cid:9)

90 Bang 4-4: Bang Friendl (cid:9)

91 Bang 4-5: Bang Friend2 (cid:9)

DANH MVC SO Del

31

32 So de 4-1: So a Use - case (cid:9) Sa do 4-2: Ding ky tai lchoan (cid:9)

33 So di). 4-3: Trish tkr Ding ky tai khan (cid:9)

36 So do 4-4: Ding Step (cid:9)

39 So do 4-5: Xem ban do (cid:9)

42 So d6 4-6: Xem vi tri cita minh (cid:9)

43 So do 4-7: Trish tv Xem vi tri cita minh (cid:9)

47 So d6 4-8: Xem vi tri bon be (cid:9)

48 So do 4-9: Trish tir Xem vi tri bon be (cid:9)

54 Scr do 4-10: Giri yeu citu ket bon (cid:9)

58 So de 4-11: Xac nhe ► yeu cam ket bon (cid:9)

66 So do 4-12: Giao flip veri bon (cid:9)

69 So de 4-13: Huy ket ban (cid:9)

73 Scr de 4-14: Thay doi thong tin ca nhhn (cid:9)

77 So de 4-15: Thay den met khau (cid:9)

80 So de 4-16: Ring xuat (cid:9)

89 So do 4-17: Ma hinh der lieu quan he (cid:9)

Lin NOIMu

Sau met thai gian hoc tap va tim hieu clued sq turemg dart cua cac thay ca, em dA hoan thanh khOa Juan tot nghiep cua minh. Em xin than thanh gui led cam an den cac thay c8 giao b0 mon Tin hoc tru?mg Doi hoc ThAng Long dA huOng din va giOp der em trong qua With em hoc 6 twang. Em xin dac biet girl leri cam an den thay Le Minh Than dd htremg din em thuc hien Mt& luon bet nghiep. Sau khi holm thanh luan vim dm mink, em cam thay minh dA to tin han vai kien thi cda minh, tuy nhien em cam thay minh vin can rat nhieu thieu s6t can phai hoc tap de bel sung kien thiic. MOt lean nera em xin chin thanh cam an cac thiy co QA giup der em trong suet qua trinh em hoc tap 6 trutmg Doi hoc ThAng Long.

Trong cuOc sting hien doi ngay nay, tong nghe phat trien math me gin') con ngtrei a clang thuc hien duqc Miring c8ng viec ma truerc day twang nhu rat kh6 Ichtin. Sr phat trien cua phuong tien giao thong gitip chang ta di co the bay cao has, di xa has va nhanh ham. Tut' ninon kid slat chin den met quec gia khac, met thanh phO Idkic hay don gian chi la met con phO lin du bon slat chin den, neu 'thong c6 ban da thi viec tim dubng se kha kh6 Ichtin. Thubng thi bon se phE vita di vira heti dubng, hoac tim met cira hang gin shat c6 ban ban do. Viec de cling Icha the vi, n6 se cho ban cam giac Icham pha met mien diet mai, tuy nhien n6 cling ton Idd nhieu thbi gian quY bau dm bon, nhat la neu ban la doanh titan dang c6 c8ng viec quan tong. D6 chinh la Mc ban can den su h8 trq ci5a Cling nghe thong tin.

CEng nghe th8ng tin dA phat trien het sirc mash me trong nherng Mtn gin day. Ngay nay bon c6 the tre chuyen, chia se hInh anh vai nhOng ngutri bon, ngueri than trong gia dlnh 6 Ichoang cach nua vemg trai slat hay xa ham nera, giteg nhu ban dang tr6 chuyen vai mot ngued a ngay wit minh vay. CO the nal ding nghe phi trien dA dem con ngutri lei gin nhau has. KhOng chi c6 vay, cac chuang trinh ling dung dm Cling nghe thong tin con el, con ngtred c6 cuOc sting a dimg has. Kh8ng can bit dean vet s6 sach nhu truac, hien nay tat ca dA 6 the luu tren may vi tinh veri met thiet bj luu ter vo cling nhet gm. Han the 'Oa vai met s6 chuong trinh dit tien, chung ta con duqc h8 trq ca viec hooch djnh phuang huerng phat trien cho doanh nghiep. fly can yen de di neu 6 tren? Lieu CEng nghe th8ng tin c6 gulp gi thing ta tong viec tim dubng di lei khi den met not ma ta Ich8ng bier? KhOng phai Mc nao ta cling mang theo Laptop hay may vi fish, viec di chuyen you ciu ta mang theo thiet bj she gon. D6 chinh la met ling ch,mg cfm chuong trinh ban do tren thiet bj di dOng thong mirth.

Thiet bj di dOng thong mirth khong can qua xa lo vai chimg ta. D6 chinh la Dien thoai th8ng mirth — Smartphone — hay may tinh bang — Tablet. NhOng thiet bj di dOng de c6 kich thuerc cling nhu tong luqng rho han nhieu so vai mot chiec Laptop. Giao

1

dien de clang sir dung han, Chao tic bing cam Ong tien lqi han va khong phi thuec vito cac thiet bj di kern Ichac. Han the ars, thief bj di Ong sir dung nen tang phi bien nhu Android, IOS sb hau met kho img dung kiting 16. Chic hin ban dang to hei ring vei kho img dung len nhir vay thl chic chin se c6 Stung img dkuig kern chat lugng, hay cen gqi la "rac", veay lam sao met ngued dung birth thtrbng c6 the phan biet duqc? Cau tra lbi la ban hay yen Lim ve chat Itrqng ciut kho Ong dung Android hay LOS. Bei vi di c6 met (lei ngil uy tin giep to kiem duyet Ong dung truck khi duqc dua len kho Ong ch,mg chung. Han the nem dii v6i met nen tang ce nhieu ngubi sir dung ban dm duqc h6 trq bei chinh nhibig ngtroi dimg truer de. DO chinh la sue manh cea ceng ding

ding ngh'e.

Tref lai ved yin de chink, ling dung nao glop db to tiet kiem thbi gian tong vies tim dubng? D6 chinh la CEng dung ban d6 tren diet bj di dung. Hien nay met chiec dien thoai thong minh ma kh8ng ce chuang trinh ban d6 thi khe ce the gqi la "thong minh". Hoic vi met 19 do nao Q6 nha sin xuit luqc bet img dung de, thi viec tien ngueri ding lam khi se tau met chiec dign thoai th8ng minh de la tai img dung ban d6. O phan sau t8i se de cap den met ling dung ban di rat phi bien, c6 the nOi la t6t Mat hien hay, de chinh la GoogleMap.

Chinh nhUng nhting 19 do tren da tao Ong luc cho em tim hieu va xay dung img dung chia se vi tri tren nen tang Android sir dung ban di Google Map. Chi tiet ye du an nay em se With bay b nhemg phlin sau.

Chuang 1: Geri thieu bai toan

Chuang 2: Gioi thieu he dieu lulnh Android

Chuang 3: Ting quan ve GoogleMap API

Chuang 4: Chuang With 2Friend

Chuang 5: Phu lye: Code met s6 chi= Ming chinh

Tii lieu tham

2

CHVONG 1. Glen THISU BAI TORN

1.1. Vai net ve GoogleMap

Nhu citing ta da biet, bit chip suy thoai kinh te, nganh ding nghe thong tin van dang phat trien v6i mot toe dg cheng m$t. Trong thbi gian gin day danh diu sy phat trien rat manh cua cac thiet bj dien thoai thong mirth (Smartphone). MOt trong nhung (mg dung quart tong nhAt va co the nal la "khan the thieu" d6 chinh la ang dung ban db.

Ban d6 GoogleMap duqc xay dung ben ceng ty Google bang the hinh anh vg tinh va viec di tim hieu throng ph6 thuc te. C6 mot so than vien cfra Google duqc tra ltrang cao voi c8ng viec dap xe dap c6 gin thiet bj cita Google de ghi lai va chyp anh dutmg ph6. Cong viec nay ton rat nhieu thbi gian, nhung nha d6 ma ban d6 GoogleMap co dO chinh xac rat cao va nhOt fit thutmg xuyen. ling dung Maps hay chinh la GoogleMap gulp ngutri dung c6 the sir dung ban d6 nay trong viec tim duang di. 6 phart sau toi se gieri thieu ky han ve ung dung thy. 1.2. Nhftng gl GoogleMap khong ht) trq?

DOng hanh v6i su phat trien cfut ding nghe, new nay each con ngubi giao tiep cling di kit di. ChAng ta khong chi chia se hinh anh, loi nei, van ban ma yeti thiet bj di dOng thong mirth ta con c6 the chia se ca vi tri ciut mink. Cac thiet bj di dOng thong mirth hau het deu tich hqp tinh nang GPS — gitip djnh vi Nei tri sir dung tin hieu vg tinh.

Ngoai cac eh& nang co ban ma GoogleMap da cung cap nhtr tim dtrimg, chi

dutmg, dieu huang... co mot chirc nang quan trong khac ma GoogleMap da dimg trq da la firth nang chia se vi tri vUi ban be, ngutri than(Google Latitude). Chinh dieu nay da thitc dAy ten xay dung mot (mg dung chia se vj tri ban be teen Google Map.

1.3. Tai sao lqi cAn ting dyng chia se vj tri?

3

Nhu ta da thAy, co se dft lieu de luu aft da lieu ban d6 ctia ca the giOi la rat 1611, hay c6 the not la v8 cling lon. Chic chin khong the nao luu trtt tit ca cac dia diem, cac nha hang, dja danh tren ban d6 duqc. Cho du Google co co ging lam dieu do thi dft lieu se khong the cOp nhOt thu?mg xuyen, trir khi moi khu ph6 tren the giei deu co than vien cita Google. Chinh vi v$y thing ta co the S thanh mot ngtrtri clang tot bung, bang each giam di ganh n$ng rill* dja diem cho Google. Chang ta c6 the to cop nhOt vi tri cilia minh. Tuy nhien, khong phiti bit tit ai, bit cir lac nao ta cling mutin chia se vj tri cfta minh. Doi khi ta chi mut% chia se yen ngutri than trong gia dinh, hay bon be ma then... Con nhieu van de !chic nfta, nhung da chinh la ljf do de WI xay dung chuong trinh nay.

1.4. Mei truirng boat (long

Chuang trinh nay se &gm xay dvng tren he dieu hanh Android — MOt nen dang

phat trien rat manh tren cac thiet bj di dOng — vi sir dtmg Google Map API.

1.4.1. Tgi sao ding Android?

Android la mOt hg dieu hanh ma nguan ma, chlnh vi the nen ne duqc phit trien rat da dang theo nhieu hue ng khic nhau. ChInh dieu da da &rip cho cac nhi sin xuAt thiet bi di ding a clang hon tong viec cho ra nhUng sin pham het sirc da ding, gifip Android c6 s6 ngteri sir dyng kh6ng 16. Ben milt 46 gii thanh mOt thiet bi Android ding re hon thiet bj chay IOS hay Window phone ma firth ruing yin kitting he thua kern.

1.4.2. Google Map API la gi?

Google Map API li mOt Giao dien 1#p trinh img clang do Google cung cap. NO glop cho lap trinh vien c6 the sir citing chinh bin d6 cua Google de xay citing img dung cila mirth. Tuy nhien khong phii tat ca the firth rang cua Google Map day di dau duce cung at) a day, chinh vi the ngubi 18p trinh vien phii tim each sir clang th$t Idiot) leo de giai quyet cac van de bii toin (tat ra. Chi tiet ve Google Map API se duct de Op a pitan sau.

1.4.3. Server qudn ly hogt Ong

M#c da Google Map API cung cap cho to mOt ban dO tuong d61 hoin chink, nhung da chi li img dtmg ben phut ngubi dung. De ling Mpg c6 the hoat ding can c6 mOt Server. Server nay c6 nhiem vµ luu thong tin tai khoin cua ngubi dimg, luu v1 tri ngubi dimg vi thvc hien mOt so chirc niing khic.

Server nay can ducm via bang mOt non net ph6 bien vi khong phv thuOc vio hg dieu birth, da chinh la nein ngft Java. Server khong an c6 giao dien 46 hoa, chi co nhiem vv nh#rt yeu tau tir phia thiet bj kith, zir ly vi tri ve ket qui. Tuy nhien, da la ding viec cim ngu&i 1#p trinh, ngubi sir clang img citing nay khong an quan tam server lam gi ma chi can thao tic tren thiet bj dm mirth.

4

CHUONG 2. GIefITHIEU a DIEU HANH ANDROID

2.1. Android la gi?

Android la melt Hg dieu !Anti dinh cho cac thiet bj di dOng nhu dien thoai thong minh hay may tinh bang. Android duqc xay dung Iron nen tang Linux va sir dung nem

ng0 Java.

Ban du, Android duqc phat trien boi TOng cong ty Android vii str ho trq tai chinh cua Google. VI° Min 2005, Google di chinh that mua lai ding ty nay. Tuy nhien vao theri diem da Android van chug duct ra met. Den aim 2007 Android mai ra mit cling yeti tuyen b6 thanh lip Lien minh thiet bj elm tay ma: mOt hiep hOi g6m cac ding ty phan mem, phAn ming va vien th8ng yeti mac tieu day math cac tieu chuan ma cho cac thiet bi di dOng. Thief bj du tier chug Android duqc ban ra thing 10 mitn 2008.

Android la he dieu hanh c6 ma nguln ma va Google phat hanh ml nguln theo gily phip Apache — mOt giay phep kW:Mg c6 nhieu rang butjc. Chinh dieu nay di glop cho cac nha san xuet thiet bj, mpg di dOng va cat lelp trinh vien duqc dieu chinh va phan phOi Android mOt cach tar do. Tinh den thed diem thing 10 niun 2012 — 4 Titan sau khi thiet bj Android du tien duqc cong b6, di ce khoing 700.000 img dung tren Android, va s6 luqt tai ting dung tree elm hang 'ring dung Google Play &cc tinh khoang

25 ti luqt.

Chinh nhUng uu the nhu v1y ma Android di fret that nen tang dien thoai di dOng thong minh phO bier nhit the gi6i, vtrqt qua Symbian vao quy bOn nim 2010. Android duqc cac c8ng ty c8ng nghe sir dung khi h9 an mOt hg dieu Minh khong mItng ne, c6 kha ning tinh chinh va gia thenh r8 chay tren cac thiet bj cong nghe cao. Ket qua la mic du duqc thiet ke de chay tren then thoai, may tinh bang, Android di xuit hien tren nhieu thiet bj khac nhu TV, may chai game va nhieu thiet bj 'chic.

Tinh den tit diem quy ba nam 2012, Android di chiem den 75% thj phlin dien thoai thong minh tren town the giai. CO tong cong 500 trieu thiet bj di &Km kich hos va 1,3 trieu luqt kich host moi ngay. St; thanh c8ng cim hg dieu hanh nay cling Man ne frac thanh muc tieu trong the Ai hen lien quan den bAng phat minh, hay can gui la "cuOc chien dien thoai thong rninh" gift cac c8ng ty ding nghe.

5

2.2. Lich sir phit tries

2.2.1. Sy! ra del cues Android

Tang Gang ty Android (Android, Inc.) duqc thanh lap tai Palo Alto, California vao thing 10 nAm 2003 beri Andy Rubin (thing sang lap ding ty Danger), Rich Miner (clang sang lap Tang cong ty Vien thong Wildfire), Nick Sear (timg 11 PM giam doc T-Mobile), va Chris White (truing thiet ke va giao dien tai WebTV) de phat trier, theo to i cita Rubin, "cic thiet bi di &mg thong minh han c6 the biet duqc vi tri va se( thich cita ngubi dimg". DV nhang ngutri thanh lap vi shin vien deu la 'tang ngubi c6 tieng am, Tang cong ty Android boat dOng met each Am thim, chi tiet 10 r&ng hq dang lam phan mem (lath cho din thoai di dOng. Trong nAm do, Rubin het kinh phi. Steve Perlman, mOt ngubi ban than cita Rubin, mang cho Cog 10.000 USD tien mat nhtmg tit

ch .& tham gia vao cong ty.

Tang cong ty Android duqc Google mua lai vao ngay 17 thing 8 nAm 2005, bien n6 thanh met be phan trvc thutic Google. Sau thucmg vv nay, nliimg nhan vien chit chat dm Tang cong ty Android An tiep tic a lai cong ty lam viec. Vao thbi diem da kitting c6 nhieu th8ng tin ve cong ty Android, nhtmg dA co nhang loci clan rang Goolge dir tinh tham gia thi trutmg thiet bi di dung sau buem di nay. Tai Google, them do Rubin dung du dA phat triers met nen tang thiet bi di dOng tren nen nhan Linux. Google quing bi nen tang nay cho the nha sin xuid dien thoai va cac mang vien thong ding 16i him se cung cep mOt he thong linh hoot va c6 !chi nang Wang cap. Google dA lien he vii hang loaf hang phan cling ding nhu dai tic phan mem.

Ngay 5 thing 11 nAm 2007, lien minh thiet bi cam tay ma, hay con gqi la Open Handset Alliance, met hiep Mit gem nhieu cling ty trong de c6 Texas Instrusments, tap doan Broadcom, Google, HTC, Intel, LG, tap doan Marvell Technology, Motorola, Nvidia, Qualcom, Samsung Electronics, Sprint Nextel va T-Mobile duqc thanh lap shim mac Bich phat tries cac tieu chuAn ma cho thiet bi di Ong. Cling chinh thbi diem de, Android cling duqc ra mit yeti vai tr6 la san phatt n Mu tien ciza Lien minh. Chiec di'en thoai chay Android du tien duqc ban ra la HTC Dream, chay tren nen tang nhAn Linux phien ban 2.6, phat hanh ngay 22 thing 10 aim 2008. Su trtmg cita Android la met con Robot mau xanh la coy do hang thiet ke Irina Blok tai California ye.

6

2.2.2. Cdc Alen bdn Android

a. Android 1.0

Ra mat: 23 thing 11 nom 2008.

Android 1.0 rat nguyen sa, tich hap sin khi rang deng bO der lieu yeti cac djch vu trqc tuy'en aim Google nhu Gmail, Google Calendar va Contacts, mot trinh phat media, hit trq Wi-Fi va Bluetooth, thanh tang thai hien thi cac thong bao img dung va mot img dung chap anh (camera) tuy chua cho phip thay doi dt) phan giai va chat luqng

anh nhu cac thiet bi ngay nay.

HTC Dream la don smartphone thucmg mai ding Android du tien v6i kieu Bang tract kem ban phim vet lg. Phien ban Android 1.0 chua duqc Google ct(ft ten, do

truck 46 ten g9i Astro Boy hay Bender.

b. Android 1.1

Ra mat: 9 dying 2 nom 2009.

Ben quilt so phien bitn, Google da bit diu dua he thong ten g9i vio cac phien ban Android. Tuy chua chinh thirc itp dung nhtmg Android 1.1 da c6 ten Petit Four. Kitting bao gem nhieu tinh rang, phien ban nay be sung mitt so chirc ming meri cho Google Maps Men thi chi tier hart, ban phim a° g9i dien thoai da c6 the hien thi hoc An Mil gqi, chucmg trinh SMS cho OCT ngubi dung luu tap tin dish kern. Android 1.1

sirs mot s6 loi trong Android 1.0.

c. Android 1.5 Cupcake

Ra mitt: 30 thing 4 !Am 2009.

Cupcake, ten diu tien ip dung cho phien ban Android. Cupcake mang nhieu tinh nang meri nhu ban phim io c6 kha Wing chr loan tir dang go, tir dien tir nger do ngutti dung at ra, ho trq widget tren man hinh chink, quay phim va phat lai video clip, luqc sir then gian cuOc goi, the 40 to d'Ong xoay man hinh theo hueing sir dung (screen rotation). TrInh duy'e't web trong Cupcake c6 them kha nang sao chop va dan.

Ngoii ra, phien ban nay cho phep ngutti dimg hien tit hinh brill trong danh ba, mot diem thu vi ma hku het ngtroi dimg dien thoai di dOng muon c6. Man hinh chuyen

tei va hinh anh khi khoi 4Ong may duqc lam m6i.

d. Android 1.6 Donut

Ra mat: 30 thing 9 nam 2009 Donut nang cap cac chirc nang trong phien ban Cupcake, met Ong chirc rang tim kiem bing giqng n6i va ky to den bookmark va danh ba. Android Market tit thanh kho img dung chinh de nguiti &mg tim kiem va xem cac img dung Android. !ling dung

7

chyp anh va quay phim trong Donut nhanh hen. Hg dieu birth ho trq man hinh cep 40 phan giai 16n ham, huOng den clic the hg smartphone min hinh km.

e. Android 2.0 Eclair

Ra mat: 26 thing 10 nam 2009. Chi sau gin mOt than ra mat Donut (Android 1.6), Google tung ra Eclair, phien

ban dugc nhan djnh la buck di len dm he dien hinh nay.

Eclair c6 rat nhieu chi tien, tit giao dien den (mg dung ben trong he' thOng. Ung dyng chyp anh tang cubng them chitc nang zoom (phang to), can bang trAng, ha trq

He th0ng hoat dOng On djnh hen, cal thien kha nang xit 1Y, hi5 tug ket not Bluetooth tot hen, dac biet thy chcon ding hi) nhieu tai 'Moan. Met diem thuan tien dugc danh gia cao lac bay gib la giao dien danh ba cho phep nhan chgn vac' mOt anh danh ba de g9i, nhan tin hay email den hq. Giao dien img dyng Lich bleu (Calendar)

den flash va cac hieu img mau sic.

cung dugc thay dOi.

Eclair IA phien ban Android du tien ha trq anh nen dOng (live wallpaper). Tuy

nhien thy chqn nay tieu ten kha nhieu pin vi titi nguyen may.

f. Android 2.2 Froyo

Ra mat: 20 thing 5 nam 2010.

Tir phien bin 2.0 tro di, Android &I din hoan thien hen. Phie'n bitn 2.2 (Froyo) duce tich hqp Adobe Flash, keo theo hang lottt img dyng va game. ND:raj dung ding c6 the xem video clip nen Flash nhu YouTube va "ra lenh" thyc hien cube goi qua ket net Bluetooth.

Len diu tien Android cho phep chi dat img dyng (app) len the nher SD thay vi mac djnh chi ngay vac' b0 nher trong cita diet bj. MOt chitc nang mei cita Froyo do la mat khau di ha trq se va chit se. Thiet bj du den mang nhan Froyo ra mat thj trubng la HTC Nexus One.

MOt chic nang mai trong Froyo dugc them ngubi dimg luu dOng yeu thich IA USB Tethering va Wi-Fi Hotspot, thin chiec smartphone Android thanh thiet bj phat sang Wi-Fi to ket net 3G. Tinh tiling nay dugc sit dyng rat phi) hien den ngay nay.

g. Android 2.3 Gingerbread

Ra mat: 6 thing 12 nam 2010.

Den cuOi am 2012, Gingerbread yin dang duce sit dung eon rat nhieu thiet bj dimg Android, chiem den hen mOt nira (54%). Google hqp tic Samsung trinh lang dong smartphone diu tien sit dyng Gingerbread mang ten Nexus S, ha trq cong nghe giao tiep tam gin NFC.

8

Gingerbread dua vao he th6ng met ceng oar quart 15r tai tip tin, cho phep theo dei va truy xuit den cac tip tin da tai ye may. He thong nay hiS trq nhieu camera cho cac thiet bj c6 camera mit sau va trtrac, quan 15r nguton pin hieu qua han, fiat kiem thin ltrang pin. Phien ban nay khic phuc !chi nhieu loi tir Froyo, kern theo met so dieu

chinh trong giao dien ngtroi dung.

h. Android 3.0 Honeycomb

anti rieng cho may tinh bang (tablet), ra mot cling tablet Motorola XOOM.

Ra mot: 22 thing 2 nrun 2011. Day Hiring chi la met phi'en ban, ma ce the xem la met the he Android du tien

Mang nhemg firth nang tir the he Android 2.; Android 3.0 cal tien giao dien phit hqp veri each sir dung may tinh bang, ban phim ao than alien han, h8 trq xir 13 , da the vu (multi-tasking), cho phdp chuyen doi qua lei cac ling dung dang cling chay. Kherng chi c6 be mit dirge trau chu6t, phin lei he then c6 the cal tien ttrcmg thich yeti plan ding nhu hO trq chip xir ljr (CPU) da I8i, tang toe plan ding...

Android 3.0 dit nen meng quan trong cho the he Android 4.x hqp nhAt, 'chic

phuc stir phan mang cila Android (c6 cac phien ban rieng danh cho smartphone vi tablet).

i. Android 4.0 Ice Cream Sandwich

Ra mot: 19 thing 10 nam 2011. "Ice Cream Sandwich" (ICS) la the he Android dirge mong dqi nhit den nay, ra dtri ding ding smartphone bom ten Samsung Galaxy Nexus, the hg smartphone diu ten sir dung ICS.

Android 4.0 dua chirc nang truy xuat nhanh cac ling dung thutmg dung vao phir' ben duOi giao dien chit, thy bien widget, a sip xep vi duyet danh sach ung dung hon. Cac img dung a c6 the truy xuit nhanh tir man hinh khOa thiet bi (Lock screen), vao thtri diem d6 cac hang san xuAt thiet bj chi mai cho phep Camera ce the chan nhanh tir Lock screen. Ice Cream Sandwich host dOng muqt ma, nhanh va dpp han cac phial

ban fru& d6.

j. Android 4.1 Jelly Bean

Ra mit: 9 thing 7 nam 2012. May tinh bang Nexus 7, san phim hqp the gins Google va Asus, lit thiet bj diu tien sir dung Jelly Bean. Android 4.1 'Ling dm hog dOng cho he dieu hanh dua Google, tit thenh he dieu hanh cho thiet bj di dOng hang diu hien nay, de daa ca "8ng lan" Windows.

KM ring sip xep giao dien chit va widget tong Jelly Bean c6 !dui nang thy bien cao va rat linh hoot. He thong hO trq dich vu vi dien to Google Wallet, dic biet trinh

9

duyet web mac djnh trong Android duqc thay the bt5i dai dien ten tan: Chrome, yeti kha neng dOng ba du lieu theo tai khoin vai ban Google Chrome tren may tinh.

k. Android 4.2 Jelly Bean

Ra mat: 29 thang 10 nem 2012.

Chi sau gen nem thang ra mat Android 4.1, Google nep tyc tang cep cho

Android vii phien ban 4.2 va vin mang ten Jelly Bean.

Android 4.2 tiep tpc mang den nhfing cai tien hap din cho (mg ch,mg chop inh (Camera) Sur HDR, Photo Sphere, hieu (mg link Google Now, dua tinh nen luta chqn to rat hay trong ban phim so. Chirc rang ho trq nhieu tai Idioan ngutri dimg Ian dau tien duqc ap thing trong Android 4.2 nhung chi c6 ngutti den may tinh bang thin

huerng chile rang nay.

1. Android 4.3 Jelly Bean

Ra tat: 24 than 7 nem 2013. Android 4.3 Iii la mot fling cep non cua phien ban mang ten Jelly Bean. Phi'en ban nay hi) them tinh nang Bluetooth rang luqng thip, OpenGL ES 3.0, tit) , chqn Wifi luSn bat, hi trq ngon ngit doe tit phai sang trai...

Vii phien ban dui ba mang ten Jelly Bean, Android dang din hoan thien han, yeti

nheng tinh neng mai, Android hila hen se thu but nhieu ngay cang ngutri sit dung.

m. Android 4.4 KitKat

Ra mat: 31 thing 10 nem 2013. Mac du rat nhieu nguiti de do doin phien ban Android mei c6 ten gqi "Key Lime Pie" trong suOt mot thei gian dai, Google de cho ra mat phien ban 4.4 vii ten gqi KitKat. Android 4.4 KitKat bao gem rat nhieu ruing cap trong he thOng va (mg ch,mg, nhung diem net bat that ciia phien ban nay de la he try cac thiet bj co cau firth that) hot. KitKat yeu eau be the tei thieu (RAM) chi la 512 MB, giiip cho cac thiet bj cAu hinh thep c6 the thing cap va trai nghiem mot cach a clang.

10

2.3. Kien true 14 diet' birth Android

Applications l

to chuc Ling Liumi

Applications Famework (cid:9)

Libraries IH;1 (cid:9)

Android Runtime (Thai 'Tan chay Ar droith

Linux Kernel '.

HIM 2-1: Ctic think pkin csia kf dl kink Android

2.3.L Lima Kernel

DOi vei nhCmg phien ban truer, Android duct xay dung teen 130 than Linux 2.6 cho nheng djch vg cot lei nhu security, memory management, process management, network stack, driver model. BO than nay lam tillitm vu nhu mOt lap trung gian ktt

time

241

Android SDK apps

Anima(' NDK apps

Android app framework

Standard libraries

not pith' ring thiet bj ya phan *rig dung.

Mink 2-2: M6 kink kw tic gilta may do Dalvik vi Native code

JNI: Java Native Interface (Tuang ty Ichai nitm Application Programming Interface) la mOt 13 .0 framework cho phi!) ma lOnh vitt bang Java chay ten may ao java

11

c6 the goi hoc duqc gqi boi met ung dung viet bing native code ((m g dung duqc viet cho met phAn ding cu the va tren met he dieu !faith cu the) !mac nhUng be thu vien viet bing C, C++ hoc Assembly.

2.3.2. Libraries

Bang cfich sir dung NI, Android cho ph6p cac ling dung chay tren may ao Dalvik c6 the sir dung nhfing phucmg thirc ductc viet bang cac ng6n ngft cep thAp nhu: C, C++, Assembly. Qua de cac nha phat trien ling dung ca the xay dung ling dung dua ten cac be thu vien viet bing C, C++, Assembly 'them tang Mc de thuc thi cim ling dung hoc sir dung ntrang firth nang mirc thep ma non ngft Java Ichong hie trq. Tuy nhien ngtrai phat trien ling dung an phai can nhac su gia tang de phirc 4p cim ling dung khi quyet djnh sir (king cac be thu vien nay.

Day la be cac thu vien xay dung nen cac chirc nang chinh dm Android

System C library: Day la tOp cac thu vien he thong. Thu vien nay duqc viet bang ngon ngft C, C++ chuen c6 the pi duqc thong qua giao dien Java Media FrameWork: Day la be thu vien h6 trq trinh dien va ghi cac djnh dung am thanh, hinh anh phe bien. Surface manager: Quan ly hien thj nei dung 2D va 3D. Cho ph6p tvo cac ciza so giao

OpenGL: HO trq xay dung ling clung de hqa 2D va 3D.

- SSL: Cung cap chile nang bao inOt cho fiat bi

SGL: Engine he trq M hqa 2D.

Free Type: HO trq cac Font Bitmap va vector SQLite: Met co sir du lieu nhe gqn va mph me. Cung cep be may co s6 du lieu duqc nhimg trong thiet bj.

2.3.3. Android Runtime

He dieu hanh Android tich hqp sin met top hqp the thu vien cot 16i, cung cep heu het cac chirc rang. Mqi ling dung ciut Android chay tren met tien trinh cua rieng n6 cling v6i met the hien cim may ao Dalvik. May ao Dalvik thuc to la met bien the dm may ao Java duqc sira Mi, be sung cac cling nghe dOc tnrng cim thiet bi di Mug. NO duqc xay dung veri intic dich lam cho cac thiet bj di (king c6 the chay nhieu may k

Webkit: Ho trq hien thj nei dung website.

met cach hieu qua.

Tnrem khi chay, mei ling dung Android deli duqc convert thanh file thuc thi Arai QM dm nen Dalvik Executable (.dex). Dinh long nay duqc thiet ke de phi hqp veri

12

cac thiet bj han the ve b0 :the sung nhu toe do xi 1),. Ngoai chic flan ke tren, may lo Dalvik cem sir dung b0 nhan Linux de cung cap cac tinh rang nhu thread, low-level

memory management.

2.3.4. Application Framework

Tang nay cia hg dieu hanh Android cung cap mot nen tang phat trien img dung ma qua (16 cho phep cac lap trinh vien, cac nha phat trien img dung ci kha fling tao ra cac img dung vo cling sang tao va phong phi. Cac rata phat trien (mg dung duqc to do sir dung cac tinh nang cao cap ctla diet bj phan cing nhu: thong tin dinh vj dia 1ST, kha nang chay djch vu cluth ne'n, thiet lip dOng h0 bao thic, them notification vao status bar cia man hinh thiet

Ngubi phat trien img dung duqc phdp sir dung day di b0 API duqc dimg tong cac img dung Itch hqp sin cia Android. Kien trim img dung cia Android duqc thiet ke nham muc dich don gian h6a viec tai sir dung cac thanh phan. Qua d6 bat Id (mg dung nao ding ci the cong b6 cac tinh thing ma ne mu6n chia se cho cac img dung khac (VD: Ong dung email c6 muon cac img dung khac c6 the sir dung tinh ring gin mail cia n6). Phucmg phap tucmg to cho phep cac thanh phan co the duqc thay the ben

ngubi sir dung.

Tang nay bao g6m met top cac services va fininh phan sau: - View System: Ding de xay dung img dung c6 cac d6i ttrqng giao dien nhu list, grid, texbox, button... hay ci the thing met trinh duyen web vio irng

dung.

- Content Provider: Cho phep cac img dung c6 the truy xuAt do lieu tar the *rig

dung khic hoc chia se der lieu giera ching.

- Resource Manager: Cung cap kha ring truy 'mat cac tai nguyen nhu hinh

anh hoac file giao dien (Layout).

- Notification Manager: Cung cap Idyl tiling hien thj thong bio tren thanh trang

thiti (Status bar).

- Activity Manager: Day la thanh plan quart trqng nhat, n6 giip img dung

quitn ly Ong dbi cia met Activity.

- Telephony Manager: Cung cap thu vien de truy neat den cac djch vu dien

thoai hay thong tin thug bao cia ngubi ding.

- Location Manager: Cung cap thu vien h6 trq ngubi ding dinh vj this& bj dua

tren GPS hoac mpg Ichong day witY3G.

13

2.3.5. Application

Tang nay chinh la tang china cac img dung duct phut trien boi !Op trinh vi'en, the nha phut trien phan mem. Ngoai met s6 img clung duqc Android tich hqp s&n nhu email, SMS, trinh duyet web, danh ba... thi ngiteri dimg c6 the de dung cai dOt them cac Ung dung tin Google Play hay cac chq Ung di,mg Ichac.

2.4. ling dyng tren that b$ Android

2.4.1. Nhfing gldi hgn crra thiit 14 di ding

Mk di' cac thiet bj di dung thong minh c6 the thuc hien nhnng chin Ming tucmg to nhu met chiec may tinh nhu chay da nhiem, xis 19 de hqa... Nhung thuc chat de van la met thiet N vOi be nher va pin c6 hon. Ta c6 the dtly mph hieu suet hour dung cue thiet bj len, tuy [Alien dieu de loi clang nghia vOi viec tieu Mn nhieu dien nAng va tai nguyen ham, lam gilan then gian sir dung thiet N. Chinh vi the, khfic veri trinh img dung tren may tinh thong thueng, Mil viet ling dung tren thiet bj di &Ong to can chi' 9 den nhUng gied hen sau:

- Kha rang xir 19, c6 hart

- BO nher co hon

- Pin co gieri hon

- Nen tang hg dieu hanh lchac nhau

- Thanh phAn phan cling khac nhau

- Kich thuerc man hinh nho

- Giao dien don gian

- Bang thong mpg c6 gi6i lion (3G, GPRS)

- Ket n61 mang Ichong 6n djnh.

2.4.2. Ngen ngit 41p trinh

NgAn (cid:9)

trinh chinh thlic cue Android la Java. Mk du cat img dung tren Android duqc vitt bang nein agar Java, tuy nhien ban than Android lui !cluing the chay duqc cac t$p tin Java c6 dung .jar. Ngen ner Java sir dung trong Android khong phai la town be thu vier J2EE (Java 2 Platform, Enterprise Editiion) ma chi la met pit nho de xay dung nun may ao Dalvik. Din tren may ao Java cila Sun, Google dA tinh chinh va phut trien nen may ao Dalvik de bien djch cac top tin Java veri Mc de nhanh hon va nhe hon. Den phien ban Froyo 2.2, Android dA ha My Just-in-time Compiler (JIT) lam tang the de bien djch Java len tir 2 den 5 lin.

14

2.4.3. Mei Irtreng ltlp trinh

JDK: JDK la m6i tru&ng clung di vitt the Ong dung Java. MOt 130 JDK gOm c6 JRE (Java Runtime Enviroment) va cac ding cp bien djch (javac), trinh thuc thi (Java), gb loi, cac thu vien, be gia lap dien thoai...

Eclipse: Mei trtreng lap trinh chinh that cita Android la Eclipse yeti su hO trq cita Plugin ADT (Android Development Tool). Ngu&i lap trinh c6 the de clang tai 1)0 cong Gist nay tren trang chit cita Google. Met so thinh phAn caa ADT: 3 Da (Dalvik Cross-Assembler): C6 chirc nAng chuyen dOi cac 16p Java a duqc bien djch thanh met file nhj phan (.dex) de chay tren may io Dalvik

3 Aapt (Android Asset Packing Tool): CO chirc thing doing g6i cac tap tin .dex thanh tap tin .apk de ngutri ding c6 the cai det tren thiet bj di dOng 3 Adb (Android Debug Bridge): Day la met au nOi de chuyin va cai dat img dung len trinh gia lap (Emulator) hoac tren thiet bj Android that. Thiet bj Android phai duce bat USB Debugging.

3 Ddms (Dalvik Debug Monitor Service): Cung cap met so Bich vu nhu

quan 1$, thong tin tien trinh va nem xep, logcat...

15

CHISCING 3. TONG QUAN VE GOOGLE MAP API

Veri Google Map Android API, ban c6 the de clang dua ban de coa Google vao trong Ong dung ciut minh. API se Air dOng xir ly vie'c truy cep den Google Map server, tai a lieu, hien thi ban d6 va phan hei the tic dung. Ban cling c6 the sir dung cac ham cisa API de them cac markers, cac hinh khei, cac lop phi( vio ban de co ban, va ban cling c6 the tao met g6c (thin ban d6 rieng. Nhung doi Wong (16 cung cap cac thong tin mer rung cho dia diem, giiip ngueri dimg c6 the giao tiep veri ban de. API cho phep ngtren thing c6 the dua them cac thanh phen sau vio ban de:

Bieu tugng de &nit deu met vi tri cv the (Marker)

Tap cac (loan thing (Polylines)

Tap cac hInh hgc (Polygons) Bieu tugng do hem de &nit dau mOt diem ten ban de' (Ground overlays) tieu de cim ban (16 (Tile overlays) Be cac hlnh anh duce hien thi tren (cid:9)

3.1. Gi6i thieu ve Google Map API

3.2. Sir dyng Google Map API

- Tren thanh Menu: Window > Android SDK Manager

3.2.1. ai dtlt va cacti hiy Google Map API 3.2.1.1. Cai cidt

Ede Edit ReNtbiii Seine EtaiNdte SW& Eidied bin (cid:9)

ENO Navatindow

New Rotor

Fide Toolbar

open Pespedive

(cid:9)

Nat View

Customize Perspective—

a Client a 90091etieY-seiviceta a MeinActivity D J Sever

Save Respective As-

Reset Respective—

Dose Respective

Close AI Respective;

Navirion

Android Virtue! Device Mango

a Rom Android Lint

Preferences

Binh 3-1: Android SDK Manager

16

- Tick vi o Google API cho phien ban Android muiin &mg de to irng clang:

a

Packages (cid:9) Tools

SDK Path: EASTUDV1Androidbdt-bundle-windows-3d36 64-2013052Asdk

Packages

A

Status (cid:9)

Rev. (cid:9)

API (cid:9)

* (cid:9) Name (cid:9)

S. Update available rev. 18

1, Android SDK Platform-tools (cid:9)

17 (cid:9) 78 (cid:9) n Not installed 15 Installed 17 (cid:9)

q , Android SOK Build-tools (cid:9) n 17' Android SDK Build-tools (cid:9)

• 2 ea Android 4,3 (API 111)

0 Not installed n Nat installed in Not installed fl n Not installed rj Not installed I n Not installed

1 (cid:9) 1 (cid:9) 1 (cid:9) 1 (cid:9) 1 (cid:9) 7 (cid:9)

18 (cid:9) 18 (cid:9) 18 (cid:9) 18 (cid:9) 18 (cid:9) 18 (cid:9)

it

0 Installed 0 Not installed II Installed (cid:9)

2 (cid:9) 1 (cid:9) 2 (cid:9)

17 (cid:9) 17 (cid:9) 17 (cid:9)

p li Documentation *Android SDK (cid:9) 2* SOK Piatfam (cid:9) EI ; So mp les f or SOK (cid:9) n I. ARM EA81v7a System Image (cid:9) Milt Gavle AM (cid:9) n is Sources forAndmid SDK (cid:9) 4 n Ea Android 422 (API 17) n Ili SDK Platform (cid:9) 0 i Samples *SDK (cid:9) 11 MI ARM EABI Oa System Image (cid:9)

Instant padragas—

slat (cid:9) n Updates/New g Installed (cid:9)

I (cid:9)

I (cid:9)

Delete 5 pncbges— (cid:9)

I

()Repository (cid:9)

Sort byes COAP1 level (cid:9)

0 Obsolete Select bla or* ladssal

Done loadng packages.

Binh 3-2: Cal * Google API

- Ka° tiep xueng duUi caa dank sich, chon Google Play services vu click vio

nut Install 2 package

17

4

Packages (cid:9) Tools SDK Pads E15TUDY1Androithadt-bundlewindows-x86_64-201305221sdk

Packages

Stabs

API (cid:9)

a Name (cid:9)

= Nat installed

2 (cid:9)

(cid:9)

Rev. (cid:9) 13 (cid:9) a Update available rev. 18

= Nat instoded = Not installed -. (cid:9) . Nat installed _ . a Update available rev. 9

11 (cid:9) 3 (cid:9) 3 (cid:9) 7 (cid:9) 1 (cid:9) — Not instead _ 3 (cid:9) — Nat installed .. Nat installed 4 (cid:9) = Not installed 2 (cid:9) a Update available rev. 8 7 (cid:9) = Not installed 2 (cid:9) 7-1 Not installed 3 (cid:9)

Ola Android SuppatKepasitaryl a Android Support Library (cid:9) 0 a GocgleAdMob Ads SDK (cid:9) DO Googfe Anolytics App Docking SDK (cid:9) on Peprecoted] Gaogk Claud Messaging jar Andrei rr a Google Play services (cid:9) n a Gawk Repository (cid:9) Da Googfe Play APK Dominion Library (cid:9) q a Google A/ayBilling library n 0 Goalie Play Licensing Library (cid:9) ga Goers US8 Diner (cid:9) n a Googk Web Driver (cid:9) Da MM id EmulatorAcceleoror (NAX/4) (cid:9)

v

Install 11 pedlars—

Updates/New IZI Instalkd (cid:9)

Show. (cid:9)

Delete 5 pedants— (cid:9)

I

I (cid:9) I (cid:9)

0 Reposlary (cid:9)

Sort by: a API level (cid:9)

q Obsolete Select asay °clads* (cid:9) wee (cid:9)

0 tit

F (cid:9) Done looting packsges.

Rink 3-3: Cdl Google API (dip)

- Accept and install.

- Sau khi cal dilt, import project thu vier vao tong Workspace: Click File >

Import

Rink 3-4: Import mu wee.

18

- Ch6n Android > Existing Android Code into Workspace

Select

Sled an import source

type filter text 0 a General • 123 Android

ItS bitting Android Code Into Workspace

Install

Run/Debug

Team

I, a cic.. 0 (a, Git D (cid:9) r, (cid:9) t, (cid:9) p

XML

(cid:9)

Finish

< Back

0 (cid:9)

Ifinh 3-5: Import dm Wen (tiip)

- Click Browse > CM den thu mvc chlra project thu vien google play services: /extras/google/google_play_servicesilibProject/google-

play-services_lib, va click Finish

3.2.1.2. ay Google API Key

De hien thi ban de, debug tre'n may that thi can c6 Google API key. De lay duge

Google API key thi an sir citing chung nhOn SHA1 (1 chuld Icy tv).

Chit Y: Vei project khic nhau thi can c6 key khic nhau.

a. Lay SHAT

- Ma command line, cd vio thu mvc cai Java Development Kit: CAProgram

Files\Java\jre7 \ bin

19

Nhap lenh Keytool -list -v -keystore -alias androiddebugkey. Viii la dubng clan ley tin Eclipse nhu sau: Windows > Preferences > Android > Build > Copy clang Default debug

keystore. Nhap password la android, Enter > Hien thi ra SHAI. Copy SHA1 a six dung cho buoy b.

b. Lay google api key

Vao https://code.google.com/apis/console/ Hang nhap bang tai khoan Google.

- Chbn Create Project.

- Ka° ming duet Click vao Google Maps Android API v2 de chuyen trang

Courtesy limit 10,000 requests/day

thai sang On

• S off (cid:9)

An Google Contacts Car IDAV API (cid:9)

• MCI

It Google Maps Android API v2 (cid:9)

on

Courtesy emit_ 25.000 requests/day • Prima

• (cid:9)

Google Maps API v2 (cid:9)

Ifinh 3-6: Bet Google Maps Android API v2

- Click API Access > Create New Android Key

API Access To wont Was, Goode playa inn en API tamest& Using a veld Oka Sum or API by den you to exceed

Authorized PP Amin

CIAO PO Soo owe to Van speck die as you par exarage. contact rata whit Moly their usememes. osseum/s. and SW inhumane mote A tope poem may contain up to 20 on Os Lowman

Sagas API Mona Use API frays le IS yoke papa who you do nol need te oxen tar SW Lemma

AlzaSyk23011Thal009T1_70C10,3graC Ku}

Key for Andrea amok Oa soakage') API bay. (cid:9)

:al: cos

All:36:00:70:3C:43:09:21:33:30:Atin zECi DO :11:12 fr:R2 (cid:9)

Android ANSI (cid:9)

Ian, 13, 2013327 AM

Activated en (cid:9)

tonowmpionaamelsom - you

Aclestad by: (cid:9)

aisestrookumsnorrowskut VOCKII7SICLIb•

Kay kr browser appe OS tekrea AF1 key (cid:9)

Any saw alond

Ragan. (cid:9) AMOS on: May 13, Ma 32e AM

torrnmatantaynalsem - you

MIMS Of

GY M Kerrie toy.- aaggeonniseet lard.,1 GSM sprarMagid tak..I Oule gas tea gwy_. I

Mink 3-7: Tgo API key

20

- Dan SHA I dA thy dirge to (a) va them package img dung cua mink vio cu .& >

click Create.

Configure Android Key for bando

This key can be deployed In your Android applications.

API requests are sent directly to Googie from your clients' Android devices. Google verifies that each request originates from an Android application that matches one of the certificate SHA1 fingerprints and package names listed below. You can discover the SHM fingerprint of your developer certificate

using the following command: keytool - list -v - keystone aystare. keystore Imam=

Accept requests from an Android application vdth ens of the certificate fingerprints

and package names listed below

45:85:E4:6F:36:AD:A:98:84:64:02:66:23:12:17:F2:56:26:A0:E 0 ;c0m.examplel

One SHAT certificate fingerprint and package name (separated by a semicolon) per line. Example: 45:B5:E4:6F:36:AD:OA:98:94:134:02:66:28:12:17:F2: 56 : 26 :A0 :£ 0 :com.example

SandiCanagl

Rink 34: Tpo API Key 2

- API hien ra, copy de dung cho viec lop trinh img dyng cita mirth

Simple API Man Use API keys to identify your project when you do not need to access user data. Learn more

Key for Android apps (with certificates) API key.

(cid:9)

A6:36:COOD:SC:6E:89:21:99:1113:A9:6E:EC:D8:11:F2: 4 F:B2 : 11"4 : 81 ;coa

Android apps:

May 13, 2013 3:27 AM

(cid:9)

tuantrungphamilagmadcom - you

Activated on: Activated by. (cid:9)

AltaSyDrtIclAYillitikvOk3jhz VdqgliE7S/Cd3hw

Key for browser apps (with referers) API key. (cid:9)

My referer allowed

Referers: (cid:9)

May 13, 2013 326 AM

Activated on: (cid:9)

tuantrungphamatgrnall.com - you

Activated by. (cid:9)

Crelle neW PS (cid:9)

I

On" glegSalikflY-.1 crenserf 8rOWII.1 WTI 'Pal new etadraid key.

Hink 3-9: TR API Key 3

21

3.2.1.3. Tgo project Demo

- Tao Project mai nhu birth thubng. Nhung cht-m Compile with Google API

New Android Applicadon

The press 'com.esemple: is most as a pleceholder end should not be used

Apple:ton Wed Demobendo

(cid:9)

Project Nemeth Demobendo

1

Pecker NamedevanspIndemobado

hfinimum Required SDKAIAPI & MSS 22 (Foyo)

API 17: And/60142 (Idk Been)

Target MOO

API ifs AndeiddigillyIkeel

Corn* YAM

Themen

API 16 Android 213 (Goverbread) Google APIs (Google Inc) (API 10) API it Android

picellithe most recent

API 17: Android 42 (Idly Been) (cid:9)

reflection.

Choose a tweet API version, or 'Mint writarininnprwourawnwswwwwitwareaw etas wmout

Finish

Net)

I owl I

Blab 3-10: Too project mot

22

- Them thu vien Google Services vim project: Click chu6t phai vao project vita

too > Properties > Android > Add > Chun project Google Services

[type filter tot

(cid:9)

Android

Project Build Target

Plefonn (cid:9)

q q

4 Resource Android Android Lint Preferences Builders lava Build Path An Code Style D lava Compier D lava Editor

2.3.3 (cid:9) 2.3.3 (cid:9) 4.0 (cid:9) 4.0 (cid:9) 4.22 (cid:9)

API L- 10 10 14 14 17

Vendor (cid:9) Android Open Source Project (cid:9) Google Inc. (cid:9) Android Open Source Project (cid:9) Googk Inc. (cid:9) Android Open Source Project (cid:9)

Target Name (cid:9) 0 Android 2.3.3 (cid:9) Goodie APS (cid:9) Android 4.0 (cid:9) En G40914 APS (cid:9) Android 4.22 (cid:9)

q

lavadoc Location Project References Refactoring History Run/Debug Settings Task Tags Va6dation

Linty 0 Is Leary

Project

Referake (cid:9) sI -4kidt-bundle-wkdovas-a16 64-2— google-plysenicasjth

W

or

Hinh 3-11: Thing dm Wen vdo do

- NOi dung cac file rib" sau:

- File layout: activity_main.xml.

android:id="@+id/map" android:layout_width="match_parent" androitlayout height="match_parent" class="com.google.android.gms.maps.SupportMapFragmentT>

- File AndroidManifest:

3 Sir dung Google Maps thi can c6 intemet non can lchai boo quyen sir dung

intemet:

23

3 Trong the Application can khai bao them meta-data de dua key dA lay

private GoogleMap mMap; mMap = ((MapFragment) getFragmentManager0.findFragmentByld(R.idmap)).gelMaPO; mMap.addMarker(new MarkerOptionsO .position(new LatLng(0, 0)) .title("Xin chao")); 3.3.2.2. My biin Marker

Marker co the duqc tity bien theo nhieu cich Ichac nhau, vi du nhu thay dei bieu

tuqng hay each Marker phan heti lai thao tic cea ngubi &mg.

Marker co the duqc tey hien cac thuOc unit sau:

a. Position (Vi tri)

Gia trj ctia dei tuqng Laing se xac djnh vj tri ctia Marker tren ban de. Day la gia

tri bat buOc phai dua vao khi chen Marker

b. Anchor

vao so vai gia tri cfla Lating. Vi tri mic Diem ma bieu ttrqng Marker se duce (cid:9)

djnh lab gifta pit dugi cia bieu tucmg.

c. Title (Tieu de)

Day la tieu de cia Marker, khi ngubi dimg ba ► vao marker se co cua so thong

tin hi'en len kern theo tieu de.

d. Snippet

Deng chit be sung duqc hien thj b pit dual tieu de

e. Icon

Bieu ttrgng efts Marker dugc hien thj tren ban de.

f. Draggable

Gia trj true/false de cho phep hoic !thong cho phep Marker co the di chuyen tren

ban de

g. Visible

Gii trj true/false de cho phep hoic khOng cho phep Marker co the hien thj tree

ban cth

25

h. Float

Theo mac djnh thi Marker se duqc dat c6 djnh tren ban d6. Khi dat gia tri float thanh true thl Marker se duqc xoay khi ta xoay ban dO, tuy !Mien kich thirdc cua

Marker se kh&ng bj thay dal

i. Rotation

DO xoay aim Marker theo chieu kim dling h6.

3.3.2.3. Thay ddi mau sdc Marker

Mau sac dm Marker c6 the duqc thay dai bang each sir dung dai tuqng

BitmapDescriptorFactory.defaultMarker(float hue) Gia tri dm hue nam trong khoang 0 den 360, d3i dien cho met vi tri trong yang

BitmapDescription khi d¢t gia tri icon:

stalk final LatLng ABC = new LatLng(-37.81319, 144.96298); Marker melbourne = mMap.addMarker(new MarkerOptionsO

.position(ABC)

.icon(BitmapDescriptorFactory.defaultMcrrker(BitsnapDescriptorFactory.HUE AZURE)));

trim mau sic.

3.3.2.4. Thay ddi blaze turmg Marker

Ngoai thay d6i mau sic, ta hoen than c6 the thay d6i bleu tuqng cim Marker. Bieu tircmg thy chip luon duqc dat thkili mat di turyng BitmapDescription bang each sir dung met trong bon plurcmg thirc cua doi tuqng BitmapDescriptionFactory:

- fromAsset(String assetName): sit clung mat anh trong thy myc asset

- fromBitmap (Bitmap image): sir dung mat anh Bitmap - fromFile (String path): sii dung mat anh trong mat during den cy thi - fromResource (int resourceld): stt dung mat tai nguyen caa churmg trinh

private static final LatLng HANOI = new LatLng(0,0);

private Marker melbourne = mMap.addMarker(new MarkerOptionsO

position(HANOD litlerHANOI '9 .snippetrPopulation: 4,137,400'9 icon(BihnapDescriptorFactoryfromResource(R.drawable.arrow)));

Sau day la vi du viec Lao Marker ved bleu tam dat trong drawable:

3.3.2.5. Sy. ben nia Marker

Map API cho phep ngued I p trinh c6 the ling nghe v3 phan hai su kien cua mot Marker. DE c6 the lung nghe su kien nay, ngubi lap trinh can phai cai dat listener arcing (mg tr d6i tuqng GoogleMap china marker do.

Ngueli lap trinh c6 the xir Iy cac su kien sau:

- Sr kien barn vio marker

26

- Sr kien keo tha marker

- Scr kien barn vao InfoWindow

a. Su ki4n barn vac, marker

Nguei lap trinh c6 the sir dung OnMarkerClicIcListener de tang nghe sv kien khi

marker duqc barn vao. De cal at Listener cho ban da, ta can gqi *rang thirc:

GoogleMap.setOnMarkerClickListener(OnMarkerClickListener) Khi ngutti dimg barn vao Marker, pinning thirc onMarkerClick(Marker) se duqc gqi va marker se duqc truyen vao nhu mOt tham s6. Phuong that nay tra ve melt gia trj boolean Neu thj viec da bat duqc mOt scr kien. Neu tra ve gia trj False, thi hanh dOng mac djnh se dirge thifc thi cimg yen hanh dOng dA duqc tiny bien. Hanh dOng mac djnh chinh la viec hien thj len Infowindow va di chuyen Camera den vj tri marker duqc

barn vao.

b. Sir kien keo tha Marker

Skr kien keo tha Marker duqc cal dot bang phuong thin OnMarkerDragListener.

GoogleMap.setOnMarkerDragListener De keo tha Marker, ngutri dung can than va gift vao marker sau d6 di chuyen, khi tha thay ra thl marker ttrcmg Ong se dugc dot vao vj tri meri. Khi marker duqc keo di, onMarkerDragStart(Marker) se duqc gqi ngay lap tire. Khi marker dang di chuyen, pinning thirc onMarkerDrag(Marker) dirge gqi, khi ket thlic keo tha phuong thirc onMarkerDragEnd(Marker) duqc gqi. Ta c6 the lay ra tqa dO cila marker d6 bat ca lac nio bang each gqi ham Marker.getPositionO.

De cai dot listener cho ban dO, ta can gqi phuong thuc:

3.3.3. Info Windows

Info Windows la mOt elm s6 !the) di kem vii marker. Cfra s6 nay se dugc bat len khi ngueri clUng barn vao Marker. Info Windows mac djnh se hiO'n thi hai ding la Title va deng snippet 6 phia du6i. Tai mOt thai diem chi c6 mOt Info Window dugc bat len. Khi ngutti dung barn vao marker khic, info windows hien hanh se dugc An di va info

windows mei se duqc hien len.

3.3.3.1. Info Window rnek djnh

Cach don gian nhat IA dot gia trj cho Title va Snippet ctia marker, khi gia trj nay

statkfinal LatLng DEMO = new LatLng(-37.81319, 144.96298); Marker melbourne = mMap.addMarker(new MarkerOptionsO

.position(DEMO) .titlerDemo Title") .snippet("Demo Snippet");

doge dot thi Infowindows mac djnh se dirge bat len khi marker dugc ham vao

27

static final LatLng DEMO = new LatLng(-37.81319, 144.96298); Marker demoMarker = mMap.addMarker(new MarkerOptions0

.position(DEMO) .titlerDemo")); demoMarkershowInfoWindow0;

InfoWindows duqc thiet ke de phan hOi lui su kien barn vac) met marker. Tuy nhien neu muOn ngutti lip trinh do the pi ham de An va hien InfoWindows. Hai ham duqc sir dung la showInfoWindow0 va hidelnfoWindow0:

3.3.3.2. InfoWindows tiry biin

Ngutti (cid:9)

trinh hohn Man co the thy bien nOi dung cling nhu giao dien cna Infowindows. De thuc hien dirge diet' nay an phai cai dAt 16p thuc thi cho giao dien InfoWindowAdapter va goi phucmg thirc GoogleMap.setlnfoWindowAdapterO. Giao dien nay co hai phuong thirc la getlnfoWindow(Marker) ve getlnfoContents(Marker). API se gqi den getlnfoWindow() tru6c, neu ham nay tra ve null thi se pi den getInfoContentso. Neu ca hai gia trj nay deu tra ye null thi API se sir dung InfoWindows mAc djnh.

Dm% dAy la !firth anh vi du ve InfoWindow mAc djnh va thy bien, met so yin de

khac se duqc de 4p sau han khi giii quyet bii total eta the:

awl wet . wir yi.2:1:

• ,

aph )1

'isir aft

Hank 3-12: Injowindow My Min

28

CHIJtING 4. CHVOING TRiNH 2FRIEND

4.1. Gbh then bit Wan

link 4-1: Mein kink Mil d#ng

Lrng dung nay se rat c6 ich (cid:9)

Nhu cluing to biet, bit chip suy thoid kinh te, nganh ding nghe thong tin van dang phat trien vOi mOt thc do ch6ng met. Trong thin gian gait day &nit clau sv phat triers rat marsh cua cac thief bj dien thou th8ng minh (Smartphone). MOt trong nheng ling dung quan tong 'that va c6 the nei la "khOng the thieu" d6 chinh la ling dung ban db. Ngoii cac chirc nang ca ban ma GoogleMap da cung cap nhu tim clubng, chi duimg, dieu hueng... ea met chile nang quan tong khic ma GoogleMap da dimg h6 try d6 la tinh ruing chia se vj tri vii ban be, ngubi tican(Google Latitude). Chinh dieu nay di thtic day em thy dung mOt img dung chia se vi Iri ban be tre'n Google Map. Ling dung nay se sir dtmg Google Map API lam bung tam.

yeti flitting ngubi ban, hay la dei vii cac Snit vien tong gia dinh. Ban c6 the tim &roc vi tri ctla ban be mitt ma kW:Mg can gqi dien, nhan tin, dieu d6 se tao nen nh(tng cuOc m*t bat net thit vj. Hay cac phv huynh et-mg c6 the can d#t ling dung nay tren dien thou cim cac con de theo deal vi tri, tao cam gide yen tam han dad ved nhemg ngubi phai lam viec ca ngay kitting the quart IST con cal Ling dung ding cung cap chirc tiling nhan tin, gvi dien ngay tir giao dien elm chuong trinh, giop cho viec lien lac to nen a clang va thujn lien han.

29

ling dung duqc cai tren cac thiet bj di dung se (tong vai fro la melt may khach (Client). Ngubi dung mu6n sir dung chucmg trinh se cting ky melt tai khoin rieng. Tai khoan nay se dugs luu tren WA server via bang Java. Server nay chi co nhiem vu nhan yeu au tir client, xi: 1" va tra ket qua, kh8ng c6 giao dien Admin. Nguyen nhan viec khong c6 giao dien Admin la vi em muOn tap trtmg vio ling dung tren thiet bj di Ong nhieu han. Vi cling la de bao mat thong tin cim khach hang tOt hon. MOt nguai wan 15, server kh8ng hieu sau a he thong se kh8ng the thy thong tin ca !Min cim khach hang tir co sa da lieu tren server. 4.2. MOt 54 yeu au cita bli twin

BR1: Quin ly tai khoan cilia ngubi eking. Ngubi sir dung c6 the clang lcY tai khoin mai va cap nhat th8ng tin tai khoan ctia minh. Ngubi sir dung can c6 tai 'chain mei co the sir dung chuang trinh. BR2: Quail ly vj trf cua ngubi dung. Ngtrai sir dung khi clang nhap vio chucmg trinh se giri vj tri da duqc djnh vj dEn Server. Server can luu trey vj tri nay de co the chia se vai ban be.

- BR3: Quin 15, danh sich ban be. M8i ngubi sir Mpg deu c6 melt danh sach ban be, pi la Friendlist. Server an Wu trey thong tin ban be dm tang tai khoan de c6 the chia se vj frt.

- BR4: Quart 15, yeu cku ket ban. Khi hai ngubi dung mutin tra thank ban ciut nhau Uri can phai c6 sv ding y cua ci hai ben. Chuang trinh an co chic ruing giri va xic nhan yeu cau ket ban.

- BR5: Ho trq twang tac giaa cac ngubi dung.

- BR6: HO trq tim duang di den vi tri ctia ban.

- BR7: HO trq nhieu ngubi sir dung cling met thtri diem.

30

4.3. Cac chin Sing chinh

*OM (cid:9)

les Obi milk

Goode Sentes

Tie Sorg des tit barn

Ix ate yam kd bum Clips= ket

So as 4-1: Se di Use - case

31

4.3.1. Char fling ding 10 td1 khoan

DO phirc typ: 2

DANG Kt TAI KHOAN

UC #0001

Mil to

Chirc rang nay cho phi') ngueri ding ding ky mOt tai khoan mth de sir dyng chwung frith. Sau khi do tai khan nguai ding có the tien hanh ding nha, \fa sir dyng cac chirc ning khic cim 4 thing

Chinh Ngutri sir dyng

Tic nhin

Khan co

Phy

Chuang trinh phai duqc khei dung binh thubng

Tien dau kien

Tai khoan mai dugc ding ky, ngutri dung có the sir dyng tai khoin nay de

Thinh cling

Zuu

ding nh3p TM khoan mei !thong dtrqc ding ky, clUr lieu khong bi tiny din

Lai

kien

sor d6 Wang cling vies

So Clb tuba' corgi vitt Chic Ming dAng 49 01 khan

a Co sfr clO' Mu

ThIgt bI Android

&gal Wang

DWI vu dta Goof*

( 7 )

as Slc SI

AN kf!

Hilles Si m irth

I

Ma dem twang /4

(cid:9)

Tli• rain& Sr 1,0

vki as MAIM

0

jj—U

Mr

Mina No

/

/ dimt:" / (cid:9) was Se

%UMW

Mem al laelsona vs tea OP No

al (cid:9) /

i

IdSILD

SO a 4-2: Ding ky thi Main

32

Scr el trial by

IMihnil

I-0 0 0 (cid:9)

I-0 (cid:9)

BINglietti

; Cada

2 tHilmborr kith thp 1.03

1-ri

Map dog ft dip

7: al kis a Iiihrip tvO

8:ftlivavilthaisionto()

iffy tore tr

N: Ti Ha.tSgky

111 &admire] ki 12 Et* The bk. irafj

11,1 : Thong ike

IS ;To raisin < (cid:9)

14 : Tn re istqa

u: Tp kigawOraQ

17: Vagina re

C (cid:9)

di Iowa()

So, di 4-3: Tank ty &beg kfi tit kkolue

33

Miran phip thyc hi4n

Ngutri sir dung

Ngutri ding se tien hinh nh#p cic thong tin sau:

- Ten ding nhop

- Mkit khau

- (cid:9) Ten atilt

- (cid:9) SO Bien thoii

Sau khi dies day di cic th8ng tin, ngtreri ding se ham vio nut "Ding 14" hok "Register". Neu ding 1E9 thinh cong, chuong trinh se ter ye min hinh ding nh.ap. Neu clang 4 kitting thinh cong, chuong trinh se hien th8ng bio vi ngu&i ding se nh#p thong tin tii khotin khic.

Neu mu6n dimg viec ding k9 vi trer ye man hinh tiling nhep, ngutri dung se barn vio nit "Hiy" hoc "Cancel"

Chuang Sob xir If Sau khi wen dung nh#p day dit thong tin vi barn nit (king k9, chuang trinh se lim nhang

cong viec sau:

- (cid:9) Lay ra cic gii tri ngutri dung dl rth#p vio

- MI his m#t khau bang him barn m6t chieu MD5

- (cid:9) Ding gii thinh ding: register CM 9 li m#t khau 6 day dl duce ml Ma

- (cid:9) Gil ding lenh dl duce ding gii 6 tren den server

- NIS kit qui tri ve tit server

- (cid:9) Thuc hien phin hei cho nguii dung

Tnremg hop clang k9 thinh cong, chuang trinh se hien thong bio "Deng Ic9 thanh ding" dung theri chuyen den min hinh long nh3p. Neu server trit Iii li thing nh#p khing thanh cong, chuang birth se hien thong bio cho ngutri ding vi yeu eau nguiyi dung nh#p 10 thong tin.

Server Sau khi nh$n duce yeu au tang k9 to client, server se tien hinh cac cong viec sau:

- (cid:9) Phan tich yeu au to client vi lay ra the gii tri:

3 Ten oiling nh#p (Login) 3 M#t khau (PassWord) 3 Ten th#t (Name) 3 SO Bien thogi (Phone)

- (cid:9) Kam tra xem ten thing nh#p &I din titi hay chtra. Neu ten ding nhtlp di tan cal till tra

34

(cid:9)

ye cho client ket qui ding ky that bai

- Neu ten dang nh#p chua ten tai, Server nen hanh them man ban ghi vao co ser dli lieu.

Cac bang sau se dtrqc cap nhot:

3 Bing users: Them ban ghi mai vai ck thong tin sau:

o (cid:9) Login: Ten clang nhalp cua ngubi dung

o Pass: Mat khau dim nhap

o Name: Ten that dm ngubi dung

o (cid:9) Phone: SO dien thotti cita ngutri dung

o (cid:9) Status: Trang thai ding nhap, mac dinh lit 0

3 Bing Location: Tqa deo vi tri colt ngubi dung, gia tri mac dinh la (0,0)

(cid:9) Sau khi them ban ghi thrinh c8ng, server tien berth Ira ket qui thong bio viec ding kj, - thanh c8ng cho client.

Oic yen an d$c bift Ichic Thiet bi can duce ket nal mpg de tien hinh giao flip vet Server

Giso difn mini' boa

fiur1(1 hi

Ten dang nh#p

M#t khiu

Ten day &

56 dien thoai

1r lr (cid:9)

ti

Hind 4-2: Ddng # Ili Moan Mai

35

4.3.2. Chits Wing ddng nhap

Del phut tap: 1

HANG NH.411

UC #0002

M0 ti

Chic 'tang nay cho phi!) ngueri ding nhop ten tai khoan va mat khau de truy cap vao h0 thong. Neu ngu&i ding chua ci Si khan thi can ding kt tai khoin. Chit fling ding ky se duqc de cap 6 phin sau. Ngtreri ding can phai ding WM meri c6 the sir ding sac chic ;tang khac cia chuong trinh.

Chfnh Ngueri sir clang

Tic nhin

Thy

KhOng do Ngueri sir dung can t co tai ;Moan de ding nh#p

Tien dieu Idea

Ngueri ding truy cap duqc vao giao dien chinh dm chtrtmg trinh

Thinh cling

Hill diets Min

Nguari dung Icheng troy clip duqc vao he thong, trang thai tai Idtoan ngueri dung idling thay del.

So' 66 luong song viec

so 66 tubas cans !MK: Chat alto ding nhaLl

3 Co at sICP OW

yva clOnis

Tait W Android

Dich vy cSa Gaffe

—el.

I

OM *Ms dwn nth

00111•060

A b us MS

ca..-Men ••••

0

So die Se SS alt

ar

i. (cid:9)

Se

d.at

/

ii_o/ (cid:9)

Cl••••• on So

wow

/

T.4"..7• I

-1°1 dionames dim

c- .wax )

Se Si 4-4: Haag nkfp

36

Phtro'ng phip thyr hien

Ngirivi sir dying

Chuang trinh se hien giao dien de nguai clUng nhep tai Ithoin va met khan. Sau khi hoin

thinh thao tic nay, ngueri dung se barn vac) nut "Ding nhep" ho#c "Login". Lac nay ngueri

dung chi can cho chucmg frith phin hOi lai. Neu ding nhep Minh clang, chucmg trinh se cho

phip ngued dung sir dung cac chirc nang tiep theo cita he thOng.

Chuang trinh xir It

Sau khi ngu&i dung nhep th8ng tin can thiet vi bign nut thing nhep, chucmg trill!' se thuc hien

cfic cong viec sau:

- (cid:9) Lay ra gia trj ten ding nhep va met !chin cita ngueri dung

- Ma hea met khau bang hiun ham MD5

- Deng gai ten ding nhep va met khau thanh dung:

login

thii clang lenh 6 tren den server

- (cid:9)

- (cid:9) Cho dqi server phin hOi va tra ket qua ve cho ngueri dung. Neu ding nhep that boi chtrang trinh se hien MI th8ng bio kim theo 161 guly ra. Neu ding nhep thinh cling

chucmg trinh se chuyen den chirc nang deep theo.

Server

Server se ling nghe yeu au tir phia client. Yeu au ding nhep S phia client se co dinh dung:

login

Sau khi nhen dien duqc mesh lenh ding nh#p ciut client, server se thuc hien c8ng viec sau:

- (cid:9) Kiem tra ten ding nhep: server se tien hinh truy cep vao ca set dfir lieu va tim xem ten ding rthep ngueri dung da nhep vio c6 !chop vii di khoin nao hay Idthng. Neu !thong tan tai ten ding nhep thi server se thong boa cho client la ding nh cip killing thanh Gang.

- (cid:9) Sau tim duct usemame kherp vii ten ding nhep ngueri dung da nhep vio, server se tier hanh lay ra met 'Mau dm tai Ithoin do. Luu jr met khgiu ma client giri den server kh6ng phiti la met khan ma ngueri thing nhep viva. DO la met khau da duqc ma heut bang ham barn mOt chieu. Chinh vi the met khau cita cac tai khoin duqc km tren ca

so clh lieu chinh IA ma barn dm met khau thet. VI Vey chinh nguen quan trj he thOng

cling !thong biet duqc met khau dm ngueri dimg. Sau khi lay ra met khau S ca so der lieu, chucmg trinh server se e'en hint' so sinh vii met khan da nhen to client. Neu van khop nhau thi se tra ve ket qua ding nhep Minh cong, ngtrqc loi se tra ve ket

qui ding nhep thit bal.

Cic yin an d$c bit khic

Ur phien bin Android 4.0.4 tret di, phan ket nei Socket can pith d#t vio trong Asyntask meri c6 the

choy &me. Neu thong chuong Atilt se bi Force close.

37

Giao On minh hos

Binh 4-3: Man kink ding nkQp

38

4.3.3. Chat nang xem ban da

XEM BAN DO

DO phirc tip: 1

UC #0003

Sau IN ngtrin dung dang nh$p thanh ding, chtrcmg trinh se hien thj man hinh chinh cila chuong trinh. Chuang trinh sir dung Google Map API a hien thi ban di. Bin di nay gin nhu hob town giOng vei ban di GoogleMap chuin. Nguei dimg c6 the thao tic vei ban di nhu chuyen vi

tri bing Ice° tha, thu pheng.

M8 ti

Man hinh nay la man hlnh chinh va quan tong nhit ctia chi:mg trinh. TO day ngtrai dung c6 the sir dung clic chirc Ming tiep theo nhu them Nut, tim duang den vi tri bon... Cac chtic nling nay se duqc de cop 6 plan dip

theo ciut tai lieu

Chinh Ngwei sir dung

Google API

Phy

Tic nhan

Google Service phiti hoot dung

Tan diiu Idin

Ban di dtrqc hien thi

Thinh (tug

Ban di Iching duqc hien thj

I dit kien Lei Se do iubng ding viiic

Soda lubng ding viec:Chin ring lib dil bin db

Server

9 Ca salt Nu

64girbi dung O1hiit bl Android

pith " did 600gle

11411tiviilt

Luau y—otrytagribins —40

ode

Otla /

Ilsotkidbinta 4--- tnt

lit

CIPINthimlb

Se di 4-5: Xent bet di

39

Phining phip thnc hien

Ngudi so' dyng Sau khi clang nhap thinh c8ng, chtrang trinh se hien thj ban di: cho ngueri dung. Ngteri dung

c6 the tien hinh the than tic tren ban da nhu:

- (cid:9) Chuyen vj tri ban di: Ngu6i dung c6 the Iceo tha tai vj tri bat kit tren bin es de di

chuyen bin 8

- Thu phang: Ngtr6i dung se dung hai ng6n tay chain vio bin dO. De pheng to ban di ngubi dung can dua hai ng6n tay ra xa nhau vi nguqc loi de thu nho ban M. Ngoiti ra nguti dung cling c6 the sir dung nut +1- de thu pheng ban 8

- Xoay biut db: NguM dung c6 the xoay bin (18 bang cich xoay 2 ngan thy tren bon M. Khi da bleu tuqng la ban se duqc hien len 6 phia tren ben trait cita man hinh, giup ngutri dimg xac djnh duqc phtrcmg hue:mg.

Chuang trinh of if

Chtrcmg trinh c6 nhiem vu hien Si ban da cho ngutti dimg. Cac Sao tic ca ban el:a ngdri dimg tren bin dO se sir dung mac dinh dm APL Cac thao tic yea vj tri bon be se duqc de' cap 6 phan sau. Ban 8 se duqc nop S djch vu do Google cung cap. Da lieu ban dO c6 the duqc Google thay dOi ma khong bito veri ngueri sir dung.

Day se la giao dien chinh cent bin dO, not hien thj cic SAM plan chinh vi la nai de thuc hien cac chirc fling khic.

Server

Chirc nang nay kheing yeu cau gi S phia server, toy nhien khi vio den man hinh nay client- server se din hinh ket not vii nhau trong mot tien trinh ngam, sin sang cho the hoot dung tiep theo

Cie yeu au d$c biet kink Thiet bj can ph& cAft ket n6i mpg

40

Gino din minh hqa

%to a

and :

uy

NYIE 1+ Ar

_tun

auk t/0414

KNU IAIINE otlio 0

a

a

, (cid:9) ,bosic (cid:9)

temlown

SSW

!fink 4-4: Min fig bin di

41

4.3.4. Char ming xem vj tri tha minh

Chat fling nay cho phep nguieri dung xem vi tri cha mirth tren ban dO. KM

nguari dung di di chuyen bin dO di xa va kh6ng con nit vi tri dm minh,

DO phis kip: 1 XEM Ni Till CUA MiNH UC #0004

claim ning nay se di chuyen bin dO den vi tri hien tai cos ngueri dung.

Kitting co

Me ti

Ngueri sir dung can ding nhjp vim chucmg trinh

Chhth Nguai sir dung Pity

Chuang frith hien thj vi tri dm ngtreli dimg

Chuang trinh kitting the hien thj chinh Vic vi tri ngueri dung

Tic nhan Tiin thin Idin

Thinh thug Iii

lit kifn So• a6 luAng cong vitc

Sudo Wing caw*: Chic ning hien NA tido minh

Server

Ca sada*

ONitwAndroid

""'ding

Did' vl) dla Google

thau

)

( (cid:9)

Rhein& 4-

Natitisl

liudulainthl vitisira

—I tkaalttlitit –

Sole 4-6: Xent 4 tri ctia fidnk

42

So* do trinh ty

Vi tri novo' dung A9611.59thal

SiMarki

ktelnIzaid (cid:9)

: Nauoi au dung

: lien el ban doff

2: Xem ban do()

3:Yeuay dihviff

4: Tra ve 1 ier toa do

«aeate»

S : Tao ryas')

6 Danh dau tri ten bin do()

7: Chon chuc rang him ti vi tO0

cril

Yea cau Nen thhi tiQ

ltusy dui vi In ban do°

9

Sold 4- 7: Dinh ty Xem vJ trf minh

43

Phut:mg phip thyc hien

Nguiri air dyng Ngued dung chi can barn vao nut "Vi tri cith tai" hoic "My location" de thyc hien chic rang

nay. Khi de ban d6 se duqc di chuyen den vi tri hien alai dm ban.

Chuang trinh lir it Try& het di sir dung duce chic nang nay, chuong trinh can phai ley dtrqc vi tri hien thed ctia thiet bi. Cemg viec nay se duqc thic hien ngiun ngay khi ban de duqc hien thi.

Trong Ian dau tien de tim duce vi tri, chuang frith se dinh du vi tri coa ngubi dimg tren ban di) bang bieu Ming d#c biet, Clang thed di chuyen ban d6 den den vi tri ngtrai dimg. Trong trueng hqp chua d6 tim dtrqc vi tri, bieu tuqng vi tri cim ngueri dung se chua dtrqchien len.

Nitu vey, thvc chit di chic tang fay c6 thi hokt Ong dint thi an pluii c6 met chic [tang quan trung kink d6 hl chic Ming d6 tim vj tri. Tuy nhien chic nAng nay khOng yen au ngubi ding time hien thao tic nito cal, vi vey chic nAng de tim vi tri se dive m8 ti

tai defy. De thiet bi c6 the lay dtrqc tqa di) vi tri hien tai cult mlnh, thiet bi an phai duqc bit GPS hoc mang di dOng 3G/Wifi. Tuang ing vai de car% c6 hai tech de ley dtrqc ma deo hien tai dm

thiet bi.

- Cach thi nhit la si dyng 4 tinh dm Google, hay chinh la se dung GPS. Ckh nay se cho ket quit chinh xac, tuy nhien vi you au ket n61 den ve tinh, nen theri gian de lay duqc tqa deo se lau hen, dong thed neu thiet bi dirge d#t a trong nha thi dm nhu kitting the si dung duct Viec sir dyng GPS ding ten pin han viec si dung mpg di dijng hay Wifi.

- Cach the hai la si dyng mpg di dung 3G/wifi. Cach nay cho ket qua nhanh han so

veri dung GPS, my nhien deo chinh xic ciut rich nay lei 'thong cao bang GPS.

Chinh vi vu va nhtrqc diem cim hai phuang thirc lay vi tri nay, nen ngtred lip trinh thtrimg sir dyng ket hqp di hai cash a cho ket qua chinh xac va nhanh nhat. Sau khi ley duce vi tri cita thiet bi, chtrang trinh se Sixth dau vi tri de bang mijt bleu ttryng dic biet, d6 la vi tri ciut ngubi dung. Tir day khi ngubi dung biun vao nut "Vi tri ctia tOi", ban

416 se dtrqc di chuyen den vi tri nay.

Server Chic nang nay khang yau cau gi ti server. Tuy nhien tqa du ngubi dung se duqc cip nhit len server a chic Ming tiep theo Cic yen cin d4c Met Mk De sir dung chic Ming nay ngubi dung can phai bit GPS hoic mang 3G/wifi de thiet bi tien hanh d6 tim vi tri

44

Giao difn minh hqa

Rink 4 -5: Dinh 4 vd kiln thi 4 tri ngwt3l ding

45

4.3.5. Cher ndng xem vj tri bon be

XEM Ng TRi BAN BE

DO phirc tgp: 1

UC #0005

Chile nAng nay duqc thyc hiAn mdt each tq ddng, khong can ngueri sir

dung tfic ding van chtrcmg trinh. Chuang trinh se ty ddng tai danh such

ban be ciut ngubi dung ve tir phis Server vet hien thj drinh dAu tren ban dO.

M8 ti

Ngueri dung co the ttrcmg tac veri ben be Wye tiep to nhOng vi tri da ducrc

dab dAu.

Chinh Ngtred sir ding

Tic nhAn

!Chong co

Pity

Ngtred sir dyng can dAng ninip de sir ding chirc nAng nay

Tien dieu Men

Vj tri ban be duqc hien thj tren bin di

Hp dieu kitn

Vj tri ban be khong duce hien thi tren bin dO

Thinh thng Lai

46

Set do bang ceng viec

Sc db lubng Ong vlec: Chin fling hien thi vi trl ben be

Dic (cid:9)

CO sit der lieu

Server

Ngulli thing (cid:9)

°a Thigt bi Android

6 (cid:9)

h vy th e Googie

lat dliu

IS try bin et

TA, nhin rib yis If TO do

Chl *du lip dm* 'Mitts bi

• ay dap* WI bin

Sal Sidi/ Iglu

NIS anis Mich bin Wane,

(

0

_ Cid St 0.• vt

Own

/

GOI yke du ay a*

Tip nhis va a If )4u chi

val &Mato a Ow loampiv.

--4----

My dog No Non tit as

i

tinTheab:In

/

4

/

MS dolor an win ant

Td It a4 do Oiest

e

Tip dirt au NM Main WA

4 C most )

Sold 4-8: Xon ;Or( blue bl

47

Sa dO trinh tv

KD 0 0 KJ° 0

spa

r9 (cid:9)

r9~d (cid:9)

3: Yeu au by pat et tank )1

4: Lay ilst S. ban

Ue

O

5 doh S.

l

dot edits

:Tra ye drh nth ben tE (cid:9)

8 :Iv, dot nth be

9

ve at swain be

so a 4-9: Trink ty Xem vj trf bps bl

48

Phiroug phip thyc MO

Nguiri sir dyng

Chic nAng nay killing yeu cau ngueri ding tac dOng vao chuang trinh. Chi can ma man firth cim chuang trinh len va danh sach ban be se duqc nap ve met cach tv &Ong. Danh sach bon be cling dugc c#p nh#t lien tvc, dam bao vi tri dm ban be se dugc c#p nh#t chinh xac nhat.

Chung Irish xir It

Day la met ding viec tv dOng thvc hien kh8ng can thao tic cia ngtroi dung. Cong viec nay you cau giri va nh#n ket qua tir server cho nen can phai d#t trong Asyntask. Cac ceing viec

chuang trinh can thvc hien:

- (cid:9) Chuang trinh giri you eau lay ye danh sach ban be dm ngutri dimg:

Getfriend

Chi jr la ID cia ngutri dung kh8ng duqc c8ng khai, nen chuang trinh se thvc hien chic nAng nay met cach ix dOng, ngueri ding Idging the can thiep vao chive nAng nay.

- (cid:9) Sau khi you cau duqc giri di, chuang trinh se nhon ve met danh sach clic ban be di dugc ket ban, danh sach c6 cau trim kieu xau (String), cau trite danh sach tra ve nhu sau:

Chuang trinh se tien hanh phan tich danh sich nay va danh du vi tri ban be trEn bitn dO.

- (cid:9) Sau khi nh#n duqc danh sach ban cling vol vi tri tuang (rug, chtrcmg trinh se lay ve met vai thong tin co ban cilia ban be, gem c6 ten day dti dm ban va thin gian ding nhop glut nhat. Yeu cau dugc giri den Server vol cau tic:

Getinfo - (cid:9) Chuang trinh se ling nghe ket qua tra ye tir Server, sau di sir dvng ket qua nay a

hien thi vi tri ban be tren ban dO.

- (cid:9) Ngueri ban dang Online se ci bieu ttrqng mau di, neu Offline se 6 bieu tugng mau xim. - (cid:9) Trang thai Online dm ban be se duqc chtrang trinh cep nh(it lien tyc, sau met khoang thbi gian nhat dinh chtrcmg trinh se giri yeu cau den server de lay lai th8ng tin ye danh sash cling nhu tang thai cia ban be. Thao tic nay sir citing TimerTask.

Server

- (cid:9) Sau khi nh#n dirge yeu cau lay dank sach ban be tir phis Client, Server se tian hanh

truy xuat ca sir de lieu va lay ra the thong tin sau:

11D dm bon, chi ngubi di the nh#n you cau kit bon mil dirge lay ra (Status bang 1) 3 Vi tri dm ban twang irng, bao gam hai gia tri II Latitude va Longitude duqc lay ra

tir bang Location

- (cid:9) Sau khi lay ra the th8ng tin nay, Server se dua de lieu thanh dm tric nhu sau trtrac

khi giri ve cho Client:

49

- (cid:9) Ngoai yen cau lay ve danh sr ch ban be, Client con yeti eau lay ve mOt 96 th8ng tin cim ngtreti ban tucmg (mg, khi nhon dugs yeu au nay Server se tien hanh lay ra cac

thong tin sau: 3 LastUpdate: Thai gian gait nhat ma tqa dg dm ngtreri clang dtrqc cop nhat.

3 Status: Trang thii clang nhOp cim ngtaai clang

Sau khi lay ra cac th8ng tin tren, Server se dtra ve clang sau truem khi tra ve ket qua cho client:

Clic yeu au d$c biet kink Thiet bi can co ket nei mong

Giao difn mink hoa

I

Them ban

audio (cid:9) Din tz;

WM 011

i

it

TRUNG

I n (cid:9)

VINOIDEV eke (cid:9)

_

12. It 21.23. 2S. MASI (cid:9)

le

al

Mink 4-6: Xem vi Di bnn bi

50

4.3.6. Cher nang clip Milt vJ trl

CiNP NHia VI TRi

Da phire top: 2

UC #0006

Ma ta

Day la clang viec chuong trinh dux hien mat cach tkr clang, khong yeu au thao tac nao to phia nguiri dung. Chtic ang nay a ithiern vu Op nal tqa des dm nortri dung voi server. Toa da nay se duqc sir dung de hien till vi

tri yeti ban be.

!Chang a !thong co

ChInh phy

Tic nhAn

Tien diiu kien

Tashr

dHit

Nguoi sir dong an ding nap vao chtrcmg trinh . V1 tri ngutri dung duqc ap nat den Server

Vi tri ngtrai dung khong duqc ap nh#t den Server

kien

Iii

sor a bong Ong viec

So ela hibng dmg vitc: auk anti cop nhit vl td

Server

'~ Cast/delft

otigulA dung

QMit bi Android

Dich Ai dm Goa&

at

eel Ma A

Oa Sachem; is*

• 41•••••kti (cid:9) than

t ant

awl,'

fitness 7/ obi

arts tonged (cid:9) hellion all

I' *Avis • bi I

TM'S; a qui whib Ord

In

100,

P•Mbil•Ads Saw

litIkk

Sea 4-7: CO dr( 1 1 vj trl

51

Phircmg phip thvc hien

Nguiri sir dung

Day li mOt cong vies to dOng thyc hien khong an thao tic ctia ngueri dung.

Chuffing trinh xir I C8ng vies nay yeu au oh vi thin ket qui tir server cho nen can phai clOt trong Asyntask. Cac cong viec chucmg trirth can thyc hien:

- (cid:9) Sau khi lay duqc vi tri dm thiet bj, tqa do curt thiet bi se duqc Itru lai

- (cid:9) Dua tqa dO vio ciu lenh:

updateloc

Trong do latitude vi longitude la hai gia tri dai dien cho tqa dO thiet bj ctia ngueri dimg.

- (cid:9) Cid you eau tren den server

- (cid:9) Nha'n ket qui tri ve tir server

Server Server sau khi nhan duqc yeu ciu tar nguCri dung se tien birth cop nhat vio co so der lieu. Tqa do am ngtrad dung se duqc ghi vim co sec dii lieu de phyc vu cho cic chirc ning !chic. Sau do server se tra ve ket qua cho client timing bsio viec tip nhot tqa des thenh cong hay that bai.

Cie yell au dee biet khic Thi6t In can c6 kat n6i mang

Gino then minh Ms

52

4.3.7. Char ndng gal yeu cau kit ben

GUY YEU CAU KET BAN

DO phut top: 1

UC #0007

Chuc cling nay cho ph6p ngueri dung gUi yeu cau them ban m6i. Ngu&i

ban nay se nhin duct yell eau ket ban, neu viec ket ban dirge xac nhon thi

ngued ban nay se duqc them vao dank sach ban be cim ngu&i dung, clang

then vj tri etia ban be cling se duct hien thi len ban do.

Day la met trong (cid:9) nhOng- chat ring chinh cua chuang trinh 2!Friend.

Nguei dung co the chia se vj tri veri ban be, dang then biet duqc vj tri ban

MO ta

be cua minh. Nha in, du 6 bit cu nai dau, chi can ban be sir dung chucmg

trinh nay, ban cling c6 the a clang tu hop va gay bat nger cho ngtreri ban

ctia minh. Day chinh la chat Wing dem ban be den gin nhau han.

Khi ngueri dimg nhip ten ban, chuang trinh se tien hanh truy xuat den

server di !Ay cac gia tri gqi , ket ban, &up nguai clang them ban met tech

thuin tien han.

Tic

Khong 05

ankh Ngutri sir clung Thy

nhin

Ngubi sir dung can ding nhop vao chuang trinh

Tian di$u kiln

Yeti ciu ket ban duqc giri di

Yeu ciu kit ban Miring duct giri di

Minh Sing Iii

Hu di u Idfn

53

s. a keng ding viIc

Saab 'Ong Ong vi.c: Chat Mug seri lieu au kit ben

cua

Dich (cid:9)

3Casfrdirliou

Server

a Thigt DI Android

Sgutti dims

Al Goggle

Bit au

(

Ian dain diS

NI4p tin bin va bigrn ntit Itara W

Mr/P In

Tin* va wit II yiu du thIm bon

(

/

at W bin W

t auk* o MIL

Mau hit Ina

----4--

/WA

1 /

Ca loft oil a cho deft

,swarm phianst

4

..1]

Win 61 thane* do TA erg

Pad*

Sc &i 4-10: Girt yin cdu kit ben

54

Phtrong phip thyc hitt'

Ngueri sir chum Tren giao dien chink dm chuang trinh, nored dung se nh#p "ten clang nh3p" cim tai khoin ban be mien them, sau 46 bam nut "Them" hoc "Add". Khi ngtreti dung nh#p ten ban, chuang trinh se hien till gqi 9 ket bon, ngtred dung c6 the chop ngay S danh sach gqi 9 new Being nher ten tai khoin dm ban minh. Chuang trinh se phin he' cho ngtrai dimg viec them ban la thinh cling hay that bai. Neu them ban thanh cling, ngueri ban Wang (mg se nhO'n duce yeu au ket

ban.

Tsang hap ten ban vira nhjp &I c6 trong danh sach hoc da gUi yeu cau, chuang trinh se fien hanh bao 161 vi Idling girl them yeti eau ket ban.

Clurcrag trinh Kir It Sau khi ngueri dimg bam nut "Add" hoc "Them bon", chuang trinh se thyt hien xi: 19 !Meng cling viec sau:

- Lay ra ten ban ma ngueri dung mien them

- (cid:9) Dua vio eau lenh:

Addfriend - (cid:9) Gfri cau lenh tren den server. Thao tic nay se duqc d#t trong Asyntask - (cid:9) Nhem ket qui fir phia server vi thing ha° cho ngueri ditng. - (cid:9) Neu them ban thinh cling, yeu cau ket ban se duce girl den ngueri ban Wang (mg.

Server Sau khi nhOn duqc yeu au them ban S phia client, server se tien hanh cac cling viec sau:

- (cid:9) Lay ra gii try' tin ngubi dimg, ten ban can them - (cid:9) Tien hanh kiem tra xem ten ban c6 ten tai tong ca ser de lieu hay Wong - (cid:9) Neu ten ban thing ten tai, server se tra ve kit qui cho ngtreri dung - (cid:9) Neu ten ban ton tai, server se tien birth them ban ghi mei vao ca so du lieu

Tiling thai bang 0 clang nghia veil viec yeu dm ket ban nay chtra duqc xic nho'n. Khi ngueri ban Wang Ung clang nh#p vitt chuang trinh se nhjn duce yeu cau ket ban nay, khi 46 hq c6

the xac nh#n hay tir chei yeti cau kat ban 46.

- (cid:9) Sau khi them ban ghi thinh tong, server se tra ve ket quit thong bao vat ngtroi dung

viec girl yeu cau them bon di theft ding.

CM yiu au qe biet khIc Till& 1,1 can phai ci kit nal mang

55

Giao digs minh boa

HIS 4-7: Gni gu au kit bon

webs

Ocavloua (cid:9)

*en !)

Rink 4-8: Meng Might thim yin au

56

4.3.8. Char nag xdc night yiu au kit ben

Di) phut tap: 1

UC #0008

)(tic NHAN YEU CAU 'CET BAN

Mo tai

Chirc nang nay cho phep ngueri dung zac nhon yeti au ket bon to met nguen clung !chic. Chirc nang nay giim ngueri clang dr the kiem soat duqc viec chia se vi tri den met ngueri ma minh khong mong muton, beri vi viec chia se vi tri that ra la met van de rieng to va can c6 de tin c#y cao. KW nh#n dirge met yeu au ket bon, ngueri clang c6 the lua chun deng 9 hoec to ch6i. Neu yeu au duqc deng 9 (xitc rile thi ngueri bon do se dtrqc them vim danh sash Nut be.

Chinh Ngtrei sir dung

Khong ce

Phy

Tic nhan

Ngtred sir dung can clang nhop vacs chuong trinh

Tien diau Icifn

Trong thai ciia you au ket bon dtrqc cep nh#t

Thhnh ding

H u di u

Trong thai cita yeu clu ket bon khong dtrqc cop nhOt

Lie

kifn

57

So d6 hding cdng viec

Sc ct lubng cans vier Chat ring xac nhan yiu au ket ban

Ca sir dai lieu

Server

Mitt bi Android

Ngvad dung

Dich vu dm Google

C Bka )

sin 111 bin /lb

Na then vi 4irlf *Su

Girl viu du Wayyto do ka blia

41

Illk dards sr y1u doa

Liy dank sichykt clu Sibs% &costs &Hu

0

Gia1kItcpsite an

4

Dinh 141 Om du

0111 1•J131 11 Inn

flip nblo ve24)0 Wu clo

i Gal thong tin I/1c Sado Sow e

• •

Girl* trans thil (cid:9) lilt bin

Tr thil bk 11•1

UPS.

land

kit *dr

(1) taw

-) XS ifhp dm IS bin --V *NM /

dna&

Se di 4-11: X& nh(in yin can kit bpn

58

Phtning phip thyc hien

Ngirtri sir dyng Khi c6 met yeu dm ket ban, chuang trinh se hien thi th8ng tin chi tiet coa ngueri ban mutin ket bp, ngueri dung sau khi xem th8ng tin nay co the In chien ding 9 hoec fir chin yeu ciu ket ban di. Neu ngueri dung chp fir chi:Si, yeu eau ket bp di se duqc tool b6 va thong hien thi 10 khi ngueri dung ding nhep lei. Neu ngueri dung ding 9, danh sich ban be se duqc cep !diet loi

va vi tri cua ban tucmg ling se duce hien thi tren bin di.

Chuang trinh xii If Chit ning nay se dtrqc chtrang trinh bit du lir ding. Sau khi ngtreri dung clang nhop, chuong trinh se yeu eau server tra ye danh sach the yeu eau ket bp dui ngtreri sir ding:

Getrequest

Sau khi nhen duqc danh sich the yeu ciu ket ban hi server, Wang img iced null yeu ciu chuong trinh se hien met man hinh hien thi thong tin chi tiet cis ngueri bp tucmg ring, bao

pm:

- (cid:9) Ten tai khoin

- Ten day di

- (cid:9) Si dien thogi

Ngtreri dimg sau khi xem th8ng tin nay se hra chqn thing 9 hose fir eh& you eau ket ben. Trong truing hqp ngtrii dung ding 9, chuong trinh se girl thong bio den server a xic Mon viec them bon:

Accepffriend

Sau di, trong lin nap loi danh sich ban be, vi tri bp be vita du% them se hien thi tren ban 6. Trong truing hqp ngueri dung ti chii yeu eau ket bp, chuong trinh se girl thong bio tit choi den server. Viec nay cling tucmg ring yen viec xia met bon be khoi danh sich.

Sau khi ngtrii dung Itra chqn xic nhen hoec ding 9, man hinh xic nhen yeu ciu se ding 10 vi

tri ve giao alien bin 46 dm chuong trinh.

Server Sau khi nhen duqc yeu ciu hi ve danh rich yeu au ket bp caa met ngueri dung, server se tiers hanh truy xuAt ca ser de' lieu vi tri ve ket qui cho Client. Trong truing hqp khong co yeu eau ket bp nio, server se tri ve ket qui li "empty".

Neu ngueri climg ding 9 yeu ciu ket bp, server se tien birth cep Met car serdi lieu.

Neu ngueri &mg tir chii yeu ciu ket ban, server se tiers hanh xia bin ghi khii ca ser der lieu. Viec nay cling pin giOng nhu 114 ket ban.

Csie yin an *bift Ithic Thitt IA can co ket mai mpg

59

Giao Bien minh hos

Mut nquot moon kit

0947493260

TM khoin: test6 Ten: Phnm Tula T then Movie:

HMIs 4-9: Mk nhan ylu du kit bon

60

vi trl km 4.3.9. Cher nong tim during (cid:9)

DO phis typ: 3

Me ti

Chirc nang nay cho phep ngueri dimg c6 the tim dugc &rang di den vi tri ban be cim minh. Diremg di se dirge dinh diu tren ban db, yen diem bit diu la vi tri dm ngtrai dimg ve diem cuOi la vi tri ban mkt ngu&i dimg. Ngueri dung chi can lam nhOng thao tac rat nho la c6 the tim dugc duerng

di din vi tri ban be.

TIM DU ONG DEN VI TRi BAN UC #0009

Tic nhin

Chlnh Ngtrai sir citing Thy

Tien die', kijn

Google Service Npreri sir dung can clang nhitp vio chuang trinh, Google Service phai hog ding

Chuang trinh hien thj duemg di den vi tri ban Luang Ong

HOn (lieu kiln

Chuang trinh kh8ng hien thi throng di den vi tri ban Luang Ong

Thinh cOng iii

Sa a luting cang viec

a Co sit dr/ libu

oNgo&I thing

ti 'Ma bi Android

So db Iubng am viec: thine ning dm dubng dfn vi of ban Did vy co Go of& a

C °itdiu )

Sib tit bin dti

Own bon bib main tor th••trag

t

Gin Au du din

Tiling* vi a I# Aga.

AW

Min MY qa Mt Gorda Siva

CS shit bin db

Se di 4-10: l'im &rang di din vi Inc bon

61

Phtrang phip thisc hien

Ngatri sir dyng Tren ban da, ngueri dung chi an bam vao met vj tri ban be bat ki di duqc hien thi va dqi trong giay lat. Chuang trinh se tien hanh zit 15, va tim throng di den vi tri ngueri ban tuang img. Trong met dt6i diem chi c6 met dui:Mg di duqc hien thi. Neu nguiri dung him vao met ngueri ban khk, dtremg di cu se duqc x6a di va dutmg di den vj tri ban mai se duqc hien fill.

Chuang trinh xi ly Chirc ning nay sir dung Direction API ctia Google de thtrc hien tim dyeing di giffa hai diem. Diem bit diu la vj tri ctia niorai dung, diem ket th6c la vi tri cirri ban be. Khi ngueri dung btun vao met marker dpi dien cho met ngueri ban, chuang trinh se tien halt thu thop tqa do ciut ngtroi dung vi dm ngueri ban vira dtrqc brim vao, sau de girl yeu eau den Direction API ciut Google. Yeu cau nay can c6 ket not mpg va ch do tie, chinh vi the can phii dat trong Asyntask de Minh lam treo ding nhu ForceClose img dong. Sau IN nhk duqc ket qua tra ve, chucmg trinh se tien luinh hien till duimg di ten ban d6. Khi ngueri clang bam vao met marker dal dien cho met ngueri ban khk, dtremg di cii se duqc x6a di va clueing di mai se duqc hien len.

Cach sir dung Direction API se duqc de cap 6 phin 4.3.1

Server

Cate yea au dee biet khie Thiet bj can co ket not mpg

Gino diem minh him

Them bon

S vi„

a (cid:9)

I" ThIPTY (cid:9)

Sr

urow

Irettsta+10i (cid:9) .,.

Y torr3 I , Ilacts t

4.4a

OM

TIrehltsittNis (cid:9)

Ore (cid:9)

"

ISO , I (cid:9) .

SIN

Binh 4-10: 79nn &Meg dl din vj trf hut

62

4.3.10. Chose ming xem thong tin km

£14 phfre tap: 2

XEM THONG TIN BO

UC #00010

M8 to

Chirc ning nay cho phop nguai dung c6 the xem th8ng tin chi tiet ve met ngtreti ban trong danh sach ban be cim minh. Khi man hinh chi tiet ban be hien len, ngueri dung c8 the thyc hien nheng chirc nang khic nhu giao tiep ved ban be bing tin nhin, dien thotti hoc hay ket ban.

ChInh Ngueri sir dyng

Google Service

Nguen sir dung can ding nhep vio chucmg trinh

The nhin Phy

Thong tin ban duce hien thi

Thong tin ban khang duce hien thi

Tan Su kio

Hiu dieu ki'n Thinh thug Lgi

Srr d6 tang cong vi%c

So S luting tong Sr: ChCrc MN{ gem thong tin bon

3 Co 0 dtt lido

Server

rd el Android

Nguti citing

fl mid

ilich vy as Goggle

)

W®"

( (cid:9)

MP ohist vh re It Wm es

Mon bps bit mas own

KS Ai bin a Ar

0

116 nit ye ..)0# Nu du

G,4 Ow the Ify See is

—4

AZT

mar ts

I

Lie Mao IM tir co vino Nu

guru Seig an Of tenor vb Geode UMW

Is bb

CA Mara. MS

Nan IN la ma dos meanie

11, ( la *Sr )

Sc di 4-11: Xem thing de bgn

63

Phircrng phip time hi§n

Ngtrei sir dyng

De sir dung chic nang nay, nguii dung chi can thvc hien nhing thao tic don gian sau day:

- Barn chqn ban be di duqc danh dau tren ban da

- (cid:9) MOt cira so thing tin Infowindow tucmg (mg se duqc hien len

- (cid:9) Bilm chqn vao cira so InfoWindow di, man hinh chi tiet ban be se duqc hi'en len.

- (cid:9) Khi muffin quay Iai ban di, nguai citing chi can barn nut "Back" cim thiet bi

Chuang trinh xir It

Chirc nAng nay yeu au ngueri lap trinh phai ling nghe vi xir ly sv kien barn vao InfoWindow cita marker. Khi Info Window duqc barn vao, chuang trinh se tien hanh thu thip thing tin cim marker di va truyen den man hinh hien thi chi tiet. Thong tin chi tiet dm ban be se duqc tai ve tic Server, rieng thong tin ye dia chi caa ban se duqc lay ye ter dich vv dm Google.

Server

Server ci nhiem vv ling nghe yeu cau tir phis Client. Sau khi nhan duqc yeu au lay thing tin, Server se tien hinh truy xat co sir de lieu va tra ve ket qua tucmg Cmg cho phia Client. Cie yeu au d$c hip khic Thiet bi can co ket not mpg

64

Giao din Sub boa

dhthanglong Dai hoc Thing Long 137 Nguyen Xign Dai Ki Mai Ha NOi 201311-14

Binh 4-11: Xem thong tin bpn

65

vai ban

4.3.11. Chic tang giao (cid:9)

DO pink top: 1

CIAO TIEP VOI BAN

UC #00011

Me ti

Chirc rang nay cho phi!, ngubi dung c6 the giao tiep, len loc vii bon be. Day chinh la diem mph dm cac thiet bj di dung. Chuc rang nay lig try ngubi dung nhin tin, pi dien cho ban be mOt cach nhanh ch6ng ma khong an ma danh bo hay (mg dung than tin, chi can ban be a trong danh sach IA vii nhang thao tic rat nhanh gm la di the lien lac yin ban be.

Chinh Ngtroi sir dung

ne

'Wong co

Mg

nhan

Ngutri sir dung can ding nhip vac) chuang trinh

Tan diiu kiln

ang

!Chang the giao tiep vii ban Wong ang

di nl kifn

Iii

So' do iubng cong vies

Su do Wing Ong At: ChOc rang eau tigp vol ben

Server

3 Ca slide lieu

mittIA Android

Spin dOng

Dich Ai dm Goo*

thth

t

mth OW S

overflow:a bpi man Ono Sp

4.1

Haifa thlthtevin ctil Sawn won Ung J

LI

ton hinhthtkpo tallugain

dart—I, Miallair loi F

IP Wins &Firkin et

Sc di 4-12: Gab dip v41 bpn

66

Phtrung phip thvc hi4n

Nguiri sir dung Chile nang nay Ich8ng nim a giao dien chinh ctia chtrang trinh. De sir dung chirc nang nay ngtreri dimg can sir dung chile ning xem thong tin ban be. Tai day, chucmg trinh se hien thj cac nut chirc ning de nguiri dung sir dung. De dive hien nhin tin, nguai dung chi can brim vao nut "Send SMS" hoc"Nhin tin". Luu 9 la thiet bj android co the dtrqc ell them cac chucmg trinh nhin tin khac nhau. Vi Vay sau IN &am nut gun tin nhin, 4 thong c6 the hien till them met cira se de nguiri 'Jiang Iva ch9n trinh nhin tin. Ngueri dung chi can him chon trinh thin tin minh mu& sir dung. Khi de trinh nhin tin se hien len veri so dien thoai ban be da duce dien sin, sung veri met vli clang tin nhin m#c djnh. Ngueri dung c6 the thay dei nOi dung tin nhin ve giri di bet cu litc nao. De thvc hien gQi dien thotti, ngveri dung chi can him vim nut "Call" hok "ail dien". He thong se ngay Iftp tut thvc hien cutjc gyi den so dien thoai ban be da km.

Chuang trInh th If Khi ngtrei dimg brim ch9n chirc ding gui tin nhin, chtrang trinh se thtrc hien nhi'mg ding viec

sau:

- (cid:9) Thu thip thong tin ye ten nguai dimg, ten ban be, se dien thoai cim ban - Thvc hien truyen vao Intent de gQi den chtic am giri sms

Chit 9 ring chirc ding nay Ichting yeu cau quyen giri sms dm he thong. Berl vi day !thong phai la tinh ning girl sms met cach to deng ma chi g9i den trinh giri tin thin dui 4 titling veri se dien di* ngtrai nhkin &gm dien sin. Chinh vi the ngtreri dung co the gai tin thin cho ban be met cach chi, deng, khong bj go be ve nig dung tin thin. Deng thin ngtrai dung ding c6 the dung tinh riling nay thay cho viec mer danh bit tim ten ban be de thin tin. Viec cho phip ngubi dung c6 the sira del MN dung tin thin glop ngueti dimg cam they yen tam han, vi h9 co the kiem soat ducrc nhang gi sip giri di, cling nhu kiem soat dugc khan tien minh se phai tra cho

tin thin deo. KW ngtroi dung him vao nut pi digs, die dog viec tuong to cfmg dugs thvc hien.

Server

Chirc ning nay 'cling yeu ciu kat not din server.

Cie yeu au ilk hilt khic

Thiet bi can c6 img clung pi dien, thin tin

67

Giao din minh hga

dhthanglong Doi his Thing Long 137 Nguyin Xi& Doi Ki i,Hoing Mai Hi NOi 2013-11-14

Rink 4-12: Ciao dip vet bon

68

4.3.12. Cher tang My kit km

DO phfrc tap: 2

1115Y KET BAN

UC #00012

M8 hi

Chirc rang nay cho phep ngued dung ce the loaf be ngued ban khan mong mutm khed danh sich ban be. Sau khi ban be dugc Ioai be khei danh sash, khi ban da dugc nap Iai Id tri ban be tree ban de se bien mat va

khOng the sir dung cac tinh nang giao tiep khac.

Chinh Ngtred sir dung

Tic nhfin

Kh8ng ce

Phg

Ngued sir dung can ding ninlp vao chuong trinh

Tiin diet' ben

Yeu au ket ban dugc xea be

Thinh cling

H#u dau

Yeu cAti ket ban khong bj xea be

Iii

Min

St d6 luang cong vilc

Saab Wog tangy*: Chat ning hey kit ban

an sb drt Ilau

Server

Mitt N Android

6 Ngtrbi dung

*au

Sin dm tigingtin

1

chi tat alb 1 ma

Lon chon 'Wm kgt bre

bin

V

Much

biAV

Tip tan vb pelt Van aubwiblibin

Gisi bin du tIfn Sow

Mt tqn

(cid:9)

Open* cloth aid. bine

HS thislang Se es %al tip

..„ '

t

Dane

Gin biltsicho OEM

n14101 ace bin

C Killbk

So a 4-13: Hirt' kit kin

69

?hung phIp thvc hi§u

Ngudi sir dyng

Trong man hinh chi tiet ban be, floral clang chi cam barn nut "Hily ket ban" a x6a ngueri ban

Wang Ong Ichei danh sich ban be. Neu viec Ithy ket ban thinh cong chuong trinh se thong bio

"X6a ban thanh cong"

Chuang trInh xir If Khi ngueri dung barn nut hay ket ban, chuang trinh se tien hanh cac cong viec:

- (cid:9) Lay ra ten ngueri dung va ten ngueri ban can x6a

- Dm vao cau lenh:

removefriend - (cid:9) Girl cau lenh den server

- (cid:9) Dgi ket qua tra ve - (cid:9) Phan tich ket qua vi phan hOi cho ngueri dung

vi cong viec nay can troy cap mpg nen can phii at trong Asyntask. Sau khi hay ket ban thinh cong, ban rth se duce nap lei de Op nhat danh sich ban be.

Server

Khi nhan duce yeu cau hay ket ban fir phia client, Server se tien hanh nhOng cong viec

sau:

- (cid:9) Lay ra cac gia trj: ten ngueri dung, ten ban can x6a

- (cid:9) X6a th6ng tin kh6i ca so de lieu:

3 Chu 5, rang khi A II ban caa B thi B cling la ban cua A. Nhtmg to khong biet truck duce tong CSDL se duce luu IA "A la ban B" hay "B la ban A", chinh vi valy khi x6a ban can phaii xir ly a hai twang hop tren.

3 Bing se duce Ow nhet la bang Friend I va Friend2

- (cid:9) Sau khi x6a ban ghi, Server se tra ve ket qua cho client

Cie yen au dlc biet ale

Thief bi can co ket not mpg

70

Giao diva minh hos

The Ho VIII

dhthanglong Dai hoc Thing Long 137 Nguyen Xiin Doi Ki Mai His NQi 2013-1114

Mink 4-13: Hay kit bgn Oak bgn)

71

4.3.11 Char nang c¢p nh4t thong tin al nhan

M8 ta

Chirc ning nay cho phi', ngutri sir dung co5 the thay doi met so th8ng tin ca nhan cira minh. Nguai dimg c6 the thy 9 thay di thong tin theo jf thich, hoc khi ding kj, nh#p vao thong tin khong chinh xac, ngutri dung di the sir dung chirc ning nay de chinh sira Iii. De phyc vu cho viec bao mat tai khoim, khi thay dei thong tin ca nhan ngtrai dung se phai rili#p vao mat khau hien hank. Neu mat Ithau kh8ng chinh xac thi th8ng tin ca nhan se

ichOng IA thay del.

'Chong co

Nguoi sir dung can ding nhap vao chuong trinh

CAP NH4T THONG TIN CA NHAN DO phut ttip: 2 UC #00013

Thong tin ca nhiin dm ngutri dimg duqc cap nhat

Thong tin co than dm nguiri dung thong duqc cap nh#t

Chinh Ngu&i sir dung Tic Phy nhin Tan dal' kien

Hl' ditu kien

'Minh cong Lai

72

So. d6 luting tong viOc

Sc c2) luong ding viec Chat rang they dot thong tin ca nhfin

Server

Ca stfr dre lieu

Nguttl dung

til Mgt bi Android

D lch vy cia Google

C B&° )m

4

• Hi& th bind

Chcm dot aft thay da Otis tin ti thin

7* nhan ve SP/ YOu au

GM yllu an ily then tin nipAl St.

t

• *signal •••6I dines co 060 Mu

NI* theft tin WM an dr Sem

t (cid:9) 0 1

wnli

Glitlitquia Ott

dbm/

—• Ci• Mk nal VI

1Vp din A sall# *Ow

1--

GM thong Omsk In do Sens

V Ilifre lin /

UP reit tern^

*—

Min la qui dr Sew

Si MS din

I OP Se

li

L. Got Odom bio do

Ca

Sold 4-14: Thay a Meng tin al nlan

73

Phuang phip thuc hien

Nguiri sfr dyng Ti man hinh chinh cis chuang trinh, ngueri dung barn vao vi tri di duce danh dau cim mirth (Co hinh ngoi sao) hoc 66 vao nth "Vi tri dm tiii", met ding thong tin three hien len, nguari sir dyng barn vao ding nay a ma chirc rang cep nh3t thong tin ca nhan. Cach de Bei deng chic nang nay kith gieng vii each xem th8ng tin chi tie[ dm bon, chi khac la ngtrai dung se chip vao Marker cim mink, chuang trinh se nhen biet va ma chirc fling

tucmg Ung. Sau khi man hinh thay dui th8ng tin ca nhiln hien len, chuang trinh a tien hinh ley ve cic thong tin ca ctia ngthei ding. Ngueti sir ding c6 the thay di tnrc nap cic thong tin nay. Tuy nhien chirc nling nay yeu cau ngutri sir dyng nhep vao met khau hien hinh. Sau khi dien day do th8ng tin, ngu&i sir dyng barn "Confirm" hay "Xic nhen" de cep nh#t th8ng tin. Yeu can thay del thong tin hie nay se dirge gel den Server, chuang trinh se ling nghe ket qua tit phis may chit xem viec cep nhet eighth tong hay that boi va hien di thong bio cho ngu&i sir chin.

Chuang trinh xi. If Chic nling nay ci each sir (twig khi &Ong vii chi= ning xem thong tin bon. Chi khac hi ngueri dung se chcm Marker dm mink chit kitting phai Marker ctia ban. Vey nen chuang trinh can nhen biet ngtrai ding di ch9n Marker nao de me chic ning Wang img.

Sau khi chile ning Cep nhet thong tin duct kith hoot, chuong trinh se tien hinh lay ve cac thOng tin ca cim ngutri ding, gem c6 H9 ten day di va se dien thoii. Con met 8 doge de tang

cho ngueri ding nhop vao de la met khau.

Sau khi dien veto cic th6ng tin mu& thay clei, ngueri ding b6 vao nit "Confirm" hay "Xac

then", chuang frith se tien hinh the buck nhu sau:

- (cid:9) Lay ra cic gii tri ve Ten day di va Se dien thooi. Ten ngueri ding khi c6 chin dau each se dirge sua thanh diu "_", vi dy "Pliant Tan Tnmg" se doge chuyen thimh

ding "Pham_Tuan_Trung".

- Met khau ngueri ding se dirge ml his bang ham barn met chieu

- (cid:9) Da lieu se dirge clang g6i thitith ding nhu sau: Editinfo - (cid:9) Dff lieu sau khi doge (long gai se dirge giri den Server, sau d6 Chuang trinh se ling

nghe ket qui tir phia may chi vi hien thi cho ngtdri ding.

Server Truck khi nguai ding girl yeti cau cep nhet thong tin, chuang trinh phia Client se girl yeu au de lay ve th8ng tin ca nhi'm cu dm ngtrai dung. Cic yeu cau dirge giri len server co cau frac

nhu sau:

Getname Getphone

74

Server se tien Minh truy xuat co kr aft lieu a ley ra thong tin tucmg img vi gui ye cho phia Client. D6i vdri you au la ten day du va Arai la se dien thogi ciia ngirdri dung tucmg ang. Sau khi nhen dirqc yeu eau cep nhet th6ng tin tir phia Client, Server a tien hanh thut hien ck butc sau:

- (cid:9) Kiem tra met khau: Truk khi thay dei th8ng tin ngudri dung, can phai kiem tra xem met khan nguiri clUng c6 chinh xic hay khong. Server se tien hanh lay ra met kheu da &Km Itru trong ca s6 aft lieu ve so sinh vdri met khau phia Client gfri len. Neu met khau khong chinh xic, may chi se girl th8ng btu sai met khau cho phia client, th8ng

tin ca nhan kh8ng duqc cep nhet.

- (cid:9) Sau khi kiem tra met khau, neu met khau chinh xic, Server se tien hanh cap nh$t

thong tin dm nguai dung va gui ve th8ng bio cho ngirdri dung.

clic yeu au d4c biet khic

Thiet bi can c6 ket not mpg

Giao ditin mink hos

Pharn_Tuan_Trung

0947493260

Please enter password

gip raft thong the cd Wain

IDA 4-14:

75

4.3.14. Chic hang thay rfoi mit klau

DO phie tvp: 2

TRAY D81 MAT KHAU

UC #00014

Chic nang nay cho phi', ngu&i ding thay d6i mat khiu ctia mirth. Vi ma 1j, do nao do nguoi ding de 10 mat khiu, hoc mu6n thay diii mat khiu co dO an town cao hon, ngu&i ding cit the sir dung chic nang nay.

M8 th

Mil khau cita ngutri dung &cm ml heta bang ham toim ma chieu MD5, khOng the giai mi nguqc loi vi chinh nguoi quin tri 4 th6ng ding khOng the nhin they mat khiu thit cia nguiri ding.

Chinh Ngtrii sir dung

Tfic nhin

Phy

KhOng ce Ngtroi sir dung an Sing nhip vio chuang trinh

Tien digu kiln

M4 Ichitu cart ngtrii ding duct thay diti

Hidi au kith

Mit kirk' cita ngtrai dung khong duqc thay d6i

Thinh ding Iii

76

scr dO won tong vicic

So a luting tong vitt: Choy n3ng they d61 mit kh$u

cU a

Djch (cid:9)

Cd sir di/ lieu

Server

tiThigt bl Android

lifikligult1 dung

vu Google

Bit tau

den that nine May glee khiu

Min 1thl So SA 416 mit Itifu

at mit khfu a vl met kith nal

4

Me nhin a dr ti

e

144 au a

ar

e GPM*

Ir

I

Pe* kft se tir sa

Catfa cIP

nt4t

HI& di Aft Mr dowel diet

4

tit talc

_1 GS 1116,4 So YR

qui s4 AD OW

Sold 4-15: Tidy al milt kkist

77

Phuung phip &pc high

Ngteri sir dung Tai man hinh "Thay 461 thong tin ca nhan", nguai clang c6 the bim vao nut "136i mat IchAu"

hay "Change Password" de sir dung chirc rang nay.

Chuang trinh se hien thi man hinh thay 46i m0 khitu, nguiti dung can nhap vao mat MIL hien hanh, nhap mat khAu mai hai lan va bim vao tilt "Submit" hay "Xac nhan".

Neu mot IchAu mai nguai dung nhap vao IcheIng kW, nhau, chuong trinh se hien fin thong bao cho nguai dung. Neu viec thay 46i mat IchAu tharth c8ng, tir Ian ding nhap sau, ngtrai dung se

sir dyng mat khAu mai de ding nhap.

Chuang Sikh xi lY !Chi nguai sir dung biun nut "Xitc nhan" hay "Submit", chuong trinh se tien hanh cac buck sau:

- Kiem tra thong tin nhap vim: Ngtrai din se duqc yeu au nhap vao mat Idistu meri 2 Ian. trong twang hqp hai m0 khiu nay khemg khop nhau, chtrcmg trinh se giri thong bao cho nguiri dung, yeu cAu thay del mat khAu se thong duqc girl den Server.

- Neu m0 khiu mai khdp nhau, chuang trinh se tien hanh mi h6a mat khAu deng gni

(Kr lieu thanh dal% sau:

Changepass - (cid:9) Chuang trinh sau 46 se ling nghe ket qua tir phia may chi, va hien thi thong bao cho nguai dimg. Neu viec thay dei mat khAu &Anil Gong, tir lin ding nhap sau, nguai

dimg se sir dyng mat khAu mai de ding nhap.

Server Sau khi rilt#n duqc you eau thay del mat IchAu W phia Client, Server se tien hanh cac bulk sau:

- Kiem tra mat khAu: DE dam bao tinh bao mat tai khoan, ngutri dung an nh#p vao mat khau chinh xac cita mirth de tien berth thay d6i mat IchAu. Server se truy xuAt ca ses de' lieu va so sanh yeti mat khAu ma Client gui den. Neu mat Ichiu kh8ng khdp nhau, Server se girl thong bao ye cho phia Client, mot IdtAu dui nguai dung kh8ng duce cap nhat.

- Neu mat khiu nguai (King nhap vao la chinh xac, Server se tien hanh cap nh#t mat khau cho ngtriri dung va thong bao ket qua ve cho Client. Tir lin (tang nfrop sau, nguai dimg can sir dung mat Idutu mai de ding nh3p.

Cic yen an d$c bift khIc Thiet bi can co ket nii mpg

78

Giao din minh hya

Current password

New password

Confirm new password

HMIs 4-15: Thay Gttmiltkhiu

79

4.3.15. Char ndng &Mg xuat

E) pink tap: 1

HANG XUAT

UC #00015

Mo ti

Sau khi sir dung chuong trinh, chfrc ning nay ngutri dung an ding xuAt de tam ngirng viec chia se th8ng tin vi tri. Sau khi ding xat ngued dung se duce chuyen ter trang thii Online sang Offline. Ban be se nhin thAy bleu tucmg mill xim chit kheing con la miu d6.

KhOng co

Nguai sir dung can ding nhip vio chuong trinh

Chinh Nguei sir dung Tic Thy °ken Tien die kiln

Chuang trinh deng hoin tan, Wang thai ngueri dung dugc cop nhit

Trang thai nguCri dung kh6ng thay del

Thinh Sag Iii

litu diet' kiln

Su d$ hAng ding vitc

so 66 Iubng tong viec: Chirc ning ding suit

Co so dD lieu

Saver

Thigt bl Android

Nguti ang

Nth vy cOa 600111e

Bit au

1

XIM *Al OS milt

Ow chOt Mfg Mg sak

Ons / eons

/ rWd

4--.

Tik ethinviabli ylithdripult

Gin Su dude Saw

t OSP rift I

Weak

/ TWOS

rittl ding

1 CIP MS WON ROI dinar (cid:9) 01.no

So a 4-16: Dag nit

80

Pluroing phip thyc hi§n

nay.

Nguiri sir Mpg Chirc nang nay cho phOp ngued dung thoat khoi chuang trinh, clOng thin ngimg viec chia se vi tri. Nguisi sir dung chi cam barn vao not "Ding xuat" hay "Log out" de sir dung chirc ning

ciu den Server:

Logout

Vi day la chirc riling duqc thqc hien tren giao dien chink dm chucmg trinh, khemg yeu cau them mOt ket Wei nao yen server, nen IdiCing an phai gfri ID dm nguoi dung den may cho. VI day la char ning sir citing ket not mpg nen can dirge 44 trong AsyncTask. Chuang trinh sau d6 se duct deng hoan toan, ngtrai dung c6 the sir (long chuong trinh bing cach Mai dOng tit bieu tuqng chuang trinh.

Chiron trill!' sir If Sau khi nguai sir dung biun nut "Ding xuat" hay "Log out", chuong trinh se tien hanh girl yeu

tir cac Client khac.

Server Sau khi nhan duqc yeu calf ding xuat tir phia Client, Server se tien berth lay ra ID dm ngued dung Wang Ong de phyc vu cho viec thay dOi tang thai ding nhip. Trang thai ding nhap dui ngubi dung Wang Ong se duqc thay dei dr 1 ve 0, Wang duang veri Online ve Offline. Sau khi thao tic nay thank along, ket not yeti Client se duqc eking Iai, Server tiep tic ling nghe yeu diu

Cie yen ein d$c Met kith Thiet bj can c6 ket n6i mung

Giao digs minh hos

81

4.4. Mkt so vin a khic 4.4.1. Kin de chi &rang - Direction API

Direction API la met API cua Google, cho phep ngubi lap trinh sir dung de" tim

clueing di gina hai diem tren ban et) sir dung HTTP Request.

- Yeu cau chi duting:

Direction API duce yeu cau theo djnh http://maps.googleapis.conilmaps/api/directionsioutpurparameters Trong de, output la met trong hai gia trj sau:

3 Json: Tra ye gia trj theo dinh ding Json (Javascript Object Notation) 3 Xml: Tra ve gia trj theo djnh clang XML

Theo khuyen cao coo Google, dinh ding Json &gm uu tien hcm. Chinh vi the nen

tai lieu nay se chi de cap den dft lieu Json.

Met vi du ve da lieu Json duce tra ve tit Direction API:

"stunts": "OK", "routes": [ (

"summary": "1-40 W", "legs": [ ( "steps": [ (

"travel mode": "DRIVING", "start location": ( gat": 41.8507300, "Mg": -87.6512600

"end location": (

"tat": 41.8525800, "Ing": -87.6514100

"polyline": (

"points": "a-l-Fjk-u0wHJy@P"

"duration": ( "value": 19, "text": "1 min"

), "html instructions": "Head tu003cbtu003enorthlu003c/b1u003e onlv003cblu003eS Morgan StVe003c./blu003e

toward Iu003cblu003eW Cermak Rdlu003cfb1u003e",

"distance": ( "value": 207, "text": "0.1 mi"

),

... additional steps of this kg

additional legs of this route "duration": (

"value": 74384,

- Cau Leith request: hitp://maps.googleapis.com/maps/api/directions/json?origin=Chicago, IL&destination —Los +An geles,C4&waypoints—Joplin,M010klahoma+City,OK&sensor=false - Json tra ve:

82

"text": "20 hours 40 mins"

1. "distance": (

"value": 2137146, "text": "1,328 mi"

"start location":

"Ian 314675602, "Ing": -97.5/64276

1. "end location": (

"'at": 34.0522342, "Ing": -118.2436849

1. "start address": "Oklahoma City, OK. USA", "end address": "Los Angeles, CA, USA"

"copyrights": "Map data 020/0 Google, Sanborn", "overview _polyline": (

"points":

"a-l-Fik--uOnth@vlblitc-,sE'vnApw(A'slw@-wIIIIN141@nd Fbas@rx0@b1@icsSfruiblk@saaBelxlab-t@zbh Pjcillx1Crv(apvi@rlhA-dVieo@vrSticlArfifizarffbw-Wz(A -cl(AVOxbrI3bdUvpoWcFp-xBelikkAnurlizirmFf wMbw-Abbl@lq--gloPpxqabw gvi irbtY-jGqeMbfifin11-mbDzen WriallxijfkElinAb-uF(cNaBjP1fidBiw.. 1 1c1MIYAIPb@kijCk Kr-eGY9T1 1@ .urkiDcsNchitx401(449@ gc@nutnvilik@dse(tDjV@PMISgEky@'o Pgg@l mIvaEdb@igQxnMpqGze-AsylkzijAb_WyhIpllo_BJImA --yQ/iNboWzoAlzp@mzt4111_®jdagia lcEitAn (fflailexC IshBtrtogAcbnY hbrild--XialindgC"

), "warnings": (1, "waypointorder": [ 0, 11, "bounds": (

"southwest": (

gat": 34.0523600, "Ing": -118.2435600

"northeast": (

"Mt": 41.8781100, "Mg": -87.6297900

I

tri sau: 3 OK: V* chi duang tra ve ket qua chinh xac

I/ I Giai thich cac gia tri tra ye: - Status: Day la truang km tang thai tri ye dm API, Status c6 the chim cfic gia

3 NOT_FOUND: Chi ra rang melt trong cac diem bat dau, ket thfic hay

waypoint khong the giai ma.

3 ZERO RESULTS: Chi ra ring khong tim duqc dtrong di glib hai diem

duqc nhap vio

3 MAX_WAYPOINTS_EXCEEDED: CM ra ding c6 qua nhieu waypoint duqc nhap vio. SO waypoint tin da cho mat tai khocin binh thubng la 8. Neu sir dung tai khoan kink doanh thi s6 waypoint ce the tang len thank 23.

3 INVALID_REQUEST: CM ra rang cau *II you au kW:mg chinh xac 3 OVER QUERY_LIMIT: CM ra ring c6 qui nhieu yeu eau vi tri tir img

dung trong mat khoang thbi gian

83

3 REQUEST_DENIED: You can chi dutmg tir img ckmg bi tir ch6i

3 UNKNOWN ERROR: Chi ra met 181 kh8ng xac dinh dirge, c6 the do 18i

tit server. Neu gOp 181 nay ngutri dung co the truy cap 14i sau dO.

- Routes: Khi Direction API tra ve ket qua, ket qua d6 dugc at trong met mang c6 ten la routes (BON). Cho di' service kb:mg tra ve ket qui gi thi no cfmg dugc d3t trong mOt

mang routes trong.

- Legs: M8i met phAn tit trong man Legs dai dien cho met bubo trong hanh trinh tir diem bat dliu den diem ket thac. Trong trtrtmg hop routes {dieing c6 waypoint nio, m8i gia tri route se chi di met gia tri leg. Tuy nhien neu c6 se, waypoint tilti8u hcm thi so c6 so leg tang len Wong (mg. Legs c6 china cac gia tri quan tong sau:

3 Steps: LA met man cac bubo can phai trii qua trong hanh trinh.

3 Distance: khoang cach quang (luting can di chuyen trong step d6.

Steps: M8i gia tri Steps dai dien cho mOt butm ctia dutmg di a dugc tinh town. Steps la tharth phAn nh6 nhAt cue viec chi duong. Trong mang Steps sung c6 chita gia tri thong tin ve khoang cach, thin gian di chuyen, ten dia diem... Nhtmg met gia tri quan tong de phuc vu cho viec ve dutmg di chinh la Polyline. Gia tri nay xac dinh tip do diem dui steps de phuc vu cho ye &tong di tren ban dO. Tuy nhien gia tri nay dugc ma h6a, vi vOy de sir dung duct can

phai giai ma.

84

4.4.2. Kin tti djnh vj 4 tri thiit bj

4.4.2.1. 104c diim mkt ccic phucmg thtic dinh

Nhu da de cap 6 phan tren, de djnh vj dirge thiet bj c6 the sir dung ba each, d6 la

ti-

dimg GPS, song di dOng va Wifi. Ba each nay c6 cfic dac diEm khac nhau nix: sau:

Theo vj tri Router KhO'ng cao Cao DO chinh xac

Nhanh Chain Toe d6 dinh vj Cham nhung nhanh h crn GPS

Thiet hi 6 ngoii trgi Thiel hi c6 ket not Wifi Thiet bi cel ket n6i 3G DiEu lcien hoat dOng

T6n ang lugng Chi phi Yeu cau ket not Wifi T6n dung lugng mang, ton nang lugng

" - (cid:9) Bang 4-1: Cac each QJnh vl vt

Chinh vi nhang dac diem tren, chuang trinh can phai thay doi chien that djnh vi vj tri de khong qua tieu ton nang lugng cling nhu chi phi mpg, ding thbi vi tri an phai nhanh va chinh xac. Chien that de nhu sau:

Khi ngugi dimg dang sir dung chuang oink Lk nay viec dinh vi se hoat dOng 6 mire do cao nhat. Tuy nhien kitting c6 nghia la to se yeu cau this& bi dinh vi lien Mc. Ta se lien Mc dinh vi thiet bi sir dung mang di dOng 3G/wifi, GPS dirge sir dung nhung thin gian giUa cac lan dinh vi se dirge keo dai ham, tranh viec lieu ton niing luqng thong can thiet. Khi ngugi dang sir dung chirc ang khac cua chuang trinh hoac de chuang trinh chay ngam: Lirc nay viac dinh vi vi tri lien Mc la thong can thiEt. Vi the thiet bj se khong sir dung GPS de dinh vi ma chi sir dung mang di dOng. Tuy nhien tfigi gian gida cite fan dinh vi se dirge keo dei ham de tranh fieu ton chi phi thong can thiet.

85

4.4.2.2. Nguyen 135 caa cac plutcmg thac djnh vj

a. GPS

GPS (Global Positioning System — He thOng djnh vj toan au) la he thong dip vao cac ye tinh Man eau de xac djnh vj tri tren trai Vj tri can dugc zee djnh dugc ghi nhOrt boi thiet bj c6 tich hqp chip dinh vi GPS bit ki. Thi'et bi nay lien tuc truyen nhin th8ng tin v8i he' thOng vg tinh quanh trai det va tir d6 tinh town ra vi tri tai thin diem ghi ntio'n thong tin. Vj tri chinh xac teen thvc te dugc tinh toin b8i mot phep do tam gide, dva vao khoang each tit diem can xac dinh den 3 ve tinh khac nhau chic khOng phai chi 1 ve tinh rieng le. GPS hien nay duce *rig dung rat nhieu trong dai song qua cac thiet bj GPS chuyen dung, Bien tho3i di dOng tich hqp chip GPS hay hg thOng dAn duong tren xe heti.

b. Song di dOng

HInh 4-16: Dinh vi being song di dung

Tren thvc te, hAti het cac thiet bi di dung c6 tich hqp GPS hien nay deu ling dung

ding ngh'e A-GPS (Assisted GPS).

Trong nhieu dieu kien thvc te, viec truyen clan tin hieu GPS gift ye tinh va thiet bj nhvr tren m4t det hoot dOng rat kem ho4c ern chi thong the host dOng, nil la trong cac thanh phO Ian nhieu nha cao ding halm i trong thong gian kin. A-GPS chinh

la giai phap cho van de nay.

Thay cho viec truyen tin hieu true tiep yin v4 tinh, A-GPS ket not tin hiOu qua mot "tram trung chuyen" la mot he thOng may chit hit try. He thong trung gian nay xac djnh vj tri cim thiet bj so vii cac turn thu phit song elm cac mpg Bien tho3i trong gian trong thu vve va tit d6 tinh town ra vi tri tren he thOng GPS.

MOt duet bi tich hqp ding nghe A-GPS Bien hinh can cit cac ket not de lieu (qua mpg GPRS, 3G hoOc Wi-fi) de c6 the truyen tai de lieu qua lui vii may chit trung

86

gian. Nhieu thiet bi hi) trq A-GPS van cet the hoat Ong ved ding nghe GPS chuan khong qua ha trq cua mang truyen dAn, tuy nhien trong met so twang hqp, viec xac dinh vi tri theo theri gian thuc se gap nhieu kh6 than do thong tin tir ve tinh den thiet bi khong On dinh.

MOt trong nhang tram trong chuyen la can tram BTS. De hoat dOng, lien thoai phai ket n6i yeti tram chuyen tiep cua nhit mpg gqi la BTS, ma vi tri cua BTS la di dinh nen ve ca ban chi c6 the biet thue bao de dang 6 khu vuc nao chit ko the chinh xac den vai met nhu GPS duqc. Tuy nhien, tai met than diem thiet bi di dong ca the nam trong yang phit sang cua nhieu tram BTS lchic nhau. Dua vao cluing dt) song, t6c dO giri va nhan tin hieu c6 the xac dinh met cach tucmg dOi khoang cach tir thiet bi den tram BTS, tit da cep the xac dinh duqc vi tri cua thiet bi.

c. Wifi

Ban chat cua viec dinh vi bang Wifi chinh la viec xac dinh vi tri cua Router. Pham vi phat sang cua met Router la khong Ion, nit& la din van Router cua ho gia dinh thi pharn vi chi khoing vai met. Chinh vi the neu thiet IA di dOng dang sir dung mang Wifi nao da thi vi tri cua Router kha gen yeti vi tri cua thiet bi.

De c6 the xac (filth duqc vi tri cua Router, Google da den hanh thu thap thong tin tit rat nhieu thiet N chay Android. Klu bat (Lich vu chia se vi tri cua Google, man dung da clang y cho phip Google thu thap cat thong tin tit thiet bi Android, trong d6 c6 ca thong tin ve mang Wifi ma thiet N dang truy cap. Tai met than diem ce the c6 nhieu thiet bi cimg ket n6i van met Router Wifi, sau !chi thu thap duqc mot b0 du lieu lem nhu vay, Google se tien hanh khai pha du lieu — Data Mining de' lay duqc cat thong tin can thiet. Tit cat thong tin de, Google a xay dung duqc ca sec dtt lieu va vi tri cua cat Router va sir dung de dinh vi thiet bi di dOng.

87

4.4.3. VeIn iti an suit cep nhet di?

Day win la throng trinh host Ong theo mo hinh Client-Server. Vi the viec trao d6i du lieu giOa may chit va may khach din ra lien tuc va kha thuOng xuyen. Nhung nen nher day la chuong trinh chay tren thief bj di Ong von tai nguyen c6 han, vey viec trao d6i nhung gi von server ding can phai firth den:

- Khi ngtreti dung sir dung chuong trinh: Day la luc chucmg With hoat Ong yeti hieu suet cao nhAt. Viec cap nhAt danh sich ban be, day vi tri ngubi dimg len server duqc thqc hien yeti dO tre ngen

- Khi nguesi &mg sir dung chirc nang khac cfra chuong trinh hoec dE chucmg trinh chay ngem: Luc nay viec cep nhat danh sach ban be la khong can thiet. Din thai viec day vi tri len server cling se duqc tien hanh chem ham nhim tiet kiem chi phi.

88

4.5. Thief ke co ser dit lieu

4.5.1. Mb hinh quan he

g id : int(11)

# user_id : int(11)

2 id : int(11) * user id : int(11) m date : date

# lati : double

id : int(11)

# longi : double

m login : varchar(30)

id : int(11)

m lastupdate : date

m pass : varchar(32)

# user_id - int(11)

m name : varchar(30)

# status : int(11)

® phone : varchar(15)

# status : int(11)

So di 4-17: MO hank dlt lieu quan he

4.5.2. Clic bkpg dir lieu 4.5.2.1. Bang users

a. Cau true bang de. lieu

Khong Auto Increment Khong INT(11) ID

Khong Khong Khong Varchar(30) LOGIN

KNIT* Khong !Chang Varchar(32) PASS

!thong Khong 'thong Varchar(30) NAME

[Chong Khong Co Varchar(1 5) PHONE

[Chong Khong !Chong Int(1 1) STATUS

Bang 4-2: Bang Users

b. t nghia ciut cfic gia trj

- ID: Gia trj khda chink dinh dank, gia tri nay dugs sink tu dang.

- Login: Ten tai kholin cfla ngubi clung, sir dung cimg vOi mat khau de ding

nhap vao chuong Dinh.

- Pass: Viet tit ciut Password, la mat khau dung de dAng nhap.

- Name: Ten day dfi elm ngubi dimg, ngubi dimg c6 the nhap vio tity

89

- Phone: So then thogi cim nguei dimg. Gia tri nay do ngued dung nhAp vao,

dung de thuc hien chic ning gei dien va nhin tin.

- Status: Gia tri nay the hien tang thai ding !IWO cua nguei dimg.

4.5.2.2. Bang Location

a. CAu Mk bang MY lieu

4

`pity

Khong Auto Increment Khong INT(11) ID

USER(ID) !Chong Khong INT(11) USERID

Khong Killing Khong DOUBLE LATI

Khong Khong Khong DOUBLE LONGI

Khong 'thong Khong Date LASTUPDATE

Bang 4-3: Bong Location

t nghia cim cac gia tri b.

ID: Gia tri khea chink dinh dank, gia tri nay duce sink tv deng.

UserID: Gia tri nay la kh6a ngoai lay ter bang User, dung de xac dinh met user

tai ban ghi hien Mi.

Lati: Viet tit am Latitude, la gia tri Kinh de, ding vei gia tri Longi de xac

dinh vi tri cua ngubi dung. Longi: Viet tit coa Longitude, la gia tri Vi de, ding yeti gia tri Lati de xac dinh

vi tri nguei ding.

4.5.2.3. Bang Friend]

a. CAu true bang da lieu

Bang 4-4: Bang Friend]

90

nglifa cua cac gia tri b.

- ID: Gia tri kh6a chinh dinh danh, gia tri nay duqc sinh ttr dOng.

- USER ID: Day la kh6a ngoai lay tit bang Users, day la ID dinh danh cita

ngu&i da girl yeu cku ket ban.

- DATE: Ngay ma yeu cau ket ban duce gni di.

c. CAu frac bang da lieu

4.5.2.4. Bang Friend2

Khong Auto Increment Khong INT(l 1) ID

USERS(ID) Khong Khong INT(11) USER ID

Khong Khong Khong INT(11) STATUS

Bring 4-5: Bing Frlen

nghia cua cfic gia tri d.

- ID: Gia tri Schee chinh dinh danh, gia tri nay duqc sinh to Ong.

- USER ID: Day la kh6a ngoai lay to bang Users, day la ID dinh danh cua

ngued duqc yeu eau ket bp.

- STATUS: Trpg thai cua yeu au ket ban. Neu trang thai nay bang 0 thi yeu eau ket ban nay chua duqc xic nhan, neu bang 1 thi yeu cAu di clime xfic nhan, 2 nguen tuang *rig &I la bp cua nhau.

91

4.6. wet kiln va djnh hating phat trien

4.6.1. Kit qua dqt duvc

Sau met thai gian tim hieu va dqc tai lieu, em da lap trinh thanh cong de tai coa minh vai san pham la chucmg trinh 2Friend — chucmg trinh cho phep ngutri dimg co the chia se vi tri cita minh veri ban be, nguai than. Chuang trinh da co Wang din day de chirc nang, nhung day la chucmg trinh huang teri rat nhieu ngutri sir dung a khip nai tren the gieri chir Miring Hang a Viet Nam, nen viec chua lam hai long nguai sir dung la !thong the tranh kh6i. Sau khi chucmg trinh duqc trien khai, em se ling nghe icien phan hOi tir nguai sir dung va cap nhat img dung thutmg xuyen nham lam hai king nguai sir dung.

4.6.2. Dinh Inning phdt trim

4.6.2.1. Dim zing dyng ten CH Play

MOt Ong dung Android muen den duqc yeti nguai ding nhanh nhat thi can phai dua len CH Play. Day duqc coi nhu la "chq Qau mei" de ngutri dimg mua hoac tai umg dung Android. Ngoai viec dau to de dua img dung len CH Play, trong th&i gian Mu ding can phai clang cao yeti ban be de tao met cong dOng ngutri sir dung, bai vi met *rig dung c6 so KKR tai va danh gia cao se thu hut ngtrisi sir dung hon.

4.6.2.2. Thu 10 nhudn tie zing dung

C6 ba each thu lqi nhuan tir met img dung hen CH Play.

a. Ban Ung dung

Hay n6i each Ichac, ngutri dung se phai tra tien de tai CEng dung xuOng, hay con gqi la mua img dung. Cach nay thutmg duqc sir dung veri nhttng chuong trinh that sun tot, vai nheng nha san sat co uy tin. Tuy nhien day kh8ng phai la each tern uu nhat, img dung can tra phi de tai luen c6 so luqt tai it han. Han Oa, dOi yea thi Huang Viet Nam, ngutri dimg rat it, c6 the nOi la gin nhu kitting bao gia mua img dung tra phi tren CH Play. Ly do bai vi viec su dung the thanh thin wok to a Viet Nam chua phi) bien, va cling bai vi th6i quen ngutri Viet Nam van thich &mg dt• mien phi han, ding bai vi thu nhap cua Viet Nam chua cao so v6i the gieri. Chinh vi vay em se kitting chqn catch

nay de Qua img dung len.

b. Thu tien trong time ckmg

92

Cfich tins' hai de thu lqi Taman tir img dung Android d6 la thu tien ben trong zing dung. Dien hinh nhu met so tr6 chai not tieng nhu Candy Crush, Class of clan... Vat pham ben trong img dung hay met so tinh nAng an phai tra phi de kich hog Cach nay cling thu ve met se den khOng to neu ting dung de hay va c6 nhieu ngutri sir dung. Tuy nhien, em cling se thong chqn each nay, ix% vi img dung ciut em khi mai dua len se

khong c6 nhieu ngtroi sir thing. Han nua viec tra phi it hay nhieu cling se lam ngutri dung can nhic khi sir dung img dung. Mvc tieu ban du mia em la Wong tea co cang

nhieu ngueri sir dung cang tot.

c. Hit quang cao trong img dung

Cach cuOi cling de kiem tien trong img dicing d6 chinh la dit quang cao trong img dung. Cach nay khong yeu cau ngutri dimg phiti chi frit bet ki met khoan phi nao de sir dung chuong trinh. Lqi nhuan se dugc thu tir cong ty quang cao. Tuy nirien doi khi quang cao cling gay kh6 chju cho ngutri (king, chinh vi Vey, viec chon hinh thirc dot quang cao, vi tri dit quang cao cling quan tong de khong lam mat khach hang cita chinh minh. Day se la cach em Iva chon de trien khai img dung.

93

CllUONG 5. PHV LVC - CODE MOT SO CHIC NANG ClliNII

5.1.1. Chtit nun dung kft tdi khotin

public class registertask extends AsyncTask

String RegisterResult = null; protected String dolnBackground(String... awls) Bundle mbundle = new Bundled; mbundle=geantenta.getBundleExtrarRegisterBundle); ipserver=mbundle.getString("ipserver");

iffl(username.isEmply0I1pass.isEmptY011hame.isEmplyallphone.isEmplAD

Socket el-null; try (

cl=new Socket(ipserver,8881); PrintWriter outp = null; BufferedReader inp=null; if(cl!=null)

outp = new PrintWriter(cl.getOutputStreamatrue);

inp = new BufferedReader(new InputStreamReader(cLgetInputStream0)1;

Stringfl fidlname=name.splitr '2; name=""; for(int i=0;i

name+=(fdlnamefil); ifa==fullname.length-1) break

else

name+=" ";

1

outp.println("register "+username+" "+encryptMDS(pass)+" "+name+" "+phone);

RegisterResult=inp.readline0; outp.println("quit"); //inp=null; outp-null; dclose0:

) catch (UnknownHostException e)

// TODO Auto-generated catch block e.printStackTraceQ;

) catch (I0Exception e) I

// TODO Auto-generated catch block e.printStackTraceO;

return null;

protected void onProgressUpdate(String... progress) (

protected void onPostExecute(String result)

if(RegisterResult.equalsIgnoreCaseruser"))

94

ToastmakeText(getApplicationContextO,

getResourcesagetString(R.string.please_use_another name), Toast. LENGTH LONG).show();

else

iffRegisterResult.equalsIgnoreCase(false"))

ToastmakeText(getApplicationContextO,

getResourcesQ.getString(R.string.cannot_register), Toast.LENGTH LONG).show0;

else

Intent login = new Intent(RegisterlayoutActivity.this,LoginLayoutActivity.class);

startActivity(login); finish 0;

I

5.1.2. Char ming Ong nh#

private class LoginTask extends AsyncTask (

protected String dolnBackground(String... urls) {

user=tb username.getTextO.toStringO;

pass=tb_pass.getTextO.toString0; login_status=login(user,pass); return null;

protected void onProgressUpdate(String... progress) (

protected void onPostExecuteatring result) (

ifflogin status)

Bundle mbundle = new BundleO; mbundle.putString("user", user); mbundk.putString("ipserver", ipserver); Intent mintent=new Intent(LoginLayoutActivity.this,MainActivity.class); mintent.putExtra("MyBundle", mbundle); //finish0; startActivity(mintent); finish 0; //System.exit(I);

else

ToastmakeText(getApplicationContextO,

getResources0.getString(R.string.cannot _login), Toast.LENGTH LONG).shaw0;

bt_login.setEnabled(true);

95

5.1.3. Quit niing hien tri tri ben

private class updatefriendtask extends Asyncrask

protected String dolnBackground(String... urls) {

if(cl!=null)

if(username==null)

username=mbundle.getStringruser);

iffid==null)

id=getid(username);

friendlist=gerend(id);

String() friends=kiendlist.splitr "); templatIng=new LatLng[(friends.length/3)]; friendinfo=new Stringl(friends.length/3)1; kiendmarker=new Markerlikiends.length/311; for(int i=0;i<((friends.length)/3);i++)

int currentfeint = i*3;

templatIng[i] =new LatLng(Double.parseDouble(friends[current point+11), Double.parseDouble(friends[current_point+ 21));

outp.printlnrgetinfo "-Ffriends[current_point]); try (cid:9)

fi-iendinfofifrinp.readLine0.toString0.trim0;

I catch (10Exception e) (

// TODO Auto-generated catch block

return " ";

protected void onPostF-xecute(String result)

String() friends=kiendlist.splitr ");

for(int i=0;i

String tempinfor =friendinfolij.split(" ');

fi-iendmarker[i] =mMap.addMarker(new MarkerOptionsO

.position(templatinglifi .title(tempinfo[0])

.icon(BitmapDescriptorFactory tkomResource(R.drmvable.ic_ofiline_big))

.snippet(kiendinfo[in .anchor(0.5f 0.5j));

if(tempinfo[2].equalsIgnoreCaser I"))

friendmarker[i).setkon(BitmapDescriptorFactory

.fromResource(R.drmvable.ic_online_red));

//--Get Friend— public String geOlend(String id)

96

String temp="0"; outp.println("ge&iend "+id);

try

temp=inp.readLineatrim0;

j catch (10Exception e) (

/1 TODO Auto-generated catch block //e.printStackTraceO;

return temp;

private class AddfriendTask extends AsyncTask (

String status=null; protected String dolnBackground(String... urls) I Stringfriend2=tb_addfriend.getText0.toString0;

if(cl!=null)

by

outp.printlnraddfriend "+username+" "+friend2); status=inp.readLine0.trim0;

catch 00Exception e) I

// TODO Auto-generated catch block //e.printStackTrace0;

return status;

protected void onProgressUpdate(String... progress) j

protected void onPostExecute(String result) I

if(result.equalsIgnoreCase(' riendname"))

ToastmakeTem(getApplicationContert(), getResources0.getString(R.stringfriend noffound),

Toast.LENGTH LONG).show();

else

if(result.equalsIgnoreCaserexits"))

ToastmakeTert(getApplicationContextO,

getResources0.getString(tstring.catmot send more),

Toast.LENGTH LONG).show0;

else

if(result.equalsIgnoreCaserfake"))

Toast.makeText(getApplicationContexta

getResources0.getString(R.string.catmot_ad4.friend) ,

Toast.LENGTH LONG).show0;

else

if(stang.equalsIgnoreCaserdone"))

97

5.1.4. Chfir ming pH you cliu kit bgn

Toast.makeText(getApplicationContextO, getResourcesagetString(Rstring.request sent), Toast. LENGTH LONG).show0;

)

5.1.5. Char ming nic nhpn yiu cdu kit bgn

5.1.5.1. L6y danh sach yea cdu

//-------------friend request-----------

private class friendrequesttask extends Asyncrask

Swing request="; protected Swing dolnBackground(String... urls)

if(cl! =null)

if(iaername==null)

usenaame=mbundle.getString("user");

if(id==null)

id=getid(username);

request=getrequest(id);

//

return request;

protected void onPostExecute(String request) (

ifilrequestequalsIgnoreCoserempty"))

String() requestlist=requestsplitr "); for(int i=0;i

Intent FriendConfirm = new Intent(MainActivity.this,FriendRequestAciivity.class);

Bundle tempBundle = new Bundle(); tempBundk.putStringrfriendid", requestlistpl); tempBundle.putStringrusername", username); tempBundle.putStringripserver", ipserver); FriendConfinn.putExtra("DataButzdle", tempBundle); startActivity(FriendConfirm);

public Swing getrequest(String id)

String temp="; outp.printIn("getrequest "+id); try (

temp—inp.readLineatrim0:

I catch (10Fxception (

// TOW Auto-generated catch block //e.printStackTraceQ;

98

return temp;

)

5.1.5.2. Dang y kit bon

private class AcceptFriendTask extends AsyncTask (

String result=null; protected String dolnBackground(String... urls)

try (

if(cl!=null)

outp.println("accep&iend "+username+" "+Login); result=inp.readLine0; outp.println("quit"); outp.closeO; inp.close0; cLcloseO;

if catch (UniazownHostException (

// TOW Auto-generated catch block //e.printStackTrace0;

) catch (lOException e) (

// TODO Auto-generated catch block //e.printStackTrace0;

return result;

protected void onPostExecute(String r) (

ToastmakeText(getApplicationContext0, r, Toast.LENGTH LONG).show0; finishQ;

5.1.5.3. Tic chai kit bon

private class DeclineFriendTask extends AsyncTask (

String result=null; protected String dolnBackground(String... urls)

trY(

ifrcl! =null)

outp.printlnrremovefriend "+username+" "+Login); result=inp.readLine0; outp.println("quit"); outp.close0; inp.close0; cl.close0;

) catch (UnkrunvnHostException e) (

// TOW Auto-generated catch block //e.printStackTrace();

I catch (lOException e) (

// TOW Auto-generated catch block //e.printStackTraceQ;

return result;

99

1 protected void onPostErecute(String r)

ToastmakeText(getApplicationContextO, r, Toast.LENGTH LONG).show(); finish 0;

Class My Location Listener ''/ public class MyLocationListener implements LocationListener I @Override public void onLocationChanged(Location loc)

Mylafing=new Laang(loc.getLatitudeO, loc.getLongitudeQ); mcurrentloc = new MarkerOptionsO .position(Mylatlng) .titk(getResources0.getString(R.string.this_is_your_location)) .snippet("MyLocation") .anchor(0.5f 0.5fi .icon(BitmapDescriptorFactoryfromResource(R.drcvable.ic_mylocation)); TempMarker.remove0; TempMarker=mMap.addMarker(mcurrentloc); if(start)

mMap.animateCamera(CameraUpdateFactorynewlatLngZoom(Mylatlng, 15)); TempMarker.showInfoWindow0; start=false;

(et/Override public void onProviderDisabled(String provider) I ToastmakeText( geapplicationContextO,

getResources0.getString(Rstring.gps_disabled) , Toast. LENGTH SHORT).show();

1 @Override public void onProviderEnabkd(String provider) I ToastmakeText( getApplicationContexta

getResourcesQ.getString(R.string.gos_enabled),Toast.LENGTH SHORD.show0;

1 @Override public void onStatusChanged(String provider, int status, Bundle extras) II )/* End of Class MyLocationListener

5.1.6. Char ndng Qjnh 4 vj

100

5.1.7. Mir tang tim Strang din vi trt bgn

// (cid:9)

private String getDirectionsUrl(LatLng origin,LatLng des!(

// Origin of route String str origin = "origin="+origin.latitude+","+origin.longitude;

//Destination of route String str dest = "destination="+destlatitude+7+destiongitude;

// Sensor enabled String sensor = "sensor false";

// Building the parameters to the web service String parameters = str_origin+"&"+str dest+"&"+sensor+"&mode=walking";

// Output format String output = "json";

String url = "https://maps.googleapis.com/maps/api/directions/ "+output+"?"+parameters;

return url;

private String downloadUrl(String strUrl) throws 10Exception(

String data = ""; InputStream iStream = null; HttpURLConnection urlConnection = null;

ay(

URL url = new URL(strUrl);

urlConnection = (HttpURLConnection) url.openConnectionO;

// Connecting to url urlConnection.connectQ;

// Reading data from url iStream = ur1Connection.getInputStream0;

BufferedReader br = new BufferedReader(new InputStreamReader(iStream));

StringBuffer sb = new StringBufferO;

String line = ""; while( ( line = br.readLineQ) != null)(

sb.append(line);

data = sb.toString0;

br.closeO;

Icatch(F-xception e)(

Log.d("Exception while downloading url", e.toString0);

iStream.closeO;

101

urIConnection.disconnect();

return data;

// Fetches data from url passed private class DownloadTask extends AsyncTaslc (

// Downloading data in non-ui thread @Override protected String dolnBackground(String... url) (

// For storing data from web service String data = "";

try!

// Fetching the data from web service data = downloadUrkur101);

Icatch(Exception e)(

Log.d("Background Task",e.toString());

return data;

// Executes in UI thread, after the execution of

dolnBackgroundO

@Override protected void onPostExecute(String result)

super.onPostExecute(result);

ParserTask parserTask = new ParserTask0;

// Invokes the thread for parsing the EON data parserTask.execute(result);

private class ParserTask extends AsyncTask

List>>> I

@Override protected List>> dolnBackground(String... jsonData) (

JSONObject jObject; List>> routes = null; try(

jObject = new JSONObjectesonData[01); DirectionsJSONParser parser = new DirectionsJSONParser0; // Starts parsing data routes = parser.parseQObject);

)catch(Exception e)(

e.printStackTraceO;

return routes;

@Override protected void onPostEtecute(List>> result) (

ArrayList points = null;

102

PolylineOptions lineOptions = null; //MarkerOptions markerOptions = new MarkerOptionsO; // Traversing through all the routes for(int i=0;i

points = new ArrayList 0; lineOptions = new PolylineOptionsO;

// Fetching i-th route List> path = result.get(0;

// Fetching all the points in i-th route for(nt j=0;j

HashMap point = path.getO);

double lot = Double.parseDouble(point.getrlat")); double lng = Double.parseDouble(pointgetring")); LatLng position = new Laang(lat, Ing);

points.add(position);

I //Adding all the points in the route to LineOptions lineOptions.addAll(points); lineOptions.width(5); lineOptions.color(Color.BLUE);

// Drawing polyline in the Google Map for the i-th route if(RoutingPl!=null)

RoutingPLremove0;

RoutingPl=mMap.addPolyline(lineOptions);

/I I

public class DirectionsJSONParser (

I" Receives a JSONObject and returns a list of lists containing latitude and longitude */ public List>> parse(JSONObject jObject)(

List>> routes = new

ArrayList>> 0 ;

JSONArray jRoutes = null; JSONArray jLegs = null; JSONArray jSteps = null;

tin

jRoutes = jObject.getJSONArrayrroutes");

I" Traversing all routes */ for(int i=0;igRoMes.length0;i++){

jLegs = ( (JSONObject)jRoutes.get(i)).getJSONArrayrlegs"); List path = new ArrayList>61;

I" Traversing all legs 'I for(int j=0,1gLegs.lengthaff +){

jSteps = ( (JSONObjecOjLegs.getC)).getJSONArrayrsteps");

103

/** Traversing all steps *1 for(int k=0;k

String polyline = ""; polyline =

(String)(0SONObjecOgISONObject)jSteps.get(k)).gerpolyline")).getrpoints);

List list = decodePoly(polyline);

In Traversing all points */ for(int 1=0;1

HashMap hm = new HashMap0; hm.put("lat", Double.toString(((LatLng)listget(1)).latitude)); hm.put("Ing", Double.toString(((latLng)listget(0).longitude) ); path.add(hm);

}

}

routes.add(path);

) catch (JSONException e) (

e.printStackTraceO;

)catch (Exception e)(

return routes;

}

//Ham gi6i ma Po44ine private List decodePoly(String encoded) (

List poly = new ArrayList

while (Index < len) (

int b, shift = 0, result = 0; do

b = encoded.charAt(index++) - 63; result 1= (b & OxIfi « shift; shift += 5;

.1 while (b >= 0x20); int dlat = ((result & I) != 0 ? —(result >> 1) : (result >> I)); lat += dlat;

shift = 0; result = 0; do

b = encoded.charAt(index++) - 63; result (b & 0x1f) << shift; shift += 5;

) while (b >= 0x20); int ding = ((result & I) != 0 ? —(result >> I) : (result >> 1)); Ing += ding;

LettLng p = new LatLng((((double) lat / 1E5)),

(((double) ing / 1E5)));

PolY-add(p);

104

return poly;

}

5.1.8. Char ming cOp nhOt thong tin a nhdn

@Override

protected void onCreate(Bundle savedlnstanceState) ( super. onCreate(savedlnstanceState); setContentView(R.layout edit _layout);

ed name = (EditTexhfindViewByld(tided edit name); ed_phone = (EditText)findViewByld(R.ided editphone); ed_pass = (EditText)findViewByld(Rid.ed edit _password); &confirm = alutton)findViewByld(R.idbt _edit _confirm); bt_chcmgepass = (Button)findViewByld(R.idbt_edit_changepass);

bt_confirm.setOnClickListener(new View.OnClickListener() (

@Override public void onClick(View arg0)

// TODO Auto-generated method stub new EditInfoTaskO.execute("");

)); bt_changepass.setOnClickListener(new View.OnClickListener0

@Override public void onClick(View arg0) (

// TODO Auto-generated method stub Intent ChangePasslnt = new Intent(EditInfo.this,

Change Password.class);

Bundle mbundle = new Bundle(); mbundle.putString("ipserver", ipserver); mbundk.putString("ID", User_ID); ChangePassIntputExtra("ChangePassThmale", mbundle);

startActivity(ChangePasslnt); finish 0;

// (cid:9) Bundle mbundle = new Bundle(); mbundle=getIntenta.getBundleatrarEditInfoBundle"); ipserver=mbundk.getStringripserver"); User_ID=mbundle.getStringrID"); //- new ServerConnectTaskO.executen;

public String getName0

String name=null; outp.println("getname "+ User ID); try(

name=inp.readLine0;

I catch (I0Exception e) {

105

// TODO Auto-generated catch block //e.printStackTraceO;

)

return name;

public String getPhoneO

String phone=null; outp.println("getphone "+User_ID);

tzY(

phone=inp.readline0;

) catch (I0Exception e)

// TODO Auto-generated catch block lleprintStackTrace0;

return phone;

private class ServerConnectTask extends AsyncTctsk (

String result=null; protected String dolnBackground(String... urls) (

try(

if(c1==null)

cl=new Socket(ipserver,8881); outp = new PrintWriter(cIgetOutputStreama,true);

inp = new BufferedReader(new InputStretanReader(cIgetInputStrecrm0));

) catch (UnIcnownHostException e)

// TODO Auto-generated catch block //e.primStackTrace0;

) catch (I0Exception e)

// TODO Auto-generated catch block //e.printStackTrace0;

return result;

protected void onPostErecute(String r) (

new getNameTaska.execute(""); new getPhoneTaska.executer);

private class EditInfoTask extends Asyncrask (

String result=mdl; protected String dolnBackground(String... uris)

if(cl!=null)

String tempName=ed name.getTextatoString0; Stringfi tempNames=tempName.split(" '9; tempName=""; for(int i=0;i

tempNante+=tempNames[i]; if(!=tempNames.length-1) tempName+=" ";

106

try I

outp.printInreditinfo "

+User_ID +" "+tempName +" "+edphone.getText0

+" "+encryptMD5(ed pass.getTextatoString())); result=inpreadLine0;

) catch (lOException e)

return result;

protected void onPostExecute(String r)

Toast malceText(getApplicationContextO, r, Toast. LENGTH LONG).show0;

private class getNameTask extends AsyncTask

protected String dolnBackground(String... urls) ( Name=getName0;

return Name;

protected void onPostExecute(String r) (

ed name.setText(r);

)

private class getPhoneTask extends AsyncTask (

protected String dolnBackground(String... urls) ( Phone=getPhone0;

return Phone;

) protected void onPostExecute(String r) (

ed_phone.setText(r);

)

public String encryptMD5(String input) (

t731

MessageDigest and = MessageDigestgetInstancerMD5"); byte[] messageDigest = and digest(inputgetBytes0); Biglnteger number = new BigInteger(1, messageDigest); String hashtext = number.toString(16); while (hashtextlength0 < 32) hashtext = "0" + hashtext;

return hashtext;

) catch (NoSuchAlgorithmException e) ( throw new RuntimeException(e);

107

@Override

protected void onCreate(Bundle savedinstanceState) ( super. onCreate(savedlnstanceState); setContentView(R.layoutchange_password layout);

ed oldpass=(EditText) findViewByld(R.id.ed changepass _oldpass); ed newpass=(EditText) findViewByld(R.id.ed changepass _newpass); ed newpass2=(EditText) findViewByld(Rid.ed changepass _confirmpass); btsubmit=(Button)findViewByld(R.icat_changepass_submit);

bt_submitsetOnClickListener(new View. OnClickListenerQ (

@Override public void onClick(View arg0)

// TODO Auto-generated method stub

if(ed newpass.getTextatoString0.equals(ed newpass2.getTextO.toStringO))

new ChangePassTask0.executer,;

else

Toast.makeText(getApplicationContext0, "New password is not the same!", Toast.LENGTH LONG).show0;

D; Bundle mbundle = new BundleO; mbundle=getIntentagetBwidleErirarChangePassBundle"); ipserver=mbundle.getString("ipserver"); User ID=mbundle.getStringrID");

private class ChangePassTask extends AsyncTask (

String result=nulk protected Swing dolnBackground(String... urls) (

fry

if(cl==null)

cl=new Socket(ipserver,8881); outp = new PrintWriter(cIgetOutputStream0,trate);

inp = new BufferedReader(new InputStreamReader(dgetInputStream0));

) catch (UnknownHostException e)

// TODO Auto-generated catch block //e.printStackTrace0;

) catch (I0Exception e) (

// TODO Auto-generated catch block //e.printStackTrace0;

if(cl!=null)

Swing oldpass=ed oldpass.getText0.toString0; String newpass=ed newpass.getText0.toString0;

try

outp.println("claangepass " +User_ID +" "+encryptMDS(oldpass)

5.1.9. Chtir ndng thay dal nt& khan

108

+" "+enctyptMD5(newpass));

result=inp.readLineQ; outp.printlnrquit); outp.closeO; inp.closeO; cl.close0; cl=null;

I catch (I0Exception e)

return result;

protected void onPostErecute(String r)

ToastinakeTexi(getApplicationContertO, r, Toast.LENGTH LONG).showQ;

I

109

TM LItU TRAM KHAO

[1] Trucmg Thi Ngic Phuong, Ltip trinh Android, NM xuat ban thai dai, 2012 [2] Ed Burnette, Hello Android, The Pragmatic Programmers, 2013 [3] Wei-meng Lee, Beginning Android Tablet Appication Development, Wrox, 2012 [4] Lauren Darcey va Shane Conder, Android application Development, Sams, 2013

[5] Barry Burd, Android application Development For Dummies, 2012

110