You are on page 1of 45

TRNG I HC BCH KHOA H NI

VIN IN



BO CO
BI TP LN AN NINH V QUN TR MNG
Ti: ng dng nhn dng m vch dng smartphone
Nhm sinh vin thc hin:
1. ng Minh Ch MSSV: 20101167
2. T Minh Ngha MSSV:20101936
3. L Ngc Lm MSSV: 20101753


Gio vin hng dn: PGS TS Trn Hoi Linh

1


LI M U ..................................................................................................................... 1
Chng 1: GII THIU TNG QUAN V ANDROID ................................................... 3
I. Khi nim v c trng ca android ..................................................................... 3
II. Kin trc ca nn tng Android ............................................................................. 4
III. Cc thnh phn ca ng dng ................................................................................ 7
IV. Cng c h tr lp trnh Android ......................................................................... 16
CHNG 2 TNG QUAN V M VCH V TH VIN ZXING ......................... 17
I .Tng quan v m vch ............................................................................................... 17
II. M QR .................................................................................................................. 20
III. Th vin Zxing ..................................................................................................... 21
CHNG III- XY DNG THUT TON X L NH TRN MATLAB ............. 27
I. X l nh v cc khi nim lin quan. ................................................................... 27
CHNG IV: THIT K GIAO DIN NG DNG .................................................... 36
I. Biu tun t ca h thng ................................................................................... 36
II. Chng trnh demo .................................................................................................. 37
1 .Chng trnh demo ................................................................................................. 37
2 .Cch add th vin zxing ......................................................................................... 38
3 .Chng trnh to c s d liu SQ lite ................................................................... 38
4 .Cu hnh activity lin kt gia cc trang ................................................................ 38
III. Thit k cc lp v giao din ................................................................................... 38
2 Thit k giao din thc t ........................................................................................ 40
Mt s hnh nh thc t ng dng khi chy trn smarphone SKY 820 ............................ 40
Kt lun .............................................................................................................................. 42
LI M U
Ngy nay, vic ng dng m vch tr nn ph bin i vi mi ngi k c trn
th gii v Vit Nam. Mi khi i siu th chng ta vn thy ngi thu ngn dng mt
2

thit b qut m vch in trn sn phm gip cho vic thanh ton d dng hn. y mi ch
l mt ng dng nh ca vic s dng m vch vo i sng thng ngy.
Cng vi s pht trin ca cng ngh, m vch ci tin khng ch cn n gin
l lu m ca sn phm m cn c kh nng lu c nhiu thng tin ca sn phm hn
vi vic s dng m vch 2 chiu.
Mt li th ca ng dng m vch l kh nng tin dng, chng ta c th s dng
ti bt k u, bt k khi no bng vic s dng mt thit b thng minh c h tr my
nh (v d: in thoi di ng) c kh nng c m vch v gii m m vch .
T nhng kin thc hc t nhng mn hc c s d liu v an ninh qun tr
mng,chng em quyt nh chon ti cho n mn hc an ninh qun tr mng l
ng dng nhn dng m vch dng smartphone
Em xin cm n PGS TS Trn Hoi Linh hng dn v gip chng em hon thnh
ti ny
Trong qu trnh thc hin ti chng em kh c th trnh c nhng sai st ,mong
thy c nhng nhn xt v gp c hon thin hn.
Chng em xin chn thnh cm n !
Nhm sinh vin thc hin:
4. ng Minh Ch
5. T Minh Ngha
6. L Ngc Lm

3

Chng 1: GII THIU TNG QUAN V ANDROID
I. Khi nim v c trng ca android
1.Khi nim

Hnh 1: in thoi Android, HTC Dream (tri) v HTC Magic (phi)
Android l mt h thng, mt h iu hnh da trn Java v chy trn nhn linux
2.6. N c pht trin bi Lin minh thit b cm tay m (Open Handset Alliance), vi
phng chm mang li phong cch s dng Internet mi v m cho in thoi di ng.
Android cung cp mt tp hp y cc phn mm cho thit b di ng bao gm:
h iu hnh, cc khung ng dng v cc ng dng c bn.
2.c im
2.1. Tnh m
Android c xy dng t di i ln cho php ngi pht trin to cc ng dng
di ng hp dn vi y cc im mnh ca cc thit b cm tay hin c. Android
hon ton m, mt ng dng c th gi ti bt k mt chc nng li ca in thoi nh
to cuc gi, gi tin nhn hay s dng my nh, cho php ngi pht trin to phong ph
hn, lin kt hn cc tnh nng cho ngi dng. Android c xy dng trn nhn Linux
m. Thm na, n s dng mt my o m c ti u ha b nh v phn cng vi
mi trng di ng. Android m mt m ngun m, n c th c m rng kt hp
4

t do gia cc cng ngh ni tri. Nn tng ny s tip tc pht trin bi cng ng pht
trin to ra cc ng dng di ng hon ho.
2.2. Tnh ngang bng ca cc ng dng
Vi Android, khng c s khc nhau gia cc ng dng in thoi c bn vi ng
dng ca bn th ba. Chng c xy dng truy cp nh nhau ti mt lot cc ng
dng v dch v ca in thoi. Vi cc thit b c xy dng trn nn tng Android,
ngi dng c th p ng y cc nhu cu m h thch. Chng ta c th i mn hnh
nn, kiu gi in thoi, hay bt k ng dng no. Chng ta thm ch c th hng dn
in thoi ch xem nhng nh mnh thch.
2.3. Ph v ro cn pht trin ng dng
Android ph v ro cn to ng dng mi v ci tin. Mt ngi pht trin c
th kt hp thng tin t trang web vi d liu trn in thoi c nhn chng hn nh
danh b, lch hay v tr trn bn cung cp chnh xc hn cho ngi khc. Vi
Android, ngi pht trin c th xy dng mt ng dng m cho php ngi dng xem v
tr ca nhng ngi bn v thng bo khi h ang v tr ln cn. Tt c c lp trnh
d dng thng qua s h tr ca MapView v dch v nh v ton cu GPS.
2.4. D dng v nhanh chng xy dng ng dng
Android cung cp b th vin giao din lp trnh ng dng s v cc cng c
vit cc ng dng phc tp. V d, Android c th cho php ngi pht trin bit c v
tr ca thit b v cho php cc thit b giao tip vi nhau c th to nn mng x hi
chia s ngang hng rng khp. Thm na, Android cn bao gm mt b cng c y
gip cho vic pht trin tr nn d dng.
II. Kin trc ca nn tng Android
1.Kin trc tng qut
Android bao gm bn thnh phn sau:
H iu hnh
Th vin v cc giao din lp trnh ng dng
Khung ng dng
ng dng
5

1.1. H iu hnh

Hnh 2: Nhn Linux trn Android
Android s dng nhn Linux 2.6 lm nhn cho cc dch v h thng nh bo mt,
qun l b nh, qun l tin trnh (x l tin trnh, a lung), ngn xp mng v trnh
iu khin thit b (giao tip USB, giao tip hng ngoi, khng y, v.v). Nhn Linux
ny cng c vai tr nh mt lp tru tng gia phn cng v phn mm.
1.2. Th vin v cc giao din lp trnh ng dng
Android c mt th vin kh phong ph cung cp sn ngi lp trnh c th s
dng. Hnh 4 l s tm tt v h thng th vin ny.

