Làm vic vi XML trên Android

Similar documents
Google Apps Premier Edition

QCVN 19: 2009/BTNMT QUY CHUN K THUT QUC GIA V KHÍ THI CÔNG NGHIP I V I BI VÀ CÁC CHT VÔ C

TÀI CHÍNH DOANH NGHIP

KHI X L T SÔNG H NG VÀO SÔNG ÁY

Mô hình lp trình SOA trin khai thc hin các dch v Web, Phn 6: Mô hình thàn...

Th vi n Trung Tâm HQG-HCM s u t m

NG S VIÊN TRONG CH M SÓC

PH NG PH P D¹Y HäC TÝCH CùC TRONG GI O DôC MÇM NON

KH O SÁT D L NG THU C TR SÂU LÂN H U C TRONG M T S CH PH M TRÀ ACTISÔ

Thông tin mang tính a lý trên m t vùng lãnh th bao g m r t nhi u l p d li u khác nhau (thu c n v hành chánh nào, trên lo i t nào, hi n tr ng s d ng

À N. á trong giáo d. Mã s HÀ N NGHIÊN C ÊN NGÀNH TÓM T

CP PHA NHÔM SAMMOK SAMMOK HI-TECH FORM VINA CO., LTD

CH NG IV TH C HI N PH NG PHÁP T NG H P CHO QUY HO CH S D NG B N V NG NGU N TÀI NGUYÊN T AI

C M NANG AN TOÀN SINH H C PHÒNG THÍ NGHI M

GIÁO H I PH T GIÁO VI T NAM TH NG NH T

Ngô Nh Khoa và cs T p chí KHOA H C & CÔNG NGH 58(10): 35-40

System AR.12_13VI 01/ with people in mind

NGHIÊN C U XU T XÂY D NG H H TR RA QUY T NH KHÔNG GIAN CHO THOÁT N C Ô TH B NG CÁC GI I PHÁP CÔNG TRÌNH

TH TR NG HÀNG KHÔNG, KHÔNG GIAN VI T NAM

GIÁO TRÌNH LÝ THUY T C B N V M NG LAN

Kinh doanh. Báo cáo Phát trin Vit Nam Public Disclosure Authorized. Public Disclosure Authorized. Public Disclosure Authorized

Cng hoà Xã hi Ch Ngha Vit Nam

T i tr ng t p trung (tr t i tr ng t p trung trên Frame). riêng c a nút. Nút có các lo i h to riêng cho: liên k t, b c t do, l c t p trung, kh i

Thông Tin An Toàn V n Ph m AAM704 INTERGARD 345 DUSTY GREY PART A. 1.2 Cách dùng ng nh t có liên quan c a các ch t ho c h n h p và cách dùng ng c l i

M C L C. Thông tin chung. Ho t ng doanh nghi p. Báo cáo & ánh giá BÁO CÁO THƯỜNG NIÊN Thông tin công ty. 3 Quá trình phát tri n c a INVESTCO

Thông Tin An Toàn V n Ph m

H íng DÉN Sö DôNG MéT Sè PHÇN MÒM VUI CH I, HäC TËP TH NG DôNG CHO TRÎ MÇM NON MODULE MN HOÀNG CÔNG DỤNG

KHÁM PHÁ CHI C CHEVROLET COLORADO DÀNH RIÊNG CHO NH NG CH NHÂN KHÔNG NG I B T PHÁ

TÀI LIU CHO HC VIÊN. Phiên bn 4 (Tháng ) Biên son: V Th Nha, Trung tâm Thông tin Phát trin Vit Nam

Thông Tin An Toàn V n Ph m

SÁNG TH T, NGÀY

Bài 3: Mô phỏng Monte Carlo. Under construction.

22 Quy lu t b t bi n c a Marketing Al Ries & Jack Trout

AIR SLEEP MODE With the air sleep sensor, the air conditioner can monitor the activity/movement level in a room and adjust the temperature and humidit

Luâ t Chăm So c Sư c Kho e Mơ i va Medicare

L i m. v m ng, lá có hai th : m t lo i ph t lo i thô nhám. C hai lo u dài 4,5 t u nh ng

hoctoancapba.com Kho đ ề thi THPT quốc gia, đ ề kiểm tra có đáp án, tài liệu ôn thi đại học môn toán

QUAN H I TÁC A LI THÀNH QU

HỆ THỐNG BÁO CÁO VÀ HỌC HỎI VỀ SAI SÓT LIÊN QUAN ĐẾN THUỐC: VAI TRÒ CỦA CÁC TRUNG TÂM CẢNH GIÁC DƯỢC

DANH T NG VI T NAM TI U S DANH T NG VI T NAM TH K XX - T P II

HÀ N I - HÀ TÂY TT Tên làng ngh Tên ng i li n h

I H C QU C GIA HÀ N I I H C KHOA H C XÃ H NGUY N TH THÚY H NG U TH K XX VÀ TI N TRÌNH HI

BÁO CÁO THỰC HÀNH KINH TẾ LƯỢNG

Medi-Cal. S tay h i viên Medi-Cal

CHƯƠNG TRÌNH DỊCH BÀI 14: THUẬT TOÁN PHÂN TÍCH EARLEY

1. chapter G4 BA O CA O PHA T TRIÊ N BÊ N VƯ NG

NH NGH A C C THU T NG 4 PH N I NHI M HUẨN ỆNH VIỆN V VỆ SINH TAY 6 PH N II TH C H NH HU N UYỆN V GI M S T VỆ SINH TAY 9

PHÂN TÍCH DỮ LIỆU BẰNG PHẦN MỀM SPSS 12.0 * PHẦN 4

- n, H c vi n Nông nghi p Vi t Nam i h ; 3 B Giáo d o. Ngày g i bài: Ngày ch p nh n:

Đánh giá: ❶ Bài tập (Quiz, In-Class) : 20% - Quiz (15-30 phút): chiếm 80%; 5 bài chọn 4 max TB - In-Class : chiếm 20% ; gọi lên bảng TB

Năm 2015 O A O OB O MA MB = NA

Danh s ch B o c o. H i th o T i u và Tính toán khoa h c l n th 8,

NHẬT BÁO THẲNG TIẾN 11

Auld Lang Syne. Old Long Past. Tác gi bài hát Auld Lang Syne và dòng sông Afton

Tháng Giao d ch th an toàn. B n ã bi t v Vay 24 phút?

i h c Tây Nguyên, 2 H i Khoa h t Vi t Nam 3 Vi n Quy ho ch và Thi t k Nông nghi p *:

Giáo trình Autocad 2D

AMERICAN INTERNATIONAL SCHOOL IS A LIFE-LONG COMPANION IN YOUR POSITIVE FUTURE AND WE ALL BEGIN WITH A YES

Phâ n thông tin ba o ha nh cu a ASUS

NH NG I M CHÍNH CHO VI C XÁC NH CÁC TÁC NG C A DU KHÁCH

VieTeX (21) Nguy ên Hũ, u Ðiê, n Khoa Toán - Co, - Tin học

Why does the motion of the Pioneer Satellite differ from theory?

Saigon Oi Vinh Biet (Vietnamese Edition) By Duong Hieu Nghia chuyen dich READ ONLINE

XÂY D NG CÔNG NGH TÍNH TOÁN VÀ THI T L P B N NG P L T T NH V NH PHÚC

Ngày g i bài: Ngày ch p nh n:

Chào M ng Th y Cô và Các Em H c Sinh. gi ã h c xong m t ph n ba c a khóa, và tr c khi mình bi t t t c

Ban Tô Chư c ĐH6 không ngưng ơ đo ma đa đăng pho ng a nh Passport cu a Tha i Văn Dung lên trang ma ng cu a ĐH6.

log23 (log 3)/(log 2) (ln 3)/(ln2) Attenuation = 10.log C = 2.B.log2M SNR db = 10.log10(SNR) = 10.log10 (db) C = B.log2(1+SNR) = B.

A10-55

Chapter#2 Tính chất của vật chất (Properties of Substances)

5 Dùng R cho các phép tính đơn giản và ma trận

Linux cho ngu ò i dùng. Tác gia : Kostromin V. A. Di ch bo i: Phan Vĩnh Thi nh

Sû döng Photoshop c«n b n

Mục tiêu. Hiểu được. Tại sao cần phải định thời Các tiêu chí định thời Một số giải thuật định thời

VIETNAMESE. Written examination. Day Date Reading time: *.** to *.** (15 minutes) Writing time: *.** to *.** (2 hours) QUESTION AND ANSWER BOOK

- - máy tính. - Chính 15/2014/TT- 07/2015/TT- 16/4/2015;

LÝ LỊCH KHOA HỌC. CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc BỘ Y TẾ TRƯỜNG ĐẠI HỌC DƯỢC HÀ NỘI. 1. Họ và tên: Vũ Đặng Hoàng

TẠO PAN ĐỘNG CƠ Ô TÔ ĐIỀU KHIỂN BẰNG MÁY TÍNH

VÔ TUYẾN ĐIỆN ĐẠI CƯƠNG. TS. Ngô Văn Thanh Viện Vật Lý

NGUỒN THÔNG TIN MIỄN PHÍ TRÊN INTERNET : ĐÁNH GIÁ VÀ SỬ DỤNG DƯƠNG THÚY HƯƠNG Phòng Tham khảo Thư viện ĐH Khoa học Tự nhiên TP.

ĐƠN KHIÊ U NA I/THAN PHIỀN CU A HÔ I VIÊN. Đi a chi Tha nh phô Tiê u bang Ma zip

Intellasia launches first website for public tenders in Vietnam

KHÁI niệm chữ ký số mù lần đầu được đề xuất bởi D. Chaum [1] vào năm 1983, đây là

Các Phương Pháp Phân Tích Định Lượng

chuyên gia MAV (Machine Learning Approach to Anti-virus Expert System). Kê t qua thu.. c

sao cho a n 0 và lr(a n ) = Ra n X a n với X a n R R. Trong bài báo này, chúng Z r (R) (t.ư., Z l (R)).

h ng Gi i thi u ower oint 010

Đầu Nối Cáp T 630A 93-EE9X5-4-Exp-A-3/C Series Đầu Nối T : 24 kv 125 kv BIL Đáp ứng các tiêu chuẩn : IEC 502-4, VDE 0278 Hướng Dẫn Sử Dụng

THÔNG TIN LUẬN ÁN TIẾN SĨ

PHÂN TÍCH T & CÂN BẰNG B

1 st Conference on / H i Th o u Tiên v :

HƯỚNG DẪN SỬ DỤNG PHẦN MỀM DIỆT VIRUS AVIRA

Phiên bản thử nghiệm Lưu hành nội bộ - Microsoft Vietnam

TỐI ƯU HÓA ĐA MỤC TIÊU ỨNG DỤNG XÁC LẬP CHẾ ĐỘ CÔNG NGHỆ SẤY THĂNG HOA (STH) TÔM THẺ

1 Mß u. HÆ THÐNG TÀI CHÍNH VÀ PHÁT TRIÂN BÀN VîNG

BẢNG GIÁ THIẾT BỊ SELEC

PHÂN TÍCH PHÂN BỐ NHIỆT HYDRAT VÀ ỨNG SUẤT TRONG CẤU TRÚC BÊ TÔNG ĐỂ KIỂM SOÁT SỰ GÂY NỨT CỦA CÔNG TRÌNH BÊ TÔNG CỐT THÉP

Bé gi o dôc vµ µo t¹o

NGÂN HÀNG T BÀO VERO DÙNG S N XU T VAC-XIN CÚM A H5N1 B T HO T DÙNG CHO NG I

NH Y C M IN-VITRO C A S. PNEUMONIAE VÀ H. INFLUENZAE I V I LEVOFLOXACIN K T QU TRÊN CÁC CH NG VI KHU N PHÂN L P T B NH NHÂN T I VI T NAM

Transcription:

Page 1 of 12 Làm vic vi XML trên Android Mc : Trung bình Michael Galpin, Kin trúc s phn mm, Ludi Labs 08 01 2010 Android là mt h iu hành ngu n m, hin i và là SDK cho các thit b di ng Vi h iu hành này, bn có th to ra các ng dng di ng rt mnh iu này thm chí còn tr nên hp dn hn na khi các ng dng ca bn có th truy cp các dch v Web, có ngha là bn cn s dng ngôn ng ca Web là: XML Trong bài vit này, bn s thy nhiu la chn khác nhau làm vic vi XML trên Android và cách s dng chúng xây dng các ng dng Android ca chính bn Bt u Trong bài vit này, bn hc cách xây dng các ng dng Android có th làm vic vi XML t Internet Các ng dng Android c vit bng ngôn ng lp trình Java, do vy mà kinh nghim làm vic vi công ngh Java là iu cn phi có phát trin cho Android, bn s cn n Android SDK Toàn b mã trình c trình bày trong bài vit này s làm vic vi bt k phiên bn nào ca Android SDK, nhng phiên bn SDK 15_pre ã c s dng phát trin mã trình Bn có th phát trin các ng dng Android ch vi SDK và mt trình biên tp vn bn là, nhng s d# dàng hn nhiu nu s dng Android Developer Tools (ADT), là mt trình b$ sung Eclipse %i vi bài vit này, phiên bn 09 ca ADT ã c dùng vi Eclipse 342, mt phiên bn Java Xem Tài nguyên ly các liên kt dn n tt c các cng c này XML trên Android Nn tng Android là mt nn tng phát trin di ng mã ngu n m Nó giúp bn truy cp vào tt c các khía cnh ca thit b di ng mà nó chy trên ó, t các ha cp thp, n phn cng nh là thit b camera trên in thoi Vi rt nhiu th có th s dng Android, có th bn s t h&i ti sao bn cn phin n XML ó không phi vì làm vic vi XML rt thú v; mà là nó ang làm vic vi nhng th mà nó kích hot XML th'ng c dùng nh là mt nh dng d liu trên Internet Nu bn mu%n truy cp d liu t Internet, các kh nng có th là d liu s dng XML Nu bn mu%n gi d liu n mt dch v Web, có th bn c(ng cn gi c d liu XML Nói ng)n gn là nu ng dng Android ca bn thúc *y Internet, thì có th bn s cn phi làm vic vi XML Tht may m)n là bn có rt nhiu la chn có s+n làm vic vi XML trên Android Các trình phân tích XML Mt trong nhn u im ln nht ca nn tng Android chính là vic nó thúc *y ngôn ng lp trình Java Android SDK không hoàn toàn cung cp s+n mi th cho Môi tr'ng Th'i gian chy Java (JRE) chu*n ca bn, nhng nó li h, tr mt phn rt áng k cho nó Nn tng Java ã và ang h, tr rt nhiu cách khác nhau làm vic vi XML trong th'i gian nht nh, và hu ht các API có liên quan n XML ca Java u c h, tr y trên Android Ví d, Simple API ca Java cho XML (SAX) và Document Object Model (DOM) hin u có s+n trên Android Nhiu nm qua, c hai API này là mt phn ca công ngh Java Sn ph*m Streaming API mi ây cho XML (StAX) hin cha có trong Android Tuy nhiên, Android li cung cp mt th vin tng ng v m-t chc nng iu Các t vit tt thông dng API: Application programming interface (Giao din lp trình ng dng) RSS: Really Simple Syndication (Giao thc tp hp thông tin n gin) SDK: Software Developers Kit (B dng c cho nhà phát trin phm mm)

Page 2 of 12 cu%i cùng là Java XML Binding API c(ng không có s+n trong Android Ch)c ch)n có th thc hin API này trong Android Tuy nhiên, nó li có xu hng là mt API n-ng ký, vi rt nhiu th hin khác nhau thuc các lp khác nhau th'ng cn vic trình bày mt tài liu XML Do vy mà nó không lý tng l)m cho mt môi tr'ng b ràng buc chng hn nh thit b cm tay mà Android c thit k chy trên ó Trong các phn tip theo, bn s ly mt ngu n XML n gin có s+n trên Internet, và xem cách phân tích ngu n ó nh th nào trong phm vi mt ng dng Android s dng các UI: User interface (Giao din ng'i dùng) URL: Universal Resource Locator (a ch tài nguyên) XML: Extensible Markup Language (Ngôn ng ánh du m rng) API khác nhau c nh)c n trêntrc tiên, hãy xem các phn cn thit ca ng dng n gin s s dng XML t Internet Trình c tin Android /ng dng s ly im tin RSS t trang nhà phát trin Android ph$ bin Androidster và phân tách nó thành mt danh sách các %i tng Java n gin mà bn có th s dng quay li Android ListView (xem Ti v ly mã ngu n) ây là hot ng a hình thái c$ in tc là các thc thi khác nhau (các thut toán phân tích XML khác nhau) cung cp hot ng gi%ng nhau Ví d 1 cho bn thy bn có th mô hình hóa iu này d# dàng nh th nào trong mã trình Java s dng mt giao din Ví d 1 giao din trình phân tích im tin XML Trong Ví d 2, lp Message là mt POJO (Plain Old Java Object) c$ in miêu t mt cu trúc d liu Ví d 2 Message POJO # $% &'())*'+ $%,***-//001, $ 2' $ % 33 $ 4+2' 4 2'*5 4 '*5 $ % &'())*' 4 % $ 334 4 674,88, 9+,8, 4+&'())*' 4 *5 4 '*5 $ $ 33

