TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 2(31).2009
1
XÂY DNG T ĐIN ĐA NG DÀNH CHO
ĐIN THOI DI ĐỘNG DA TRÊN ANDROID FRAMEWORK
DEVELOPMENT OF A MULTILINGUAL DICTIONARY
FOR MOBILE PHONES BASED ON THE ANDROID FRAMEWORK
Võ Trung Hùng – Trnh Công Duy
Trường Đại hc Bách khoa, Đại hc Đà Nng
Tóm tt
Trong bài báo này, chúng tôi gii thiu nhng kết qu nghiên cu và phát trin t đin
đa ng trên đin thoi di động s dng nn tng Android. Chúng tôi đã khai thác nhng tính
năng ưu vit ca Android để phát trin mt t đin đa ng s dng trên đin thoi di động. D
liu t đin được s dng li t kết qu d án FEV (đây là d án hp tác gia Khoa Công
ngh Thông tin – Trường Đại hc Bách khoa – Đại hc Đà Nng và Trung tâm Nghiên cu v
dch t động GETA – Groupe d’Etude pour la Traduction Automatique, Cng hoà Pháp) và
chương trình được viết trong ngôn ng lp trình Java. ng dng do chúng tôi phát trin có th
cài đặt lên các đin thoi có h tr Android và có th tra cu t đin cho các cp Anh-Vit,
Pháp-Vit và Anh-Pháp.
Abstract
In this paper, we introduce our research and development of a multilingual dictionary for
the mobile phone based on the Android Application Framework. We directly exploit the
capability of the Android Application Framework to develop a multilingual dictionary used on
mobile phones. The dictionary data is reused from the FEV project (this is an international
cooperation project between the Information Technology Faculty of Danang University and
GETA - Groupe d’Etude pour la Traduction Automatique, INPG, France) and the Jawa
programming language is used to make this programme. Our application can be installed on
Android-supported mobile phones where English-Vietnamese, French-Vietnamese and French-
English dictionaries can be consulted.
1. Gii thiu
Đin thoi di động không ch là thiết b đàm thoi thông thường mà đang dn tr
thành thiết b thông minh để đáp ng nhu cu ngày càng cao ca con người. Các bước
tiến vượt bc v công ngh giúp b nh ca đin thoi di động ngày càng ln, tc độ x
lý nhanh hơn và nh đó chúng ta có th tích hp nhiu chc năng khác nhau như chp
nh, quay video, nghe radio, xem tivi... Trong tương lai, đin thoi di động thông minh
(smartphone) có chc năng như mt máy tính s tích hp tt c chc năng để đáp ng
các nhu cu cn thiết ca con người. Mt khác, cùng vi s phát trin ca công ngh,
giá c đin thoi cũng càng ngày càng r hơn và các đối tượng là hc sinh, sinh viên s
dng đin thoi di động để h tr cho vic hc tp ngày càng ph biến hơn.
Mt trong nhng ng dng cn thiết đối vi người dùng và phù hp vi đin
TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 2(31).2009
2
thoi di động là t đin và dch t động. Các ng dng này cn thiết cho nhu cu hc
tp, trao đổi kiến thc, cũng như h tr hc ngoi ng cho mi người. S rt thun li
nếu có mt b t đin đa ngôn ng vi đầy đủ chc năng cn thiết li nh gn, thun li
cho vic di chuyn và tra t nhanh chóng.
Trong bài báo này, chúng tôi tp trung gii thiu kết qu nghiên cu khai thác
nhng tính năng ưu vit ca Android để phát trin mt t đin đa ng s dng trên đin
thoi di động. Chúng tôi đã s dng d liu t đin t kết qu d án FEV (đây là d án
hp tác gia Khoa Công ngh Thông tin – Trường Đại hc Bách khoa – Đại hc Đà
Nng và Trung tâm Nghiên cu v dch t động GETA – Groupe d’Etude pour la
Traduction Automatique, Pháp) và chương trình được viết trong ngôn ng lp trình
Java. ng dng do chúng tôi phát trin có th cài đặt lên các đin thoi có h tr
Android và có th tra cu t đin cho các cp Anh-Vit, Pháp-Vit và Anh-Pháp.
2. Tng quan v Android
2.1. Gii thiu
Android Application Framework là mt gói phn mm dng ngăn xếp dành cho
các thiết b di động, gm mt h điu hành (Linux), phn tin ích và các ng dng
chính. Các ng dng được viết bng ngôn ng lp trình Java và chy trên Dalvik, mt
máy o thông thường được thiết kế dành cho thiết b nhúng thc thi trên nhân Linux.
Android th hin tham vng ca Google: to nên nn tng ph biến, thun nht
cho vic phát trin ng dng trên đin thoi thông minh, tương t như điu mà
Microsoft đã làm được đối vi máy tính cá nhân PC. Khác vi mô hình kinh doanh ca
Microsoft, nn tng Android ca Google được công b vi giy phép ngun m
Apache. Mi người đều có th tiếp cn tt c giao din lp trình ng dng (API -
Application Programming Interface), không có nhng phn dành riêng cho nhà sn xut
thiết b. Vi giy phép ngun m, nn tng Android s d dàng được cài đặt trên nhiu
loi đin thoi thông minh hin có, to nên không gian dch v rng ln cho Google. V
mt k thut, Android s phát huy tác dng tt nht trên nhng đin thoi ging như
iPhone ca Apple. Liên minh ng h Android bao gm HTC, Motorola, Samsung, LG
(các nhà sn xut thiết b), Sprint Nextel, T-Mobile và AT&T (các nhà cung cp dch v
vin thông).
2.2. Kiến trúc tng quát
Android da trên kiến trúc 4 lp gm: lõi h điu hành (Linux Kernel), các thư
vin (Libraries), khung ng dng (Application Framework) và các ng dng
(Applications).
Linux Kernel là ht nhân ca Linux, được Linus Torvalds phát trin, mô phng
li ht nhân Unix. Linux là mt trong nhng ví d đin hình ca phn mm m và min
phí.
Lp thư vin chính là nơi để thc hin các x lý, nó được xem như b xđa
phương tin dùng để xem/ghi li âm thanh và hình nh, nhân ca trình duyt Web, tiến
TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 2(31).2009
3
trình biên dch kiu ch, và b máy cơ s d liu SQLite.
Application Framework tp hp các dch v có th dùng li được và nhng
thành phn chung phc v cho các ng dng. Ví d, mt loi framework là thành phn
cung cp ni dung cho bt k dch v nào có liên quan đến vic lưu tr và truy xut d
liu. Giao din ng dng trong SQLite chính là mt thí d c th v trình cung cp ni
dung này.
Các ng dng chy lp trên cùng ca h điu hành vi mt b các nhân ng
dng bao gm thư đin t, lch làm vic, trình duyt web... Khi phát trin mt ng dng
dành cho Android, ta thc hin các đon mã trong ngôn ng Java. Sau đó, các đon mã
này s được biên dch sang các bytecode ca Java, tuy nhiên để thc thi được ng dng
này trên Android thì nhà phát trin phi thc thi mt công c có tên là Dex. Đây là công
c dùng để chuyn đổi bytecode sang mt dng gi là dex bytecode. "Dex" là t viết tt
ca "Dalvik executable" đóng vai trò như cơ chế o thc thi các ng dng Android.
2.3. Phát trin ng dng cho Android
Android SDK bao gm rt nhiu công c tùy chn, cho phép chúng ta phát trin
các ng dng trên thiết b s dng nn tng Adroid. Hai thành phn quan trng nht là
Android Emulator (b gi lp) và Android Development Tools plugin (b công c phát
trin) dành cho Eclipse, nhưng ngoài ra Android SDK còn cha mt trong s nhng
công c khác cho b g li, đóng gói và khi to các ng dng trên b gi lp.
Để to được mt giao din người dùng (UI) trong Android, chúng ta cn nm
vng được các thành phn cơ bn để to mt màn hình và cách định nghĩa trong XML.
View và ViewGroup là hai thành phn cơ bn để to nên mt giao din người
dùng. Chúng thuc gói android.widget.*. Gói này cũng tương t như gói java.awt.*
trong Java. Trong gói này cũng cha Button, EditText, TextView, CheckBox,
GridView… là các thành phn to giao din cơ bn. Ngoài ra, trong Android còn có các
lp trình bày cơ bn cho phép bn ràng buc mi quan h gia các thành phn này như:
FrameLayout, LinearLayout, TableLayout, RelativeLayout, AbsoluteLayout.
TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 2(31).2009
4
Sau khi to tp tin cn phi khi to cho nó bi phương thc onCreate(), ví d
để hin th lp hello_activity ta viết:
protected void onCreate(Bundle savedValues)
{ super.onCreate(savedValues);
setContentView(R.layout.hello_activity);
restoreValues(savedValues);
}
2.4. Phát trin ng dng t đin
Chc năng:
ng dng do chúng tôi phát trin là t đin đa ng trên đin thoi di động vi
các chc năng chính như sau:
- Khi động ng dng
- Hướng dn s dng
- Thay đổi t đin (cp ngôn ng)
- Thay đổi kiu hin th (phông
ch)
- Thêm/sa t
- Tra t
- Thiết lp các thông s ng dng
Hình 1. Use Case ca người s dng
D liu:
Phn quan trng nht đối vi mt ng dng t đin chính là cơ s d liu
(CSDL) và điu quan tâm x lý là làm thế nào để chúng ta có th lưu tr, tìm kiếm d
liu này trên th nh ca đin thoi. Chúng tôi chn gii pháp thiết lp d liu t đin
cho ng dng bng cách đọc d liu t tp tin text ri lưu vào b nh ca máy theo
chun DICT, sau đó tìm kiếm trên b nh.
Định dng DICT được mô t như sau: toàn b CSDL được cha trong 2 tp tin,
mt tp tin cha nghĩa ca t (ví d: anhviet.dict) và mt tp tin ch mc (ví d:
anhviet.index). Các tp tin d liu này được s dng li t kết qu ca d án FEV.
Tp tin ch mc
Tp tin ch mc bao gm tên t, v trí bt đầu nghĩa ca t trong tp tin cha
nghĩa và độ dài ca nghĩa. Mi dòng trong tp tin ch mc cha d liu ca mt t. Các
dòng phân cách nhau bi ký t xung dòng.
Cu trúc ca tp tin ch mc:
t1 {tab} offset1 {tab} len1
t2 {tab} offset2 {tab} len2
Trong đó:
TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 2(31).2009
5
- offset1 là v trí bt đầu nghĩa ca t 1 trong tp tin cha nghĩa.
- len1độ dài nghĩa ca t 1 trong tp tin cha nghĩa.
Tp tin cha nghĩa
Cu trúc ca tp tin cha nghĩa gm các phn như sau:
@t
* t loi (danh t, động t...)
- định nghĩa 1= câu ví d cho định nghĩa 1 + nghĩa ca câu đó
- định nghĩa 2= câu ví d cho định nghĩa 2 + nghĩa ca câu đó
* t loi
- định nghĩa 3
Nghĩa ca mi t gm mt phn như trên, các nghĩa ca mi t ni tiếp nhau liên
tc.
Cách đọc d liu
Đầu tiên đọc tp tin anhviet.index tng hàng mt để ly v trí (offset) và chiu
dài (len) ca t cn tìm nghĩa.
Sau đó chuyn offsetlen đã mã hóa trong cơ s 64 bng 64 ký t tương ng
(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345
6789+/) qua s trong h thp phân.
d: đọc dòng “advance kbpP D3”
thì offset = kbpP = 9550415 len = D3 = 247
Sau khi có offsetlen (theo cơ s 10), ta đọc tp tin anhviet.dict để ly nghĩa
ca t.
Lưu ý cách chuyn đổi: ta có k ( cơ s 64) = 36 ( cơ s 10), b=27, p = 41, P = 15. Như
vy, chuyn sang cơ s 10, mã kbpP có giá tr là: 36*643 + 27*642 + 41*641 + 15*640 =
9550415. Đối vi độ dài nghĩa: D3. Ta có D = 3, 3 = 55. Như vy, chuyn sang cơ s
10, mã D3 cơ s 64 có giá tr là: 3*641 + 55*640 = 247.
2.5. Lưu tr d liu t đin
Chúng ta có th lưu tr d liu t đin trên máy ch hoc trên th nh ca đin
thoi.
Nếu d liu t đin được đặt trên máy ch, ng dng chy trên máy di động s
kết ni đến máy ch thông qua mng không dây để gi yêu cu và nhn kết qu tr v.
Mi vic lưu tr hay tìm kiếm đều được thc hin trên máy ch, còn ng dng trên máy
di dng ch yếu dùng để hin th giao din kết qu. Để s dng được ng dng này thì
yêu cu máy phi kết ni WIFI hoc GPRS. Vi gii pháp tra cu trên Server, ng dng
có th kế tha dch v t đin ca Google, dch v này cho phép chúng ta tra cu đa
ng không ch mt t mà có th tiến hành cho c đon văn bn.
Nếu d liu t đin đặt trên th nh ca thiết b (hoc b gi lp) thì ta to thư