Khóa luận Xây dựng hệ thống đọc tin trên mobile

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Nguyn Trung Kiên  
XÂY DNG HTHNG ĐC TIN TRÊN MOBILE  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
Cán bhướng dn: TS. Phm Bo Sơn  
HÀ NI – 2010  
Hthng đc tin trên mobile  
Nguyn Trung Kiên  
Li cm ơn  
Trước tiên, em xin gi li cm ơn sâu sc nht đến thy Phm Bo Sơn, người đã  
không qun vt vhướng dn em trong sut thi gian làm khóa lun tt nghip va  
qua.  
Em xin bày tli cm ơn sâu sc đến các thy cô giáo trong Trường Đại Hc  
Công Nghệ đã tn tình dy dem sut bn năm hc qua.  
Con xin cm ơn b, mvà gia đình đã luôn bên con, cho con động lc để làm  
vic tt hơn.  
Tôi xin cám ơn tt ccác bn đồng nghip ti Công ty cphn công nghSEE đã  
giúp tôi rt nhiu khi nghiên cu đề tài này.  
Cm ơn tt cbn bè K51CA đã luôn sát cánh cùng tôi.  
i
Hthng đc tin trên mobile  
Nguyn Trung Kiên  
Tóm tt ni dung  
Vi vic bùng ncác thông tin, tin tc trên web hin nay nhiu vô kvà bn  
không thnào có đủ thi gian để đọc hết. Ly mt ví dụ đơn gin, hàng ngày có rt  
nhiu tin tc được đăng ti các website báo đin tnhư vnexpress, dantri,  
vietnamenet,… Nếu phi vào tng trang để đọc thì rt mt thi gian, do đó nếu dùng  
trình tng hp tin tc để chỉ định các trang, mc nào ca các báo cn được gom li  
trong mt giao din duy nht để đọc thì stin li hơn rt nhiu. Hơn na vi xu thế  
hin nay Vit Nam, 3G bt đầu phát trin, nhu cu đọc tin ca người dùng bng đin  
thoi là rt ln. Chính vì thế vic ra đời mt hthng đọc tin tự động tcác ngun báo  
khác nhau trên đin thoi là cn thiết  
Trong khóa lun này, chúng tôi trình bày mô hình để gii quyết bài toán tng hp  
tin tcác ngun khác nhau thông vic đọc các kênh RSS, cùng vi đó là quá trình xây  
dng phn mm bng ngôn ngJava (J2ME) cho các dòng đin thoi để hin thcác  
tin tc này. Da trên framework KUIX – mt framework mã ngun mở để xây dng  
các ng dng J2ME, chúng tôi đã mrng và phát trin để viết mt ng dng có thể  
chy trên hu hết các dòng máy di động htrJava hin nay.  
ii  
Hthng đc tin trên mobile  
Nguyn Trung Kiên  
Mc lc  
Li cm ơn....................................................................................................................... i  
Tóm tt ni dung ........................................................................................................... ii  
Mc lc .......................................................................................................................... iii  
Danh sách các bng ...................................................................................................... vi  
Danh sách các hình v................................................................................................. vii  
Thut ngviết tt .......................................................................................................viii  
Chương 1 ........................................................................................................................ 1  
Mở đầu............................................................................................................................ 1  
1.1.Ti sao cn các trình tng hp tin tự động cho các dòng máy di động ................. 1  
1.1.1 Nguyên nhân ra đời các hthng tng hp tin tự động.................................. 1  
1.1.2 Các ng dng thương mi di động.................................................................. 2  
1.2. Mc đích ca để tài khóa lun .............................................................................. 2  
1.3. Các thách thc đối vi đề tài ................................................................................ 3  
1.3.1. Thách thc đối vi phn tng hp tin tc...................................................... 3  
1.3.2. Thách thc đối vi ng dng xây dng trên mobile...................................... 4  
1.4. Các kết quthu được: ........................................................................................... 5  
1.5. Tóm lược ni dung các chương còn li ................................................................ 5  
Chương 2 ........................................................................................................................ 7  
Gii thiu vJ2ME và framework KUIX................................................................... 7  
2.1. Khái quát vcông nghJ2ME.............................................................................. 7  
2.1.1.Chi tiết vtng cu hình ................................................................................. 8  
2.1.1.1. CLDC – Connected Limited Device Configuration................................ 9  
2.1.2. MIDP (Mobile Information Device Profile)................................................ 11  
2.2.MIDlet.................................................................................................................. 11  
2.2.1. Bkhung MIDlet (MIDlet Skeleton)........................................................... 12  
2.2.2. Chu ksng ca MIDlet.............................................................................. 13  
2.2.3. Tp tin JAR .................................................................................................. 15  
2.3. Đồ ha (Graphic) ................................................................................................ 15  
iii  
Hthng đc tin trên mobile  
Nguyn Trung Kiên  
2.3.1. Đồ ha mc thp (low level) và mc cao (high level)................................. 15  
2.3.1.1. Đồ ha mc cao (High Level Graphics) (Lp Screen) ......................... 15  
2.3.1.2. Đồ ha mc thp (Lp Canvas) ............................................................ 15  
2.4. Lưu trbn ghi (Record Store)........................................................................... 16  
2.5. Lp trình mng.................................................................................................... 17  
2.5.1.Khung mng CLDC tng quát ...................................................................... 17  
2.5.3. Kết ni HTTP............................................................................................... 18  
2.6. Gii thiu vFramework KUIX......................................................................... 18  
2.6.1. KUIX là gì?.................................................................................................. 19  
2.6.2. Đim mnh ca KUIX ................................................................................. 20  
2.6.2. Cơ bn vthiết kế giao din trong KUIX .................................................... 20  
2.6.3. Worker trong KUIX..................................................................................... 21  
2.6.4. KUIX Widget:.............................................................................................. 21  
2.6.5. Cơ chế xlý skin trong KUIX................................................................ 22  
2.7. Tng kết chương................................................................................................. 23  
Chương 3 ...................................................................................................................... 25  
Kiến trúc đề xut cho hthng .................................................................................. 25  
3.1.Tng quan vhthng......................................................................................... 25  
3.1.1. Tng lưu gi(Persistant tier): ...................................................................... 26  
3.1.2. Tng xlý nghip v(Business tier):.......................................................... 26  
3.1.3. Tng trình din (Presentation tier):.............................................................. 27  
3.2. Các ngôn nglp trình sdng.......................................................................... 28  
3.2.1. Python .......................................................................................................... 28  
3.2.2. J2ME ............................................................................................................ 29  
3.2.3. Cake PHP ..................................................................................................... 29  
3.2.3.1. Gii thiu............................................................................................... 29  
3.2.3.2. Mô hình MVC ....................................................................................... 30  
3.3. Tng kết chương................................................................................................. 31  
Chương 4 ...................................................................................................................... 32  
Module thu thp tin tc và phát hin các tin trùng lp........................................... 32  
4.1. Nhim vca module thu thp tin tc và phát hin các tin trùng lp................ 32  
4.2. Gii thiu vcác kênh tin tc RSS..................................................................... 32  
4.2.1. RSS là gì?..................................................................................................... 32  
iv  
Hthng đc tin trên mobile  
Nguyn Trung Kiên  
4.2.1. Cu trúc ca các văn bn RSS ..................................................................... 33  
4.2. Chi tiết hot động................................................................................................ 34  
4.3. Thut toán kim tra strùng lp các tin ............................................................. 37  
4.3.1. Độ ging nhau ca hai xâu........................................................................... 37  
4.3.2. Thut toán..................................................................................................... 37  
4.3.3. Thc nghim và kim tra độ chính xác ca thut toán ................................ 38  
4.3.4. Phân tích li ................................................................................................. 39  
4.4. Tng kết chương................................................................................................. 41  
Chương 5 ...................................................................................................................... 42  
Xây dng ng dng đọc báo mNews trên di động ................................................... 42  
5.1. ng dng đọc báo trên di động: ......................................................................... 42  
5.2. Phân tích yêu cu ................................................................................................ 42  
5.2.1. Yêu cu người sdng ................................................................................ 42  
5.2.2. Yêu cu đối vi hthng ............................................................................. 42  
5.3. Biu đồ Usecase.................................................................................................. 43  
5.3. Lung skin ..................................................................................................... 44  
5.3.1. Ly các chuyên mc tin ............................................................................... 44  
5.3.2. Ly các tin.................................................................................................... 44  
5.3.3. Tìm kiếm tin................................................................................................. 45  
5.3.4. Đọc mt tin................................................................................................... 45  
5.3.5. Duyt các tin ................................................................................................ 46  
5.4. Giao din ca ng dng:..................................................................................... 47  
5.5. Giao thc gia ng dng và máy ch................................................................. 49  
5.5.1. So sánh kết ni bng socket và kết ni bng HTTP .................................... 49  
5.5.2. Chi tiết giao thc.......................................................................................... 50  
5.6. Parser dliu tserver gi v............................................................................ 51  
5.7. Bài toán xlý tiếng Vit trên đin thoi............................................................. 52  
5.8. Tng kết chương................................................................................................. 54  
Chương 6 ...................................................................................................................... 55  
Tng kết........................................................................................................................ 55  
Tài liu tham kho....................................................................................................... 56  
v
Hthng đc tin trên mobile  
Nguyn Trung Kiên  
Danh sách các bng  
Bng 1. Danh sách chuyên mc tbáo vnexpress và dantri.com.vn .............................. 3  
Bng 2. Bng ánh xchuyên mc ca báo vnexpress................................................... 35  
Bng 3 . Usecase Ly các chuyên mc tin .................................................................... 44  
Bng 4. Usecase Ly các tin.......................................................................................... 44  
Bng 5. Usecase Tìm kiếm tin....................................................................................... 45  
Bng 6. Usecase Đọc mt tin ........................................................................................ 45  
Bng 7. Usecase Duyt các tin ...................................................................................... 46  
Bng 8. So sánh gia kết ni bng socket và kết ni bng HTTP ................................ 49  
vi  
Hthng đc tin trên mobile  
Nguyn Trung Kiên  
Danh sách các hình vẽ  
Hình 1. Các tng ca J2ME[7] ........................................................................................ 7  
Hình 2. Btin kim tra ................................................................................................ 10  
Hình 3. Mô hình Sandbox ............................................................................................. 10  
Hình 4. Tng quan vMidlet ........................................................................................ 12  
Hình 5. Bkhung MIDlet.............................................................................................. 12  
Hình 6. Chu ksng ca MIDlet[3].............................................................................. 14  
Hình 7. Lưu trbn ghi................................................................................................. 16  
Hình 8. Khung mng CLDC tng quát.......................................................................... 17  
Hình 9. Mt vài ng dng sdng KUIX..................................................................... 19  
Hình 10. Cơ chế xlý skin ca KUIX[13]............................................................... 22  
Hình 11. Thut toán xlý ca FocusManager[13]........................................................ 23  
Hình 12. Kiến trúc tng quan ca hthng đọc tin trên mobile ................................... 26  
Hình 13. Màn hình để kim tra ni dung hai bn tin..................................................... 38  
Hình 14. Biu đồ Usecase phn mm mNews .............................................................. 43  
Hình 15. Giao din khi chy ng dng.......................................................................... 47  
Hình 16. Giao din danh sách các chuyên mc tin ....................................................... 47  
Hình 17. Giao din các tin trong mt chuyên mc........................................................ 48  
Hình 18. Giao din chi tiết mt tin................................................................................ 48  
Hình 19. To font bng phn mm Bitmap Font Editor................................................ 54  
vii  
Hthng đc tin trên mobile  
Nguyn Trung Kiên  
Thut ngviết tt  
CLDC  
CDC  
GPRS  
J2EE  
J2ME  
J2SE  
JAD  
Connected Limit Device Configuration  
Connected Device Configuration  
General Packet Radio Service  
Java 2 Platform, Enterprise Edition  
Java 2 Platform, Micro Edition  
Java 2 Platform, Standard Edition  
Java Application Descriptor  
Java Application Archive  
JAR  
JNI  
Java Native Interface Support  
Java Specification Request  
Kilo Virtual Machine  
JSR  
KVM  
m-Commerce Mobile Commerce  
MIDlet  
MIDP  
MVC  
OTA  
PDA  
MIDP applet  
Mobile Information Device Profile  
Model-View-Controller  
Over The Air  
Personal Digital Assistant  
Record Management System  
Software Developer’s Kit  
Really Simple Syndication  
eXensible Markup Language  
RMS  
SDK  
RSS  
XML  
viii  
Chương 1. Mở đầu  
Nguyn Trung Kiên  
Chương 1  
Mở đầu  
1.1.Ti sao cn các trình tng hp tin tự động cho các dòng  
máy di động  
1.1.1 Nguyên nhân ra đời các hthng tng hp tin tự động  
Cp nht thông tin luôn là nhu cu thiết yếu ca con người, cm tbáo mi cm  
ci đọc trên va hè, trong công viên, hay nhâm nhi cc cà phê vào bui sáng đã là thói  
quen ca nhiu người. Sbùng nca internet đã cho ra đời báo đin t. Vi vic liên  
tc cp nht và đưa ra các thông tin mi và nóng nht, đồng thi cho phép người đọc  
tiếp cn các thông tin đó bt cthi gian và địa đim nào, báo đin tử đã dn trở  
thành kênh thông tin quan trng đối vi người dùng internet. Có nhiu đánh giá cho  
rng báo đin tđim sáng ca cách mng công nghthông tin. Ngày càng xut  
hin nhiu tbáo đin ttruyn ti thông tin dưới mi hình thc mà các loi báo  
truyn thng cung cp. Có thktên mt strang báo đin tln Vit Nam như:  
vnexpress.vn,  
dantri.com.vn,  
vietnamnet.vn,  
24h.com.vn,  
tuoitre.com.vn,  
thanhnien.com.vn,…  
Tuy nhiên, khi mà các trang báo đin tra đời quá nhanh, sxut hin tình trng  
“lon” thông tin. Quá nhiu trang web tin tc, quá nhiu thông tin trùng lp slàm cho  
người đọc không biết phi chn ngun tin nào để xem. Ly mt ví dụ đơn gin, hàng  
ngày có rt nhiu tin tc được đăng ti các website báo đin tnhư vnexpress,  
tuoitre, thanhnien, dantri, hanoimoi,… Nếu phi vào tng trang để đọc thì rt mt thi  
gian, thêm vào đó nếu chỉ đọc 1, 2 mc tin trên mng có llà không đủ, chính vì  
nguyên nhân này, các trình đọc tin tự động, hay các trang tng hp tin tc (tiếng Anh  
gi là News aggregator) đã ra đời. Các trang này stng hp ni dung các trang, các  
mc tcác báo đin tkhác nhau, và đưa ra mt giao din duy nht để tin li cho  
người đọc. Như vy thay vì phi đi kiếm thông tin, bng cách dùng các trang tin tng  
hp, thông tin stự động đưa xung cho người đọc. Đối vi trang tng hp tin tc cho  
tiếng Vit, có thnói baomoi.com đi tiên phong. Vi hơn 100 ngun tin và được cp  
nht liên tc, các tin trên baomoi.com khá phong phú và cp nht. Bên cnh đó có thể  
1
Chương 1. Mở đầu  
Nguyn Trung Kiên  
kể đến mt ssite khác như vietica.com, xalo.vn, gocnhin.com, socbay.com,  
vsearch.vn,….  
1.1.2 Các ng dng thương mi di động  
Thương mi di động (m-Commerce) là mt bước phát trin và kế tha ca  
thương mi đin t(e-Commerce). vi nhng đặc thù và ththách riêng cho thị  
trường thiết bdi động. Các ng dng m-Commerce được chia thành nhiu loi. Mt  
trong nhng loi đó là dch vthông tin (information service), nhm mc đích cung  
cp thông tin cn thiết cho người dùng thiết bdi động, vi thiết bdi động là mt  
phương tin truy xut cc ktin li và hiu qu.  
Lĩnh vc lp trình ng dng không dây là mt lĩnh vc khó tiếp cn vi nhng  
ràng buc cht ch, các nhà sn xut và nhà phát trin đã cgng đưa ra các tiêu chun  
và công nghệ để có thhtrtt nht cho lĩnh vc này. ng dng không dây, ngoài  
bn thân ng dng, còn phi được htrrt nhiu tphía server và nhà cung cp dch  
v.  
Trong tình hình hin nay ca Viêt Nam, mng 3G đang được phát trin mnh mẽ  
và rm r, trong khi đó ngun ng dng di động cho thtrường tim năng này vn còn  
đang để ng, vic các ng dung di động được phát trin không ngng là điu không có  
để bàn cãi. Có ý kiến chuyên gia cho rng: “Năm 2010 slà năm ca các ng dng  
trên di động”[9].  
Vic kết hp hai ý tưởng “phn mm trên di động” và “hthng tng hp tin tc  
tự động” chính là nguyên nhân chúng tôi la chn và nghiên cu đề tài “Xây dng hệ  
thng đọc tin trên mobile”  
1.2. Mc đích ca để tài khóa lun  
Mc tiêu ca đề ti là xây dng mt hthng htrvic đọc báo tiếng Vit trên  
các mobile. Các ngun báo được tng hp ttrên server, người dùng sdng mobile  
có kết ni internet (GPRS hoc 3G) như mt thiết bclient gi yêu cu ti server và  
ly vcác ngun báo hmun xem.  
Người dùng nếu có đin thoi htrJava thì có thsdng chương trình. Nếu  
đin thoi ca người dùng và nhà cung cp dch vcho phép ti ng dng trên Internet  
xung đin thoi di động thì người dùng có thti trc tiếp ng dng từ địa chURL  
do Web server cung cp, nếu không thì phi cài đặt chương trình bng cách giao tiếp  
vi máy tính bng hng ngoi, cáp,...  
2
Chương 1. Mở đầu  
Nguyn Trung Kiên  
1.3. Các thách thc đối vi đề tài  
1.3.1. Thách thc đối vi phn tng hp tin tc  
Đối vi các trình đọc tin, có hai bước để xlý. Bước thnht, hthng đơn gin  
schload và hin thcác tin theo thttngun tin mà người dùng mun đọc vda  
vào danh sách các rss ca ngun tin đó. Bước thhai, phc tp hơn, đó là sau khi đã  
ly được ni dung các ngun tin v, cn phân loi các ngun tin vào các nhóm khác  
nhau, xlý loi bcác tin trùng lp ni dung tcác ngun khác nhau, đồng thi sp  
xếp hin thcác tin phù hp vi sthích người dùng.  
bước thnht, hthng sphi truy cp vào các trang tin rss tcác báo đin t,  
từ đó ly ra các đường dn ti bài báo gc. Sau đó truy cp vào các bài báo gc này để  
ly ra ni dung ca tin. Tuy nhiên, do mi mt báo li có mt cách tchc hin thtin  
tc khác nhau, vi mi mt trang li có các mã html khác nhau, nên hthng cn phi  
có cách xlý cho tng trang báo mt.  
Sau khi đã ly hết ni dung các trang tin, hthng cn đưa ra cách để sp xếp các  
tin tc này vào các chuyên mc khác nhau. Vic sp xếp này là không thphthuc  
vào cách phn chia chuyên mc tng báo riêng bit, bi vì mi mt tbáo li có mt  
cách phân chia khác nhau.  
Trên Bng 1 là danh sách các chuyên mc thai tbáo có thcoi là có slượng  
độc giln nht Vit Nam (theo thng kê talexa.com, báo vnexpress.net đứng th4,  
và báo dantri.com.vn đứng th6 [16] trong danh sách các site có lượng truy cp nhiu  
nht ti Vit Nam). Hai báo này tuy có mt schuyên mc là ging nhau, nhưng số  
chuyên mc còn li li rt khác nhau.  
Mt điu cn chú ý bóc tách ni dung cho các trang báo đin tử đó là, ni dung  
mt sbài báo cha các nh liên quan, hthng tin tc cn phi gili các nh. Hơn  
na mc đích ca vic bóc tách ni dung là để cho các máy đin thoi hin thnên các  
nh trong tng bài báo phi được lưu giữ để phù hp vi kích thước ca tt ccác loi  
đin thoi khác nhau. Để gii hn phm vi bài toán, trong đề tài chxét ti hai loi  
kích thước màn hình đin thoi là 240 x 320 và 172 x 220  
Bng 1. Danh sách chuyên mc tbáo vnexpress và dantri.com.vn  
3
Chương 1. Mở đầu  
Nguyn Trung Kiên  
Mt vn đề cn quan tâm na khi tng hp các tin đó là làm sao phân bit được  
tin nào là tin gc, tin nào là tin đăng li. Vic phân bit này có các tác dng:  
Giúp cho người đọc không cn phi đọc li mt tin nhiu ln, người đọc  
chcn quan tâm đến tin được đưa lên đầu tiên mà thôi  
Giúp cho hthng không cn phi lưu li các tin đã có ri  
Giúp hthng xác định được các ngun tin gc, và các ngun tin sao lưu  
li. Từ đó scó cách ng xriêng vi tng ngun tin mt. Ví d: stp  
trung ly tcác ngun tin gc, các ngun tin lp thì chly các chuyên  
mc ít blp hơn.  
1.3.2. Thách thc đối vi ng dng xây dng trên mobile  
Sau khi các tin tc đã được xlý xong, các tin này được mt phn mm trên di  
động trình bày và hin th. Các tin được phân loi theo các chuyên mc khác nhau, và  
sp xếp theo thi gian. Các tin có ni dung trùng lp sẽ được nhóm li vi nhau, và chỉ  
hin thra tin gc.  
Vn đề đầu tiên cn quan tâm đối vi mt ng dng trên di động, đó là giao din  
ca tương tác người sdng. Màn hình ca các đin thoi di động thường là nh, do  
đó vic hin thcác tin tc trên ng dng cn đảm bo rõ ràng, dễ đọc và dthao tác  
cho người dùng. Trong đề tài ca mình, chúng tôi sdng giao din ging như giao  
din trong phn mm iMedia (do Công ty Naiscorp và VTC hp tác xây dng)[15].  
4
Chương 1. Mở đầu  
Nguyn Trung Kiên  
Thêm vào đó, đin thoi di động cũng được chia làm hai loi: htrmàn hình  
cm ng và không htrcm ng. Các loi đin thoi không htrmàn hình cm ng  
thì giá rvà phbiến hơn. Đặc đim ca các loi đin thoi này là ngoài 4 phím điu  
hướng, thì còn có bàn phím để tương tác trong khi phn ln các loi đin thoi cm  
ng thì thường không có bàn phím. Mt ng dng mun sdng được trên nhiu dòng  
đin thoi khác nhau, thì cn phi htrccác máy có cm ng và không có cm ng  
Khó khăn cui cùng, là làm sao để hin thị được tiếng Vit trên các dòng đin  
thoi khác nhau. Mt đim cn chú ý đó là không phi đin thoi nào cũng htrhin  
thtiếng Vit. Ví dlà: hu hết các đin thoi Nokia thì đều có sn font tiếng Vit,  
nhưng các đin thoi dòng BlackBerry thì phn ln không htr.  
1.4. Các kết quthu được:  
Vi nhng mc tiêu và khó khăn thách thc đã được đưa ra trên, ni dung khóa  
lun stp trung gii quyết các vn đề chính sau  
Xây dng hthng crawl tự động cp nht tin tc liên tc tcác ngun  
báo tiếng Vit khác nhau  
Các tin tc sau khi được thu thp vstri qua hai bước làm mn đó là  
phân loi vào các chuyên mc và so sánh, phát hin ra các tin có cùng ni  
dung vi nó để từ đó xác định xem tin nào là tin gc, tin nào là tin đưa li  
Xây dng phn mm trên đin thoi di động, htrccác dòng máy có  
màn hình cm ng và không cm ng vi giao din đơn gin, phù hp  
giúp đọc các tin đã được thu thp về  
Chúng tôi cũng đưa ra gii pháp để gii quyết trn vn bài toán hin thị  
tiếng Vit trên đin thoi di động vi hu hết các dòng máy phbiến trên  
thtrường Vit Nam như Nokia, Motorola, SamSung,…  
1.5. Tóm lược ni dung các chương còn li  
Phn còn li ca khóa lun chia làm 5 chương:  
Chương 2: Chúng tôi gii thiu mt cách tng quan vJ2ME – công nghệ  
ca Sun để xây dng các ng dng trên đin thoi di động, đồng thi gii  
thiu vframework KUIX dùng để xây dng giao din cho các ng dng  
J2ME  
5
Chương 1. Mở đầu  
Nguyn Trung Kiên  
Chương 3: Chúng tôi gii thiu mô hình đề xut cho hthng đọc tin tự  
động và các công ngh, các ngôn nglp trình liên quan ti đề tài  
Chương 4: Chúng tôi gii thiu vmodule Crawl tin tc và phát hin tin  
tc trùng lp được xây dng trong hthng.  
Chương 5: Chúng tôi gii thiu chi tiết về ứng dng mNews, cũng như  
gii pháp để gii quyết bài toán hin thtiếng Vit trên các dòng đin thoi  
đời thp  
Chương 6: Chúng tôi tng kết và đánh giá li nhng mt được và chưa  
được ca hthng đọc tin trên di động, và đưa ra nhng hướng phát trin  
tiếp theo cho sn phm.  
6
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
Chương 2  
Gii thiu vJ2ME và framework KUIX  
2.1. Khái quát vcông nghJ2ME  
Mc tiêu ca J2ME là cho phép người lp trình viết các ng dng độc lp vi  
thiết bdi động, không cn quan tâm đến phn cng tht s. Môi trường phát trin ca  
J2ME bao gm mt máy o (Java Virtual Machine), mt cu hình (Configuration) và  
mt hay nhiu hin trng (Profile). Máy o định nghĩa các giao dch gia cu hình và  
hot động ca hệ điu hành. Các hin trng định nghĩa giao din gia mt ng dng và  
môi trường J2ME. Hình 1 chra cách các tng được tchc vi nhau.  
Hình 1. Các tng ca J2ME[7]  
Tdưới lên trên:  
Tng máy o Java (Java Virtual Machine)  
Tng máy o Java bao gm KVM (Kilo Virtual Machine) là bbiên dch mã  
bytecode. KVM có nhim vchuyn mã ca chương trình Java sau khi đã được biên  
dch thành mã bytecode, thành ngôn ngmáy để chy trên thiết bdi động. Các  
chương trình Java khi cài đặt trên thiết bdi động chính là các mã bytecode. Nhcó  
tng máy áo cung cp mt schun hóa cho các thiết bdi động mà ng dng J2ME  
có thhot động trên bt kthiết bdi động nào có J2ME.  
Tng cu hình (Configuration Layer)  
Tng cu hình ca CLDC bao gm mt tp các API bc thp định nghĩa các  
thuc tính chy ca mt môi trường J2ME xác định. Cthhơn, tng cu hình chu  
trách nhim định nghĩa: các lp Java cơ bn, các đặc trưng ca ngôn ngJava, các đặc  
7
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
trưng ca máy o. Tng cu hình làm tăng khnăng khchuyn ca các ng dng  
J2ME trên các thiết bdi động.  
Lp trình viên có thsdng các lp và phương thc ca các API trên tng cu  
hình này tuy nhiên tp các API hu dng hơn được cha trong tng hin trng (profile  
layer).  
Tng hin trng (Profile Layer)  
Tng hin trng hay MIDP (Hin trng thiết bthông tin di động-Mobile  
Information Device Profile) cung cp tp các API hu dng hơn cho lp trình viên.  
Tng cu hình và tng hin trng được phân tách trong kiến trúc ca J2ME để phc vụ  
cho mc đích khchuyn và htrmt lượng ln các thiết bvi các khnăng khác  
nhau.  
Mc đích ca hin trng là xây dng trên lp cu hình và cung cp nhiu thư  
vin ng dng hơn. MIDP định nghĩa các API riêng bit cho thiết bdi động.Ví d:  
tng cu hình bao gm các đặc trưng ct lõi ca Java như: String, System, Thread và  
Object cũng như các lung I/O, các kết ni mng. Trong khi đó tng hin trng quan  
tâm ti các thuc tính ca thiết bnhư giao din người dùng, cơ chế xlý skin, cơ  
chế lưu gidliu.  
2.1.1.Chi tiết vtng cu hình  
Các cu hình được định nghĩa bên trong kiến trúc J2ME bi mt tchc các  
chuyên gia gi là Java Community Process (JCP). Chi tiết các cu hình được to ra bi  
shp tác gia JCP và rt nhiu các đối tác công nghip khác.  
Hin ti J2ME định nghĩa hai cu hình:  
Cu hình cho các thiết bgii hn (Connected Limited Device  
Configuration – CLDC) dùng cho các dòng máy đin thoi cu hình thp  
Cu hình cho các thiết bkết ni (Connected Device Configuration –  
CDC) dùng cho các dòng máy thông minh, đời cao ging như các  
smartphone, các PDAs,….  
Các cu hình định nghĩa s“hp đồng” gia mt hin trng (profile) và tng máy  
o Java. CCDC và CLDC đều có máy o riêng ca chúng. CDC sdng C-Virtual  
Machine (CVM) trong khi CLDC sdng Kilo Virtual Machine (KVM). CDC là mt  
8
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
mc cao hơn ca CLDC. Phn ln các dòng đin thoi htrJava hin nay đều sử  
dng CLDC.  
2.1.1.1. CLDC – Connected Limited Device Configuration  
Phm vi: Định nghĩa các thư vin ti thiu và các API.  
Định nghĩa:  
Tương thích ngôn ngJVM  
Các thư vin li  
I/O  
Mng  
Bo mt  
Quc tế hóa  
Không định nghĩa:  
Chu ksng ng dng  
Giao din người dùng  
Qun lý skin  
Giao din ng dng và người dùng  
Các lp lõi Java cơ bn, input/output, mng, và bo mt được định nghĩa trong  
CLDC. Các API hu dng hơn như giao din người dùng và qun lý skin được  
dành cho hin trng MIDP.  
CLDC định nghĩa mt mô hình an toàn, bo mt được thiết kế để bo vthiết bị  
di động, KVM, và các ng dng khác khi các mã phá hoi. Hai bphn được định  
nghĩa bi CLDC này là btin kim tra và mô hình sandbox.  
Hình 2 biu din cách mà btin kim tra và bkim tra làm vic vi nhau để  
kim tra mã chương trình Java trước khi chuyn nó cho KVM.  
9
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
Hình 2. Btin kim tra  
Như đã đề cp trước đây, các tp tin lp được gán nhãn bng mt thuc tính trên  
máy trm ca nhà phát trin. Thuc tính này sau đó được kim tra bi btin kim tra  
trước khi mã chương trình được giao cho KVM hay bbiên dch mã bytecode.  
Mt bphn khác ca bo mt trong CLDC là mô hình sandbox.  
Hình biu din khái nim mô hình sandbox:  
Hình 3. Mô hình Sandbox  
Hình 3 cho thy ng dng J2ME đặt trong mt sandbox có nghĩa là nó bgii  
hn truy xut đến tài nguyên ca thiết bvà không được truy xut đến Máy o Java hay  
bnp chương trình. ng dng được truy xut đến các API ca CLDC và MIDP. ng  
dng được truy xut tài nguyên ca thiết bdi động (các cng, âm thanh, brung, các  
10  
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
báo hiu,…) chkhi nhà sn xut đin thoi di động cung cp các API tương ng. Tuy  
nhiên, các API này không phi là mt phn ca J2ME[7].  
2.1.2. MIDP (Mobile Information Device Profile)  
Tng J2ME cao nht là tng hin trng và mc đích ca nó là định nghĩa các API  
cho các thiết bdi động. Mt thiết bdi động có thhtrnhiu hin trng. Mt hin  
trng có tháp đặt thêm các gii hn trên các loi thiết bdi động (như nhiu bnhớ  
hơn hay độ phân gii màn hình cao hơn). Hin trng là tp các API hu dng hơn cho  
các ng dng cth. Lp trình viên có thviết mt ng dng cho mt hin trng cụ  
thvà không cn quan tâm đến nó chy trên thiết bnào.  
Hin ti hin trng được công blà MIDP (Mobile Information Profile) vi đặc  
tJSR - 37. Có 22 công ty là thành viên ca nhóm chuyên gia to ra chun MIDP.  
MIDP cung cp các API cho phép thay đổi trng thái chu ksng ng dng, đồ  
ha (mc cao và mc thp), tuyến đon, timer, lưu trbn vng (persistent storage),  
và mng.  
Nó không định nghĩa cách mà ng dng được np trong thiết bdi động. Đó là  
trách nhim ca nhà sn xut. Nó cũng không định nghĩa bt kloi mô hình bo mt  
end-to-end nào, vn cn thiết cho ng dng kinh doanh nhn sthtín dng ca người  
dùng. Nó cũng không bt buc nhà sn xut cách mà lp MIDP được thc hin.  
2.2.MIDlet  
Các ng dng J2ME được gi là MIDlet (Mobile Information Device applet).  
Hình 4 đưa ra các thông tin cơ bn nht để có thto ra được mt Midlet  
11  
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
Hình 4. Tng quan vMidlet  
Thông báo import dùng để truy xut các lp ca CLDC và MIDP.  
Lp chính ca ng dng được định nghĩa là lp kế tha lp MIDlet ca MIDP.  
Có thchcó mt lp trong ng dng kế tha lp này. Lp MIDlet được trình qun lý  
ng dng trên đin thoi di động dùng để khi động, dng, và tm dng MIDlet (ví d,  
trong trường hp có cuc gi đến).  
2.2.1. Bkhung MIDlet (MIDlet Skeleton)  
Mt MIDlet là mt lp Java kế tha (extend) ca lp tru tượng  
java.microedition.midlet.MIDlet và thc thi (implement) các phương thc startApp(),  
pauseApp(), và destroyApp().  
Hình 5 biu din bkhung yêu cu ti thiu cho mt ng dng MIDlet  
Hình 5. Bkhung MIDlet  
Phát biu import: Các phát biu import được dùng để include các lp  
cn thiết tcác thư vin CLDC và MIDP.  
Phn chính ca MIDlet: MIDlet được định nghĩa như mt lp kế tha  
lp MIDlet. Trong ví dnày MIDletExample là bt đầu ca ng dng.  
Hàm to (Constructor): Hàm to chỉ được thc thi mt ln khi MIDlet  
được khi to ln đầu tiên. Hàm to skhông được gi li trphi MIDlet  
thoát và sau đó khi động li.  
startApp(): Phương thc startApp() được gi bi bqun lý ng dng  
khi MIDlet được khi to, và mi khi MIDlet trvttrng thái tm  
dng. Nói chung, các biến toàn cc sẽ được khi to li trhàm to bi vì  
12  
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
các biến đã được gii phóng trong hàm pauseApp(). Nếu không thì chúng  
skhông được khi to li bi ng dng.  
pauseApp(): Phương thc pauseApp() được gi bi bqun lý ng dng  
mi khi ng dng cn được tm dng (ví d, trong trường hp có cuc gi  
hoc tin nhn đến). Cách thích hp để sdng pauseApp() là gii phóng  
tài nguyên và các biến để dành cho các chc năng khác trong đin thoi  
trong khi MIDlet được tm dng. Cn chú ý rng khi nhn cuc gi đến  
hệ điu hành trên đin thoi di động có thdng KVM thay vì dng  
MIDlet. Vic này không được đề cp trong MIDP mà đó là do nhà sn  
xut quyết định schn cách nào.  
destroyApp(): Phương thc destroyApp() được gi khi thoát MIDlet. (ví  
dkhi nhn nút exit trong ng dng). Nó chỉ đơn thun là thoát MIDlet.  
Nó không tht sxóa ng dng khi đin thoi di động. Phương thc  
destroyApp() chnhn mt tham sBoolean. Nếu tham snày là true,  
MIDlet được tt vô điu kin. Nếu tham slà false, MIDlet có thêm tùy  
chn tchi thoát bng cách ném ra mt ngoi lệ  
MIDletStateChangeException.  
Tóm tt các trng thái khác nhau ca MIDlet:  
To (Created): Hàm to MIDletExample() được gi mt mt ln  
Hot động (Active): Phương thc startApp() được gi khi chương trình  
bt đầu hay sau khi tm dng  
Tm dng (Paused): Phương thc pauseApp() được gi. Có thnhn các  
skin timer.  
Hy (Destroyed): Phương thc destroy() được gi.  
2.2.2. Chu ksng ca MIDlet  
Hình 6 mô tcác chu ksng ca mt MIDlet  
13  
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
Hình 6. Chu ksng ca MIDlet[3]  
Khi người dùng yêu cu khi động ng dng MIDlet, bqun lý ng dng sẽ  
thc thi MIDlet (thông qua lp MIDlet). Khi ng dng thc thi, nó sẽ được xem là  
đang trng thái tm dng. Bqun lý ng dng gi hàm to và hàm startApp(). Hàm  
startApp() có thể được gi nhiu ln trong sut chu ksng ca ng dng. Hàm  
destroyApp() chcó thgi ttrng thái hot động hay tm dng. Lp trình viên cũng  
có thể điu khin trng thái ca MIDlet.  
Các phương thc dùng để điu khin các trng thái ca MIDlet:  
resumeRequest(): Yêu cu vào chế độ hot động. Ví d: Khi MIDlet tm  
dng, và mt skin timer xut hin.  
notifyPaused(): Cho biết MIDlet tnguyn chuyn sang trng thái tm  
dng. Ví d: Khi đợi mt skin timer.  
notifyDestroyed(): Sn sàng để hy. Ví d: Xlý nút nhn Exit  
Lp trình viên có thyêu cu tm dng MIDlet trong khi đợi mt skin timer  
hết hn. Trong trường hp này, phương thc notifyPaused() sẽ được dùng để yêu cu  
bqun lý ng dng chuyn ng dng sang trng thái tm dng.  
14  
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
2.2.3. Tp tin JAR  
Các lp đã biên dch ca ng dng MIDlet được đóng gói trong mt tp tin JAR  
(Java Archive File). Đây chính là tp tin JAR được download xung đin thoi di động.  
Tp tin JAR cha tt ccác tp tin class tmt hay nhiu MIDlet, cũng như các  
tài nguyên cn thiết. Hin ti, MIDP chhtrợ định dng hình .png (Portable Network  
Graphics). Tp tin JAR cũng cha tp tin kê khai (manifest file) mô tni dung ca  
MIDlet cho bqun lý ng dng. Nó cũng phi cha các tp tin dliu mà MIDlet  
cn. Tp tin JAR là toàn bộ ứng dng MIDlet. MIDlet có thload và triu gi các  
phương thc tbt klp nào trong tp tin JAR, trong MIDP, hay CLDC. Nó không  
thtruy xut các lp không phi là bphn ca tp tin JAR hay vùng dùng chung ca  
thiết bdi động.  
2.3. Đồ ha (Graphic)  
2.3.1. Đồ ha mc thp (low level) và mc cao (high level)  
Các lp MIDP cung cp hai mc đồ ha: đồ ha mc thp và đồ ha mc cao.  
Đồ ha mc cao dùng cho văn bn hay form. Đồ ha mc thp dùng cho các ng dng  
trò chơi yêu phi vlên màn hình.  
Chai lp đồ ha mc thp và mc cao đều là lp con ca lp Displayble. Trong  
MIDP, chcó thcó mt lp displayable trên màn hình ti mt thi đim. Có thể định  
nghĩa nhiu màn hình nhưng mt ln chhin thị được mt màn hình.  
2.3.1.1. Đồ ha mc cao (High Level Graphics) (Lp Screen)  
Đồ ha mc cao là lp con ca lp Screen. Nó cung cp các thành phn như text  
box, form, list, và alert. Ta ít điu khin sp xếp các thành phn trên màn hình. Vic  
sp xếp tht sphthuc vào nhà sn xut.  
2.3.1.2. Đồ ha mc thp (Lp Canvas)  
Đồ ha mc thp là lp con ca lp Canvas. Lp này cung cp các phương thc  
đồ ha cho phép vlên màn hình hay vào mt bộ đệm hình cùng vi các phương thc  
xlý skin bàn phím. Lp này dùng cho các ng dng trò chơi cn điu khin nhiu  
vmàn hình.  
15  
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
2.4. Lưu trbn ghi (Record Store)  
Lưu trbn ghi cho phép lưu dliu khi ng dng thoát, khi động li và khi  
thiết bdi động tt hay thay pin. Dliu lưu trbn ghi stn ti trên thiết bdi động  
cho đến khi ng dng tht sự được xóa khi thiết bdi động. Khi mt MIDlet bxóa,  
tt ccác lưu trbn ghi ca nó cũng bxóa.  
Hình 7. Lưu trbn ghi  
Như trong Hình 7, các MIDlet có thcó nhiu hơn mt tp lưu trbn ghi, chúng  
chcó thtruy xut dliu lưu trbn ghi cha trong bMIDlet ca chúng. Do đó,  
MIDlet 1 và MIDlet 2 có thtruy xut dliu trong Record Store 1 và Record Store 2  
nhưng chúng không thtruy xut dliu trong Record Store3. Ngược li, MIDlet 3 chỉ  
có thtruy xut dliu trong Record Store 3 và không thtruy xut dliu dliu  
trong Record Store 1 và Record Store 2. Tên ca các lưu trbn ghi phi là duy nht  
trong mt bMIDlet nhưng các bkhác nhau có thdùng trùng tên.  
Các bn ghi trong mt lưu trbn ghi được sp xếp thành các mng byte. Các  
mng byte không có cùng chiu dài và mi mng byte được gán mt sID bn ghi.  
16  
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
Các bn ghi được định danh bng mt sID bn ghi (record ID) duy nht. Các số  
ID bn ghi được gán theo thtbt đầu t1. Các sskhông được dùng li khi mt  
bn ghi bxóa do đó stn ti các khong trng trong các ID bn ghi. Đặc tMIDP  
không định nghĩa chuyn gì xy ra khi đạt đến sID bn ghi ti đa, điu này phthuc  
vào ng dng.  
2.5. Lp trình mng  
2.5.1.Khung mng CLDC tng quát  
Mng cho phép client di động gi và nhn dliu đến server. Nó cho phép thiết  
bdi động sdng các ng dnsg như tìm kiếm cơ sdliu, trò chơi trc tuyến…  
Trong J2ME, mng được chia làm hai phn. Phn đầu tiên là khung được cung cp bi  
CLDC và phn hai là các giao thc tht sự được định nghĩa trong các hin trng.  
CLDC cung cp mt khung tng quát để thiết lp kết ni mng. Ý tưởng là nó là  
đưa ra mt khung mà các hin trng khác nhau ssdng. Khung CLDC không định  
nghĩa giao thc tht s. Các giao thc sẽ được định nghĩa trong các hin trng.  
Hình 8. Khung mng CLDC tng quát  
Kết ni mng được xây dng bng phương thc open() ca lp Connector trong  
CLDC. Phương thc open() nhn mt tham số đầu vào là chui. Chui này dùng để  
xác định giao thc. Định dng ca chui là:  
protocol:address;parameters  
CLDC chxác định tham slà mt chui nhưng nó không định nghĩa bt kgiao  
thc tht snào. Các hin trng có thể định nghĩa các giao thc kết ni như HTTP,  
17  
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
socket, cng truyn thông, datagram,… Phương thc open() trvmt đối tượng  
Connector. Đối tượng này sau đó có thể đóng vai trò là mt giao thc xác định được  
định nghĩa trong hin trng.  
MIDP htrgiao thc HTTP:  
HTTP: Connector.open(“http://www.sonyericsson.com”);  
Trvmt đối tượng Connection  
Tt ccác kết ni mng đều có cùng định dng, không quan tâm đến giao thc  
tht s. Nó chkhác nhau chui chuyn cho phương thc open(). Phương thc  
open() strvmt đối tượng Connection đóng vai trò là lp giao thc (ví d.  
HttpConnection) để có thsdng các phương thc cho giao thc đó. J2ME chỉ định  
nghĩa mt kết ni là kết ni HTTP trong MIDP.  
2.5.3. Kết ni HTTP  
Hin trng MIDP htrkết ni HTTP phiên bn 1.1 thông qua giao din  
HttpConnection. HtrGET, POST, HEAD ca HTTP. Yêu cu GET (GET request)  
được dùng để ly dliu tserver và đây là phương thc mc định. Yêu cu POST  
dùng để gi dliu đến server. Yêu cu HEAD tương tnhư GET nhưng không có dữ  
liu trvtserver. Nó có thdùng để kim tra tính hp lca mt địa chURL.  
Phương thc open() ca lp Connector dùng để mkết ni. Phương thc open()  
trvmt đối tượng Connection sau đó có thể đóng vai trò là mt HttpConnection cho  
phép dùng tt ccác phương thc ca HttpConnection.  
Mt kết ni HTTP có thể ở mt trong ba trng thái khác nhau: Thiết lp (Setup),  
Kết ni (Connectd), hay Đóng (Close). Trong trng thái Thiết lp, kết ni chưa được  
to. Phương thc setRequestMethod() và setRequestProperty() chcó thể được dùng  
trong trng thái thiết lp. Chúng được dùng để thiết lp phương thc yêu cu (GET,  
POST, HEAD) và thiết lp thuc tính HTTP (ví d. User-Agent). Khi sdng mt  
phương thc yêu cu gi dliu đến hay nhn dliu vtserver slàm cho kết ni  
chuyn sang trng thái Kết ni. Gi phương thc close() slàm cho kết ni chuyn  
sang trng thái Đóng.  
Lưu ý rng gi bt kì phương thc nào lit kê trên (ví d. openInputStream(),  
getLenght()) cũng slàm cho kết ni chuyn sang trng thái Kết ni.  
2.6. Gii thiu vFramework KUIX  
18  
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
J2ME là mt cách thích hp để phát trin các ng dng trên đin thoi di động.  
Tuy nhiên nn tng giao din đồ ha trên J2ME rt yếu. Mc dù J2ME cung cp cho  
chúng ta mt danh sách các lp đồ ha mc cao. Nhưng các lp đồ ha này li được  
cài đặt phthuc vào tng nhà sn xut, thêm vào đó là các lp này cũng chưa đáp  
ng được các yêu cu khi thiết kế các giao din phc tp. Chính vì thế, khi mun xây  
dng các ng dng vi mt giao din phù hp, chúng ta thường phi da vào các  
framework xây dng giao din có sn. KUIX là mt trong scác framework như vy.  
2.6.1. KUIX là gì?  
KUIX[12] là cm từ được viết tt cho Kalmeo User Interface eXtensions (Giao  
din người sdng mrng Kalmeo). KUIX là mt khung làm vic phát trin ng  
dng cho phép to ra các ng dng J2ME cp cao. Nó cung cp phn ln các thành  
phn đồ ha (button, text fields, list, menu, …) cn thiết để to ra các giao din ng  
dng mc cao.  
KUIX là mt ng dng mã ngun m. KUIX được cung cp dưới giy phép GPL,  
do đó chung ta có thti và sdng nó để to nên các ng dng mt cách hoàn toàn  
min phí.  
Hình 9. Mt vài ng dng sdng KUIX  
19  
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
2.6.2. Đim mnh ca KUIX  
KUIX là mt framework mnh. Các ưu đim ca nó bao gm:  
Tương thích vi rt nhiu dòng máy. Ngay tban đầu, mc tiêu thiết kế  
KUIX là hướng ti vic htrợ được các dòng máy khác nhau. Kết qulà,  
ti phiên bn 1.0.1, KUIX đã htrmt danh sách rng ln các loi thiết  
bkhác nhau. Vcơ bn, KUIX kết hp gia CLDC 1.0 và MIDP 2.0  
Cung cp mi trường phát trin ng dng cp cao. KUIX cha phn ln  
các thành phn cn thiết để thiết kết các ng dng cp cao. Nó sdng  
mu các widget (các ng dng nh) và mô hình tha kế để to nên các  
ng dng mt cách đơn gin, và dtùy chnh.  
Vic phát trin các ng dng dùng KUIX srt nhanh và ddàng. Các  
form và các widget được tchc thông qua cách tiếp cn sdng XML,  
kết hp vi các file CSS, cho phép các lp trình viên xây dng các ng  
dng rt nhanh chóng.  
Thiết kế ứng dng rt nhẹ  
2.6.2. Cơ bn vthiết kế giao din trong KUIX  
Giao din người sdng trong KUIX, được phát trin da vào 3 tính cht chính:  
Hướng bcc (layout oriented)  
Sdng các widget như các phn tử đồ ha  
Có thể được mô tvi ngôn ngJava hoc cách tiếp cn sdng  
XML/stylesheet  
Hướng bcc nghĩa là các phn tử đồ ha được đặt ti nhng địa đim được định  
nghĩa trước thông qua bcc, điu này giúp cho các ng dng stự động phù vi các  
kích thước màn hình khác nhau. Cách tiếp cn này cũng cho phép vic thiết kế giao  
din người sdng được mô tbng các yêu cu gia các phn tvà giúp cho hệ  
thng đồ ha sp xếp vtrca chúng ti thi đim ng dng chy phthuc vào khả  
năng ca các thiết b.  
Các widget là các thành phn giao din sdng có thể được sdng li để xây  
dng các màn hình phc tp hơn. Widgets có thtùy chnh trong mu giao din sử  
20  
Chương 2. Gii thiu vJ2ME và framework KUIX  
Nguyn Trung Kiên  
dng. Mt swidget đặc bit luôn được định nghĩa và ddàng cho vào các ng dng  
bng phương pháp kế tha.  
Vic mô tgiao din có ththc hin bng hai cách: XML/CSS hoc Java. Li  
ích ca vic sdng cách tiếp cn thnht đó là:  
Phân tách gia vic phát trin ng dng và knăng đồ ha  
Quá trình xlý nghip v, logic sẽ được tách bit vi giao din đồ ha  
Cách thiết kế sdng Java sẽ đạt được hiu qucao hơn, bi vì nó không đòi hi  
phi quá trình dch các file XML và các file CSS trong khi chy ng dng, nhưng điu  
này không cho phép phân tách các knăng trong mt đội phát trin.  
Vi cách tiếp cn bng XML/CSS, mt giao din có thể được mô tbi file  
XML và được “trang đim” vi các file CSS. Các file XML và CSS này sẽ được đưa  
vào chương trình thông qua các đon mã ngun Java. Bt cứ điu gì chúng ta có thể  
làm vi XML và CSS, đều có thlàm trc tiếp vi mã ngun Java, nhưng điu này  
làm cho mã ngun trnên kém linh động và khó đọc hơn  
2.6.3. Worker trong KUIX  
Worker là mt thread chy liên tc trong KUIX. Đây chính là thành phn quan  
trng ca KUIX trong vic slý các skin. Worker cha trong nó nhiu WorkerTask  
– tương ng vi các nhim vcn chy. Khi chy, Worker schy ln lượt tng  
WorkerTask mt cho ti khi WorkerTask đó trvgiá tr, sau đó schy tiếp ti  
WorkerTask tiếp theo. Sau khi WorkerTask chy xong, hoc nếu trong lúc chy,  
WorkerTask sinh ra li, nó sbloi khi danh sách các WorkerTask ca Worker.  
2.6.4. KUIX Widget:  
Widget là thành phn đồ ha cơ bn trong KUIX. Widget đại din cho mt vùng  
din tích hin thtrên màn hình đin thoi. Widget được to ra bi vic sdng lp  
Canvas (thành phn đồ ha mc thp trong J2ME) để vlên màn hình chi tiết giao  
din ca đối tượng.  
Trong KUIX đã cài đặt sn nhiu Widget: như button, checkbox, choice, list,  
menu, … Các loi widget này được phân bit vi nhau bi các thuc tính “tag”. Ví d:  
các thuc tính tag ca các Widget ktrên ln lượt là: button, checkbox, choice, list,  
menu,….  
21  

Tải về để xem bản đầy đủ

pdf 66 trang yennguyen 10/05/2025 160
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Xây dựng hệ thống đọc tin trên mobile", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_xay_dung_he_thong_doc_tin_tren_mobile.pdf