Page 3 of 12 44# 33 ; & 33 33 ) 4 4 ++ < 33-4 ) Message, trong Ví d 2, th'ng rt d# làm Nó *n i mt vài trng thái bên trong ca mình bng cách cho phép truy cp ngày tháng và các liên kt nh các chu,i n gin, trong khi th hin chúng nh các %i tng c s)p xp mt cách rõ ràng (mt javautildate và mt javaneturl) Nó là mt Value Object (%i tng Giá tr) c$ in, do vy nó thc thi equals() và hashcode() da trên trng thái bên trong ca nó Nó c(ng thc hin giao din Comparable vì th bn có th s dng nó s)p xp (theo ngày tháng) Thc t, d liu c phân loi t im tin, do vy mà iu này không cn thit M,i thc thi trình phân tích s cn a mt URL n im tin Androidster và s dng cái này m mt kt n%i HTTP n trang Androidster Hot ng ph$ bin này c mô hình hóa mt cách t nhiên trong mã trình Java s dng lp c s tru tng nh trong Ví d 3 Ví d 3 Lp trình phân tích im tin c bn = 334> $ 2=?%()*+,%, $ %*$#'@)@&A+,, $ @AB+,, $ )@)*+,, $ @)*+,, 2'2 = $ 2 42 +2' 2 4 2'*5 4 '*5 @$ @$ 2 # @$ 4 @&*5 4 '*5 Lp c s lu tr feedurl và s dng nó m javaioinputstream Nu có bt k sai sót nào, n gin nó th mt RuntimeException, sao cho ng dng dng hot ng mt cách nhanh chóng Lp c s c(ng xác nh mt vài hng s% n gin cho tên các th0 Ví d 4 trình bày mt s% ni dung mu t im tin, qua ó bn có th thy c ý ngha ca các th0 này Ví d 4 im tin XML mu C5 +,<8,+,2)DE,C 6DD +,# <FG,DD +,G8,

