Xây dựng ứng dụng bản đồ cho điện thoại di động

89 440 0
Xây dựng ứng dụng bản đồ cho điện thoại di động

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 1 TRNG I HOC M THÀNH PH H CHÍ MINH KHOA CÔNG NGH THÔNG TIN o O o H QUC BO - 10300005 XÂY DNG NG DNG BN  CHO IN THOI DI NG LUN VN C NHÂN TIN HC GIÁO VIÊN HNG DN: Thc s NGUYN MINH NAM NIÊN KHOÁ 2003-2007 Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 2 Mc lc Chng 1: Gii thiu lp trình trên thit b di đng vi J2ME 6 1.1. Tng quan v J2ME 6 1.1.1. Lch s 6 1.1.2. Lý do chn J2ME 6 1.1.3. Kin trúc ca J2ME 7 1.2. CLDC (Connected Limited Device Configuration) 11 1.3. Gii thiu MIDP 15 1.3.1. nh ngha: 15 1.3.2. Nhng chc nng MIDP không thc hin đc: 15 1.3.3. Nhng chc nng MIDP cung cp 16 1.3.4. S khác nhau ca MIDP 1.0 và MIDP 2.0 16 1.4. Vòng đi ca mt MIDlet 18 1.5. Xây dng mt MIDlet 18 1.5.1. Lp trình viên: To các tp tin ngun Java 19 1.5.2. Biên dch mã ngun thành mã bytecode 19 1.5.3. Kim tra tính hp l ca mã bytecode 19 1.5.4. To tp tin JAR 20 1.5.5. Ngi dùng Download ng dng v thit b di đng 20 1.5.6. Kim tra mã bytecode Trên thit b di đng: 21 1.5.7. Lu tr chng trình trên thit b 21 1.5.8. Thc thi ng dng 21 1.6. Môi trng phát trin J2ME 22 Chng 2: Tng quan v GIS 23 2.1. Gii thiu GIS: 23 2.1.1. Các thành phn ca GIS 23 2.1.2. Hot đng ca GIS: 25 2.2. Mc đích: 27 2.2.1. Nhp d liu 28 2.2.2. Thao tác d liu 28 2.2.3. Qun lý d liu 29 2.2.4. Hi đáp và phân tích 29 Hình 2.4: Phân tích chng xp 31 2.2.5. Hin th 31 2.3. D liu GIS: 32 2.4. Các công ngh liên quan: 34 2.4.1. Desktop Mapping (thành lp bn đ) 34 Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 3 2.4.2. CAD (tr giúp thit k nh mày tính) 34 2.4.3. Vin thám và GPS (h thng đnh v toàn cu) 35 2.4.4. DBMS (H qun tr c s d liu) 35 Chng 3: Phân tích – thit k ng dng 36 3.1. Lc đ s dng: 36 3.1.1. View map : 37 3.1.2. Zoom map : 38 3.1.3. Move map : 39 3.1.4. Move cursor : 40 3.1.5. Search street base on name : 41 3.1.6. Search shortest path : 42 3.1.7. Help : 43 3.2. Các biu đ hot đng: 45 3.2.1. Hin th bn đ 45 3.2.2. Tìm đng theo tên: 46 3.2.3. Di chuyn bn đ: 47 3.2.4. Tìm đng đi ngn nht 48 3.3. S đ mc thit k 49 3.3.1. S đ 49 3.3.2. Danh sách các lp chính: 50 Chng 4: Ti u hoá ng dng 56 4.1. Ti u hóa kích thc chng trình : 56 4.1.1. Gim các lp không cn thit : 56 4.1.2. Hn ch s dng inner class và anonymous class : 57 4.1.3. Gim cây k tha : 58 4.1.4. Gim chiu dài các đnh danh (identifiers) : 58 4.1.5. Hn ch s dng getter / setter : 59 4.1.6. Lu ý khi khi to mng : 59 4.1.7. Gim kích thc các tp tin tài nguyên : 61 4.1.8. Hn ch s dng các gói th vin b sung : 62 4.1.9. Ti u kích thc chng trình khi đóng gói : 62 4.1.10. Thc hin vi Obfucator 63 4.2. Ti u hóa v tc đ : 65 4.2.1. Khái quát chung : 65 4.2.2. Tìm các v trí cn ti u v tc đ vi Profiler : 65 4.2.3. Xác đnh thi gian thc thi : 67 4.2.4. Thc hin tng tc cho chng trình : 68 4.3. Ti u hóa vic s dng b nh : 73 4.3.1. Công c theo dõi vic s dng b nh : 73 Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 4 4.3.2. S dng Memory Monitor theo dõi vic s dng b nh : 74 4.3.3. Các nguyên tc ti u hóa vic s dng b nh : 76 Chng 5: Hng dn s dng 79 5.1. Di chuyn bn đ: 79 5.2. Phóng to, thu nh bn đ: 80 5.3. Di chuyn con tr 80 5.4. Tìm đng 81 5.5. Tìm đng đi: 82 5.6. Xem tr giúp và gii thiu: 84 Chng 6: Tng kt – đánh giá 86 Ph lc 90 Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 5 Li gii thiu Có th nói rng, bn đ cho cá thit b cm tay, đt bit là đin thoi di đng là mt đ tài không mi. Có rt nhu ng dng phc v cho vic xem tra cu bn đ khác nhau. Tuy nhiên phn ln các sn phm này đc phát trin cho nhng thit b có h tr h điu hành nh các loi Pocket PC. Nhng thit b h tr h điu hành chim mt phn rt nh trong th trng các loi đin thoi di đng, Phn ln các loi đin thoi còn li đu yu hn hn so vi các máy có s dng h điu hành, yu v dung lng b nh ln tc đ x lý. Nhng đa s các loi đin thoi này đ có h tr Java (J2ME)  tài “ng dng bn đ trên đin thoi di đng” này không có tham vng s to đc mt sn phm hoàn chnh đ phc v cho các loi đin thoi dùng J2ME còn li, mà ch mong mun thông qua đ tài này, có th nghiên cu mt vài gii pháp đ x lý các phép toán cn nhiu tài nguyên, vn rt hn hp trên các thit b di đng. Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 6 Chng 1: Gii thiu lp trình trên thit b di đng vi J2ME Mc tiêu ca J2ME là cho phép ngi lp trình vit các ng dng đc lp vi thit b di đng, không cn quan tâm đn phn cng tht s.  đt đc mc tiêu này, J2ME đc xây dng bng các tng (layer) khác nhau đ giu đi vic thc hin phn cng khi nhà phát trin. 1.1. Tng quan v J2ME 1.1.1. Lch s J2ME đc phát trin t kin trúc Java Card, Embeded Java và Personal Java ca phiên bn Java 1.1. n s ra đi ca Java 2 thì Sun quyt đnh thay th Personal Java và đc gi vi tên mi là Java 2 Micro Edition, hay vit tt là J2ME. úng vi tên gi, J2ME là nn tng cho các thit b có tính cht nh, gn: Hình 1.1 Các phiên bn java trên các thit b 1.1.2. Lý do chn J2ME a)Java ban đu đc thit k dành cho các máy vi tài nguyên b Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 7 nh hn ch. b)Th trng ca J2ME đc m rng ra cho nhiu chng loi thit b nh: •Các lai th cá nhân nh Java Card •Máy đin thoi di đng •Máy PDA (Personal Digital Assistant - thit b tr giúp cá nhân) •Các hp điu khin dành cho tivi, thit b gii trí gia dng … 1.1.3. Kin trúc ca J2ME Hình 1.2: Kin trúc J2ME Các thành phn trong nn tng J2ME: 1.1.3.1. nh ngha v Configuration (Cu hình): Là đc t đnh ngha mt môi trng phn mm cho mt dòng các thit b đc phân loi bi tp hp các đc tính, ví d nh: •Kiu và s lng b nh Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 8 •Kiu và tc đ b vi x lý •Kiu mng kt ni Do đây là đc t nên các nhà sn xut thit b nh Samsung, Nokia …bt buc phi thc thi đy đ các đc t do Sun qui đnh đ các lp trình viên có th da vào môi trng lp trình nht quán và thông qua s nht quán này, các ng dng đc to ra có th mang tính đc lp thit b cao nht có th. Ví d nh mt lp trình viên vit chng trình game cho đin thoi Samsung thì có th sa đi chng trình ca mình mt cách ti thiu nht đ có th chy trên đin thai Nokia Hin nay Sun đã đa ra 2 dng Configuration: •CLDC (Connected Limited Device Configuration-Cu hình thit b kt ni gii hn): đc thit k đ nhm vào th trng các thit b cp thp (low-end), các thit b này thông thng là máy đin thai di đng và PDA vi khong 512 KB b nh. Vì tài nguyên b nh hn ch nên CLDC đc gn vi Java không dây (Java Wireless ), dng nh cho phép ngi s dng mua và ti v các ng dng Java, ví d nh là Midlet. •CDC- Connected Device Configuration (Cu hình thit b kt ni): CDC đc đa ra nhm đn các thit b có tính nng mnh hn dòng thit b thuc CLDC nhng vn yu hn các h thng máy đ bàn s dng J2SE. Nhng thit b này có nhiu b nh hn (thông thng là trên 2Mb) và có b x lý mnh hn. Các sn phm này có th k đn nh các máy PDA cp cao, đin thoi web, các thit b gia dng trong gia đình … Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 9 C 2 dng Cu hình k trên đu cha máy o Java (Java Virtual Machine) và tp hp các lp (class) Java c bn đ cung cp mt môi trng cho các ng dng J2ME. Tuy nhiên, bn chú ý rng đi vi các thit b cp thp, do hn ch v tài nguyên nh b nh và b x lý nên không th yêu cu máy o h tr tt c các tính nng nh vi máy o ca J2SE, ví d, các thit b thuc CLDC không có phn cng yêu cu các phép tính toán du phy đng, nên máy o thuc CLDC không đc yêu cu h tr kiu float và double. Hình 1.3: Các thit b có th s dng Java 1.1.3.2. nh ngha v Profile: Profile m rng Configuration bng cách thêm vào các class đ b tr các tính nng cho tng thit b chuyên bit. C 2 Configuration đu có nhng profile liên quan và t nhng profile này có th dùng các class ln nhau. n đây ta có th nhn thy do mi profile đnh ngha mt tp hp các class khác Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 10 nhau, nên thng ta không th chuyn mt ng dng Java vit cho mt profile này và chy trên mt máy h tr mt profile khác. Cng vi lý do đó, bn không th ly mt ng dng vit trên J2SE hay J2EE và chy trên các máy h tr J2ME. Sau đây là các profile tiêu biu: •Mobile Information Device Profile (MIDP): profile này s b sung các tính nng nh h tr kt ni, các thành phn h tr giao din ngi dùng … vào CLDC. Profile này đc thit k ch yu đ nhm vào đin thai di đng vi đc tính là màn hình hin th hn ch, dung lng cha có hn. Do đó MIDP s cung cp mt giao din ngi dùng đn gin và các tính nng mng đn gin da trên HTTP. Có th nói MIDP là profile ni ting nht bi vì nó là kin thc c bn cho lp trình Java trên các máy di đng (Wireless Java) •PDA Profile: tng t MIDP, nhng vi th trng là các máy PDA vi màn hình và b nh ln hn •Foundation Profile: cho phép m rng các tính nng ca CDC vi phn ln các th vin ca b Core Java2 1.3Ngoài ra còn có Personal Basis Profile, Personal Profile, RMI Profile, Game Profile. [...]... n cho i n tho i di ng 1.3 Gi i thi u MIDP 1.3.1 nh ngh a: ây là Profile c nh ngh a dành riêng cho các thi t b di ng và là thành ph n chính trong J2ME MIDP cung c p các ch c n ng c b n cho h u h t các dòng thiêt b di máy i n tho I di ph i là cây MIDP ng ph bi n nh t nh các ng và các máy PDA Tuy nhiên MIDP không a th n cho m i l p trình viên vì nh chúng ta ã bi t, c thi t k cho các máy di ng có c u hình... u h i các câu h i n gi n nh : 29 a lý, có th b t Lu n v n t t nghi p: Xây d ng ng d ng b n Ai là ch m nh t cho i n tho i di ng góc ph ? Hai v trí cách nhau bao xa? Vùng t dành cho ho t ng công nghi p âu? Và các câu h i phân tích nh : T t c các v trí thích h p cho xây d ng các toà nhà m i n m âu? Ki u t u th cho r ng s i là gì? N u xây d ng m t ch u nh h ng qu c l m i ng nh th nào? GIS cung c p c kh... nh RGB: M t trong nh ng c i ti n h p d n cho các nhà phát tri n MIDP là vi c bi u di n hình nh d i d ng các m ng s nguyên, cho phép MIDlet thao tác v i d li u hình nh m t cách tr c ti p 17 Lu n v n t t nghi p: Xây d ng ng d ng b n 1.4 Vòng cho i n tho i di ng i c a m t MIDlet Gi ng nh d ng ch ng trình Applet trên J2SE, m t Midlet luôn luôn k th a javax.microedition.midlet Hàm c b n nh t trong m i Midlet... qu n lý ng d ng s chuy n ng d ng cho KVM thi t b di ng 21 ch y trên Lu n v n t t nghi p: Xây d ng ng d ng b n cho i n tho i di KVM: Th c thi mã bytecode khi ch ng ng trình ch y KVM d ch mã bytecode sang ngôn ng máy c a thi t b di ng ch y 1.6 Môi tr ng phát tri n J2ME Có nhi u môi tr tho i c ng ng phát tri n ng d ng J2ME và m i hãng i n a ra nh ng môi tr ng phát tri n cho riêng mình: Trong ó Sun J2ME... Lu n v n t t nghi p: Xây d ng ng d ng b n cho i n tho i di ng HTTPS Ki m soát vi c k t n i gi a máy di các ch ng và server: ví d nh ng trình không th k t n i t i server n u thi u s ch p thu n c a ng i s d ng 1.3.4.2 Thêm các API h tr Multimedia M t trong nh ng c i ti n h p d n nh t c a MIDP 2.0 là t p các API media c a nó Các API này là m t t p con ch h tr âm thanh c a Mobile Media API (MMAPI) 1.3.4.3... các CPU cho các thi t b di ng không h tr phép tính này, do ó MIDP c ng không có •B n p l p (Class Loader) •H tr t khóa finalize() nh trong J2SE: Vi c “d n d p“ tài nguyên tr c khi nó b xóa c y v phía các l p trình viên •Không h tr JNI •H tr h n ch thao tác b t l i •Ph n l n các th vi n API cho Swing và AWT không th s d ng c trong MIDP 15 Lu n v n t t nghi p: Xây d ng ng d ng b n cho i n tho i di ng •Không... thi t th c cho c nhà phát tri n l n nhà s n xu t thi t b di ng Các c t c a JCP gán các s JSR (Java Specification Request) Quy b n 1.0 CLDC c gán s JSR - 30 nh ngh a các th vi n t i thi u và các API T ng thích ngôn ng JVM Các th vi n lõi I/O M ng B om t Qu c t hóa CLDC không m nh ngh a: 11 c nh CLDC phiên Lu n v n t t nghi p: Xây d ng ng d ng b n cho i n tho i di ng Chu k s ng ng d ng Giao di n ng i... toàn, b o m t v thi t b di c thi t k b o ng, KVM, và các ng d ng khác kh i các mã phá ho i Hai b ph n c nh ngh a b i CLDC này là b ti n ki m tra và mô hình sandbox 12 Lu n v n t t nghi p: Xây d ng ng d ng b n cho i n tho i di ng Hình 1.5: Bi u di n cách mà b ti n ki m tra và b ki m tra làm vi c v i nhau Nh ki m tra mã ch ã ng trình Java tr c p, các t p tin l p c khi chuy n nó cho KVM c gán nhãn b ng... khai (manifest.mf) cung c p mô t v ng d ng cho b qu n lý ng d ng (application manager) trên thi t b di ng * T p tin JAR c bán ho c c phân ph i n ng i dùng u cu i Sau khi ã g r i và ki m tra mã l nh trên trình gi l p (simulator), mã l nh ã s n sàng ng và sau ó 1.5.5 Ng Ng b di c ki m tra trên i n tho i di c phân ph i cho ng i dùng i dùng Download ng d ng v thi t b di ng i dùng sau ó download t p tin JAR... c giao cho KVM hay b biên d ch mã bytecode M t b ph n khác c a b o m t trong CLDC là mô hình sandbox Hình 1.6 bi u di n khái ni m mô hình sandbox Hình trên cho th y ng d ng J2ME là nó b gi i h n truy xu t truy xu t t trong m t sandbox có ngh a n tài nguyên c a thi t b và không n Máy o Java hay b n p ch 13 ng trình ng d ng c c Lu n v n t t nghi p: Xây d ng ng d ng b n truy xu t cho i n tho i di n các . các thit b di đng. Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 6 Chng 1: Gii thiu lp trình trên thit b di đng vi J2ME Mc tiêu ca J2ME là cho phép ngi. 90 Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 5 Li gii thiu Có th nói rng, bn đ cho cá thit b cm tay, đt bit là đin thoi di đng là mt đ tài không. đc thit k dành cho các máy vi tài nguyên b Lun vn tt nghip: Xây dng ng dng bn đ cho đin thoi di đng 7 nh hn ch. b)Th trng ca J2ME đc m rng ra cho nhiu chng loi

Ngày đăng: 18/05/2015, 02:25

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan