Ờ Ả Ơ L I C M N
ả ơ ệ ệ ủ Em xin chân thành c m n ban ch nhi m khoa Công ngh thông tin,
ầ ạ ấ ộ ỡ ề các th y cô giáo, gia đình và b n bè đã đ ng viên giúp đ em r t nhi u
ề ố ệ ặ ệ ỏ trong quá trình làm chuyên đ t t nghi p này. Đ c bi t em xin bày t lòng
ắ ớ ầ ướ ươ ẫ ả ơ c m n sâu s c t i th y giáo h ề ự ậ ng d n T.S D ng Thăng Long v s t n
ướ ừ ữ ưở ề ầ ậ tình, t n tâm h ẫ ng d n em t nh ng ý t ng đ u tiên cho đ n lúc hoàn
ề ố thành bài chuyên đ t ệ ủ t nghi p c a mình.
ỏ ữ Em xin bày t lòng bi ế ơ ớ t n t i gia đình thân yêu, nh ng ng ườ ạ i b n
ưở ộ ỡ ờ thân đã luôn tin t ng, quan tâm, đ ng viên, giúp đ em trong th i gian qua.
ấ ậ ượ ự ữ ờ Em r t mong nh n đ ổ c s đánh giá, b sung và nh ng l ỉ ả i ch b o
ể ế ụ ứ ự ề ề ầ ơ ủ c a các th y cô đ em có th ti p t c nghiên c u kĩ h n v lĩnh v c này.
ả ơ Em xin chân thành c m n!
ễ Sinh viên: Nguy n Văn Quy
Ụ
Ụ
M C L C
Ụ
Ắ
Ế
DANH M C VI T T T
Tên vi
ế ắ t t
t
Tên đ y đầ ủ
ế
ST T
ệ ế t Dich ra ti ng vi ế (N u là ti ng anh)
ả
1
iOS
Iphone Opera System
ệ ề ộ
ủ
H đi u h nh trên ề n n di đ ng c a Apple
2
API
ứ
Application Programming Interface
ệ ậ Giao di n l p trình ụ ng d ng
ườ
3
JDT
Java Development Toolkit Môi tr
ể ng phát tri n Java
ụ ừ ượ 4 AWT Abstract Window Toolkit Công c tr u t ng
5 JNI Java Native Interface
ệ Giao di n Java nguyên b nả
ả 7 RIM Research In Motion
ấ Công ty s n su t BlackBerry
8 JVM Java Virtual Machine ả Máy o Java
9 SDK
ụ ầ ề Software Developement Kit ể Công c phát tri n ph n m m
10 IDE Môi tr ế ế t k
Integrated Development Environmen ườ ng thi ấ ợ h p nh t
ươ
Ơ Ở
Ế
Ch
ng 1: C S LÝ THUY T
ề ả ộ 1.1 N n t ng di đ ng
ị ườ ộ Ngày này, th tr ng di đ ng đang phát
ư ừ ể ẽ ạ ấ ớ tri n m nh m ch a t ng th y v i vô
ể ệ vàng các nhãn hi u, ki u dáng, tính
ế ệ ạ ế năng...Đã bi n chi c đi n tho i thành
ộ ế ả ươ m t thi ị t b gi i trí đa ph ệ ng ti n
ớ ợ ể ế ế không th thi u. V i l ỏ ọ i th nh g n,
ượ ườ ử ụ đ ọ c m i ng ọ i s d ng đem theo m i
ư ọ ơ ỏ ọ lúc m i n i, nh ng cũng vì nh g n
ộ ấ ợ ề ử ố ộ ư ậ ế ả ộ nh v y cũng là m t b t l ệ ể ả i v x lý và t c đ . Đ đ m b o m t chi c đi n
ạ ộ ạ ố ầ ả tho i thông minh ho t đ ng t ộ ệ ề t thì nó c n có m t h đi u hành qu n lý thi ế t
b .ị
ớ ự ứ ầ ế ị ộ ộ ể Đi kèm v i s phát tri n ph n c ng trên thi ế t b đ ng thì cu c chi n
ệ ề ể ệ ạ ộ ễ ủ c a các nhà phát tri n các h đi u hành trên đi n tho i di đ ng cũng di n
ế ứ ố ệ ệ ộ ớ ượ ra h t s c kh c li ề ả t. Hi n nay, các n n t ng di đ ng l n đ c bi ế ế t đ n
nh sauư
ề ả ệ ạ ộ ớ ộ ớ N n t ng di đ ng iOS v i đi n tho i di đ ng thông minh iPhone, v i
ế ế ẹ ả ứ ượ ẹ ắ ờ thi t k đ p, th i trang, c m ng m t mà, màn hình đ p và s c nét cùng
ủ ở ớ v i tài năng c a "thánh" ế Steve Jobs đã khi n cho iPhone tr ệ thành hi n
ượ ị ườ ọ ệ ở ỹ ủ ố t ng trên m i th tr ặ ng, đ c bi t là M . Doanh s bán ra c a iPhone
ị ườ ầ ầ ầ ố ủ ề tăng d n qua các năm, và d n d n th ng lĩnh th tr ng c a nhi u n ướ c.
ư ứ ủ ả ỗ ộ ớ ỉ ỏ iPhone dù m i năm ch ra m t phiên b n m i nh ng s c nóng đ lan t a
ư ắ ẫ ộ ờ kh p làng di đ ng, do đó, iOS v n ch a bao gi "già".
ệ ề ạ ộ iOS là h đi u hành "đóng" ho t đ ng trên iPhone, iPad, iPod. iOS đã
ố ớ ự ế ị ủ ề ệ ấ ớ quy t đ nh r t nhi u đ i v i s thành công c a Apple, v i giao di n bóng
4
ố ể ự ễ ử ụ ẹ ắ ạ ỉ ấ ả ẩ b y, đ p m t, và d s d ng. T t c ch là ch m và vu t đ th c thi.
ậ ớ ợ ế ứ ể Cùng v i chính sách h p lý đ thu hút các l p trình viên vi ụ t ng d ng,
ứ ụ ế ớ ườ kho ng d ng Appstore ngày càng l n khi n cho ng i dùng càng thêm
ủ ừ ầ ọ ườ ề ể ượ ứ thích thú, m i nhu c u c a t ng ng i đ u có th đ c đáp ng. Cũng
ư ệ ậ ậ ỗ ụ nh vi c Apple cũng tung ra c p nh t, vá các l ệ i liên t c khi phát hi n,
ế ở ơ ơ khi n cho iOS ngày càng tr nên "thông minh" h n, an toàn h n.
ư ư ế ề ọ ố ị ể Nh ng n u g i iOS là th ng tr năm 2012 thì đi u đó cũng là ch a th .
ỉ ượ ớ ạ ế ị ủ ữ ồ Vì iOS ch đ c cài gi i h n trên thi t b c a Apple g m nh ng thi ế ị t b
ủ ư ầ ị ế ị ế ớ nh iPhone, iPad, iPod... Th ph n c a thi t b Apple trên th gi i nói
ố ệ ỉ ố ạ ấ ớ ố chung là không l n, s li u các b n th y trên các báo đa s ch th ng kê
ạ ị ườ ư ả ọ ố ố ỹ ị t ị i M , nh ng đã g i là th ng tr thì ph i là th ng tr trên th tr ng di
ế ớ ộ đ ng toàn th gi i.
1.1.1 Android
ữ ẻ ặ ộ ướ ế ư M c dù sinh sau đ mu n, nh ng Android đang có nh ng b ầ c ti n th n
ạ ượ ắ ờ ọ ệ ề ề ề ế ố t c, trong th i gian ng n đã đ t đ c nhi u đi u khi n m i h đi u hành
ơ ướ ộ ệ ả ạ ượ ạ di đ ng m c: kho ng 700.000 đi n tho i Android đ ỗ c kích ho t m i
ngày.
ướ ạ ủ ứ Khi mà iOS ngày càng bành tr ng mà Symbian l i không đ s c đ ể
ệ ậ ả ấ ạ ế ạ c nh tranh. Các l p trình viên, các nhà s n xu t đi n tho i chú ý đ n
ệ ề ở ượ ộ ự Android. H đi u hành di đ ng m đ ề ể c Google phát tri n d a trên n n
ả t ng Linux.
ề ố ượ ạ ớ ấ ượ Android ngày càng l n m nh v s l ng và ch t l ở ự ng b i s linh
ạ ừ ề ả ấ ẫ ầ ợ ho t t ớ ả n n t ng Google, phù h p v i c smartphone t m th p l n giá
ử ụ ệ ạ ả ấ ạ ộ cao. Hàng lo t các nhà s n xu t đi n tho i di đ ng s d ng Android làm
ủ ư ả ẩ ệ ề h đi u hành chính cho các s n ph m c a mình. Nh HTC, Samsung, LG,
ừ ệ ủ ế ạ ả Motorola, Sony Ericsson... T đi n tho i, cho đ n máy tính b ng c a các
5
ệ ề ề ậ ế ứ hãng này đ u dùng h đi u hành Android. Các nhà l p trình vi ụ t ng d ng
ứ ụ ề ạ ự ngày càng nhi u trên Android Market. Kho ng d ng đang c nh tranh tr c
ủ ề ế ế ớ ti p v i AppStore c a Apple. Chính vì đi u này mà đã khi n Android ngày
ướ ị ườ ế ắ càng bành tr ng trên th tr ụ ng kh p các châu l c, và đ n năm 2012,
ẽ ố ị ệ ề Android s là h đi u hành th ng tr .
ể ấ ư ạ ườ ư ở Nh ng các b n có th th y, d ng nh Android đang ỉ trên đ nh cao
ề ế ị ỗ ế ị ấ ủ c a mình. Chính vì có quá nhi u thi t b , m i thi t b có c u hình riêng,
ề ứ ụ ư ế ả ấ ệ nhà s n xu t tùy bi n riêng và vi c có quá nhi u ng d ng, nh ng l ạ i
ẩ ụ ể ế ộ ị ả không theo m t chu n c th nào. Khi n Android ngày càng b phân m nh
ờ ạ và r i r c.
ượ ậ ườ ế ẫ ạ Android đ ậ c c p nh t quá th ng xuyên, d n đ n tình tr ng trên th ị
ườ ồ ạ ề ả ượ tr ng có nhi u phiên b n cùng t n t i, đ ớ c phát hành song song v i
ế ự ể ầ ạ ả ố ư nhau. Google đang d n mu n ki m soát và h n ch s phân m nh, nh ng
ở ố ờ ế ơ ả ủ ấ ầ ồ đ ng th i cũng làm m t d n tính "m " v n là tri t lý c b n c a Android.
1.1.2 Windows Phone
ẽ ạ ự ệ ệ ề ợ Sau s ki n Microsoft h p tác cùng Nokia. Nokia s ch y h đi u hành
ủ ớ Windows Phone trên các smartphone c a mình song song v i Symbian và
ớ ợ ế ệ ế ả ấ ạ ầ ị MeeGo. V i l i th là nhà s n xu t đi n tho i chi m th ph n cao trên
ệ ề ắ ầ ộ th gi ế ế ớ Windows Phone b t đ u khi n các h đi u hành di đ ng khác lo i.
l ng.ắ
ệ ề ố Windows Phone 7 không có gì gi ng Windows Mobile. H đi u hành
ệ ệ ạ ớ ộ ợ ờ ớ ầ ớ m i này có m t di n m o hoàn m i, h p th i, v i giao di n Metro đ y
ớ ạ ầ ư ộ ờ ạ ự ỳ ễ ử ụ ặ ố m i l , g n gi ng nh m t t t p chí, và c c k d s d ng m c dù cách
ệ ấ ộ ứ ử ạ ọ ấ x lý m i vi c r t khác. Windows Phone 7 cũng đã t o ra m t s c h p
ứ ụ ệ ớ ố ẫ d n m i cho làng công ngh . Kho ng d ng Marketplace tuy có khiêm t n
ữ ư ề ề ấ ượ ể ầ nh ng r t nhi u ph n m m h u ích và đ ở c ki m soát b i Microsoft.
6
1.1.3 Sysbian
ệ ề ộ ượ ệ Symbian, h đi u hành di đ ng đ c đánh giá là thân thi n, d s ễ ử
ạ ử ụ ố ớ ệ ấ ạ ụ d ng. Symbian r t m nh đ i v i các dòng đi n tho i s d ng màn hình
ơ ả ụ ủ ứ ứ c ng, bàn phím T9 c b n. Và kho ng d ng c a Symbian trong 10 năm
ứ ụ ứ ữ ả ỏ qua không ph i là ít. Nh ng ng d ng này đáp ng không nh trong công
ờ ố ủ ệ ằ ọ ườ vi c, đ i s ng h ng ngày c a m i ng i.
ổ ấ ư ư ề ệ T b n ệ ừ ả Symbian^3, giao di n đã thay đ i r t nhi u. Nh ng ch a rõ r t
ế ắ ả ộ cho l m. Cho đ n b n Symbian Anna, Symbian Belle toàn b đã khác:
ể ượ ố ơ ạ ỏ ượ ề ệ ơ Bi u t ng trau chu t h n, giao di n m t mà h n, lo i b nhi u th ứ
ầ ế ọ ự ố ắ ủ ề ộ không c n thi t. M i s c g ng c a Symbian khi thu c v Nokia có v ẻ
ự ế ư ệ ả ộ ủ ề nh đang có s ti n b rõ r t. Có đi u năm 2012 không ph i là năm c a
ố ố Symbian khi chính Nokia cũng đang xu ng d c.
1.1.4 BlackBerry
ổ ế ế ớ ấ Là dòng máy Smartphone cao c p và n i ti ng trên th gi i do hãng
ữ ấ ườ Research In Motion cung c p. Ngoài nh ng tính năng thông th ng, đi mể
ệ ủ ể ế ế ấ ặ ư ự ạ t o nên s khác bi t c a máy BlackBerry là ki u thi t k r t đ c tr ng;
ố ụ ế ả ơ ổ ị ươ pin t t và h n c là d ch v Push Mail n i ti ng và th ệ ng hi u
ượ ự BlackBerry đ ấ c xây d ng r t thành công.
ượ ố ạ ự ệ BlackBery OS 6 đ c RIM công b t i s ki n Wireless Enterprise
ễ ừ ế ạ ư ư ỹ Symposium (di n ra t 27 đ n 29/4 t i M ). RIM ch a đ a ra chi ti ế ề t v
ấ ượ ạ ả ớ ộ ệ ề h đi u hành m i, ngoài m t đo n video qu ng cáo khá n t ng. Theo
ề ả ế ừ ữ ầ ệ nh ng thông tin đ u tiên, nhi u c i ti n t ớ giao di n, màn hình Home m i,
ớ ự ể ệ ả ị ề menu popup, kh năng chuy n d ch, trình duy t web m i d a trên n n
ươ ỗ ợ ả t ng WebKit t ng thích HTML5. Ngoài ra, BlackBerry OS 6 h tr kh ả
ả ứ ể ể ề ố ơ năng đi u khi n trên màn hình c m ng đa đi m t t h n.
7
ệ ề 1.2 H đi u hành Android
ớ ệ 1.2.1 Gi i thi u
ệ ề ệ ệ ả ạ ộ Android là h đi u hành trên đi n tho i di đ ng (và hi n nay là c trên
ộ ố ầ ự ể ở m t s đ u phát HD, HD Player, TV) phát tri n b i Google và d a trên
ướ ượ ể ở ề ả n n t ng Linux. Tr c đây, Android đ ợ c phát tri n b i công ty liên h p
ượ ạ Android ( sau đó đ c Google mua l i vào năm 2005).
ể ế ứ ữ ự ụ Các nhà phát tri n vi t ng d ng cho Android d a trên ngôn ng Java.
ắ ủ ớ ự ự ắ ậ S ra m t c a Android vào ngày 5 tháng 11 năm 2007 g n v i s thành l p
ế ị ầ ồ ồ ủ c a liên minh thi ầ ở t b c m tay mã ngu n m , bao g m 78 công ty ph n
ụ ề ễ ầ ẩ ạ ộ ằ ứ c ng, ph n m m và vi n thông nh m m c đính t o nên m t chu n m ở
ệ ạ ộ ươ cho đi n tho i di đ ng trong t ng lai.
ế 1.2.2 Ki n trúc
ệ ề ế Hình 1.. Ki n trúc H đi u hành Android
8
ầ 1.2.2.1 T ng Aplycation
ộ ố ứ ệ ề ơ ả ụ ẳ ợ H đi u hành Android tích h p s n m t s ng d ng c b n nh ư
ệ ử ả ạ ồ ổ ị email client, SMS, l ch đi n t ệ , b n đ , trình duy t web, s liên l c và
ộ ố ứ ứ ụ ầ ầ m t s ng d ng khác. Ngoài ra t ng này cũng chính là t ng ch a các
ứ ượ ữ ể ằ ụ ng d ng đ c phát tri n b ng ngôn ng Java.
ầ 1.2.2.2 T ng Applycation Famework
ủ ệ ề ộ ề ả ầ ấ ể T ng này c a h đi u hành Android cung c p m t n n t ng phát tri n
ứ ể ứ ụ ụ ả ở ạ ng d ng m qua đó cho phép nhà phát tri n ng d ng có kh năng t o
ứ ụ ạ ể ứ ra các ng d ng vô cùng sáng t o và phong phú. Các nhà phát tri n ng
ấ ủ ử ụ ế ị ụ d ng đ ượ ự c t do s d ng các tính năng cao c p c a thi ầ ứ t b ph n c ng
ụ ướ ề ư ả ạ ị ị ị ị nh : thông tin đ nh v đ a lý, kh năng ch y d ch v d i n n, thi ế ậ t l p
ủ ứ ồ ồ đ ng h báo th c, thêm notification vào status bar c a màn hình thi ế t
b …ị
ườ ụ ượ ử ụ ủ ộ ầ Ng ể ứ i phát tri n ng d ng đ c phép s d ng đ y đ b API đ ượ c
ứ ứ ụ ế ụ ợ ẳ ủ dùng trong các ng d ng tích h p s n c a Android. Ki n trúc ng d ng
ượ ế ế ụ ệ ằ ả ủ c a Android đ c thi ơ t k nh m m c đích đ n gi n hóa vi c tái s ử
ứ ụ ể ấ ụ d ng các component. Qua đó b t kì ng d ng nào cũng có th công b ố
ụ ứ ố Ứ ẻ các tính năng mà nó mu n chia s cho các ng d ng khác (VD: ng
ể ử ụ ụ ứ ố ở ụ d ng email có mu n các ng d ng khác có th s d ng tính năng g i
ủ ươ ươ ự ầ mail c a nó). Ph ng pháp t ng t cho phép các thành ph n có th ể
ượ ế ở ườ ử ụ đ c thay th b i ng i s d ng.
ộ ậ ầ ầ ồ T ng này bao g m m t t p các services và thành ph n sau:
9
1. M t t p phong phú và có th m r ng bao g m các đ i t
ể ở ộ ộ ậ ố ượ ồ ng View
ượ ụ ư ự ứ ể ậ đ c dùng đ xây d ng ng d ng nh : list, grid, text box, button và th m chí
ụ ứ ể ệ ộ là m t trình duy t web có th nhúng vào ng d ng.
ụ ể ấ ữ ệ ừ ứ 2. Content Provider: Cho phép các ng d ng có th truy xu t d li u t
ẽ ữ ệ ủ ụ ứ ặ các ng d ng khác ho c chia s d li u c a chúng.
ấ ấ ả 3. Resource Manager: Cung c p kh năng truy xu t các tài nguyên non
ư ả ặ code nh hình nh ho c file layout.
4. Notification Manager: Cung c p kh năng hi n th custom alert trên
ể ả ấ ị
thanh status bar.
ờ ủ ộ ứ ụ ả 5. Activity Manager: Giúp qu n lý vòng đ i c a m t ng d ng.
ầ 1.2.2.3 T ng Library
ể ệ ộ ượ ự ừ c xây d ng t ủ BSD c a b th ộ ư System C library: m t th hi n đ
ệ ố ệ ẩ ượ ể ố ư ề vi n h th ng C chu n (libc), đ ỉ c đi u ch nh đ t i u hóa cho các
ế ị ạ ề thi t b ch y trên n n Linux.
ộ ư ệ ễ ị ạ ổ ợ Media libraries: B th vi n h tr trình di n và ghi các đ nh d ng
ổ ế ả âm than và hình nh ph bi n.
ị ộ ể ả Surface manager: Qu n lý hi n th n i dung 2D và 3D.
ạ ượ ử ụ ệ ộ c s d ng trong LibWebCore: M t web browser engine hi n đ i đ
ệ ủ ệ ầ trình duy t c a Android l n trong trình duy t nhúng web view đ ượ ử c s
ứ ụ ụ d ng trong ng d ng.
ổ ợ ồ ọ SGL: Engine h tr đ h a 2D.
ể ệ ộ ượ ự ự ủ c xây d ng d a trên các APIs c a 3D libraries: M t th hi n đ
ư ệ ử ụ ữ ằ ố ầ OpenGL ES 1.0. Nh ng th vi n này s d ng các tăng t c 3D b ng ph n
ể ố ư ề ẫ ị ầ ứ c ng l n ph n m m đ t ể i u hóa hi n th 3D.
10
FreeType: Bitmap and vector font rendering.
ỏ ọ ạ ộ ẽ SQLite: M t DBMS nh g n và m nh m .
1.2.2.4 Android Runtime
ợ ẳ ư ệ ệ ề ộ ậ ợ ố H đi u hành Android tích h p s n m t t p h p các th vi n c t lõi
ư ệ ủ ứ ế ấ ầ ẵ cung c p h u h t các ch c năng có s n trong các th vi n lõi c a ngôn
ộ ế ọ ứ ữ ậ ụ ạ ủ ng l p trình Java. M i ng d ng c a Android ch y trên m t ti n trình
ể ệ ủ ả ả ớ ộ ủ c a riêng nó cùng v i m t th hi n c a máy o Dalvik. Máy o Dalvik
ự ế ế ả ộ ượ ử ổ ổ th c t ể ủ là m t bi n th c a máy o Java đ c s a đ i, b sung các công
ệ ặ ủ ế ị ượ ụ ự ớ ư ngh đ c tr ng c a thi ộ t b di đ ng. Nó đ c xây d ng v i m c đích
ế ị ể ề ạ ả ộ ộ làm cho các thi ệ t b di đ ng có th ch y nhi u máy o m t cách hi u
ướ ụ ứ ự ấ ượ ả qu . Tr c khi th c thi, b t kì ng d ng Android nào cũng đ c convert
ớ ị ự ạ ị ạ thành file th c thi v i đ nh d ng nén Dalvik Executable (.dex). Đ nh d ng
ượ ế ế ể ớ ế ị ạ ớ này đ c thi ợ t k đ phù h p v i các thi ế ề ộ t b h n ch v b nh cũng
ử ụ ộ ử ư ố ộ ả nh t c đ x lý. Ngoài ra máy o Dalvik s d ng b nhân Linux đ ể
ư ấ cung c p các tính năng nh thread, lowlevel memory management.
1.2.2.5 Linux Ken
ệ ề ượ ự H đi u hành Android đ ộ c xây d ng trên b nhân Linux 2.6 cho
ụ ệ ư ữ ố ố ị nh ng d ch v h th ng c t lõi nh : security, memory management,
ộ process management, network stack, driver model. B nhân này làm
ư ộ ớ ế ố ứ ụ ệ ầ ế ị nhi m v nh m t l p trung gian k t n i ph n c ng thi ầ t b và ph n
ứ ụ ng d ng.
11
̀ ́ ́ ̀ ợ ̉ ̃ ư Hình 1.2. Mô hinh h p tac gi a may ao Dalvik va Navite code
ươ ự ệ JNI: Java Native Interface (T ng t khái ni m Application
Programming Interface).
ộ ộ ệ Java Native Interface: là m t b framework cho phép mã l nh vi ế t
ể ọ ạ ặ ượ ọ ở ả ằ b ng Java ch y trên máy o java có th g i ho c đ ộ c g i b i m t
ứ ế ằ Ứ ụ ượ ế ụ ng d ng vi t b ng c vi ầ ộ t cho m t ph n native code ( ng d ng đ
ộ ệ ề ụ ể ụ ể ữ ặ ộ ư ệ ứ c ng c th và trên m t h đi u hành c th ) ho c nh ng b th vi n
ế ằ ặ vi t b ng C, C++ ho c Assembly.
ử ụ ứ ụ ằ ạ B ng cách s d ng JNI, Android cho phép các ng d ng ch y trên
ể ử ụ ữ ả ươ ứ ượ ế ằ máy o Dalvik có th s d ng nh ng ph ng th c đ c vi t b ng các
ữ ấ ư ể ấ ngôn ng c p th p nh : C, C++, Assembly. Qua đó các nhà phát tri n
ứ ộ ư ệ ự ứ ự ụ ể ế ằ ụ ng d ng có th xây d ng ng d ng d a trên các b th vi n vi t b ng
ủ ứ ụ ằ ặ ử ố ộ ự C, C++, Assembly nh m tăng t c đ th c thi c a ng d ng ho c s
ổ ợ ữ ữ ứ ấ ụ d ng nh ng tính năng m c th p mà ngôn ng Java không h tr . Tuy
ườ ộ ứ ắ ự ể ứ ụ ầ ả nhiên ng i phát tri n ng d ng c n ph i cân nh c s gia tăng đ ph c
ộ ư ệ ử ụ ế ị ụ ạ ủ ứ t p c a ng d ng khi quy t đ nh s d ng các b th vi n này.
ữ ậ 1.3 Ngôn ng l p trình JAVA
12
ớ ệ 1.3.1 Gi i thi u
ự ệ ộ Java là m t công ngh xây d ng các
ứ ụ ầ ị ấ ớ ề ng d ng ph n m m có v trí r t l n
ế ỉ ữ ầ ố trong nh ng năm cu i th k 20, đ u th ế
ượ ệ ả ạ ỉ k 21. Nó đ ấ c coi là công ngh mang tính cách m ng và kh thi nh t
ệ ạ ụ ứ ấ ạ ả ố ề trong vi c t o ra các ng d ng có kh năng ch y th ng nh t trên nhi u
ộ ầ ỉ ầ ị ề ả n n t ng mà ch c n biên d ch m t l n.
ư ữ ệ ấ ầ ầ ộ L n đ u tiên xu t hi n vào năm 1992 nh là m t ngôn ng dùng
ộ ộ ậ ụ ứ ự ể ề trong n i b t p đoàn Sun Microsystems đ xây d ng ng d ng đi u
ạ ầ ộ ử ể ệ khi n các b x lý bên trong máy đi n tho i c m tay, lò vi sóng, các
ữ ụ ộ ỉ thi ế ị ệ ử t b đi n t dân d ng khác. Không ch là m t ngôn ng , Java còn là
ộ ề ả ứ ụ ể ể ả m t n n t ng phát tri n và tri n khai ng d ng trong đó máy o Java.
ứ ữ ả Sun, công ty đã phát minh ra ngôn ng Java, chính th c ban hành b n
ể ễ Java Development Kit 1.0 vào năm 1996 hoàn toàn mi n phí đ các nhà
ể ả ề ọ ự ứ ụ ể phát tri n có th t ể i v , h c Java, xây d ng các ng d ng Java và tri n
ệ ề ỗ ợ ầ ủ ế khai chúng trên các h đi u hành có h tr Java. Ban đ u, Java ch y u
ụ ể ệ ể ứ dùng đ phát tri n các Applet, các ng d ng nhúng vào trình duy t, góp
ế ứ ẻ ầ ộ ố ạ ồ ph n làm sinh đ ng các trang web tĩnh v n h t s c t nh t h i đó. Tuy
ớ ự ủ ệ ể ầ ủ nhiên, cùng v i s phát tri n c a công ngh thông tin và nhu c u c a
ủ ầ ấ ộ ị xã h i, Java Applet đã d n m t đi v trí c a nó và thay vào đó, các công
ồ ủ ộ ướ ể ộ ộ ty, c ng đ ng ng h Java đã phát tri n nó theo m t h ng khác.
ư ặ 1.3.2 Đ c tr ng
6.Đ n gi n
ơ ả
13
ữ ườ ế ế ố ộ Nh ng ng i thi ữ ễ ọ ể t k mong mu n phát tri n m t ngôn ng d h c
ộ ớ ố ườ ậ ạ ỏ ậ và quen thu c v i đa s ng ặ i l p trình. Do v y Java lo i b các đ c
ứ ạ ủ ư ư ỏ ị tr ng ph c t p c a C và C++ nh thao tác con tr , thao tác đ nh nghĩa
ồ ử ử ụ ch ng toán t ệ (operator overloading),… Java không s d ng l nh
ư ấ “goto” cũng nh file header (.h). C u trúc “struct” và “union” cũng
ượ ạ ỏ ỏ đ clo i b kh i Java.
7.H ng đ i t
ố ượ ướ ng
ượ ế ế ướ ố ượ Java đ c thi t k xoay quanh mô hình h ng đ i t ậ ng. Vì v y
ữ ệ ể ươ trong Java, tiêu đi m là d li u và các ph ng pháp thao tác lên d ữ
ệ ươ ả ạ ứ ữ ệ li u đó. D li u và các ph ng pháp mô t tr ng thái và cách ng x ử
ộ ố ượ ủ c a m t đ i t ng trong Java.
8.Đ c l p ph n c ng và h đi u hành
ầ ứ ệ ề ộ ậ
ả ộ ươ ượ ư ộ Đây là kh năng m t ch ng trình đ c vi ế ạ t t i m t máy nh ng có
ể ạ ượ ấ ỳ ượ ể ệ ở ứ ồ th ch y đ c b t k đâu. Chúng đ c th hi n m c mã ngu nvà
ứ ị m c nh phân.
ộ ậ ở ứ ộ ị ươ ị Tính đ c l p m c nh phân, m t ch ng trình đã biên d ch có
ầ ứ ể ạ ệ ề ề ề ầ th ch y trên nhi u n n (ph n c ng, h đi u hành) khác mà không c n
ạ ậ ầ ề ả ồ ị d ch l ạ ầ i mã ngu n. Tuy v y c n có ph n m m máy o Java (JVM) ho t
ư ộ ị ạ ự ộ đ ng nh m t trình thông d ch t i máy th c thi.
ườ ủ ể ượ ầ Môi tr ng phát tri n c a Java đ c chia làm hai ph n: Trình
ư ị ị ị ủ biên d ch và trình thông d ch. Không nh C hay C++, trình biên d ch c a
ầ ứ ộ ậ ể ạ ồ ớ Java chuy n mã ngu n thành d ng bytecode đ c l p v i ph n c ng mà
ể ạ ấ ỳ có th ch y trên b t k CPU nào.
ư ươ ướ ạ ạ ể ự Nh ng đ th c thi ch ng trình d i d ng bytecode, t ỗ i m i máy
ủ ả ả ọ ị ầ c n ph i có trình thông d ch c a Java hay còn g i là máy o Java. Máy
ả ự ệ ể ượ o Java chuy n bytecode thành mã l nh mà CPU th c thi đ c.
14
9.M nh mạ
ẽ
ẽ ề ể ữ ệ ữ ả ặ ầ Java là ngôn ng yêu c u ch t ch v ki u d li u.Ph i khai báo
ữ ệ ườ ể ế ươ ể ki u d li u t ng minh khi vi t ch ng trình. Java ki m tra lúcbiên
ạ ỏ ộ ả ậ ờ ị ị d ch và c trong th i gian thông d ch vì v y Java lo i b m t m t s ộ ố
ạ ỗ ậ ử ụ ấ ị ỏ lo il i l p trình nh t đ nh. Java không s d ng con tr và các phép toán
ể ỏ ấ ả ế ậ ả ỗ con tr . Java ki m tra t ự t c các truy nh p đ n m ng, chu i khi th c
ả ằ ể ả ậ ớ ạ thi đ đ m b o r ng các truy nh p đó không ra ngoài gi i h n kích
ướ ữ ệ ừ ạ ự ể ể ể ổ th c. Java ki m tra s chuy n đ i ki u d li u t d ng này sang
ự ạ d ng khác lúc th c thi.
ế ẫ ỗ ủ ử ơ ơ ỗ C ch b y l ả i c a Java giúp đ n gi n hóa qúa trình x lý l i và
ỗ ụ ồ h i ph c sau l i.
ậ ả 10. B o m t
ệ ử ụ ắ ự Viruses là nguyên nhân gây ra s lo l ng trong vi c s d ng máy
ướ ệ ậ ả tính. Tr c khi có Java, các l p trình viên ph i quét virus các t p tr ướ c
ả ề ự ườ ệ khi t ệ i v hay th c hi n chúng. Thông th ng vi c này cũng không
ạ ừ ươ ự ả lo i tr hoàn toàn virus. Ngoài ra ch ng trình khi th c thi có kh năng
ủ ế ạ ả ọ tìm ki m và đ c các thông tin nh y c m trên máy c a ng ườ ử ụ i s d ng
ườ ử ụ ề ế mà ng i s d ng không h hay bi t.
ộ ườ ự ả ươ ấ Java cung c p m t môi tr ng qu n lý th c thi ch ng trình. Nó
ằ ạ ả ậ ộ cho r ng không có m t đo n mã nào là an toàn c . Và vì v y Java
ữ ậ ề ấ ỉ ứ ầ không ch là ngôn ng l p trình thu n tuý mà còn cung c p nhi u m c
ự ươ ể ể đ ki m soát tính an toàn khi th c thi ch ng trình.
Ở ứ ữ ệ ầ ươ ượ m c đ u tiên, d li u và các ph ứ ng th c đ c đóng gói bên
ỉ ượ ớ ệ ấ trong l p. Chúng ch đ ớ c truy xu t thông qua các giao di n mà l p
ỗ ợ ấ ậ ấ ỏ cung c p. Java không h tr con tr vì v y không cho phép truy xu t
ớ ự ế ấ ặ ộ b nh tr c ti p. Nó cũng ngăn ch n không cho truy xu t thông tin bên
15
ướ ủ ả ằ ấ ỹ ngoài kích th ậ c c a m ng b ng k thu t tràn và cũng cung c p k ỹ
ậ ọ ư ạ ộ ớ ặ thu t d n rác trong b nh . Các đ c tr ng này t o cho Java an toàn t ố i
ơ ộ ả đa và cókh năng c đ ng cao.
ể ả ứ ể ả ớ ị Trong l p th hai, trình biên d ch ki m soát đ đ m b o mã là an
ắ ủ toàn, và tuân theo các nguyên t c c a Java.
ớ ượ ả ể ả ở ị ứ L p th ba đ c đ m b o b i trình thông d ch. Chúng ki m tra xem
ả ả ắ ướ bytecode có đ m b o các qui t c an toàn tr ự c khi th c thi.
ứ ư ể ệ ạ ớ ể ệ ớ ộ ớ L p th t ki m soát vi c n p các l p vào b nh đ giám sát vi c vi
11. Phân tán
ớ ạ ấ ướ ệ ố ạ ạ ph m gi i h n truy xu t tr c khi n p vào h th ng.
ứ ụ ự ệ ể ể ể Java có th dùng đ xây d ng các ng d ng có th làm vi c trên
ầ ứ ệ ề ồ ọ ề ệ ượ nhi u ph n c ng, h đi u hành và giao di n đ h a. Java đ c thi ế t
ụ ứ ậ ạ ạ ế ỗ ợ k h tr cho các ng d ng ch y trên m ng. Vì v y chúng đ ượ ử c s
ụ ư ể ộ ơ ử ụ ụ d ng r ng rãi nh là công c phát tri n trên Internet, n i s d ng
12. Đa lu ngồ
ề ả ề nhi u n n t ng khác nhau.
ươ ể ự ồ Ch ng trình Java đa lu ng( Multithreading) đ th c thi các công
ệ ấ ồ ờ ả ộ ữ ồ vi c đ ng th i. Chúng cũng cung c p gi i pháp đ ng b gi a các
ỗ ợ ứ ự ặ ồ ụ lu ng. Đ c tính h tr đa này này cho phép xây d ng các ng d ng
13. Đ ngộ
ệ ạ ả ạ trên m ngch y hi u qu .
ượ ế ế ư ộ ữ ộ ứ ể Java đ c thi ữ t k nh m t ngôn ng đ ng đ đáp ng cho nh ng
ườ ở ươ ứ ấ ề môi tr ng m . Các ch ự ng trình Java ch a r t nhi u thông tin th c
16
ố ượ ể ằ ậ ạỵ ề thi nh m ki m soát và truy nh p đ i t ng lúc ch . Đi u nàycho
ế ộ ả phép kh năng liên k t đ ng mã.
ế ạ 1.3.3 Các th m nh
ượ ọ ữ ậ Ngôn ng l p trình JAVA đ c ch n cho Collections framework vì
ộ ố ướ m t s lý do d i đây:
ữ ậ ướ ố ượ ứ Nó là ngôn ng l p trình h ng đ i t ấ ng và các ch c năng cung c p
ể ượ ỉ ạ ở ỹ ở b i Collections framework ch có th đ c mang l ậ i b i các k thu t
ướ ố ượ h ng đ i t ng.
ở ộ ầ ẩ ậ ươ ủ Nó là thành ph n m r ng c a chu n ANSI C vì v y các ch ng trình
ế ằ ị ấ ủ vi ẽ t b ng java c a framework này s không b m t đi tính năng nào và
ườ ợ ế ủ ớ ng i dùng đ ượ ưở c h ng các l ữ i th c a ngôn ng java.V i ngôn ng ữ
ườ ể ự ả ậ ọ ướ ố ượ này, ng i dùng có th l a ch n c l p trình h ng đ i t ậ ng và l p
ủ ụ ầ ế trình th t c khi c n thi t.
ễ ọ ủ ả ắ ơ ở ọ Nó đ n gi n và d h c b i cú pháp c a nó khá ng n g n nên nó giúp
ạ ượ ậ ệ ặ ả cho l p trình viên đ t đ ề ố c hi u qu mong mu n mà không g p nhi u
khó khăn.
ữ ạ ế ị ể ượ ư ộ ở Nó là m t ngôn ng m nh b i vì các quy t đ nh có th đ c đ a ra lúc
ẽ ượ ớ ươ ạ ị biên d ch s đ c trì hoãn cho t i khi ch ng trình ch y.
ộ ấ ỗ ợ ở ạ ả ộ ộ ơ ố ớ Nó h tr ràng bu c đ ng và m t o ra m t c u trúc đ n gi n đ i v i
ệ ươ ườ giao di n t ng tác ng i dùng.
ứ ạ ể ể ộ ệ ụ Nó cho phép phát tri n các công c phát tri n ph c t p. M t giao di n
ệ ố ệ ệ ế ề ạ ậ cho h th ng run time t o đi u ki n cho vi c ti p c n các thông tin lúc
ứ ụ ệ ế ằ run time giúp cho vi c monitor ng d ng vi t b ng JAVA.
ệ 1.3.4 Mô hình làm vi c Xcode
17
ề ễ ầ ượ ể ử ụ ể Eclipse là ph n m m mi n phí, đ c các nhà phát tri n s d ng đ xây
ữ ứ ử ụ ụ ự ể ể ợ d ng nh ng ng d ng J2EE, s d ng Eclipse nhà phát tri n có th tích h p
ụ ỗ ợ ể ề ượ ộ ộ ỉ ớ v i nhi u công c h tr khác đ có đ ụ c m t b công c hòan ch nh mà
ề ế ầ ồ không c n dùng đ n ph n ầ m m riêng nào khác. Eclipse SDK bao g m 3
ầ ph n chính:
Platform, Java Development Toolkit(JDT), Plugin Development
Environment(PDE)
ớ ượ ư ộ ườ ỗ ợ ể V i JDT, Eclipse đ c xem nh là m t môi tr ng h tr phát tri n Java
ỗ ợ ệ ở ộ ẽ ạ ợ m nh m . PDE h tr vi c m r ng Eclipse, tích h p các Plugin vào
Eclipse Platform.
ề ả ụ ủ ề ầ ộ Eclipse Platform là n n t ng c a toàn b ph n m m Eclipse, m c đích
ụ ầ ữ ấ ị ế ữ ệ ợ ủ c a nó là cung c p nh ng d ch v c n thi t cho vi c tích h p nh ng b ộ
ụ ế ể ầ ướ ạ ả công c phát tri n ph n m m khách d i d ng Plugin, b n thân JDT
ể ượ ư ư ộ ộ cũng có th đ c coi nh là m t Plugin làm cho Eclipse nh là m t Java
IDE (Integrated Development Enviroment).
ủ ầ Các thành ph n chính c a Eclipse:
(cid:0) The Platform runtime: Công vi c chính c a Platform runtime là phát
ủ ệ
ủ ỗ ư ụ xem plugin nào đang có trong th m c plugin c aEclipse.M i Plugin
ậ ệ ế ố ữ ầ ề đ u có 1 t p tin Manifest li t kê nh ng k t n i mà plugin c n.Pugin
ỉ ượ ả ự ự ầ ỗ ế ể ả ượ ch đ c t ivào Eclipse m i khi th c s c n thi t đ gi m l ng tài
ở ạ ầ ờ nguyên yêu c u và th i gian kh i t o..
(cid:0) The workspace: Workspace ch u trách nhi m qu n lý tài nguyên ng
ệ ả ị ườ i
dùng đ ượ ồ ứ ướ ạ ch c d i d ng Project. c t
ư ụ ư ụ ộ ỗ M i Project là m t th m c con trong th m c Workspace.
18
Workspace b o qu n c p th p l ch s nh ng s thay đ i tài
ấ ị ự ử ữ ả ả ấ ổ
ấ ườ nguyên, tránh th t thoát tài nguyên ng i dùng.
Workspace đ ng th i ch u trách nhi m thông báo nh ng công c
ữ ệ ồ ờ ị ụ
ế ệ ầ c n thi t cho vi c thay đôit tà nguyên.
(cid:0) The Workbench: Jface. Eclipse không hoàn toan b t bu c ph i s d ng ả ử ụ
ắ ộ
ể ử ụ ể ậ ạ ẫ ệ SWT hay Jface đ l p trình giao di n, b n v n có th s d ng AWT
ủ ệ ặ hay SWING c a Java thông qua vi c cài đ t các Plugins.
(cid:0) Team supost: Trang b h th ng qu n tr đ qu n lý d án c a ng
ị ệ ố ị ể ủ ự ả ả ườ i
dùng: Concurrent Version System(CVS).
(cid:0) Help: Cung c p h th ng tài li u m r ng, có th là đ nh d ng HTML
ệ ố ở ộ ệ ể ấ ạ ị
hay XML.
19
ươ
Ch
ng 2: PHÂN TÍCH BÀI TOÁN
2.1 Gi
ớ ệ ề i thi u đ tài
2.1.1 Mô t
ả bài toán
ệ ọ ờ ạ ể ế ệ ứ ề ậ Trong th i đ i công ngh thông tin vi c h c và ki m tra ki n th c v lu t
ườ ệ ậ ở ơ ờ ế ữ ế giao thông đ ng tr nên thu n ti n h n bao gi ệ h t qua nh ng chi c đi n
ể ạ ệ ậ ạ ầ tho i thông minh. Qua công ngh l p trình Android có th l o ra ph n
ứ ề ậ ỗ ợ ể ế ề ọ ườ m m h c và h tr ki m tra ki n th c v lu t giao thông đ ộ ng b đem
ạ ự ệ ậ ườ ở ọ l i s thu n ti n cho ng i dùng ọ ơ m i lúc m i n i
ứ 2.1.2 Các ch c năng
ậ ườ Lu t giao thông đ ộ ng b
(cid:0) ả ạ ậ Văn b ng quy ph m pháp lu t,
(cid:0) ứ ử ạ Các m c x ph t xe moto
ể Các bi n báo giao thông
ệ ạ Luy n thi sát h ch
ạ ử Thi th sát h ch
ể ố ứ ỉ Tra c u bi n s các t nh
ơ ở ữ ệ 2.2 C s d li u
ử ạ ứ “fine” : ch a thông tin x ph t xe moto
ề ậ ứ ườ ộ “lawdocument” : Ch a thông tin v lu t giao thông đ ng b
ể ố ủ ứ ề ỉ “licenseplates”: ch a thông tin v các bi n s xe c a các t nh
ể ố ứ ạ “trafficsigns”: ch a thông tin các lo i bi n s xe
20
CSDL SQLite
ở ạ Kh i t o csdl:
ế ừ ế ươ ng
ạ ứ ớ T o 1 l p CreateDatabase k th a SQLiteOpenHelper có các bi n và ph th c sau:
1.
private static final String DATABASE_NAME = "mydb.db";
ẽ ạ ủ (Tên c a csdl s t o là mydb)
2.
private static final int SCHEMA_VERSION = 2; ả ủ (Phiên b n c a sqlite)
3.
ươ ở ự ủ ớ ứ Ph ng th c kh i d ng c a l p là
public CreateDatabase(Context context){ super(context, DATABASE_NAME, null, SCHEMA_VERSION); }
ẽ ự ộ ạ ạ đ ng ch y và t o csdl
ọ ế ớ ư ặ ế ạ (Khi g i đ n l p CreateDatabase thì h m này s t ẽ ở ế n u ch a có ho c n u đã có csdl này thì nó s m csdl nó lên)
4.
ươ ứ Ghi đè ph ủ ớ ng th c onCreate c a l p CreateDatabase:
@Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE lawdocument (provision TEXT,content TEXT,chapter TEXT);"); db.execSQL("CREATE TABLE fine (_id INTEGER PRIMARY KEY AUTOINCREMENT,sentence TEXT, price TEXT);");
21
ạ ẽ ượ ự ộ c t
ở ự ẽ ạ ượ ạ
ề ử ạ ỉ ứ ả ả
ề ể ứ ả db.execSQL("CREATE TABLE licenseplates (cityname TEXT,licensepalte INTERGER);"); db.execSQL("CREATE TABLE trafficsigns (signname TEXT,signtype TEXT,signconten TEXT);"); } ọ ế ớ Khi g i đ n l p CreateDatabase thì hàm này cũng s đ đ ng ch y sau ả ả c ch y. Hàm này s t o các b ng lawdocument (b ng khi hàm Kh i d ng đ ứ ữ ệ ả ả ậ ả các văn b n pháp lu t), b ng fine (b ng này ch a d li u v x ph t xe ả ể máy), b ng licenseplates (b ng ch a các thông tin bi n xe theo các t nh), b ng trafficsigns (b ng ch a các thông tin v bi n báo giao thông).
5.
Hàm getAll
ể ầ
ả ề ố ấ ữ ệ ủ ả ị ủ ả ẽ ả ề ọ ộ
ừ public Cursor getAll(String tableName){ return (getReadableDatabase().rawQuery("SELECT * FROM "+tableName,null)); } Hàm ki u tr v là Cursor có đ u vào là String tableName là tên c a b ng mu n l y d li u. Khi g i hàm này thì s tr v toàn b giá tr c a b ng tableName t trong csdl.
6.
Hàm getByID
ả ề ể
ầ ả ề ị ủ ả ị
ủ ầ public Cursor getById(String tableName,String id){ String [] args = {id}; return (getReadableDatabase().rawQuery("SELECT * FROM "+ tableName + " WHERE _id=?",args)); } Hàm có ki u tr v là Cursor và đ u vào là String tableName, String id (tên ả b ng và id c a giá tr ). Hàm này tr v giá tr c a b ng có tên tableName và có id = id đ u vào .
7.
Hàm insert
22
ế
ầ ả ệ
ẽ ả ộ ị public void insert(String tableName, ContentValues contentValues){ getWritableDatabase().insert(tableName,null,contentValues); } Hàm này có 2 bi n đ u vào là String tableName và ContentValues ự ố ư ị contenValues (tên b ng và giá tr mu n l u vào csdl). Sau khi th c hi n hàm này, ta s thêm vào csdl m t giá tr contentValues vào b ng có tên tableName.
8.
Hàm deleteAllData
ữ ệ ố
ả ộ ữ ệ ủ ả ầ ượ ọ ẽ c g i s xóa toàn b d li u c a b ng có tên tableName trong
public void deleteAllData(String tableName){ getWritableDatabase().execSQL("DELETE FROM " + tableName); } Hàm này có đ u vào là String tableName (tên b ng mu n xóa d li u). Hàm này khi đ csdl.
9.
ả ữ ệ Cách ghi d li u vào b ng:
ướ ố ượ ở ạ c tiên ta ph i t o đ i t
ả ạ ủ ớ ế i,
ẽ ở CreateDatabase createDatabase = new CreateDatabase(context); ể ng ki u CreateDatabase, sau khi kh i t o thì Tr ư ồ ạ ạ ở ự hàm kh i d ng c a l p CreateDatabase s ch y và t o csdl n u ch a t n t ồ ạ ế n u đã t n t ẽ ạ i hàm này s m csdl “mydb” lên.
createDatabase.deleteAllData("fine");
ẽ ồ ạ ể ả i trong b ng “fine” đ tránh ghi
ộ ữ ệ ả ề ầ ữ ệ Hàm này s xóa toàn b d li u đã t n t nhi u l n d li u vào b ng.
ContentValues cv = new ContentValues();
ẽ ế ế ộ
ữ ệ ụ ể ở ạ Hàm này s kh i t o m t bi n “cv” ki u ContenValues , bi n này có tác d ng gán d li u vào và thêm vào csdl.
try {
23
ườ ườ ề ồ i đi u khi n, ng
ả ể ộ ặ ộ
ể ể ộ ); ng b : " ồ ế ị ườ 100.000 đ ng đ n 200.000
);
cv.put("sentence","1.\tNg i ng i trên xe không ả đ i mũ b o hi m ho c đ i mũ b o hi m không cài quai đúng quy cách khi tham gia giao thông trên đ ạ ề ừ cv.put("price", ">>b ph t ti n t đ ng."ồ createDatabase.insert("fine", cv);
ữ ệ ố ệ ế
ẽ ự ả ệ ộ ộ catch (Exception e){ e.printStackTrace(); } finally { createDatabase.close(); } ệ Kh i l nh này s th c hi n công vi c gán d li u vào bi n cv qua hàm ữ ệ put(tên c t trong b ng , n i dung d li u);
ữ ệ ẽ ọ bi n
ừ ế ng insert t ả ố ữ
ươ c kh i t o bên trên v i đ u vào là tên b ng mu n thêm d ượ ữ ệ ệ Sau khi gán d li u vào bi n “cv” ta s g i ph ớ ầ ượ createDatabase đ ế li u và bi n cv đã đ ế ở ạ c gán d li u.
ấ ặ ệ ẽ c
ế ữ ệ ố ệ
ố ệ ẽ ỏ ẽ ử ế
ệ ữ ệ ố ệ ố ệ ẽ ử ả ỗ
ố ệ ự ố i. Trong kh i l nh finally s x lý cho dù kh i i
ượ ế ạ ớ ộ i phóng dung l
ả ượ ệ Vi c thêm d li u vào csdl trong android r t ch t ch nên vi c đó ph i đ ầ ệ ặ đ t trong kh i l nh trycatch. N u thêm thành công thì s b qua ph n l nh ệ ự th c hi n trong kh i l nh catch. Trong kh i l nh catch s x lý n u vi c thêm d li u vào csdl x y ra l ẽ ả ệ ệ l nh try hay kh i l nh catch có th c hi n hay không. Trong hàm này s gi ị ể ả phóng bi n createDatabase đã t o đ gi ng b nh đã b chi m.ế
10.
ớ
ươ ứ ệ ệ ữ
ư ướ ướ ệ Các l p SetDataFineMoto, SetImageData, SetLawProvisionData, SetLicensePlatesData có ph ả li u vào các b ng trong csdl qua các b ự ng th c kh i d ng th c hi n công vi c thêm d c 9. ở ự c nh b
ể ủ ớ ỉ ầ ạ ệ ượ ọ ế ế
ộ c g i đ n, ta ch c n t o m t bi n có ki u c a l p trên ẽ ượ Khi các giao di n đ ủ ả thì csdl c a b ng đó s đ c thêm vào.
SetDataFineMoto setDataFineMoto = new SetDataFineMoto(this); SetLicensePlatesData licensePlatesData = new SetLicensePlatesData(this);
24
ươ
Ứ
Ụ
Ch
ng 3 NG D NG
3.1 Ngu n d li u
ồ ữ ệ
http://vanban.chinhphu.vn/
3.2 Giao di nệ
http://www.luatgiaothongduongbo.net/
ệ ủ ứ ụ Hình 3.1 Giao di n c a ng d ng
25
ệ ậ ấ ậ ạ Hình 3.2 giao di n quy ph m pháp lu t khi n vào lu t giao thông
ườ ộ đ ng b
26
ứ ử ạ Hình 3.3 các m c x ph t moto
27
ể ố ứ ệ Hình 3.4 giao di n tra c u bi n s
ế ố ứ ỉ Hình 3.5 tra c u tên t nh theo bi n s xe
28
Ả
Ệ
TÀI LI U THAM KH O
ậ ế ị ệ ộ ở 1) L p trình thi t b di đ ng, Khoa CNTT – Vi n ĐH M Hà
N iộ
2) http://developer.android.com/reference/packages.html
3) http://android.vn/threads/khotailieugiaotrinhvelaptrinh
androiddaydu.16856/
29