Page 4 of 12 4?3?3 4033 3?43 =%$-<H( G88H<H0IJ0IK98<883=% # <FG3 $$E888'( -%>-)& 4 7 3 4033 3?3DE888DD D D D5DD D4D 3 4 4 $4 ( (DD44$E888 3 %)4-<L( G88H8F0<E0K<98<883% 3 ( #24/ M3 4033 3?3 DDD D4D4 M3 ( 4 4-4( 44 3 %)-<I( G88H8I0<J0G<98<883% 3 34 3 Nh bn có th thy t mu trong Ví d 4, mt ITEM tng ng vi mt th hin Message Các nút con ca mc chn (TITLE, LINK và vv) tng ng các -c tính ca th hin Message Vì bn bit im tin trông nh th nào r i và có s+n tt c các phn ph$ bin, hãy xem làm th nào phân tách im tin này s dng các công ngh khác nhau có s+n trên Android Bn s b)t u vi SAX S dng SAX Trong môi tr'ng Java, bn có th th'ng xuyên s dng SAX API khi bn mu%n có mt trình phân tích nhanh và mu%n hn ch t%i a vic s dng (footprint) b nh ng dng ca bn iu ó khin cho cho nó rt phù hp cho thit b di ng chy Android Bn có th s dng SAX API nh là t môi tr'ng Java, mà không cn n nhng thay $i -c bit cn thit chy trên AndroidVí d 5 trình bày mt thc thi SAX ca giao din FeedParser Ví d 5 Thc thi SAX $5 5= $5 $ 2 2 $(> +$(> @ $(> + $(> '/ 4 +'/

Page 5 of 12 4@$ -4 4 4 *5 4 '*5 Nu trc ây bn ã s dng SAX, thì cái này trông c(ng khá quen thuc Nh vi bt k thc thi SAX nào, phn ln các chi tit u nm trong trình x lý SAX Trình x lý nhn các s kin t trình phân tích SAX khi nó chy nhanh qua tài liu XML Trong tr'ng hp này, bn va to ra mt lp mi gi là RssHandler và ng ký nó nh là mt trình x lý cho trình phân tích, nh trong Ví d 6 Ví d 6 Trình x lý SAX = N '/ 5%/ $ = 4 4 4 OP4- -4 4 $(>*5 4 4- -4 4- -4 * $ -$ A-$ 4 $(>*5 * -A- 4 6+ A;@ # )@)* ) $ A;@ # @AB $ A;@ # %*$#'@)@&A % $ A;@ # 2=?%()* % $ A;@ # @)* 4 8 % 4 $(>*5 % +( +$ = * $ -$ A-$ - ( 4 $(>*5 * -A-- A;@ # @)* 4 + Lp RssHandler m rng lp orgxmlsaxhelpersdefaulthandler Lp này cung cp các thc thi m-c nh, không thao tác cho tt c các phng thc tng t các s kin c to ra bi trình phân tích SAX iu này cho phép các lp con ch ghi chèn lên các phng thc khi cn thit RssHandler có mt API b$ sung, getmessages Cái này tr v danh sách các %i tng Message mà trình x lý thu thp c khi nó nhn các s kin t trình phân tích SAX Nó có hai bin trong khác, mt là currentmessage cho th hin Message ang c phân tích, và mt là bin StringBuilder gi là builder lu tr d liu ký t t các nút vn bn Các bin này u c

