Tej zaum ib tug xav pom, thiab zoo li cas ntawm sau nyob rau hauv ib lub qhov kev pab cuam? Tom qab ntawd nws tau mus siv ib tug rov qab-engineering. Yuav ua li cas yog nws? Yuav ua li cas yog nws ua hauj lwm? Yuav ua li cas yog tus txheej txheem no? Tag nrho cov no koj yuav kawm tau los ntawm qhov tsab xov xwm.
Yuav ua li cas yog ib tug rov qab-engineering kev pab cuam?
Yog li ntawd hu ua txheej txheem daim ntawv thov tsom xam nyob rau hauv kev txiav txim rau to taub yuav ua li cas nws ua hauj lwm, thiaj li hais tias nyob rau hauv lub neej yav tom ntej mus recreate tus txheej txheem no los ntawm kev ua cov kev tsim nyog hloov. Feem ntau siv rau lub hom phiaj no debugger thiab assembler. Nyob rau qhov zoo ntawm cov software siv yuav sib txawv thiab cov kev tshwm sim yog tus nqi ntawm lub sij hawm uas yuav tsum tau siv rau nws coj nyob rau hauv ib tug ib txwm daim ntawv. Piav rov qab-engineering rau beginners qhov zoo tshaj plaws piv txwv. Raws li ntawd ua ib daim ntawv thov sau ntawv rau hauv. Tam sim no cia tus yuav mus nrhiav tau tawm yog dab tsi thiab yuav ua li cas.
Ua hauj lwm nrog Android-daim ntawv sau npe
Ua ntej peb yuav hais ib co ntsiab lus. Daim ntawv thov yuav siv lub bytecode thiab logcat. Qhov no zos counterparts yav tas los hais debugger thiab assembler. Nws tseem yog tsim nyog los nkag siab txog cov qauv ntawm cov ntaub ntawv sau npe rau lawv tus kheej. Yog li, txhua qhov kev pab cuam yog ib cov ntaub ntawv nrog rau cov extension apk. Nws ntim zip'om. Peb txaus siab nyob rau hauv nws txheem - daim ntawv thov kev pab, classes.dex thiab AndroidManifest.xml. Yog hais tias koj ua programming rau hauv, cov teeb meem nrog rau yav tas los thiab yav tas yuav tsum tsis txhob yuav. Tab sis classes.dex - qhov kev pab cuam byte code uas yog muab tso ua ke rau cov virtual tshuab. Extract los ntawm nws java qhov chaws muaj nyob rau ntawm lub Internet tsis tau cov nyiaj. Tab sis yog nws tau mus nrhiav tau Dalvik opcodes - ib tug tshwj xeeb txheej commands uas yog siv rau cov virtual tshuab. Rau ib tug analogy peb yuav hais tias qhov no los ua ke ntawm lub zos dej nyab. Classes.dex kuj yuav hloov dua siab tshiab rau hauv ib cov ntaub ntawv nrog rau cov thawv. Txawm nyob rau hauv xws li ib tug cov ntaub ntawv, koj yuav tau txais ib tug java-code tom qab decompilation, uas yuav tsum tau ntau dua los yog tsawg tshwmsim. Qhov ntawd yog txoj kev uas peb mus.
decompilation
Qhov no yuav tsum nqa tawm siv Apk Nkuaj Nyug kev pab cuam. Ua ntej koj yuav pib, xyuas kom tseeb tias hais tias muaj yog qhov tseeb neeg tsav tsheb rau devaysa thiab ua tau hauj lwm USB-debugging hom. Chiv, peb yuav xav tau kom tshem tau cov ntaub ntawv uas yuav tsum parsed rau hauv ib tug qhia apk_manager \ qhov chaw-apk-no-rau-modding. Tom qab ntawd koj yuav tsum tau khiav Script.bat. Yog hais tias muaj yog tsis muaj teeb meem, ces pib lub console, uas yuav ntsuab lettering. Xaiv lub point tooj cuaj - "decompile". Thaum cov txheej txheem yog pib, nws yog tsim nyog tsis mus kaw console. Ces, qhib paj apk-ntaub ntawv uas siv cov archiver thiab extract ntawm nws classes.dex, yuav tsum tau ua dex2jar kev pab cuam. Peb yuav tsum tau tshwm sim nws yog tsim nyog los txav ib yam twj paj nruas uas muaj qhov yuav ncua ntxiv .bat. Koj yuav pom cov ntaub ntawv, uas yuav xaus nyob rau hauv .jar. Yog li ntawd, nyob deb, lub qhov rais tsis kaw.
peb tsom xam cov ntaub ntawv
Yog xav tau cov lus qhia txog daim ntawv thov, koj yuav tsum qhib nws tshwm sim. Raws li nws, peb txiav txim siab tias ua raws li lub ntsiab kev ua si. Nws yog nws leej twg tam sim no pib ua tus loj tshaj tseem ceeb rau peb. Nws tseem yog ntshaw kom zoo rau hauv qab ntawm qhov kev pab cuam. Yog hais tias lub hauv qab yog cov lus qhia txog daim ntawv tso cai saib xyuas, nws yog ib ho nyuaj mus nqa tawm rov qab engineering. Yog hais tias koj hloov mus rau JD-gui thiab nthuav rau hauv cov ntoo, peb yuav pom tau ob peb namespaces. Xav hais tias cov peb ntawm lawv. Nyob rau hauv thawj yog cov ntaub ntawv uas txuam nrog advertising. Qhov thib ob yuav tsum tau daim ntawv tso cai saib xyuas cov chav kawm ntawv. Nyob rau hauv lub thib peb, peb yog cov tsim nyog cov ntaub ntawv. Nws yog thaum peb mus. Muaj yuav tsum tau mus nrhiav thiab tshem tawm cov tseem ceeb, thiab ces tus so ntawm cov kab uas xyuas seb muaj ntawv tso cai ua hauj lwm version. Tag nrho cov yuav tsum tau ntxuav. Ces nyob rau hauv peb Apk Manager nrhiav ib qho chaw qhov twg qhov chaw teev bytecode. Tam sim no cia peb ua kom ib tug me me digression thiab tawm tswv yim tawm pab neeg IEP, uas muaj peev xwm muaj feem ua rau muaj teeb meem. Tom qab ntawd, peb tsuas muaj mus compile qhov kev pab cuam.
Tsim kom muaj daim ntawv sau npe
Qhov no yuav pab tau peb tag nrho cov tib Apk Manager. Nyob rau hauv lub console, uas peb tsis tau muab xauv, xaiv qhov khoom №14. Tom ntej no ua kom yuam kev. Yog hais tias daim ntawv thov no es tham, thaum twg koj pib, tej zaum nws yuav yog cov los yog kiag li poob nws efficiency. Tsis txhob txhawj, nws txhais tau tias peb tsuas yog tog muaj thiab lwm qhov chaw rau mus. Peb mus txuas ntxiv mus nqa tawm rov qab-engineering-Tag nrho cov Android apps. Hais tias, ua li cas nyob rau hauv ib tug cov ntaub ntawv, nyob rau hauv nqe lus dav dav, alas, yog tsis yooj yim sua. Yog li ntawd, saib rau teeb meem qhov chaw yuav muaj lawv tus kheej. Piv txwv li, yog tias ib daim ntawv thov qhov rais yog sim pop-up qhov rais, koj yuav tsum pom tus code thiab tshem tawm cov feem uas yog lub luag hauj lwm rau qhov kev sib tham. Yuav kom pab nrog rau qhov no yuav JD-gui. Raws li koj tau pom, lub ntxeev engineering tsis yog ib qho yooj yim ua lag ua luam, thiab nws yuav tsum tau ib tug txiav txim khw ntawm kev txawj ntse. Txawm yog tias txhua yam yog khiav tsis muaj teeb meem, nws yuav tsim nyog rau kev ntsuam xyuas qhov kev kawm ntawm daim ntaub ntawv. Hais tias yog, qhov rov qab-engineering yog ntau lub sij hawm-siv ua si. Peb mus txuas ntxiv mus ua hauj lwm kom txog thaum tag nrho cov teeb meem qhia tau.
kev nyab xeeb
Yuav ua li cas yog hais tias peb xav tau kev tiv thaiv Tag nrho Hauv daim ntawv thov los ntawm rov qab engineering? Nyob rau hauv cov ntaub ntawv no, muaj ob qho kev xaiv: kev siv ntawm tej kev pab cuam los yog cov creation ntawm ib tug code qauv uas yuav cuam tshuam rau ua parsing sau. Cov yav tas kev xaiv no yog tsim tsuas tej tub txawg, yog li peb yuav xav txog tsuas yog thawj txoj kev ntawm kev tiv thaiv. Raws li ib tug tshwj xeeb software siv ProGuard. Daim ntawv thov no, uas yog siv los txo, obfuscation thiab code optimization. Yog hais tias qhov kev pab cuam "caum" los ntawm nws, peb tau txais ib cov ntaub ntawv nrog rau cov extension * .apk me dua nws yog. Nyob rau hauv xws li ib tug cov ntaub ntawv nws yuav ntau npaum li cas yooj yim rau lauj. Thiab lub zoo dua ntawm qhov kev pab cuam yog hais tias nws tau txawm tau ua tswvcuab nyob rau hauv lub muaj Android daim ntaub ntawv nrog r9 tshiab. Yog li ntawd, coj kom zoo dua ntawm nws yog tej kev tsim tawm uas muaj standard cov cuab yeej ntawm creation thiab kev loj hlob.
xaus
Peb tsis tau hais tias qhov rov qab-engineering yuav tuaj raws li ib yam dab tsi uniformly zoo los phem. Ntawm cov hoob kawm, los ntawm tus taw tes ntawm view ntawm developers, uas tau tsim ib daim ntawv thov, nws tsis yog ib tug zoo siab kev tshwm sim. Tiam sis nyob rau lwm cov tes, nyob rau hauv Feem ntau tej programmers sau ntawv qhov tsim nyog cov ntaub ntawv yuav ua tau ib lub sij hawm tsis tshua kim tshaj cov kev siv ntawm tej cuab yeej. Txawm tias rau novice developers rov qab-engineering yuav kav ib tug zoo kev pab cuam yog hais tias muaj yog tsis muaj tswv yim li cas los mus siv ib yam dab tsi, txawm heev, thiab tsis ntshiab heev qhia yuav pab tau nrog qhov kev kawm ntawm no lub hom phiaj.