Hnh 3: Th vin lp trnh ng dng trn Android
1.2.1. Android runtime
Android c mt tp cc th vin nng ct cung cp hu ht cc chc nng sn c
trong th vin ct li ca ngn ng lp trnh Java.
Mi ng dng Android u chy trong tin trnh ca n, vi mi my o Dalvik
ring. Dalvik c vit thit b c th chy nhiu my o Dalvik mt cch hiu qu.
My o Dalvik thc thi cc tp tin thc thi Dalvik (.dex) c nn li. My o Dalvik
da trn thanh ghi, chy cc lp c bin dch bng b bin dch ngn ng Java v
chuyn sang nh dng .dex bng cng c dx.
My o Dalvik da trn nhn ca Linux vi cc chc nng bn di nh phn
lung v qun l b nh mc thp.
6

1.2.2. B th vin
Android cung cp mt tp cc th vin C/C++ c cc thnh phn ca Android s
dng khc nhau. Khung ng dng Android mang li nhiu kh nng cho nhng ngi
pht trin. Sau y l mt vi th vin c bn:
H thng th vin C: mt dn xut ca h thng th vin C chun cho
nhng thit b nhng trn nn Linux.
Th vin a phng tin: s dng nhn m PacketVideo, h tr nhiu nh
dng m thanh, hnh nh v c video, bao gm Mpeg4, H264, MP3, ACC,
M, JPG v PNG.
Surface manager: qun l vic truy cp ti cc h thng hin th con v
vic kt hp ca cc lp ha 2 chiu, 3 chiu t nhiu ng dng.
Th vin c s Web: mt my trnh duyt web hin i tn dng sc mnh
ca trnh duyt Android, cho php nhng ca s duyt web cho ng dng.
SGL (Scalable Graphics Library): c my ha 2D ca Android.
Th vin 3D: c ci t trn da trn API ca OpenGL ES 1.0; th vin
bao gm c b cm nhn gia tc phn cng 3D, ti u ha cc phn mm
3D.
FreeType: th vin font ch nh nh phn v vc t.
SQLite: l th vin truy xut c s d liu nh, mnh, c sn trong mi ng
dng Android.
1.3. Khung ng dng

Hnh 4: Khung ng dng
Android cho php ngi pht trin c ton quyn truy xut vo cc API khung c
s dng bi cc ng dng nng ct. Kin trc ng dng c thit k n gin ha
vic s dng li cc thnh phn, mi ng dng c th cho php cc ng dng khc kh
7

nng s dng cc thnh phn ny. iu ny ging vi k thut cho php ngi dng t
li cc thnh phn. Di y l tt c cc ng dng ca h thng v cc dch v:
Tp hp phong ph ca cc Views s dng xy dng cc ng dng, bao
gm cc list, cc grid, cc text box, cc button v thm ch nhng c trnh
duyt web.
Content Providers cho php cc ng dng truy xut d liu t ng dng
khc (v d nh danh b), hay chia s d liu.
Resource Manager cung cp truy cp ti ti nguyn khng phi m ngun
nh l cc tp tin lu cc xu, tp tin ha, hay tp tin b cc giao din.
Notification Manager cho php cc ng dng hin th cc thng bo trn
thanh trng thi.
Activity Manager qun l vng i ca cc ng dng (t khi chng sinh ra,
c thc thi, chuyn sang trng thi ch, gi thc thi li v kt thc).
1.4. ng dng


Hnh 5: Cc ng dng trn Android
y l lp trn cng ca kin trc nn tng Android. Android s hot ng vi mt
b cc ng dng bao gm ng dng th in t, gi tin nhn, lch, bn , trnh duyt
web, danh b v.v Tt c cc ng dng c vit bng ngn ng Java. Cc ng dng
ny c th c cung cp sn hoc c pht trin bi nhng lp trnh vin.
III. Cc thnh phn ca ng dng
Mt ng dng trn Android c cu thnh t bn thnh phn c bn sau:
Activities (Hot ng)
Services
Broadcast Receivers
Content Provider
8

Cc thnh phn ny khng nht thit phi c mt y trong ng dng. Chng ta
c th xem cc thnh phn no c s dng trong ng dng bng vic xem khai bo
trong file AndroidManifest.xml.
1.Hot ng (Activity)
1.1. Khi nim
Mt hot ng l mt giao din ngi dng trc quan m ngi dng c th thc
hin trn mi khi c kch hot. Mt ng dng c th c nhiu hot ng v chng
c th gi n nhau chuyn gia cc hot ng vi nhau. Mi activity l mt dn xut
ca lp android.app.Activity.
Mi hot ng c mt ca s v ln. Thng thng ca s ny ph y mn
hnh, ngoi ra n cng c th c thm cc ca s con khc nh l hp thoiNi dung
ca ca s ca hot ng c cung cp bi mt h thng cp bc cc View (l i tng
ca lp Views).
1.2. Vng i ca hot ng
Cc hot ng trong h thng c qun l bi mt cu trc d liu ngn xp. Khi
c mt hot ng c khi to, n c y vo trong ngn xp, chuyn sang trng thi
thc thi v hot trng trc s chuyn sang trng thi ch. Hot ng ny ch tr li
trang thi kch hot khi m hot ng va khi to kt thc vic thc thi.
Mt hot ng c ba trng thi ch yu l:
Nu hot ng c hin th ngoi cng ca mn hnh (hot ng ny nm
trn nh ngn xp hot ng), n trong trng thi thc thi.
Khi b chim mt quyn iu khin nhng vn c hin th trn mn hnh
th mt hot ng s chuyn sang trng thi tm dng. Cc thng tin v
trng thi v cc d liu m hot ng ang s dng vn c lu gi (bi
chng trnh qun l ca h thng) nhng khi h thng ri vo trng thi
thiu b nh th nhng thng tin trn c th b gii phng.
Khi mt hot ng ang trng thi dng hoc tm dng, h thng c th
xa b hot ng khi b nh thng qua vic yu cu hot ng ny kt
thc.
Biu sau m t trng thi trong vng i ca mt hot ng
9


Hnh 6: Vng i ca mt hot ng
10

Vng i ca mt hot ng c th c th hin trong nhng qu trnh sau:
Ton b thi gian sng ca mt hot ng bt u t li gi u tin ti phng
thc onCreate (Bundle) ti li gi phng thc onDestroy(). Trong qu trnh ny, mt
hot ng s khi to li tt c cc ti nguyn cn s dng trong phng thc onCreate()
v gii phng chng khi phng thc onDestroy() c thc thi.
Thi gian sng c th nhn thy ca mt hot ng bt u t li gi ti phng
thc onStart(), cho ti khi phng thc onStop() ca n c thc thi. Ton b cc ti
nguyn ang c s dng bi hot ng vn tip tc c lu gi, ngi dng c th
thy giao din nhng khng tng tc c vi hot ng do trong qua trnh ny hot
ng khng trng thi chy tin cnh.
Thi gian sng tin cnh ca mt hot ng l qu trnh bt du t khi c li gi ti
phng thc onResume() v kt thc bng li gi ti phng thc onPause(). Trong thi
gian ny, hot ng chy tin cnh v c th tng tc vi ngi dng.
2.Dch v
2.1. Khi nim
Mt dch v (service) l cc on m c thc thi ngm bi h thng m ngi s
dng khng thy c. V d nh mt chng trnh chi nhc, s c vi hot ng cho
php ngi dng duyt danh sch cc bi ht v la chn bi no pht. Tuy nhin,
chc nng chi nhc khng c thit k nh mt hot ng bi chng ta s mun
chuyn qua ca s khc, nh khi son tin nhn th bi nhc vn tip tc c chi. Trong
trng hp ny, ng dng chi nhc s khi to mt dch v bng cch s dng phng
thc Context.startService().
Mt ng dng c th d dng thc hin lin kt ti mt dch v ang chy (thm ch
khi ng nu n cha thc thi) bng phng thc Context.bindService(). Khi dch v
ny s cung cp cho ng dng c ch giao tip vi chng thng qua giao din gi l
IBinder (i vi dch v chi nhc c th cho php dng hoc chuyn qua bi nhc k
tip).
2.2. Vng i ca mt dch v
Vng i ca mt dch v c hiu l qu trnh hot ng t khi n c to ra
cho ti khi b loi khi h thng. C hai cch thc mt dch v c th c chy trong
h thng:
11