Page 6 of 12 b)t u khi phng thc startdocument c dn ra khi trình phân tích gi s kin tng ng cho trình x lý Hãy xem phng thc startelement trong Ví d 6 Phng thc này c gi m,i khi b)t g-p th0 m trong tài liu XML Bn ch cn quan tâm khi nào th0 ó là th0 ITEM Trong tr'ng hp ó, bn to ra mt Message mi Bây gi' hãy nhìn vào phng thc characters Phng thc này c gi ra khi b)t g-p d liu ký t t các nút vn bn D liu d# dàng c thêm vào bin builder Cu%i cùng hãy xem phng thc endelement Phng thc này c gi ra khi b)t g-p th0 kt thúc %i vi các th0 tng ng vi các -c tính ca mt Message, gi%ng nh TITLE và LINK, -c tính thích hp c thit -t trên currentmessage s dng d liu t bin builder Nu th0 kt thúc là mt ITEM, thì currentmessage thêm vào danh sách Messages ây là s phân tích SAX rt in hình; ây không có gì là duy nht %i vi Android Vì th nu bn bit cách vit mt trình phân tích SAX Java, thì bn bit cách vit mt trình phân tích SAX Android Tuy nhiên, Android SDK có b$ sung thêm mt s% tính nng thun tin vào SAX Phân tích SAX d dàng hn Android SDK có cha mt lp tin ích c gi là androidutilxml Ví d 7 trình bày cách cài -t mt trình phân tích SAX vi cùng lp tin ích nh th Ví d 7 Trình phân tích SAX Android ( $5 5= ( $5 $ 2 2 '/ 4 +'/ > 4@$ ->*2)?E-4 4 *5 4 '*5 4 Lu ý là lp này vn s dng trình x lý SAX chu*n, vì n gin bn ã s dng li RssHandler nh trong Ví d 7 trên Vic có th s dng li trình x lý SAX rt t%t, nhng nó vn có ôi chút phc tp v mã trình Bn có tng tng, nu bn phi phân tích mt tài liu XML phc tp hn rt nhiu, trình phân tích có th tr thành mnh t màu m1 cho các l,i Ví d, hãy xem li phng thc endelement trong Ví d 6 Lu ý cách phng thc này kim tra nh th nào nu currentmessage có giá tr không trc khi nó c% cài -t các thuc tính? Bây gi' hãy nhìn vào XML mu trong Ví d 4 Lu ý rng có các th0 TITLE và LINK nm ngoài các th0 ITEM ó là lý do ti sao kim tra giá tr không c a vào Nu không thì th0 TITLE u tiên có th gây ra mt NullPointerException Android bao g m c bin th SAX API ca chính nó (xem Ví d 8) loi b& yêu cu bn phi vit trình x lý SAX ca chính bn Ví d 8 Trình phân tích SAX Android n gin ( $5 5= ( $5 $ 2 2 + '* +'*,, +( *4+ #4,4, *+4#4 @)* ** **

