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
SINN VIEN THVC EltN : Tan Trung
MA SINK VIEN : A14986
CHUAN NGANH : Khoa hue may tinh
HA NQI - 2014
MVC LVC
LEI NOI DAU 1
CH1TONG 1. GIO.1 THI$U BAI TORN -3
1.1. VAI NET VE GOOGLEMAP 3
1.2. NNONo GI GOOGLEMAP KHONG HO TROT 3
1.3. Tim SAO LAI C
115 trang |
Chia sẻ: huong20 | Ngày: 07/01/2022 | Lượt xem: 341 | Lượt tải: 0
Tóm tắt tài liệu Khóa luận Tìm hiểu dịch vụ google map xây dụng ứng dụng chia sẻ vị trí với bạn bè trên nền tảng Android, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
AN ONG DUNG CHIA SE VI lid? 3
1.4. MOI THONG HOAT %NG 4
1.4.1. Tai sao lai ding Android? 4
1.4.2. Google Map API la gi? 4
1.4.3. Server gamin 11 , hoot dong 4
CH1U'ONG 2. GIOI THI$U HE DIEU HANH ANDROID-----..------ .....
2.1. ANDROID LA GI? 5
2.2. LjCH Sll PRAT TRIEN 6
2.2.1. Su ra dei cia Android 6
2.22. Ctic phien ban Android 7
2.3. KEEN TROC HE DIEU HANH ANDROID 11
2.3.1. Linux Kernel 11
2.3.2. Libraries 12
2.3.3. Android Runtime 12
2.3.4. Application Framework 13
2.3.5. Application 14
2.4. fiNG DUNG THEN TIBET BI ANDROID 14
2.4.1. 1VhOng gidi hpn cua thilt bi di Ong 14
2.4.2. Ngen ng9 lop trinh 14
2.4.3. Most truing hgp trinh 15
CHUVNG 3. TONG QUAN VE GOOGLE MAP API —16
3.1. GICsi THI$U VE GOOGLE MAP API 16
3.2. SO' DUNG GOGGLE MAP API 16
3.2.1. cai d4t va arch ery Google Map API 16
3.3. CAC DOI WONG QUAN THONG WONG GOOGLE MAP API 24
13.1. tuong ben db - The Map Object 24
3.3.2. Marker 24
13.3. !Info Windows 27
CHITONG 4. CHHONG TRINH 2FRIEND ...29
4.1. GI& Tilleu BA1 TOAN 29
4.2. MOT s0 flu cAu COA BA1 ToAN 30
4.3. CAc nitre NANG cHINN 31
4.3.1. Chic ming &mg kyStai !chain 32
4.3.2. Chtic :tong demo MO 36
4.13. Chic ming xem ban do 39
p
4.14. Chic ming xem vi tri mkt mink 42
4.15. Char ndng xem vi tri bon bi 46
4.3.6. Chile nang nip nh4t t4 tri 51
4.3. 7. Chtk mIng gui yiu cdu kit bon 53
4.3.8. Chic mkg xcic nIttrm yiu eau kit bon 57
4.3.9. Chtic ntIng tim ditimg din vi tri bon 61
4.3.10. Chile rating xem thong tin bon 63
4.3.11. Char ?tang giao tilp vol bon 66
4.112. Chic neng Miy kit bon. 69
4.3.13. Chic ming Op MO thong tin cli ?them 72
4.3.14. Chile :tang thay dal met khiu 76
4.3.15. Chic mIng (Yang mit 80
4.4. MQT SO VAN DE icHAc 82
4.4.1. Kin di chi duir• ng - Direction API 82
4.4.2. Kin di dinh vi vi tri thiit bj 85
4.4.3. Kin di idn suit cdp nhtit de lieu 88
4.5. THIET KE cO set al LIEU
4.11. M6 hinh quan hf 89
4.5.2. Cac bang ate !Nu 89
4.6. KET LUAN VA DINH WANG PHAT TRIEN 92
4.6.1. Kit qua dot &or 92
4.6.2. Dinh Throng phcit Men 92
CH1UONG 5. PHU LOC - CODE MQT So alit NANG CHINH• 94
5.1.1. Cher Wing deng kY tii khoint 94
5.11 Chtk ?tang ddng nhdp 95
5.1.3. Chic ming hien tri vi tri bon 96
5.1.4. Chile :tang gut yiu cdu kit km 97
5.1.5. Char ming xac nhtin yiu cdu kelt bon 98
5.1.6. Chtec Mug dinh vi vj tri 100
11.7. Char tiling tim dventg din vi tri 101
5.1.8. Chile ?tang cdp Mule thong tin ca thin 105
5.1.9. Char nang thay doi mot khtiu 108
TAI LIEU THAM !CHAO 110
DANII MVC HITNH ANH
Hinh 2-1: Cac thanh phen cila he dieu himh Android 11
Hinh 2-2: M8 hinh hqp tac gifts may io Dalvik vi Native code 11
Hirsh 3-1: Android SDK Manager 16
Hinh 3-2: Cai det Google API 17
HInh 3-3: Cai Google API (tiep) 18
Hinh 3-4: Import thu vien 18
Hinh 3-5: Import thu vien (tiep) 19
HIM 3-6: Bet Google Maps Android API v2 20
Hinh 3-7: To API Key 20
Hin ► 3-8: Tao API Key 2 21
HIM 3-9: Tao API Key 3 21
Hinh 3-10: Tao project m6i 22
HInh 3-11: Them thu vien vio du an 23
H1nh 3-12: Infowindow thy Bien 28
HInh 4-1: Min hlnh kheri dOng 29
Hinh 4-2: Deng k, tai Ichoen med 35
Ifinh 4-3: Man hinh ding nhep 38
Hinh 4-4: Hien th1 ban de 41
HInh 4-5: Dinh v1 va hien th1 vi tri ngtrbi dung 45
Hinh 4-6: Xem vita ban be 50
Binh 4-7: Giri yeu eau ket ban 56
Minh 4-8: 'Chong the girl them yeu cku 56
Hinh 4-9: Xic nhen yeu ket ban 60
Hinh 4-10: Tim &Ong di den vj tri ban 62
Hinh 4-11: Xem thong tin ban 65
Binh 4-12: Giao tiep ved ban 68
Hinh 4-13: Hity kit ban (x6a ban) 71
Hinh 4-14: Cep fillet thong tin ca Mien 75
Hinh 4-15: Thay doi mat khan 79
Hinh 4-16: Dinh vi bang sling di dOng 86
DANH MVC BANG BLEU
Bang 4-1: Cac each dinh vi vi tri 85
Bang 4-2: Bang Users 89
Bang 4-3: Bang Location 90
Bang 4-4: Bang Friendl 90
Bang 4-5: Bang Friend2 91
DANH MVC SO Del
So de 4-1: So a Use - case 31
Sa do 4-2: Ding ky tai lchoan 32
So di). 4-3: Trish tkr Ding ky tai khan 33
So do 4-4: Ding Step 36
So do 4-5: Xem ban do 39
So d6 4-6: Xem vi tri cita minh 42
So do 4-7: Trish tv Xem vi tri cita minh 43
So d6 4-8: Xem vi tri bon be 47
So do 4-9: Trish tir Xem vi tri bon be 48
Scr do 4-10: Giri yeu citu ket bon 54
So de 4-11: Xac nhe ► yeu cam ket bon 58
So do 4-12: Giao flip veri bon 66
So de 4-13: Huy ket ban 69
Scr de 4-14: Thay doi thong tin ca nhhn 73
So de 4-15: Thay den met khau 77
So de 4-16: Ring xuat 80
So do 4-17: Ma hinh der lieu quan he 89
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?
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.
3
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
den flash va cac hieu img mau sic.
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)
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.
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.
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.
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
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
anti rieng cho may tinh bang (tablet), ra mot cling tablet Motorola XOOM.
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
Applications Famework to chuc Ling Liumi
Libraries IH;1 Android Runtime
(Thai 'Tan chay Ar droith
Applications l
Linux Kernel '.
time
Android
SDK
apps
Anima('
NDK
apps
241
Android app framework
Standard libraries
2.3. Kien true 14 diet' birth Android
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
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.
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.
2.3.2. Libraries
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.
Webkit: Ho trq hien thj nei dung website.
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
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...i 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 Login: Ten clang nhalp cua ngubi dung
o Pass: Mat khau dim nhap
o Name: Ten that dm ngubi dung
o Phone: SO dien thotti cita ngutri dung
o 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)
-
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 ti
Hind 4-2: Ddng # Ili Moan Mai
35
4.3.2. Chits Wing ddng nhap
UC #0002 HANG NH.411 Del phut tap: 1
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.
Tic
nhin
Chfnh Ngueri sir clang
Thy KhOng do
Tien dieu Idea Ngueri sir dung can t co tai ;Moan de ding nh#p
Hill
diets
Min
Thinh
cling
Ngueri ding truy cap duqc vao giao dien chinh dm chtrtmg trinh
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
yva clOnis Tait W Android
Dich vy cSa
Gaffe
3 Co at sICP OW
—el.
OM *Ms dwn
nth 00111•060 I
ca..-Men
•••• A b us MS
0 ar So die Se SS alt
i. Se
d.at
Cl••••• on So ii_o/ /
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:
-
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
-
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:
-
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.
-
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
UC #0003 XEM BAN DO DO phirc tip: 1
M8 ti
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.
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
Tic
nhan
Chinh Ngwei sir dung
Phy Google API
Tan diiu Idin Google Service phiti hoot dung
I dit
kien
Thinh
(tug Ban di dtrqc hien thi
Lei Ban di Iching duqc hien thj
Se do iubng ding viiic
Soda lubng ding viec:Chin ring lib dil bin db
64girbi dung O1hiit bl Android pith " did 600gle Server 9 Ca salt Nu
Luau y—otrytagribins —40 11411tiviilt ode
Ilsotkidbinta 4--- tnt Otla / 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:
- 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
%to a
uy
_tun
auk t/0414
, a
,bosic a
temlown
and :
NYIE
1+ Ar
KNU IAIINE
otlio 0
Gino din minh hqa
SSW
!fink 4-4: Min fig bin di
41
4.3.4. Char ming xem vj tri tha minh
UC #0004 XEM Ni Till CUA MiNH DO phis kip: 1
Me ti
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,
claim ning nay se di chuyen bin dO den vi tri hien tai cos ngueri dung.
Tic
nhan
Chhth Nguai sir dung
Pity Kitting co
Tiin thin Idin Ngueri sir dung can ding nhjp vim chucmg trinh
lit
kifn
Thinh
thug Chuang frith hien thj vi tri dm ngtreli dimg
Iii Chuang trinh kitting the hien thj chinh Vic vi tri ngueri dung
So• a6 luAng cong vitc
Sudo Wing caw*: Chic ning hien NA tido minh
""'ding ONitwAndroid Did' vl) dla Google Server Ca sada*
thau ( )
Rhein& 4-
liudulainthl
vitisira Natitisl
—I tkaalttlitit –
Sole 4-6: Xent 4 tri ctia fidnk
42
: Nauoi au dung Vi tri novo' dung A9611.59thal
3:Yeuay dihviff
So* do trinh ty
2: Xem ban do()
ktelnIzaid SiMarki
: lien el ban doff
4: Tra ve 1 ier toa do
ôaeateằ
S : Tao ryas')
6 Danh dau tri ten bin do()
Yea cau Nen thhi tiQ
ltusy dui vi In ban do°
Sold 4- 7: Dinh ty Xem vJ trf minh
cril 7: Chon chuc rang him ti vi tO0
9
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
UC #0005 XEM Ng TRi BAN BE DO phirc tgp: 1
M8 ti
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.
Ngueri dung co the ttrcmg tac veri ben be Wye tiep to nhOng vi tri da ducrc
dab dAu.
Tic
nhAn
Chinh Ngtred sir ding
Pity !Chong co
Tien dieu Men Ngtred sir dyng can dAng ninip de sir ding chirc nAng nay
Hp
dieu
kitn
Thinh
thng
Vj tri ban be duqc hien thj tren bin di
Lai Vj tri ban be khong duce hien thi tren bin dO
46
Set do bang ceng viec
Sc db lubng Ong vlec: Chin fling hien thi vi trl ben be
6 Ngulli thing °a Thigt bi Android h vy th Dic e Googie Server CO sit der lieu
0 (
lat dliu
•
IS try bin et
Chl *du lip
dm* 'Mitts bi
TA, nhin rib yis If
TO do
•
NIS anis Mich bin
Wane,
ay dap* WI bin
Sal Sidi/ Iglu
_ 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
MS dolor an
win ant
Td It a4 do
Oiest
/ tinTheab:In 4 /
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
r9~d r9 spa
3: Yeu au by pat et tank )1
4: Lay ilst S. ban
5 doh S. Ue
l
O
dot edits
:Tra ye drh nth ben
tE
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:
-
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.
- 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.
-
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
-
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.
-
Ngueri ban dang Online se ci bieu ttrqng mau di, neu Offline se 6 bieu tugng mau xim.
-
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
-
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
-
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
-
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 Din tz;
WM 011
i
it
TRUNG
I
VINOIDEV eke n _
12. It 21.23.
2S. MASI •
le
al
Mink 4-6: Xem vi Di bnn bi
50
4.3.6. Cher nang clip Milt vJ trl
UC #0006 CiNP NHia VI TRi Da phire top: 2
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.
Tic
nhAn
ChInh !Chang a
phy !thong co
Tien diiu kien Nguoi sir dong an ding nap vao chtrcmg trinh
dHit
kien
Tashr . V1 tri ngutri dung duqc ap nat den Server
Iii Vi tri ngtrai dung khong duqc ap nh#t den Server
sor a bong Ong viec
So ela hibng dmg vitc: auk anti cop nhit vl td
otigulA dung QMit bi Android Dich Ai dm Goa& Server '~ Cast/delft
at
Oa Sachem; is* eel Ma A • 41•••••kti than
I •
100,
litIkk
t
ant
awl,'
arts tonged
hellion all
fitness
7/ obi
I'
*Avis
• bi
In —
TM'S; a qui
whib Ord
P•Mbil•Ads
Saw
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:
- Sau khi lay duqc vi tri dm thiet bj, tqa do curt thiet bi se duqc Itru lai
- 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 you eau tren den server
- 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
UC #0007 GUY YEU CAU KET BAN DO phut top: 1
MO ta
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 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
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
nhin
ankh Ngutri sir clung
Thy
Khong 05
Tian di$u kiln Ngubi sir dung can ding nhop vao chuang trinh
Hu
di u
Idfn
Minh
Sing
Yeti ciu ket ban duqc giri di
Iii Yeu ciu kit ban Miring duct giri di
53
s. a keng ding viIc
Saab 'Ong Ong vi.c: Chat Mug seri lieu au kit ben
Sgutti dims a Thigt DI Android
Al Dich cua
Goggle
Server 3Casfrdirliou
Bit au (
NI4p tin bin va
bigrn ntit Itara
W
Ian dain diS
Tin* va wit II
yiu du thIm bon ( Mr/P In
Mau at W
bin W
t auk*
o MIL hit Ina
/
----4--
/WA
1/
,swarm
phianst
Ca loft oil a cho
deft
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
- Dua vio eau lenh:
Addfriend
-
Gfri cau lenh tren den server. Thao tic nay se duqc d#t trong Asyntask
-
Nhem ket qui fir phia server vi thing ha° cho ngueri ditng.
-
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:
-
Lay ra gii try' tin ngubi dimg, ten ban can them
- Tien hanh kiem tra xem ten ban c6 ten tai tong ca ser de lieu hay Wong
-
Neu ten ban thing ten tai, server se tra ve kit qui cho ngtreri dung
- 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.
-
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
Ocavloua webs
*en !)
Giao digs minh boa
HIS 4-7: Gni gu au kit bon
Rink 4-8: Meng Might thim yin au
56
4.3.8. Char nag xdc night yiu au kit ben
UC #0008 )(tic NHAN YEU CAU 'CET BAN Di) phut tap: 1
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.
Tic
nhan
Chinh Ngtrei sir dung
Phy Khong ce
Tien diau Icifn Ngtred sir dung can clang nhop vacs chuong trinh
H u
di u
kifn
Thhnh
ding Trong thai ciia you au ket bon dtrqc cep nh#t
Lie Trong thai cita yeu clu ket bon khong dtrqc cop nhOt
57
So d6 hding cdng viec
Sc ct lubng cans vier Chat ring xac nhan yiu au ket ban
Ngvad dung Mitt bi Android
Dich vu dm
Google
Server Ca sir dai lieu
C Bka )
sin 111 bin /lb
Girl viu du Wayyto
do ka blia
Na then vi 4irlf
*Su
•
Illk dards sr y1u
doa
Liy dank sichykt
clu Sibs% &costs 0 41 &Hu
•
Gia1kItcpsite
Dinh
141
an 4 Om
du
Tr
thil bk
11•1
0111 1•J131
11 Inn
flip nblo ve24)0 Wu clo
i
Gal thong tin I/1c
Sado Sow
e
•
•
Girl* trans thil
lilt bin
UPS.
(1)
land
taw kit *dr
-) 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:
- Ten tai khoin
- Ten day di
- 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
Mut nquot moon kit
TM khoin: test6
Ten: Phnm Tula T
then Movie: 0947493260
Giao Bien minh hos
HMIs 4-9: Mk nhan ylu du kit bon
60
4.3.9. Cher nong tim during vi trl km
UC #0009 TIM DU ONG DEN VI TRi BAN 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.
Tic
nhin
Chlnh Ngtrai sir citing
Thy
Google Service
Tien die', kijn Npreri sir dung can clang nhitp vio chuang trinh, Google Service phai hog ding
HOn
(lieu
Thinh
cOng
Chuang trinh hien thj duemg di den vi tri ban Luang Ong
kiln iii Chuang trinh kh8ng hien thi throng di den vi tri ban Luang Ong
Sa a luting cang viec
So db Iubng am viec: thine ning dm dubng dfn vi of ban
oNgo&I thing ti 'Ma bi Android Did vy co Go of& a a Co sit dr/ libu
C °itdiu )
•
Own bon bib main
tor th••trag Sib tit bin dti
t
Gin Au du din Tiling* vi a I# AW Aga.
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
a Svi„
I" ThIPTY Sr
urow
Irettsta+10i •
.,.
Y torr3 I , Ilacts t
4.4a
OM
TIrehltsittNis
Ore "
ISO ,
I .
SIN
Binh 4-10: 79nn &Meg dl din vj trf hut
62
4.3.10. Chose ming xem thong tin km
UC #00010 XEM THONG TIN BO Ê14 phfre tap: 2
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.
The
nhin
ChInh Ngueri sir dyng
Phy Google Service
Tan Su kio Nguen sir dung can ding nhep vio chucmg trinh
Hiu
dieu
Thinh
thug
Thong tin ban duce hien thi
ki'n Lgi Thong tin ban khang duce hien thi
Srr d6 tang cong vi%c
So S luting tong Sr: ChCrc MN{ gem thong tin bon
Nguti citing rd el Android fl mid ilich vy as Goggle Server 3 Co 0 dtt lido
Wđ" MP ohist vh re ( )
It Wm es
Mon bps bit mas
own
KS Ai bin a Ar
AZT G,4 Ow the Ify See is 116 nit ye ..)0# Nu du —4 0
mar ts I
guru Seig an Of
tenor vb Geode
UMW
Lie Mao IM tir co
vino Nu •
Is
bb
Nan IN la ma dos
meanie
CA Mara.
MS
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
- MOt cira so thing tin Infowindow tucmg (mg se duqc hien len
- Bilm chqn vao cira so InfoWindow di, man hinh chi tiet ban be se duqc hi'en len.
-
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
dhthanglong
Dai hoc Thing Long
137 Nguyen Xign Dai Ki
Mai Ha NOi
201311-14
Giao din Sub boa
Binh 4-11: Xem thong tin bpn
65
4.3.11. Chic tang giao vai ban
UC #00011 CIAO TIEP VOI BAN DO pink top: 1
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.
ne
nhan
Chinh Ngtroi sir dung
Mg 'Wong co
Tan diiu kiln Ngutri sir dung can ding nhip vac) chuang trinh
di nl ang
kifn Iii !Chang the giao tiep vii ban Wong ang
So' do iubng cong vies
...
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
g id : int(11)
# user_id : int(11)
# lati : double
# longi : double
m lastupdate : date
id : int(11)
m login : varchar(30)
m pass : varchar(32)
m name : varchar(30)
đ phone : varchar(15)
# status : int(11)
2 id : int(11)
* user id : int(11)
m date : date
id : int(11)
# user_id - int(11)
# status : int(11)
4.5. Thief ke co ser dit lieu
4.5.1. Mb hinh quan he
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
ID INT(11) Khong Auto Increment Khong
LOGIN Varchar(30) Khong Khong Khong
PASS Varchar(32) !Chang KNIT* Khong
NAME Varchar(30) 'thong Khong !thong
PHONE Varchar(1 5) Co Khong [Chong
STATUS Int(1 1) !Chong Khong [Chong
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
`pity
4
ID INT(11) Khong Auto Increment Khong
USERID INT(11) Khong !Chong USER(ID)
LATI DOUBLE Khong Killing Khong
LONGI DOUBLE Khong Khong Khong
LASTUPDATE Date Khong 'thong Khong
Bang 4-3: Bong Location
b. t nghia cim cac gia tri
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
b. nglifa cua cac gia tri
- 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.
4.5.2.4. Bang Friend2
c. CAu frac bang da lieu
ID INT(l 1) Khong Auto Increment Khong
USER ID INT(11) Khong Khong USERS(ID)
STATUS INT(11) Khong Khong Khong
Bring 4-5: Bing Frlen
d. nghia cua cfic gia tri
- 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
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
92
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<fullname.lengtki++)
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
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<Wriends.length)/3);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;
5.1.4. Chfir ming pH you cliu kit bgn
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
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<requestlist.length;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;
5.1.6. Char ndng Qjnh 4 vj
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
100
5.1.7. Mir tang tim Strang din vi trt bgn
//
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<String, Integer,
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<result.size0;i+ +)1
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<path.size0;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<jSteps.length0;k++)(
String polyline = "";
polyline =
(String)(0SONObjecOgISONObject)jSteps.get(k)).gerpolyline")).getrpoints);
List list = decodePoly(polyline);
In Traversing all points */
for(int 1=0;1<list.size0;1++)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<Latpir 0;
int index = 0, ten = encoded.length0;
int lat = 0, ing = 0;
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;
//
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<tempNames.lengtha++)
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
5.1.9. Chtir ndng thay dal nt& khan
@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,;
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)
else
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
Các file đính kèm theo tài liệu này:
- khoa_luan_tim_hieu_dich_vu_google_map_xay_dung_ung_dung_chia.pdf