Khi h thng c li gi ti phng thc Context.startService(). Trong trng hp
ny, dch v s c thc hin lin tc cho ti khi h thng gi phng thc
Context.stopService().
Khi cc ng dng gi phng thc Context.bindService() to kt ni vi dch
v (dch v s c khi to nu ti thi im n ang khng hot ng). ng dng
s nhn c mt i tng IBinder do dch v tr li c th gi cc phng thc
Callback ph hp truy cp ti cc trng thi ca dch v. Nu do li gi
Context.bindService() m dch v c khi to th n s c thc thi cho ti khi no
kt ni trn (tc l i tng IBinder) vn cn tn ti.
3.B nhn qung b (Broadcast receivers)
3.1. Khi nim
B nhn qung b l mt thnh phn khng lm g c nhng n nhn v phn hi li
cc thng bo qung b. Nhiu qung b c ngun gc t m h thng, v d thng bo
thay i mi gi, pin yu, nh chp hay thay i ngn ng. Cc ng dng c th khi
ng qung b, v d cc ng dng khc bit rng d liu c ti v xong trn
thit b v sn sng s dng.
Mt ng dng c th c bt k s lng b nhn qung b no nhn nhng thng
bo quan trng vi n. Tt c cc b nhn qung b c k tha t lp
BroadcastReceiver.
B nhn qung b khng c giao din. Tuy nhin, chng c th khi ng mt hot
ng p li thng tin m n nhn c, hay chng c th s dng
NotificationManager thng bo ngi dng bit. Cc thng bo c th c s ch
ca ngi dng theo cc cch cc nhau nh l sng mn hnh, rung thit b, bt m thanh
no y Thng thng, chng t thng bo trn thanh trng thi, ni ngi dng c
th nhn c thng bo.
4.Content provider
4.1.Khi nim
Cc ng dng c th lu tr d liu ca mnh trong cc tp tin hoc s dng c s
d liu SQLite sn c v.v Content Provider c chc nng cung cp mt tp hp cc
phng thc cho php mt ng dng c th lu tr v ly d liu c qun l bi
content provider .
12

Content Provider l mt c trng ring ca Android, nh m cc ng dng c
th chia s d liu vi nhau mt cch d dng
5.Cc thnh phn kch hot (cc Intent)
Content provider c kch hot khi chng c gi t mt ContentResolver. Ba
thnh phn khc (hot ng, dch v v b nhn qung b) c kch hot bi thng ip
khng ng b t cc intent. Mt intent l mt i tng c kiu Intent cha ni dung
ca thng ip. Vi cc hot ng v dch v, n gi tn hnh ng c yu cu v xc
nh URI ca d liu tc ng ti gia. V d, n c th truyn ti mt yu cu cho mt
hot ng hin th mt nh cho ngi dng hay cho php ngi dng sa vn bn. Vi
b nhn qung b, i tng Intent gi tn ca hnh ng c thng bo. V d, b
nhn qun b c th thng bo cc phn n quan tm l nt chp nh c bm.
C vi phng thc cho vic kch hot mi thnh phn:
Mt hot ng c khi chy thng qua mt i tng Intent
Context.startActivity() hay Activity.startActivityForResult(). Hot ng p li c th
theo di intent c to ra bng phng thc getIntent() v cp nht thng qua
phng thc setIntent(Intent). Android gi phng thc onNewIntent() b qua cc
intent n trc n.
Mt hot ng thng bt u hot ng khc. Nu n mun tr li kt qu hot
ng n khi chy, n s gi phng thc startActivityForResult() thay cho phng
thc startActivity(). V d, nu n khi chy mt hot ng m cho php ngi dng ly
mt nh, n c th mun ly kt qu ca nh c chn. Kt qu c tr v trong mt
i tng Intent thng qua phng thc onActivityResult().
Mt dch v c bt u thng qua mt i tng Intent l Context.startService().
Android gi phng thc onStart() ca dch v v thng qua i tng Intent ca n.
Tng t, mt intent c th thng qua Context.bindService() thit lp mt kt
ni lin tc gia cc thnh phn v dch v ch. Dch v nhn i tng Intent qua li
gi onBind() (nu dch v cha c chy, bindService() c th chn bt u n). Cho v
d, mt hot ng c th thit lp kt ni vi dch v chi nhc cp phn trc n
c th cung cp cho ngi dng giao din s dng iu khin chi li. Hot ng s
gi bindService thit lp kt ni v sau gi phng thc nh ngha bi dch v
p dng chi li ca khc.
13

Mt ng dng c th khi to mt qung b thng qua i tng Intent bng
phng thc nh Context.setBroadcast(), Context.setOrderedBroadcast() v
Context.sendStickyBroadcast(). Android chuyn nhng intent ti tt c cc b nhn
qung b no quan tm bng vic gi phng thc onReceive() ca n.
6.Ngt mt thnh phn
Mt hot ng c th b ngt thng qua vic gi phng thc finish(). Mt hot
ng c th tt mt hot ng khc (hot ng c khi ng vi li gi
startActivityForResult()) bng vic gi finishActivity().
ngt mt dch v chng ta c th s dng phng thc stopSelf(), hoc bng
cch gi Context.stopService().
Content provider c kch hot ch khi n p li yu cu t mt ContentResolver.
B nhn qung b c kch hot ch khi n p li mt thng ip qung b. Chng ta
khng cn thit phi tt cc thnh phn ny.
7.Tp tin khai bo (manifest)
Trc khi c th khi chy mt ng dng thnh phn, n phi xem ng dng bao
gm nhng thnh phn no. Thm na, cc ng dng khai bo cc thnh phn ca n
trong mt tp tin khai bo ng gi li vo trong gi Android (tp tin .apk cha cc
m ngun, tp tin v ti nguyn).
Tp tin ny c cu trc ca tp tin XML v lun c tn l AndroidManifest.xml
trong mi ng dng. N lm mt s th nh thm v khai bo cc thnh phn ca ng
dng, tn cc th vin ng dng cn lin kt ti (ngoi th vin chun ca Android) v
xc nh cc quyn cho ng dng.
Tuy nhin, nhim v chnh ca tp tin khai bo l khai bo cc thnh phn ca ng
dng. Mt hot ng c th c khai bo nh sau:
14


Thuc tnh name ca phn t <activity> l tn cc lp con lp Activity c
ci t, thuc tnh icon v label tr n tp tin ti nguyn cha biu tng v nhn
c hin th cho ngi dng.
Cc thnh phn khc c khai bo theo cch tng t: <service> dch v,
<receiver> b nhn qung b v <provider> content provider. Cc hot ng, dch v v
content provider c th cng c khai bo trong tp tin khai bo hoc c th c to t
ng trong m (nh i tng BroadcastReceiver) v c ng k vi h thng bng
cch gi Context.registerReceiver().
8.B lc Intent
Mt i tng Intent c th c tn r rng trong thnh phn ch. Nu c, Android
s tm thnh phn (da trn khai bo trong tp tin khai bo) v kch hot n. Nhng
nu ch c tn khng r rng, Android phi xc nh thnh phn no thch hp nht
p li intent. N thc hin so snh i tng Intent vi b lc intent trong cc ch c
kh nng. Mt thnh phn ca b lc intent cho Android bit loi intent thnh phn no
cn x l. Ging cc thng tin c bn, chng c khai trong tp tin khai bo. y l mt
v d thm hai b lc intent cho mt hot ng.
<?xml version="1.0" encoding="utf-8"?>
<manifest . . . >
<application . . . >
<activity android:name="com.example.project.FreneticActivity"
android:icon="@drawable/small_pic.png"
android:label="@string/freneticLabel"
. . . >
</activity>
. . .
</application>
</manifest>
15