Page 7 of 12 #4 )@)**)5* *)5* $ ) #4 @AB*)5* *)5* $ #4 %*$#'@)@&A*)5* *)5* $ % #4 2=?%()**)5* *)5* $ % > 4@$ ->*2)?E- #/ 4 *5 4 '*5 Nh ã ha, mã phân tích SAX mi không s dng trình x lý SAX Thay vào ó nó s dng các lp t gói androidsax trong SDK Các lp này cho phép bn mô hình hóa cu trúc ca tài liu XML ca bn và thêm mt trình nghe s kin nu cn Trong mã trình trên, bn khai báo rng tài liu ca bn s có mt phn t g%c có tên rss và rng phn t này s có ba phn t con là channel Tip n bn nói rng channel s có ba phn t con c gi là ITEM và bn b)t u g)n các trình nghe %i vi m,i trình nghe, bn ã s dng mt lp bên trong vô danh ã thc hin giao din bn quan tâm (ho-c EndElementListner ho-c EndTextElementListener) Chú ý không cn phi theo dõi d liu ký t Vic này không ch n gin hn mà thc s còn hiu qu hn Cu%i cùng, khi bn gi dn phng thc tin ích Xmlparse, bây gi' bn a vào trình x lý c to ra t phn t g%c Toàn b mã trình trên trong Ví d 8 thuc loi tùy chn Nu bn thy thoi mái vi mã trình phân tích SAX chu*n trong môi tr'ng Java, thì bn có th tích vào ó Nu bn mu%n th các trình bao bc tin li do Android SDK cung cp, bn c(ng có th s dng nó Nu bn không mu%n s dng SAX thì sao ây? Vn còn có mt vài la chon khác La chn u tiên bn s thy ó là DOM Làm vi c DOM DOM phân tích trên Android c h, tr hoàn toàn Nó làm vic chính xác nh khi nó làm vic trong mã trình Java mà bn s chy trên máy tính bàn ho-c trên mt máy ch Ví d 9 trình bày mt thc thi da trên DOM ca giao din trình phân tích Ví d 9 Thc thi da trên DOM ca mt trình phân tích im tin % 5= % $ 2 2 %= +%= @ +( %= + %= %+ 4@$ * +%* A+ *=)A @)* +84 99 +

Page 8 of 12 A+ A +#4A +8 4 99 A + $ + AA ;@ # )@)* ) #4 AQ ;@ # @AB #4 AQ ;@ # %*$#'@)@&A $ = 5+$ = A4 + #4A +84 4 99 5 4 AQ % 5$ ;@ # 2=?%()* % #4 AQ 4 *5 4 '*5 Gi%ng nh ví d SAX u tiên, không có gì là c th %i vi Android v mã trình này Trình phân tích DOM c tt c các tài liu XML vào b nh r i sau ó cho phép bn s dng các DOM API chy ngang qua cây XML, truy vn d liu mà bn mu%n ây là mã trình rt d# làm, và, trong mt s% cách, còn n gin hn c các thc thi da trên SAX Tuy nhiên, thông th'ng DOM tiêu t%n nhiu b nh hn vì trc tiên mi th u c c vào b nh iu này có th là mt vn trên thit b di ng chy Android, nhng nó có th áp ng c trong mt vài tr'ng hp s dng nht nh mà dung lng tài liu XML s không bao gi' quá ln Có th iu này ng ý rng các nhà phát trin Android ã oán rng trình phân tích SAX s ph$ bin hn rt nhiu trên các ng dng Android, do ó các tin ích b$ sung c cung cp cho nó Mt loi trình phân tích XML khác c(ng có trên Android, và ó là trình phân tích kéo Trình phân tích kéo XML Nh ã cp trong các phn trc, Android không cung cp h, tr cho StAX API ca Java Tuy nhiên Android li i kèm vi mt trình phân tích kéo làm vic tng t nh StAX Nó cho phép mã ng dng ca bn kéo ho-c tìm kim các s kin t trình phân tích, trái ngc vi trình phân tích SAX t ng *y các s kin cho trình x lý Ví d 10 miêu t mt thc thi trình phân tích kéo ca mt giao din trình phân tích im tin Ví d 10 Thc thi da trên trình phân tích kéo > 5= > $ 2 2 + > +> 33D4 4 @ 4@$ - )+ *) + + 4 )6+> *A%?%&#2*A)RR6 $ + 4 ) > $)(')?%&#2*A)0 +( > $)(')?)(S0 + A ;@ # @)* + 6+