<?xml version="1.0" encoding="utf-8"?>
<manifest . . . >
<application . . . >
<activity android:name=
"com.example.project.FreneticActivity"
android:icon="@drawable/small_pic.png"
android:label="@string/freneticLabel"
. . . >
<intent-filter . . . >
<action android:name=
"android.intent.action.MAIN" />
<category android:name=
"android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter . . . >
<action android:name=
"com.example.project.BOUNCE" />
<data android:mimeType="image/jpeg" />
<category android:name=
"android.intent.category.DEFAULT" />
</intent-filter>
</activity>
. . .
</application>
</manifest>
16

B lc u tin l s kt hp ca hnh ng android.intent.action.Main v danh
mc android.intent.category.LAUNCHER l mt v d ph bin. N nh du li
mt Intent v m t li cho b khi chy ng dng, t vo trong danh mc cc ng dng
trn in thoi. Ni theo cch khc, hot ng lm li vo cho ng dng s c khi
chy, ngi dng s thy khi chn khi chy ng dng.
B lc th hai c khai bo hot ng c th thc thi trn mt kiu d liu c
bit.
Mt thnh phn c th c bao nhiu s b lc intent ty thch, mi mt ci li c
khai bo khc nhau cho cc kh nng. Nu n khng c mt b lc no, n c th c
c kch hot bi cc intent khc gi n.
to v ng k mt b nhn qung b trong m ngun, b lc intent to thng
mt i tng ging i tng IntentFilter. Tt c cc b lc khc u c ci t trong
tp tin khai bo.
IV. Cng c h tr lp trnh Android
B cng c pht trin phn mm Android SDK gm nhiu cng c tr gip cho
vic pht trin ng dng di ng trn nn tng Android. Thnh phn quan trng nht ca
b cng c ny l trnh gi lp Android v b plug-in pht trin ng dng Android trn
Eclipse ADT, bn cnh b SDK cng bao gm cc cng c khc cho vic g ri, ng
gi v ci t ng dng trn trnh gi lp v trn thit b.
Trnh gi lp Android: Thc cht y l mt chng trnh m phng mt thit b
di ng o trn my tnh. Chng ta c th s dng b gi lp ny thit k g ri v
kim tra ng dng ca mnh nh trn thit b trc khi a chng trnh vo thit b tht.
Android Development Tools Plugin (cho Eclipse) vit tt l ADT, Plugin ny h
tr cho vic to v g ri cc ng dng v s dng mi trng pht trin tch hp Eclipse
tr nn d dng hn.
Trnh g ri Dalvik Debug Monitor Service (DDMS): gip qun l cc tin trnh
trong b gi lp hoc thit b v tr gip vic g ri ng dng. C th s dng cng c
ny hy cc tin trnh, chn mt tin trnh c th g ri, sinh cc d liu truy vt,
xem b nh heap v thng tin v cc lung, chp nh mn hnh ca trnh gi lp.
AndroidDebugBridge (adb): Cng c ny cho php ci t cc tp tin .apk trn b
gi lp hoc thit b, ng thi h tr truy cp hai i tng ny t ca s dng lnh.
17

Android Asset Packaging Tool (aapt): Cng c to tp tin .apk cha cc m
nh phn v ti nguyn ca mt ng dng Android.
sqlite3: y l cng c truy cp cc tp tin d liu SQLite c to ra v s
dng bi mt ng dng Android.
dx: y l cng c bin dch cc tp tin .class thnh m bytecode chy trn my o
Dalvik (lu tr di dng tp tin .dex).
mksdcard: Gip to mt tp tin nh lu tr d liu m ta c th s dng trn b gi
lp, m phng s c mt ca mt th nh ngoi (nh th SD).
Android Virtual Devices (AVD): Cho php chng ta c th to cu hnh thit b
o, m phng cc c im ca b gi lp Android. Vi mi cu hnh, ta c th xc nh
nn tng cho n chy, ty chnh phn cng hay giao din s dng. Mi ty chnh ca
AVD s nh mt thit b c lp vi d liu lu tr ca n, th nh SD, v.v
18

CHNG 2 TNG QUAN V M VCH V TH VIN ZXING
I .Tng quan v m vch
1. Khi nim
M vch (Barcode) theo nh ngha l phng php lu tr v truyn ti thng tin bng
mt lai k hiu gi l k m vch (Barcode symbology). K m vch hay gi tt cng l
m vch, l 1 k hiu t hp cc khong trng v vch thng biu din cc mu t, k
hiu v cc con s. S thay i trong rng ca vch v khong trng biu din thng
tin s hay ch s di dng m my c th c c.

2. Phn loi
2.1 UPC (Universal Product Code)
UPC gm c 2 phn: phn m vch m my c th c c v phn s m con ngi c
th c c.
S ca UPC gm 12 k s, khng bao gm k t. l cc m s dng nhn din mi
mt sn phm tiu dng ring bit

Nhn k hiu UPC nh hnh bn ta thy tng cng gm 12 k s:
K s th 1: y l s 0, gi l k s h thng s. N nm trong phm vi ca 7 con s
nh r ngha v chng lai ca sn phm nh sau:
* 5 - Coupons: Phiu lnh hng ha
* 4 - Dnh cho ngi bn l s dng
* 3 - Thuc v cc mt hng c lin quan n y t.
19

* 2 - Cc mn hng nng t nhin nh tht v nng sn.
* 0, 6, 7 - Gn cho tt c cc mt hng khc nh l mt phn nhn din ca nh sn
xut.
Nm k s th 2: M doanh nghip hay m ca nh sn xut (Manufacturer code).
Nm k s k tip: Dnh cho ngi bn gn cho sn phm ca h. Ngi bn t to ra 5
k s ny theo ring ca mnh m ha cho sn phm .
K s cui cng: y l s 5, l k s kim tra, xc nhn tnh chnh xc ca tan b s
UPC
2.2 EAN (European Article Number)
2.2.1. EAN-13
EAN l bc pht trin k tip ca UPC. V cch m ha n cng ging ht nh UPC
nhng v dung lng n gm 13 k s trong 2 hoc 3 k s u tin l k s mc,
dng biu th cho nc xut x.

2.2.2. EAN-8
V bn cht tng t nh EAN-13 ch khc l EAN-8 gm 8 ch s nguyn, tu theo sp
xp v la chn cc ch s t s 0 n s 9 c chia lm 3 nhm:

M s quc gia: Gm 3 ch s u tin (bn tri)

M s hng ha: Gm 4 ch s tip theo.

M s kim tra: Gm 1 ch s ng cui cng. Nhn dng s C cng c tnh t 7 s
ng trc n v cch tnh cng tng t nh EAN-13.


20

2.3 Code 39
UPC v EAN d l 2 lai m vch c tnh cht chuyn nghip v quc t nhng khuyt
im ca n l dung lng c gii hn v ch m ha c s, khng m ha c ch.
Code 39 c pht trin sau UPC v EAN l k hiu ch v s thng dng nht. N
khng c chiu di c nh nh UPC v EAN do c th lu tr nhiu lng thng tin
hn bn trong n. Do tnh linh hat nh vy, Code 39 c a chung rng ri trong bn
l v sn xut. B k t ny bao gm tt c cc ch hoa, cc k s t 0 n 9 v 7 k t
c bit khc.