Page 9 of 12 ;@ # @AB 5)5 ;@ # %*$#'@)@&A % 5)5 ;@ # 2=?%()* % 5)5 ;@ # )@)* ) 5)5 > *A%?)(S0 + A ;@ # @)*RR 6+ ;@ # #/(AA* + )+ 5 4 *5 4 '*5 Trình phân tích kéo làm vic tng t nh trình phân tích SAX Nó có các s kin tng t (phn t b)t u, phn t kt thúc) nhng bn phi kéo t chúng (parsernext()) Các s kin c gi i di dng các mã s%, vì th bn có th s dng mt case-switch n gin Chú ý, thay vì nghe cho n khi kt thúc các phn t nh trong phân tích SAX, vi trình phân tích kéo, tht d# dàng tin hành hu ht các x lý ngay t u Trong mã trình trong Ví d 10, khi mt phn t b)t u, bn có th gi dn parsernexttext() kéo tt c d liu ký t t tài liu XML iu này mang n mt s n gin hóa t%t cho phân tích SAX C(ng cn chú ý rng bn -t mt c' (bin boolean done) nhn bit khi nào bn n phn kt thúc ni dung mà bn quan tâm iu này cho phép bn sm tm dng vic c tài liu XML, vì bn bit rng mã trình s không quan tâm n phn còn li ca tài liu iu này có th rt hu ích, -c bit nu bn ch cn mt phn nh& tài liu ang c truy cp Bn có th gim áng k th'i gian phân tích bng cách dng vic phân tích càng sm càng t%t Hn na, kiu t%i u hóa này -c bit quan trng trên thit b di ng ni t%c kt n%i có th chm Trình phân tích kéo có mt vài u im v hiu nng c(ng nh u im s dng d# dàng C(ng có th s dng nó vit XML To XML n tn bây gi', tôi vn ã và ang tp trung phân tích XML t Internet Tuy nhiên, thnh thong ng dng ca bn cn gi XML ti mt máy ch xa Hin nhiên bn có th s dng mt StringBuilder ho-c cái gì ó tng t to ra mt chu,i XML Mt thay th khác na b)t ngu n t trình phân tích kéo trong Ví d 11 Ví d 11 Vit XML bng trình phân tích kéo $ > >$ M M +>$ M $ 7 +$ 7 M & M %,2)DE,- M ),,-,, M,,-,,-$ & M 0 M ),,-,, M,,-,,-% M ),,-,, M 5 ) M ),,-,, M ),,-,, M 5 *5 M ),,-,, M ),,-,,

Page 10 of 12 M 5 % M ),,-,, M ),,-,, M ),,-,, M % $ 4 *5 4 '*5 Lp XmlSerializer là mt phn trong gói gi%ng nh XmlPullParser c dùng trong phn trc Thay vì kéo vào các s kin, nó *y chúng ra n mt lu ng ho-c mt b ghi Trong tr'ng hp này, nó d# dàng *y chúng sang mt th hin javaiostringwriter Nó cung cp mt API n gin cùng vi các phng thc b)t u và kt thúc mt tài liu, x lý các phn t và thêm vn bn ho-c các thuc tính ây có th là mt la chn thay th khá t%t cho vic s dng mt StringBuilder, vì d# dàng m bo XML ca bn chu*n xác Tng kt Loi ng dng nào bn mu%n xây dng cho các thit b Android? Dù là loi nào i na, nu nó cn làm vic vi d liu t Internet, thì có th nó cn phi làm vic vi XML Trong bài vit này, bn ã thy rng Android c tích hp i cùng vi rt nhiu công c x lý XML Bn có th chn ly mt trong các công c ó nh là công-c-la-chn ca bn, ho-c bn có th la chn cn c vào tr'ng hp s dng Thông th'ng s la chn an toàn là chn cùng vi SAX, và Android cung cp cho bn c cách truyn th%ng thc hin SAX và mt trình bao bc tin li khéo léo trên c SAX Nu tài liu ca bn nh&, thì có l DOM là cách n gin hn nên theo Nu tài liu ca bn ln, nhng bn ch cn mt phn tài liu, thì trình phân tích kéo XML có l là cách hiu qu hn nên theo Cu%i cùng, vit XML, gói trình phân tích kéo c(ng cung cp mt cách thun tin làm vic ó Vì th, cái mà XML ca bn cn có là gì i na, thì Android SDK vn có cho bn Ti v Tên Kích thc Ph ng thc ti AndroidXmlzip 70KB HTTP Thông tin v phng thc ti Tài nguyên Hc tp Develop Android applications with Eclipse (Frank Ableson,developerWorks, 02/2008): Cách d# dàng nht phát trin các ng dng Android là s dng Eclipse Hãy tìm hiu tt c iu này trong bài hng dn này Using integrated packages: Codehaus' Woodstox (Michael Galpin, developerworks, 07/2007): Dành cho so sánh khác ca SAX, DOM, và trình phân tích kéo, hãy c bài vit này StAX'ing up XML, Part 2: Pull parsing and events (Peter Nehrer, developerworks, December 2006): Cái nhìn sâu hn v trình phân tích kéo XML Understanding SAX (Nicholas Chase, developerworks, 07/2003): Tr thành chuyên gia v phân tích SAX vi bài hng dn này

Page 11 of 12 Understanding DOM (Nicholas Chase, developerworks, 03/2007): hiu thêm v trình phân tích, hãy c bài hng dn này Tài liu Android SDK: Tìm hiu b công c này phát trin và sa l,i mã ng dng và thit k mt UI ng dng Open Handset Alliance: Tìm kim nhà tài tr cho Android, mt nhóm 47 công ty công ngh và di ng làm vic *y nhanh t%c $i mi trong công ngh di ng Chng ch XML ca IBM: Tìm hiu xem làm th nào mà bn có th tr thành mt Nhà phát trin có chng ch IBM trong XML và các công ngh liên quan Th vin k2 thut XML: Xem khu vc developerworks XML ni có rt nhiu các bài vit chuyên môn và các m3o nh&, bài hng dn, các tiêu chu*n và Sách & IBM Các s kin k2 thut WebdeveloperWorks và web qung bá: Làm quen vi công ngh trong các phiên này developerworks podcast: Nghe các bài ph&ng vn thú v và các cuc tho lun dành cho các nhà phát trin phn mm Ly sn phm và công ngh Android SDK: Ti v, truy cp tham chiu API, và nhn tin tc mi nht v Android t trang web chính thc ca các nhà phát trin Android D án Mã ngu n M Android: Ly mã ngu n m cho Android Eclipse IDE: Ly phiên bn mi nht và cho nó hot ng Các phiên bn ánh giá sn ph*m IBM: Ti v ho-c s dng các bn th nghim trc tuyn trong IBM SOA Sandbox và b)t u s dng các công c phát trin ng dng và các sn ph*m phn mm trung gian t DB2, Lotus, Rational, Tivoli, và WebSphere Tho lun Tham gia di#n àn tho lun Các di#n àn tho lun v XML: Tham gia mt s% cuc tho lun v XML developerworks blogs: c các blog này và tham gia vào cng ng developerworks ôi nét v tác gi Michael Galpin ã phát trin phn mm Java mt cách chuyên nghip t nm 1998 Ông hin ang làm vic cho ebay Ông ã có bng v toán hc ca Vin Công ngh California IBM, logo IBM, ibmcom, DB2, developerworks, Lotus, Rational, Tivoli, và WebSphere là các thng hiu ho-c thgn

Page 12 of 12 hiu ã c ng ký ca International Business Machines Corporation ti M2 và các qu%c gia khác Các thng hiu này và các iu khon c ng ký thng hiu IBM xut hin ln u tiên trong bài vit này i kèm vi biu tng phù hp ( ho-c ), ch ra rng ây là các thng hiu ã c ng ký ti M2 ho-c thuc s hu hp pháp ca IBM khi bài vit này c phát hành Các thng hiu này c(ng có th c ng ký ho-c là thng hiu hp pháp ti các qu%c gia khác Hãy xem danh sách hin có v các thng hiu IBM Adobe, logo Adobe, PostScript, và logo PostScript ho-c là thng hiu c ng ký ho-c là thng hiu ca Adobe Systems Incorporated ti M2 và/ho-c các qu%c gia khác Java và tt c các thng hiu da trên Java u là thng hiu ca Sun Microsystems, Inc ti M2 và/ho-c các qu%c ga khác Các tên dch v, công ty ho-c sn ph*m khác có th là thng hiu ho-c dch v ca các công ty khác Tên ca công ty, sn ph*m hay dch v có th là nhãn hiu ng ký ho-c nhãn hiu dch v ca ng'i khác