2.4 INTERLEAVED 2 OF 5
Interleaved 2 of 5 l mt lai m vch ch m ha k s ch khng m ha k t. u
im ca Interleaved 2 of 5 l n c di c th thay i c v c nn cao nn c
th lu tr c nhiu lng thng tin hn trong mt khang khng gian khng ln lm

Interleaved 2of 5
2.5 Cc lai Barcode thng dng khc

Codabar Code 93

Code 128-A HIBC
21

II. M QR
1.Khi nim
M QR l mt m ma trn (hay m vch hai chiu) c pht trin bi cng ty
Denso Wave (Nht Bn) vo nm 1994. Ch "QR" xut pht t "Quick Response", trong
ting Anh c ngha l p ng nhanh, v ngi to ra n c nh cho php m c gii
m tc cao. Cc m QR c s dng ph bin nht Nht Bn v hin l loi m
hai chiu thng dng nht Nht Bn.


Hnh 7: Mt nh m QR
Mc d lc u m QR c dng theo di cc b phn trong sn xut xe hi,
hin nay n c dng trong qun l kim k nhiu ngnh khc nhau. Gn y hn,
phn mm c m QR c ci vo in thoi di dng c gn camera (camera phone)
Nht. iu ny a n cc ng dng mi v a dng hng v ngi tiu dng, nhm
lm n gin vic nhp d liu vo in thoi di ng, vn khng my hp dn. M QR
cng c thm vo danh thip, lm n gin i rt nhiu vic nhp d kin c nhn ca
ngi mi quen vo s a ch trn in thoi di ng.
Ngi dng c chng trnh thu tn hiu (capture program) v my tnh c giao
din RS-232C c th dng my qut nh (scanner) thu d liu.
Tiu chun Nht Bn cho cc m QR, JIS X 0510, c cng b vo thng ging
nm 1999 v Tiu chun Quc t ISO tng ng, ISO/IEC18004, c chp thun vo
thng su nm 2000.

Hoa vn nh v
Vng d liu
M-un
22

2.Kh nng lu tr
Kh nng lu tr d liu m QR
S n thun Ti a 7.089 k t
S v ch ci in Ti a 4.296 k t
S nh phn (8 bit) Ti a 2.953 byte
Kanji/Kana Ti a 1.817 k t
Kh nng sa cha li
Mc L 7% s t m (codeword) c th c phc hi.
Mc M 15% s t m c th c phc hi.
Mc Q 25% s t m c th c phc hi.
Mc H 30% s t m c th c phc hi.
III. Th vin Zxing
1.Khi nim
Zxing (vit tt ca zebra crossing) l mt th vin m ngun m, x l nhiu
nh dng m vch 1 chiu v 2 chiu, c ci t bng Java. Mc ch ca th vin ny
l s dng my nh trn in thoi di ng chp v gii m cc m vch trn thit b,
khng cn phi kt ni vi my ch. Hin ti th vin h tr cc nh dng m vch sau:
UPC-A v UPC-E
EAN-8 v EAN-13
Code 39
Code 128
QR Code
Data Matrix
ITF
Th vin ny c chia lm nhiu phn, cc phn sau vn ang c h tr v
pht trin thng xuyn:
+ core: l phn li th vin gii m v l phn chnh ca ton b d n.
+ javase: ng dng khch cho J2SE.
+ android: ng dng khch cho Android.
+ androidtest: chng trnh demo trn Android.
23

+ android-integration: th vin h tr tch hp Barcode Scanner (b qut m vch)
thng qua Intent cho Android.
+ zxingorg: m ngun ca trang http://zxing.org/w.
+ zxing.appspot.com: m ngun ca trang web to m vch
http://zxing.appspot.com/.
Cc m un sau c ng gp v pht trin khng thng xuyn:
+ javame: ng dng khch cho JavaME.
+ csharp: th vin cho C#.
+ cpp: th vin cho C++.
+ rim: ng dng khch cho RIM/Blackberry.
+ iphone: ng dng khch cho iPhone (ch h tr m QR).
+ bug: ng dng khch cho BugLabs's BUG.
+ symbian: th vin cho Symbian.
2.Cch s dng
2.1. Gii m
Vic s dng th vin Zxing kh d dng . u tin, phi khi to mt i tng
thuc lp com.google.zxing.Reader. Chng ta c th s dng i tng thuc lp
MultiFormatReader c tt c cc nh dng m vch m th vin h tr.

Nu mun c m QR, ta c th ci t c theo m QR. Ta c th khi to nh
sau:

Tip n ta cn xc nh nh gii m. Reader s c t mt i tng c ci
t t lp com.google.zxing.MonchromeBitmapSource, y l mt lp tru tng cho
cc lp m t hnh nh.
Trong Java SE th vin c sn lp java.awt.BufferedImage, ta ci t nh sau:

BufferedImage myImage =...;
MonochromeBitmapSource source =new
BufferedImageMonochromeBitmapSource(myImage);
Reader reader = new QRCodeReader();
Reader reader =newMultiFormatReader();
24


Trong th vin Android khng c lp java.awt.BufferedImage, ta ci t nh sau:

Nu nh l mt resource (ti nguyn), R.drawable.barcode l i tng xc nh ti
nguyn .
Hoc ta c th dng nh sau:



Nu nh l mt tp tin ngoi, file_path l ng dn ti tp tin .
Gii m

Trong :
result: l i tng thuc lp com.google.zxing.Result. Lp Result ny cung cp
cc phng thc ly gi tr byte hoc chui c m ha trong m vch nu c.
V d:


Trong :
result: l i tng thuc lp com.google.zxing.MonochromeBitmapSource.
String text = result.getText();
byte[] rawBytes = result.getRawBytes();
BarcodeFormat format = result.getBarcodeFormat();
ResultPoint[] points = result.getResultPoints();
Result result = reader.decode(source);
Bitmap bmp = BitmapFactory.decodeFile("file_path");
MonochromeBitmapSource source = new
RGBMonochromeBitmapSource(bmp);
Bitmap bmp = BitmapFactory.decodeResource( getResources(),
R.drawable.barcode);
MonochromeBitmapSource source =
newRGBMonochromeBitmapSource(bmp);
25

Cui cng, b gii m h tr mt h thng gi gip chng ta gii m hiu qu
hn, hoc gim chnh xc tng tc . V d, gi TRY_HARDER s yu cu
b gii m tng nhiu thi gian hn cho vic nhn dng m vch:

2.2. M ha mt chui ra nh m QR
T gi: m ha mt chui ra nh m QR, ta ch vic to mt Intent xc nh hnh
ng m ha, xc nh loi v d liu m ha sau gi phng thc startActivity().
V d:



S dng lp IntentIntegrator
Lp IntentIntegrator cung cp mt phng thc n n gin l
IntentIntegrator.shareText() m ha mt chui ra m QR.

2.3. Qut m vch t mt chng trnh khc thng qua Intent
T gi: nu Barcode Scanner (b qut m vch) c ci t trn in thoi Android,
ta c th cho n qut v tr li kt qu, ch vic thng qua mt Intent. V d:
IntentIntegrator.shareText(activity, text);
Intent intent = new
Intent("com.google.zxing.client.android.ENCODE");
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra("ENCODE_TYPE", "TEXT_TYPE");
intent.putExtra("ENCODE_DATA","HELLO WORLD");
startActivity(intent);
Hashtable<DecodeHintType, Object>
hints = new Hashtable<DecodeHintType, Object>();
hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
Result result = reader.decode(source, hints);
26



on m trn bt s kin ca mt nt v gi ti Intent ca Barcode Scanner qut
m QR.

on m trn bt s kin tr v kt qu khi Barcode Scanner qut xong. Nu qut
thnh cng m resultCode s l RESULT_OK, nu Intent b hy th m resultCode s l
RESULT_CANCELED.
S dng lp IntentIntegrator
Lp IntentIntegrator gi Barcode Scanner rt n gin thng qua hm sau:

ly gi tr tr v, lp IntentIntegrator c hm parseActivityResult
IntentIntegrator.initiateScan(Activity);
publicvoid onActivityResult(int requestCode, int
resultCode, Intent intent) {
if (requestCode == 0) {

if (resultCode == RESULT_OK) {
String contents =
intent.getStringExtra("SCAN_RESULT");
String format =
intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
} elseif(resultCode==RESULT_CANCELED)

{

// Handle cancel



}
}
}
}
public Button.OnClickListener mScan = new
Button.OnClickListener() {
publicvoid onClick(View v) {
Intent intent = new
Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
};
27








protectedvoid onActivityResult (int requestCode,
int resultCode, Intent data) {
switch(requestCode) {
c
ase IntentIntegrator.REQUEST_CODE:

if (resultCode == RESULT_OK) {
IntentResult scanResult =
IntentIntegrator.parseActivityResult(
requestCode,resultCode, data);

if (scanResult != null) {


String strContent=scanResult.getContents();


//do here

}
}
}
28

CHNG III- XY DNG THUT TON X L NH TRN MATLAB
I. X l nh v cc khi nim lin quan.
1. X l nh
X l nh l mt dng ca x l tn hiu trong u vo l mt hnh nh (cc bc
nh, cc khung hnh) v u ra ca qu trnh x l nh c th l mt hnh nh khc
hoc l mt tp cha cc tnh cht hoc tham s lin quan ti hnh nh . Phn ln
cc k thut x l nh th thng qui v vic x l hnh nh nh l mt tn hiu 2
chiu ri s dng cc k thut x l tn hiu x l n.
2. Cc khi nim lin quan.
*im nh.
Gc ca nh (nh t nhin) l nh lin tc v khng gian v sng. x l
bng my tnh , nh cn phi c s ho. S ho nh l s bin i gn ng mt
nh lin tc thnh mt tp im ph hp vi nh tht v v tr v sng (mc xm).
Khong cch gia im nh c thit lp sao cho mt ngi khng phn bit
c ranh gii gia chng. Mi mt im nh vy gi l im nh hay gi tt l
Pixel. Trong khun kh nh hai chiu, mi Pixel ng vi cp ta (x,y).
Nh vy, im nh (Pixel) l mt phn t ca nh s ti to (x,y) vi xm
hoc mu nht nh. Kch thc v khong cch gia cc im nh c chn
thch hp sao cho mt ngi cm nhn s lin tc v khng gian v mc xm (hoc
mu) ca nh s gn nh nh tht. Mi phn t trong ma trn c gi l mt phn t
nh.
* phn gii nh.
Theo nh ngha trn th mi Pixel gm mt cp to (x,y) v mu. phn
gii ca nh chnh l tch s ca gi tr ln nht ca x vi gi tr ln nht ca y.
*Mc xm
Mc xm l kt qu s m ho tng ng mt cng sng ca mi im nh
29

vi mt gi tr s - kt qu ca qu trnh lng t ho.
Cc thang gi tr mc xm thng thng: 16,32,64,128,256. Trong mc 256
c dng rt ph bin do my tnh dng 1 byte (8 bit) biu din mc xm, m
mc xm li dng 1 byte biu din: 2
8
=256 mc, tc l t mc 0 n mc 255.
nh en trng: l nh c hai mu en, trng (khng cha mu khc ) vi mc
xm cc im nh c th khc nhau.
nh nh phn: nh ch c 2 mc en trng phn bit tc dng 1 bit m t 2
1
mc
khc nhau hay mi im nh nh phn ch c 1 trong 2 gi tr hoc l 1 hoc l 2.
nh mu: vi mi im nh th ngi ta dng 3 byte m t mc mu (do th
gii mu c to nn t 3 mu c bn: (red), xanh dng (blue) v xanh lc
(green). Do c 2
8
*
3
=2
24
=16,7 triu mu.
*Biu din nh.
Trong biu din nh, ngi ta thng dng cc phn t c trng ca nh l
pixel. Do ta c th biu din mt nh bi mt hm 2 bin cha thng tin. Cc m
hnh biu din nh cho ta mt m t logic hay nh lng cc tnh cht ca hm ny.
Cht lng nh hoc tnh hiu qu ca cc k thut x l ph thuc vo nhiu yu t
nh: phn gii, nhiu,...
x l c nh, th nh phi c ly mu (sample) ri lng t ho
(quantization). Tc l u tin chuyn t nh tng t sang nh s sau lu gi tr
ca tng im nh vi mt s hu hn cc mc xm.
Tng cng v khi phc nh
- Tng cng nh (image
enhancement):
Khi nh c chuyn t dng ny sang dng khc bi cc qu trnh nh: truyn
nh, qut nh,... th nh nhn c thng c cht lng thp hn so vi nh ban
u. gip ngi ta c th quan st bc nh mt cch chnh xc hn th i hi
phi c bin php nng cao cht lng nh. Qu trnh ny c gi l tng cng
nh (image enhancement).
30

Tng cng nh gip loi b cc suy gim (degradation) gy ra bi h thng x
l hoc knh x l nh. Ngy nay, nhu cu pht trin cc h thng t ng cho vic
x l hnh nh ngy cng pht trin, ko theo n l s cn thit trong vic loi b sai
s cng nh cc yu t nhiu trong qu trnh x l. Do , tng cng nh c th
c coi nh mt tp hp cc k thut nng cao cht lng hnh nh ng thi tp
hp ny cng c dng nng cao chnh xc trong qu trnh tm kim t ng
v chuyn i dng ca bc nh.
Cc k thut tng cng nh c th k n: k thut tng phn (contrast), nh
x (mapping- gn mi mc xm t nh gc vi mt mc xm khc ca nh c
bin dch),... Ni chung, cc k thut tng cng nh ny u nhm mc ch t
c kt qu tt nht. Nhng k thut ny thng da trn cc s kt hp gia cc
phng php bin i trn min khng gian v min tn s.
- Khi phc nh .
Khi phc nh l qu trnh loi b cc suy gim (degradation) trong nh. C
nhiu nguyn nhn dn n s suy gim.
Khi camera khng tp trung tiu c mt cch hp l c th dn n bc nh b
nhe.
Khi chp nh trong iu kin thi tit khng thun li: sng m, qu nng
nng,. cng c th lm cho bc nh b nhe.
Chp nh cc vt ang chuyn ng cng c th gy nhe cho bc nh.
Do c nhiu nguyn nhn gy nn suy gim nh v vy, i vi mi loi nguyn
nhn phi c cc cch phc hi khc nhau. Khi phc nh phn ln c thc hin
bng cch tm ra cc gii thut nhm phc hi li cc thng tin b tht lc trong qu
trnh x l nh.
Chng ta cng cn phn bit tng cng nh vi khi phc nh: trong khi tng
cng nh nhm tng cht lng ca bc nh th khi phc nh nhm a li hnh
nh gc ca bc nh b suy gim.
- Bin i nh
31

Thut ng bin i nh thng dng ni ti cc k thut dng bin i
nh. y nh c th c coi nh mt chui cc tn hiu mt chiu c biu din
bi cc hm c s. C nhiu bin i c dng nh: bin i Fourier, cosin, sin.
Trong khun kh lun vn ny, cc bin i Fourier: DFT, FFT, IDFT,... y l
cc bin i rt thng dng v c thc t p dng trong nhiu ng dng nghin
cu.
- Phn tch nh
Sau cc bc tin x l nh, nh c tng cng hay c khi phc
lm ni cc c trng ch yu. Lc ny n bt u c a vo qu trnh phn tch.
Qu trnh phn tch nh gm cc cng on: trch chn cc c tnh, phn on nh
thnh cc phn t. Tu theo mc ch ca vic x l, cc giai on tip theo ca qu
trnh phn tch nh c th l nhn dng nh (phn thnh cc lp c miu t) hay l
gii thch v miu t nh.
3. Nhn dng v phn loi nh.
Khi mt bc nh c phn on, nhim v tip theo l nhn dng vt th
hoc vng c phn on. Mi mt vt th l mt thnh phn trong nh v cc
gi tr o c l cc c tnh ca thnh phn . Mt tp cc vt th cng c cc c
tnh ging nhau c gi l mt lp vt th (pattern class).
Theo c th nh ngha, nhn dng l qu trnh phn loi cc i tng c
biu din theo mt m hnh no v gn cho chng vo mt lp (gn cho i tng
mt tn gi) da theo nhng quy lut v cc mu chun.
S nhn dng nh thng da trn nhiu tnh cht ca vt v vi mi tnh cht
u c cc k thut nhn dng khc nhau. VD: Mi ch ci trong ting Anh u l
mt tp cc ng thng ng, ngang, cho hoc cong. Trong khi ch A c m
t bi 2 ng cho v mt ng nm ngang th ch B c m t bi mt ng
thng ng vi 2 on cong. Mt s tnh cht ca cc vt th 2 hoc 3 chiu l din
tch, th tch, chu vi, b mt,. c th o c thng qua vic tnh ton s pixel.
Tng t nh vy, bang ca mt vt c c trng bi ng bin ca n. Mt s
tham s xc nh bang ca mt vt l cc momen bt bin (invariant moment),
ng trung bnh (medial axis) ca vt th ...
32

Mu ca mt vt cng l c im ht sc quan trng c dng trong nhn
dng. K thut dng pht hin cc c tnh ca vt th gi l k thut trch chn
c tnh (feature extraction). Khi vt th c miu t nh mt tp cc c tnh.
S la chn v tch ly cc tnh cht thch hp c coi nh l vn c bn u
tin trong nhn dng nh.
Phn loi thnh phn nh.
Phn loi l mt cng on quan trng trong qu trnh nhn dng vt. c
nhiu k thut phn loi c s dng trong vic nhn dng thnh phn. Mt s k
thut phn loi c bit nh l nhng k thut l thuyt chnh xc. Vi nhng k
thut l thuyt chnh xc ny, phn loi mt thnh phn cha bit c quyt nh
da trn mt s nguyn tc hoc xc nh hoc c ngha thng k hoc thm ch
i khi cn cha c xc nh r. Hnh 2.2. th hin qu trnh phn loi.



Hnh 2.2 Qu trnh phn loi vt cn nhn dng Cc k
Cc gii thut phn loi c gim st c th c phn thnh cc loi nh hn:
Phn loi da vo tham s (Parametric classifiers)
Phn loi khng cn tham s (Nonparametric classifiers)
i vi phn loi c gim st da trn tham s, thit b phn loi ly mu vi
mt tp gm nhiu mu thnh phn xc nh nhm tnh ton cc thng s thng k
ca mi loi thnh phn nh: trung bnh s hc, cng sai... Cc vector c tnh u
vo t c trong thi gian ly mu ca phn loi c gim st c coi nh cc
bin Gauss.
33

Cc gii thut khng cn gim st thng c s dng trong cc b phn loi
theo khong cch nh nht (minimum distance classifer) v b phn loi tng ng
ln nht

Ngc li, mt s thng s khng c quan tm trong phng php phn loi
c gim st khng cn tham s. Mt s k thut ca loi ny l: K im ln cn gn
nht, ca s Parzen
i vi cc phng php phn loi khng cn gim st, b phn loi s chia
ton b tp thng tin da trn mt s tiu chun tng ng. iu ny cho kt qu l
mt tp cc thnh phn trong mi thnh phn thuc v mt lp c th no .
1 S gii thut nhn dng nh.
D c nhiu gii thut c ra tip cn vn nhn dng ma vch t mt
bc nh s, tuy nhin hu ht u tun theo s gii thut tng t nhau:


34

Nhim v tng khi.
a. Tin x l: ch yu l chuyn i nh mu sang nh thang xm x l tin
li hn. ng thi xc nh kch thc nh v phn nh thnh t khi.
b. Xc nh v tr m vch: S dng gii thut x l xc nh v tr cc m
vch cha trong bc nh v tch ra thnh tng nh ri.
c. Barcode Decoder: c ln lt cc nh m vch tch ra v gii m chui
s hoc k t m ha.
Khi tin x l.
Bc nh u vo thng c phn gii cao, dn n khi lng x l kh ln.
Do gii quyt vn ny, gii thut c cp trong n l chia bc
nh ra tng khi (block) x ly. Do nhim v ca khi tin x l l chuyn
i nh mu sng sang thang xm , xc nh kch thc ca bc nh .
Khi xc nh v tr m vch.
Vi cch xc nh nh 1 khi co cha thnh phn ma vch hay khng c th
theo phng php : Gii thut php ton hnh thi.
Giai thut line scanning:
Gii thut ny d trn c tnh ca vng nh ch barcode l tp hp cc vch trng
en xen k nhau, do c s thay i mc xm lin tc t mc cao(trng) sang mc
thp(en). Do vi 1 khi nh cn xc nh c thuc vng ch m vch hay khng
ph thuc vo vic xc nh c tn ti s thay i lin tc mc xm hay khng.
Khi gii m m vch.
Sau khi a tach c cc vung anh cha ma vch ra khi nh gc, ta ln lt
a cc nh vo khi Barcode decoder tin hnh giai m.
35



+ Khi tin x l.
Khi ny c nhim v chnh l xc nh gc lch ca cc vch ma so vi
phng ngang xoay lai cho cac vach ma song song phng thng ng
xac nh gc lch ta s dng giai thut bin i radon
+ Khi xc nh chui thng tin
Khi c nhim v to chui d liu th hin rng ca tng vch m, t
tin hnh gii m cc s hoc k t m m vch m ha.

Ta s cat ngang nh ma vch va xac nh rng ca tng vch theo thut toan
Zero-Crossing:
- Vi mc ngng m a xac nh khi tin x l, ta xem nh 1 mc ngng
zero.
- Xt tng pixel nh theo chiu ngang, nu mc xm ti pixel th i la m
i
< m th
th pixel o thuc vch en va ngc li thuc vch trng.
36

- Nu c s thay i t ngt mc xm gia pixel th i va th i-1, th y la s
chuyn i gia vch trng v vch en.
- Tng hp s pixel trong tng vach va xac nh u l rng tiu chun ca
ma
vach.
- Tin hanh chia t l rng mi vch vi rng tiu chun, ta s thu c 1
chui d liu.
- Tuy nhin, cn xc nh chnh xac v tr bt u va kt thc ca ma vach. T
ta s c chui d liu cha y thng tin giai m.

Xc nh loi m:
T chui thng tin cha d liu giai m, ta cn xac nh c loi ma ang s
dng giai ma chnh xc.

Decoder:
Khi c nhim v gii m ra chui s hoc k t t chui d liu v loi m c
xc nh pha trn. Sau khi gii m thng tin nay s l d liu tham chiu phuc vu
cc ng dng khc. Bn canh , vic gii m s cho php ta loi b cc nh khng
cha m vch nhng b nhn dng nhm.
Trong qu trnh gii m ta s kim tra li v sa li. Li c kim tra l li
thay i mc rng lm vch hp c nhn dng l vch rng v ngc li.
Nguyn tc kim tra da trn vic tng rng D ca L vch m ha cho 1 k
t s khng ln hn 1 s K quy nh trc. v d m EAN-13 th K=. S chnh lch
gia D v K s cho ta bit trong L vch c bao nhiu li.


37

CHNG IV: THIT K GIAO DIN NG DNG
I. Biu tun t ca h thng

Biu hot ng ca h thng

38


II. Chng trnh demo
1 .Chng trnh demo
https://www.dropbox.com/s/24ldpjas3rg4gjt/Mavachv1.1.rar
39

2 .Cch add th vin zxing

Cn add 2 file to mi trng cho chng trnh nh hnh v gm c file android
v appcombat_v7_19 .Th vin zxing c lu di dng file core.jar. C th to
file ny bng cch s dng https://github.com/zxing/zxing/wiki/Getting-Started-
Developing. Ngoi ra c th s dng trong th vin trong link demo.Phin bn
zxing s dng l phin bn 1.6
3 .Chng trnh to c s d liu SQ lite
http://android.vn/threads/huong-dan-su-dung-sqlite-lam-database-trong-lap-trinh-
ung-dung-android-phan-1.24934/
http://android.vn/threads/huong-dan-su-dung-sqlite-lam-database-trong-lap-trinh-ung-
dung-android-phan-2.25151/
4 .Cu hnh activity lin kt gia cc trang
http://ajax.vn/2012/06/19/lam-the-nao-de-chuyen-doi-giua-cac-activities-trong-
android/

III. Thit k cc lp v giao din
1 Thit k cc lp demo
Lp demo: to giao din chnh ca chng trnh lin kt vi cc chc nng khc
cang dng nh Encode, Decode, Database.
40

Phng thc:
onCreate() l phng thc Overide ca lp Activity, c gi khi lp ny
khi to.
onClick() l phng thc Overide ca lp Activity, c gi khi c s kin
nhn nt xy ra.
Lp encode: to giao din cho ca s dng Encode, nhng chc nng chnh ca
lp ny l m ha mt tp tin thnh cc nh m QR.
onCreate(): phng thc Overide ca lp Activity, c gi khi lp ny
khi to.
myProcess(): phng thc thc hin gi ti cc phng thc doEncode()
v updateResult().
doEncode(): phng thc thc hin vic m ha mt tp tin thnh cc nh
m QR.
updateResult(): c gi khi phng thc doEncode() thc hin xong.
onClick(): phng thc Overide ca lp Activity, c gi khi c s kin
nhn nt xy ra.
showDialog(): phng thc hin th mt hp thoi thng bo cho ngi
dng cc thng tin.
checkFilePath(): phng thc kim tra tp tin c tn ti hay khng.
fillRect(): phng thc t mu cho nh.
generateQRCodeImage(): phng thc to nh m QR.
Lp decode: to giao din cho ca s dng Decode, chc nng chnh ca lp ny l
gii m cc tp tin nh v qut cc nh QR khi phc li tp tin ban u.
Phng thc:
onCreate(): phng thc Overide ca lp Activity, c gi khi lp ny
c khi to.
myProcess(): phng thc thc hin vic gi cc phng thc doDecode()
v updateResult().
41

doDecode(): phng thc thc hin gii m cc tp tin nh QR v tp tin
gc ban u.
updateResult(): phng thc ny c gi khi thc hin xong phng
thc doDecode().
onClick(): phng thc Overide ca lp Activity, c gi khi c s kin
nhn nt xy ra ( y l nt Decode).
onActivityResult(): phng thc ny l phng thc Overide ca lp c
s Activity c gi sau khi kt thc mt Intent gi n Barcode Scanner
(qut m vch).
showDialog(): phng thc hin th mt hp thoi thng bo cho ngi
dng cc thng tin.
checkFilePath(): phng thc kim tra xem tp tin c tn ti khng.
Lp help: lp ny c nhim v hin th thng tin chng trnh v hng
dn s dng cc chc nng.

2 Thit k giao din thc t
Mt s hnh nh thc t ng dng khi chy trn smarphone SKY 820

42


43


Kt lun
n gii thiu mt s nghin cu trong thi gian qua v nn tng Android v
m vch ca em, xy dng thnh cng ng dng nhn dng m vch trn nn tng
Android.
I. u ,nhc im
1.u im
- ng dng c c cc loi m vch barcode ,qr code
- Kt ni c c s d liu trn in thoi ,ngi dng c kh nng t to v thm
c s d liu.
2.Nhc im
- Khng th kt ni ti c s d liu trn internet,ch c c offline
- Chp nh c c lu li nhng b thot ra
II. Hng pht trin
- Kt ni thm PHP vi mysql c c c s d liu trn internet
- Tch hp thm vi chc nng m ha bo mt thng tin v ng dng trong truyn
nhn thng tin qua c m vch
44

Ti liu tham kho
[1] Smartphone. (n.d.). c ly t trang Wikipedia, the free encyclopedia:
http://en.wikipedia.org/wiki/Smartphone
[2] Mobile Development mindmap. (n.d.). c ly t trang Mobile Development:
http://mobilephonedevelopment.com/archives/600
[3] Binary Runtime Environment for Wireless. (n.d.). c ly t trang Wikipedia, the
free encyclopedia:
http://en.wikipedia.org/wiki/Binary_Runtime_Environment_for_Wireless
[4] What is BREW? (n.d.). c ly t trang Tech-FAQ.com: http://www.tech-
faq.com/brew.shtml
[5] Symbian OS. (n.d.). c ly t trang Answers.com:
http://www.answers.com/topic/symbian-os
[6] Blackberry. (n.d.). c ly t trang Wikipedia, the free encyclopedia:
http://en.wikipedia.org/wiki/Blackberry
[7] iPhone. (n.d.). c ly t trang Wikipedia, the free encyclopedia:
http://en.wikipedia.org/wiki/IPhone
[8] What is Android? (n.d.). c ly t trang Android Offical Website:
http://www.android.com/about/
[9] Application Fundamentals (n.d.). c ly t trang Android Offical Website:
http://developer.android.com/guide/topics/fundamentals.html
[10] M vch. (n.d.). c ly t trang Wikipedia, the free encyclopedia:
http://vi.wikipedia.org/wiki/M_vch
[11] M QR. (n.d.). c ly t trang Wikipedia, the free encyclopedia:
http://vi.wikipedia.org/wiki/M_QR
[12] zxing - Google Code. (n.d.). c ly t trang Google Code:
http://code.google.com/p/zxing/
[13] Calling ZXing in a program. (n.d.). c ly t trang Google Code:
http://code.google.com/p/zxing/wiki/DeveloperNotes
[14] Glossary. (n.d.). c ly t trang Android Developers:
http://developer.android.com/guide/appendix/glossary.html
[15] How to scan a barcode from another Android application via Intents. (n.d.). c
ly t trang Google Code: http://code.google.com/p/zxing/wiki/ScanningViaIntent
[16] Burnette Ed. Hello, Android: Introducing Google's Mobile Development Platform.
Nh xut bn Pragmatic Bookshelf, 2008.
[17] DiMarzio Jerome. Android a Programmers Guide. Nh xut bn McGraw-Hill
Osborne Media, 2008.

You might also like