Առաջին դիմումը. Android-ում հավելվածների գործարկման և վրիպազերծման գործիքների ակնարկ Միացնել USB-ի միջոցով վրիպազերծումը

Sandbox

սերվերի աստված սեպտեմբերի 18, 2011, ժամը 15:55

Android-ում հավելվածների գործարկման և վրիպազերծման գործիքների ակնարկ

  • Փայտանյութի սենյակ *

Իմ առաջին Android հավելվածը մշակելիս ես հանդիպեցի հավելվածը փորձարկելու և կարգաբերելու համար գործարկելու խնդրին: Այս հոդվածը պետք է օգնի սկսնակ օգտագործողին ընտրել էմուլացիոն գործիք:

Android վիրտուալ սարք (AVD)
Տեղադրում:
Այս էմուլյատորը ներկառուցված է Android SDK-ում:

Անհատականացում:
(Eclipse-ում օգտագործման օրինակով)
Պատուհան > Android SDK և AVD Manager > Նոր
Մուտքագրում ենք վիրտուալ սարքի անունը, հարթակը, հիշողության քարտի չափը, ցուցադրման տեսակը...
Սեղմեք Ստեղծել AVD:

Գործարկել:
Էմուլյատորի առաջին գործարկումը շատ երկար է տևում, հատկապես թույլ սարքերում: Օրինակ, ես չէի կարող սպասել իմ նեթբուքի առաջին գործարկմանը, և երբ այն առաջին անգամ գործարկեցի համակարգչով, վստահ էի, որ էմուլյատորը մտել է հավերժական հանգույց:
Էմուլյատորի հետագա գործարկումները մի փոքր ավելի արագ կլինեն:
«Run» կոճակը սեղմելու և էմուլյատորի վրա թեստային հավելվածի հիմնական գործունեության հայտնվելու միջև ընկած ժամանակահատվածը տևում է միջինը 11 վայրկյան: Չափումները կատարվել են բավականաչափ արդյունավետ համակարգչի վրա։

Առավելություններն ու թերությունները:
+ հավելվածը Android ՕՀ-ի տարբեր տարբերակների վրա, սարքերի վրա փորձարկելու հնարավորություն տարբեր տեսակներցուցադրել...
+ փորձարկման համար անհրաժեշտ տարբեր պարամետրեր, օրինակ՝ փոխելով էկրանի կողմնորոշումը
+ SD քարտի էմուլյացիա
- «Run» կոճակը սեղմելու և էմուլյատորի վրա հավելվածը գործարկելու միջև ընկած ժամանակահատվածը
- էմուլյատորը շատ դանդաղ է աշխատում, օրինակ, այն, ինչ հեռախոսը մշակել է 1-2 վայրկյանում, էմուլյատորն արել է 8-10 վայրկյանում

VirtualBox+Android x86
Տեղադրում և կարգավորում.
  1. Ներբեռնեք և տեղադրեք VirtualBox-ը:
  2. Պատկերի ներբեռնում։
  3. «Linux 2.6/Other Linux վիրտուալ մեքենայի ստեղծում, 512 Mb RAM, Bridged Network, HD 2 Gb, Disable Mouse Integration: Մենք կապում ենք ISO ֆայլև գործարկեք LiveCD տարբերակներից մեկը (կա HDPI և MDPI տարբերակ) կամ հետևեք այս հրահանգին:
  4. Սեղմեք Alt-F1 վահանակից դուրս գալու համար և մուտքագրեք netcfg և հիշեք էմուլատորի IP հասցեն: GUI-ին վերադառնալու համար սեղմեք Alt-F7:
  5. adb կապ

Գործարկել:
Ես ժամանակ չեմ անցկացրել «Գործարկել» կոճակը սեղմելու և էմուլյատորի վրա թեստային հավելվածի հիմնական գործունեության հայտնվելու միջև, բայց, ըստ սուբյեկտիվ զգացմունքների, դա տեղի է ունենում գրեթե ակնթարթորեն:

Առավելություններն ու թերությունները:
+ փոքր ժամանակային ընդմիջում «Գործարկել» կոճակը սեղմելու և էմուլյատորի վրա հավելվածը գործարկելու միջև
+ երբեմն ճարպիկ աշխատանք
- բավականին երկար և երբեմն խնդրահարույց տեղադրում
- տեղ-տեղ էմուլյատորը դանդաղ է աշխատում, պատկերի հետ կապված խնդիրներ կան (հատկապես MDPI-ում)
- SD քարտի էմուլյացիայի հետ կապված խնդիրներ, էկրանի կողմնորոշումը փոխելու,…
- միայն երկու (երեք) հասանելի Android OS տարբերակ և միայն երկու հասանելի ցուցադրման տեսակ

Android հեռախոսը միացված է USB-ի միջոցով
Տեղադրում և կարգավորում.
  1. Միացրեք վրիպազերծման ռեժիմը ձեր հեռախոսում: (Կարգավորումներ > Ծրագրեր > Մշակում > USB կարգաբերում):
  2. Ներբեռնեք վարորդը ձեր հեռախոսի համար:
  3. Մենք հեռախոսը միացնում ենք համակարգչին:
  4. Վարորդների տեղադրում. ADB Interface բաժինը պետք է հայտնվի Device Manager-ում:
  5. adb սարքեր. Եթե ​​ձեր հեռախոսը չի հայտնվում ցուցակում, ապա նորից տեղադրեք ԱԶԲ դրայվերը:

Գործարկել:
«Run» կոճակը սեղմելու և հեռախոսի վրա թեստային հավելվածի հիմնական գործունեության ի հայտ գալու միջև անցնում է մոտ 5 վայրկյան։

Առավելություններն ու թերությունները:
+ հավելվածը տեսնելու հնարավորություն, ինչպես այն կտեսնի օգտվողը (շատ կարևոր կետ, հատկապես հավելվածի ինտերֆեյսը և դիզայնը ստեղծելիս)
+ բազմահպում (եթե առկա է հեռախոսում)
+ փոխել էկրանի կողմնորոշումը, արագացուցիչը (եթե առկա է հեռախոսում)
- միայն մեկ OS տարբերակ և մեկ ցուցադրման տեսակ
- մեկ այլ օբյեկտ կհայտնվի ֆիզիկական աշխատասեղանի վրա

Եզրակացություններ.
Ես փորձեցի այս էմուլացիոն գործիքներից յուրաքանչյուրը և որոշեցի այս տարբերակը.
1. հեռախոսի միջոցով հավելված գրելը և փորձարկումը.
2. Հավելվածի փորձարկում բազմաթիվ Android վիրտուալ սարքերի վրա՝ ՕՀ տարբերակի և ցուցադրման տեսակի տարբեր համակցություններով:
Հուսով եմ, որ ընթերցողը կատարել է էմուլյատորի ընտրություն կամ իր համար նոր բան սովորել:
Հաջողություն փորձարկման հետ:

Ցուցադրվեցին ստեղծված հավելվածների փորձարկման համար Android էմուլյատոր ստեղծելու հիմնական քայլերը։ Էմուլյատոր օգտագործելը, իհարկե, բավականին հարմար է, բայց միայն այն դեպքում, եթե բավականաչափ ունեք հզոր համակարգիչև էմուլյատորի բեռնումը, ինչպես նաև նրա աշխատանքը, շատ ժամանակ չեն խանգարում: Բայց ոչ բոլորին է բախտ վիճակվել ունենալ նման հրեշային մեքենաներ, ուստի այս հոդվածում ես ձեզ ցույց կտամ Android Studio-ում ձեր աշխատանքը իրական միացված սարքով փորձարկելու բավականին լավ միջոց:

Այս հոդվածը կհամապատասխանի ձեզ 2 հիմնական դեպքում.

1) Ձեր համակարգիչը բավականաչափ հզոր չէ էմուլյատորը արագ գործարկելու համար (լինի դա Android Studio-ում կամ Eclipce-ում);

2) Դուք ունեք մի հին պառկած շուրջը Android սմարթֆոն ու չգիտես որտեղ դնել (ափսոս է տալ/գցել):

Հարկ է նաև նշել, որ այս մեթոդը կարող է օգտակար լինել նաև արտադրողական համակարգիչների սեփականատերերի համար, քանի որ էմուլյատորի վրա փորձարկումը մի բան է, իսկ հավելվածը իրական սմարթֆոնի վրա դիտարկելը բոլորովին այլ բան:

Այսպիսով, ձեր սմարթֆոնը Android Studio-ին միացնելու համար նախ անհրաժեշտ է տեղադրել վարորդների անհրաժեշտ փաթեթը: Որպես կանոն, վարորդների ստանդարտ հավաքածուի հետ տանջանքները հաճախ ոչնչի չեն հանգեցնի, ուստի խորհուրդ եմ տալիս անմիջապես ներբեռնել այս ֆայլը (մի վախեցեք, դա վիրուս չէ, չնայած հակավիրուսը երդվում է) և, նախկինում հեռացնելով հինը: վարորդներ, տեղադրեք այս ֆայլը (տեղադրման ժամանակ հեռախոսը ավելի լավ է չմիացնել):

Վարորդները տեղադրելուց հետո սարքը միացրեք համակարգչին USB-ի միջոցով: Բոլորը ցանկալի կարգավորումներկաշխատի և կտեղադրվի ավտոմատ կերպով:

Հաջորդը, գործարկեք Android Studio-ն: Գնացեք Գործիքներ --- Androidև նշեք «Enable ADB Integration» տողի կողքին գտնվող վանդակը (ADB - Android Debug Bridge): Դրանից հետո դուք պետք է կարգավորեք Android Studio-ն այնպես, որ երբ սեղմեք կանաչ «Run» կոճակը, ձեր հավելվածն անմիջապես տեղադրվի և գործարկվի միացված սմարթֆոնի վրա: Գնալ Run --- Խմբագրել կոնֆիգուրացիաները: Հետևյալ պատուհանը հայտնվում է.

իսկ «Target Device» բլոկում նշեք «USB Device» վանդակը և սեղմեք OK:

Այսքանը, շնորհավորում եմ, եթե ամեն ինչ ճիշտ եք արել, վարորդները հայտնաբերել են ձեր սարքը, ապա երբ սեղմում եք հավելվածի գործարկման կոճակը (կարմիրով ընդգծված).

հավելվածը կտեղադրվի և կաշխատի միացված սարքի վրա:

Դրանից հետո դուք պարզապես պետք է վերցնեք միացված սարքը և փորձարկեք ձեր ծրագրավորման աշխատանքը:

Հարկ է նշել, որ եթե հավելվածը տեղադրվել է, բայց ինքնաբերաբար չի գործարկվել, ապա, ամենայն հավանականությամբ, դա նշանակում է, որ ինչ-որ տեղ հավելվածում սխալ կա (չնայած այն կարող է չընդգծվել Android Studio-ում, օրինակ՝ կոդի կարևոր հատվածը։ պարզապես բաց է թողնված):

Հուսով եմ, որ այս հոդվածը օգտակար է ձեզ համար: Հաջողություն ձեր ջանքերում:

Android հավելվածներ ստեղծելիս մշակողների մեծ մասն օգտագործում է տարբեր էմուլյատորներ։ Սա հարմար է, քանի որ կարիք չկա գրասեղանի գզրոցներում մի փունջ տարբեր սարքեր պահել, համակարգչին սարքերը միացնելիս գլխացավանք չկա, սեղանի վրա լարերի կույտ չկա: Մենք սեղմում ենք մկնիկը և տեսնում ենք մեր ծրագրի աշխատանքը համակարգչի էկրանին։ Պարզ և էլեգանտ. Այնուամենայնիվ, էմուլյատորը հեռախոս չէ: Նա սահմանափակ է իր կարողություններով։ Եթե ​​ձեր հավելվածն օգտագործում է ապարատային որևէ հատուկ գործառույթ, ինչպիսիք են տեսախցիկի աշխատանքը, Bluetooth-ը կամ USB կապը, աշխատում է հեռախոսազանգ ստանալիս, մեծ հավանականություն կա, որ դուք չեք կարող անել առանց իրական սարքի վրիպազերծման: Բարեբախտաբար, Eclipse-ը պարունակում է այն ամենը, ինչ անհրաժեշտ է այս առաջադրանքն իրականացնելու համար:

Հեռախոսի միացում և ծրագրի գործարկում

Նախքան ձեր հեռախոսը համակարգչին միացնելը USB տվյալների մալուխի միջոցով, կան մի քանի նախապատրաստական ​​աշխատանքներ, որոնք դուք պետք է անեք: Փաստն այն է, որ Eclipse-ը կարգավորվել է լռելյայնորեն աշխատելու էմուլյատորի հետ, և մենք պետք է շտկենք վրիպազերծման ռեժիմի կոնֆիգուրացիան: Դա պարզ է. Ընտրեք ընտրացանկի տարրը Run > Debug Configuration, ապա DroidDebug: Թիրախ ներդիրում, Deployment Target Selection Mode բաժնում, փոխարկիչը դրեք Manual և սեղմեք Դիմել: Այսպիսով, ձեռքով հարթակի ընտրության ռեժիմը միացված է: Այժմ, երբ սկսում եք հավելվածը, երկխոսության տուփ կհայտնվի, որտեղ կարող եք ընտրել էմուլյատոր կամ միացված հեռախոսներից մեկը:

Որպեսզի հեռախոսը աշխատի վրիպազերծման ռեժիմում, այն նույնպես պետք է համապատասխանաբար կարգավորվի: Հիմնական էկրանից կտտացրեք Մենյու կոճակև գտեք «Կարգավորումներ» հավելվածը: Այս հավելվածում բացեք «Ծրագրեր» բաժինը, այնուհետև «Զարգացում» կետը: Բացվող էկրանում նշեք «USB Debgging» (USD Debgging) կողքին գտնվող վանդակը: Գործողությունների այս հաջորդականությունը աշխատում է հեռախոսների մեծ մասի վրա, բայց միանգամայն հնարավոր է, որ UBS վրիպազերծման ռեժիմը միացված է ձեր սարքում մեկ այլ տեղ:

Միացրեք ձեր հեռախոսը ձեր համակարգչին և սեղմեք «Debug» կոճակը Eclipse-ում: Բացվող երկխոսության մեջ կտեսնեք երկու ցուցակ՝ «Ընտրեք աշխատող Android սարքը» և «Գործարկել նոր Android վիրտուալ սարք»: Դրանցից առաջինում թվարկված են համակարգչին միացված հեռախոսները, երկրորդում՝ էմուլյատորները։ Ընտրեք ձեր հեռախոսը առաջին ցուցակից: Eclipse-ը կտեղադրի այն հավելվածը, որը վրիպազերծում եք ձեր հեռախոսում և կգործարկի այն: Դուք կարող եք վրիպազերծել ձեր ծրագիրը:

Հեռախոսի կարգավիճակի մոնիտորինգ DDMS (Dalvik Debug Monitor Service)

Հեռախոսի վիճակի մասին ամբողջ տեղեկատվությունը հասանելի է հատուկ գործիքի միջոցով, որը կոչվում է DDMS (Dalvik Debug Monitor Service) վրիպազերծման մոնիտորինգի ծառայություն: Այն գործարկելու համար սեղմեք Android կոճակը Eclipse-ի վերին աջ անկյունում:

DDMS պատուհանը բաղկացած է մի քանի վահանակներից: Սարքերի վահանակը ցուցադրում է հասանելի էմուլյատորների և միացված հեռախոսների ցանկը: Այն նաև թվարկում է ներկայումս գործող գործընթացները: Յուրաքանչյուր գործընթաց աշխատում է իր վիրտուալ մեքենայի մեջ: Թեմաները ցուցադրվում են առանձին «Թելեր» ներդիրում: File Explorer ներդիրը նախատեսված է աշխատելու համար ֆայլային համակարգհեռախոս. Դրա միջոցով դուք կարող եք պատճենել ֆայլերը ձեր համակարգչից ձեր հեռախոսին և հակառակը: Օգտագործելով Screen Capture կոճակը, կարող եք սքրինշոթ անել հեռախոսի էկրանին: Կանաչ բզեզ կոճակը թույլ է տալիս կցել վրիպազերծիչը ընտրված գործընթացին: Այս հնարավորությունն օգտագործելու համար դուք պետք է ունենաք բաց կոդով այս գործընթացի համար:

Հատկանշական է նաև LogCat logging օգտակար ծրագիրը և դրա հետ կապված վահանակը, որը կարող է շատ օգտակար լինել անսարքությունների վերացման համար: Լոգարի հետ աշխատելն իրականացվում է հատուկ դասի android.util.Log-ի միջոցով: Առավել հաճախ օգտագործվող մեթոդներն են.

Log.e() - սխալների գրանցման համար,
Log.w() - նախազգուշացումների գրանցման համար,
Log.i() - տեղեկատվական հաղորդագրությունների գրանցման համար,
Log.d() - վրիպազերծման գրանցման համար,
Log.v() - մանրամասն գրառումներ գրանցելու համար,

Այս մեթոդներին որպես պարամետրեր պետք է փոխանցվեն երկու տող: Առաջինը պիտակ է, որն այնուհետ կարող է օգտագործվել LogCat-ում որոնելու և զտելու համար: Երկրորդը փաստացի տեղեկատվությունն է, որը գրանցված է:

Ավելի վաղ գրել էի. Դուք կարող եք արմատապես լուծել խնդիրը, մի օգտագործեք էմուլյատորը, այլ անմիջապես փորձարկեք շարժական սարքըաշխատում է android: Ես ունեմ հիանալի HTC և կարգավորել եմ այն ​​դրա համար: Այսպիսով, ֆիզիկական սարքի վրա հավելվածներ գործարկելու համար ձեզ հարկավոր է.

  1. Միացրեք USB կարգաբերումը ձեր հեռախոսում: Դուք կարող եք դա անել՝ անցնելով Կարգավորումներ -> Ծրագրեր -> Մշակում և նշելով «USB կարգաբերում» վանդակը:
  2. Սպասեք վարորդի տեղադրմանը
  3. Անջատեք և նորից միացրեք ձեր հեռախոսը համակարգչին:

Ստուգելու համար, որ հեռախոսը տեսանելի է համակարգչին, անհրաժեշտ է անել հետևյալը.

Եթե ​​դա ձեզ համար է, ապա կարող եք օգտագործել հատուկ ծրագիր՝ PdaNet: () Սովորաբար այն օգտագործվում է համակարգչից հեռախոսից ինտերնետից օգտվելու համար, բայց պատահում է, որ այն պարունակում է հսկայական քանակությամբ վարորդներ հեռախոսների համար: Տեղադրման ժամանակ ինձ խնդրեցին սարքի մոդելը, այնուհետև հայտնվեց մի գեղեցիկ կարմիր բալուն նախազգուշացումով, որ վարորդը չի փորձարկվել, և ամեն ինչ կարող է վատ ավարտվել, բայց ոչ. ամեն ինչ լավ է, այն տեղադրված է: Դրանից հետո ես նորից գործարկեցի ստուգումը (վերը նշված հրամանը) և իմ հեռախոսը հայտնվեց սարքերի ցանկում։

Իսկ ինչպե՞ս աշխատել Eclipse-ից: Փաստորեն, ամեն ինչ արդեն արված է, պարզապես գործարկեք նախագիծը և այն կբացվի հեռախոսով:

Android հավելվածների ապակոմպիլյացիա և վրիպազերծում

Ալեքսանդր Անտիպով

Այս հոդվածը ցույց կտա ձեզ, թե ինչպես կարելի է կցել վրիպազերծիչ Android հավելվածին և անցնել այն մեթոդներին, որոնք կոչվում են՝ օգտագործելով հավելվածը ապակոմպիլյացիայից հետո ստացված տեղեկատվությունը:


Այս հոդվածը ցույց կտա ձեզ, թե ինչպես կարելի է կցել վրիպազերծիչ Android հավելվածին և անցնել այն մեթոդներին, որոնք կոչվում են՝ օգտագործելով հավելվածը ապակոմպիլյացիայից հետո ստացված տեղեկատվությունը: Լավ նորությունն այն է, որ վրիպազերծումը չի պահանջում գերօգտագործողի արտոնություններ: Նկարագրված տեխնիկան կարող է շատ օգտակար լինել պենտեստների ժամանակ։ բջջային հավելվածներ, քանի որ ծրագրի գործարկման ընթացքում մենք կարող ենք «թափանցել» կոդը, ստանալ և գրել տեղեկություններ, որոնք սովորաբար մեզ հասանելի չեն: Օրինակ, դուք կարող եք գաղտնագրումից առաջ գաղտնալսել երթևեկությունը և անմիջապես ստանալ բանալիներ, գաղտնաբառեր և ցանկացած այլ արժեքավոր տեղեկատվություն: Հոդվածը օգտակար կլինի գրողներին և բջջային հավելվածներ մշակողներին, ովքեր ցանկանում են ավելի խորը գիտելիքներ ձեռք բերել Android պլատֆորմի վրա հնարավոր հարձակումների մասին:

Փորձարկման միջավայրի պահանջներ.

  • Օպերացիոն համակարգ՝ Windows / Mac OS X / Linux
  • Java (առաջարկվում է 1.7 տարբերակը)
  • IDE (Eclipse, IntelliJ IDEA, Android Studio)
  • Android SDK (https://developer.android.com/sdk/index.html?hl=i)
  • APKTool (https://code.google.com/p/android-apktool/)/APK Studio (http://apkstudio.codeplex.com)
  • Android սարք/էմուլյատոր

Այս հոդվածը կօգտագործի հետևյալ կոնֆիգուրացիան՝ Windows 8, Android Studio և IntelliJ IDEA: Սարք՝ Nexus 4 Android 4.4.4 տարբերակով: Ես խորհուրդ եմ տալիս ավելացնել բոլոր կոմունալ ծառայությունները PATH միջավայրի փոփոխականին՝ այս գործիքներին հասանելիությունը հեշտացնելու և արագացնելու համար:

Այս հոդվածում օգտագործվող Android հավելվածի փաթեթը (APK) կարելի է ներբեռնել այստեղից՝ com.netspi.egruber.test.apk .

Սարքի կարգավորում

Ստորև բերված հրահանգները կօգնեն ձեզ պատրաստել սարքը փորձերի համար:

Ակտիվացնելով Developer Options բաժինը

Սկսելու համար, որ USB-ի միջոցով վրիպազերծումը (USB կարգաբերման տարբերակ) պետք է միացված լինի Android սարքում, ինչը թույլ կտա «շփվել» սարքի հետ՝ օգտագործելով Android SDK-ի գործիքները: Սակայն մինչ այդ դուք պետք է ակտիվացնեք Developer options բաժինը։ Սարքի վրա գնացեք Settings > About Phone բաժինը և մի քանի անգամ սեղմեք Build Number տարրի վրա, որից հետո պետք է հաղորդագրություն հայտնվի, որ Developer options բաժինը ակտիվացված է։

Նկար 1. Developer options բաժինը ակտիվացնելու համար անհրաժեշտ է մի քանի անգամ սեղմել Build number-ը:

Միացնել վրիպազերծումը USB-ի միջոցով

USB կարգաբերումը միացնելու համար անցեք Կարգավորումներ > Մշակողի ընտրանքներ և նշեք USB կարգաբերման կողքին գտնվող վանդակը:

Նկար 2. USB կարգաբերման տարբերակի ակտիվացում

Սարքի միացում և ԱԶԲ գործարկում

USB պորտի միջոցով սարքը համակարգչին միացնելուց հետո պետք է հայտնվի «USB կարգաբերումը միացված է սարքին» հաղորդագրությունը։ Դուք նաև պետք է ստուգեք՝ արդյոք կարող եք միանալ սարքին՝ օգտագործելով Android Debug Bridge (ADB) հավելվածը, որը ներառված է Android SDK-ի հետ (Android SDK Platform-Tools փաթեթ): Հրամանի տողում մուտքագրեք հետևյալ հրամանը.

Սարքը պետք է հայտնվի ցանկում:

Նկար 3. Միացված սարքերի ցանկ

Եթե ​​սարքը չի ցուցադրվում ցանկում, ապա ամենահավանական պատճառը սխալ է տեղադրված դրայվերներ(Windows-ում): Կախված սարքից, վարորդին կարելի է գտնել կամ Android SDK-ում կամ արտադրողի կայքում:

Հավելվածի վրիպազերծման ստուգում

Նախքան Android հավելվածները վրիպազերծելը, նախ պետք է ստուգել՝ արդյոք դա հնարավոր է: Ստուգումը կարող է իրականացվել մի քանի եղանակով.

Առաջին ճանապարհը վազելն է Android սարքի մոնիտոր, որը Android SDK-ի մի մասն է (գործիքների թղթապանակում): IN windows ֆայլըկոչվում է monitor.bat. Երբ բացում եք Android սարքի մոնիտորը, սարքը կհայտնվի «Սարքեր» բաժնում:

Նկար 4: Android հավելվածՍարքի մոնիտոր

Եթե ​​սարքի վրա որևէ հավելված հնարավոր է վրիպազերծել, այդ հավելվածը նույնպես կհայտնվի ցանկում: Ես ստեղծեցի փորձնական ծրագիր, բայց ցուցակը դատարկ է, քանի որ ծրագիրը հնարավոր չէ կարգաբերել:

Հավելվածի վրիպազերծման համար ստուգելու երկրորդ եղանակը AndroidManifest.xml ֆայլի ուսումնասիրությունն է հավելվածի փաթեթից (APK, Android հավելվածի փաթեթ): APK-ն zip արխիվ է, որը պարունակում է բոլոր տեղեկությունները, որոնք անհրաժեշտ են հավելվածը Android սարքում գործարկելու համար:

Ամեն անգամ, երբ հավելվածը բեռնվում է Google Play Store, հավելվածի փաթեթը նույնպես ներբեռնված է։ Բոլոր ներբեռնված APK ֆայլերը սովորաբար պահվում են սարքի վրա՝ /data/app պանակում: Եթե ​​դուք չունեք արմատային թույլտվություններ, դուք չեք կարողանա ֆայլերի ցանկ ստանալ /data/app գրացուցակից: Չնայած, եթե գիտեք APK ֆայլի անունը, կարող եք պատճենել այն՝ օգտագործելով կոմունալը adb. APK ֆայլի անունը պարզելու համար մուտքագրեք հետևյալ հրամանը.

կհայտնվի հրամանի տողսարքեր. Այնուհետև մուտքագրեք հետևյալ հրամանը.

pm ցուցակ փաթեթներ -f

Սարքի բոլոր փաթեթների ցանկը կցուցադրվի:

Նկար 5. Սարքի փաթեթների ցանկ

Նայելով ցուցակին՝ մենք գտնում ենք թեստային հավելված։

Նկար 6. Ստեղծված թեստային հավելվածի փաթեթ (ընդգծված սպիտակով)

Այժմ դուք պետք է պատճենեք փաթեթի ֆայլը: Բացեք կեղևը և մուտքագրեք հետևյալ հրամանը.

adb pull /data/app/[.apk ֆայլ]

Նկար 7. Պատճենեք APK ֆայլը սարքից համակարգ

Այժմ մենք պետք է բացենք փաթեթի ֆայլը և ուսումնասիրենք AndroidManifest.xml-ի բովանդակությունը: Ցավոք, մենք չենք կարող պարզապես բացել արխիվը, քանի որ APK ֆայլը կոդավորված է երկուական ձևաչափով: Ապակոդավորման համար առավել հաճախ օգտագործվող օգտակարն է apk գործիքչնայած ես օգտագործում եմ APK ստուդիաքանի որ այս հավելվածն ունի բարեկամական GUI: Հոդվածի մնացած մասը կխոսի APK Studio-ի մասին:

APK Studio-ում սեղմեք փոքրիկ կանաչ պատկերակի վրա, անվանեք նախագծին և նշեք դեպի APK ֆայլի ուղին: Այնուհետև նշեք նախագիծը պահպանելու ուղին:

Նկար 8. APK Studio-ում նոր նախագծի ստեղծում

APK-ն բացելուց հետո ընտրեք AndroidManifest.xml ֆայլը և դիտեք հավելվածի պիտակի կարգավորումները: Եթե ​​android:debuggable դրոշը չկա (կամ առկա է, բայց դրված է false-ի վրա), ապա հավելվածը չի կարող վրիպազերծվել:

Նկար 9. AndroidManifest.xml ֆայլի բովանդակությունը

AndroidManifest.xml ֆայլի փոփոխություն

Օգտագործելով apktool կոմունալ ծրագիրը կամ APK Studio, մենք կարող ենք փոփոխել ֆայլերը և բովանդակությունը նորից փաթեթավորել փաթեթում: Այժմ մենք կփոփոխենք AndroidManifest.xml ֆայլը, որպեսզի հավելվածը հնարավոր լինի կարգաբերել: Հավելվածի պիտակի ներսում ավելացրեք android:debuggable="true" տողը:

Նկար 10. Փոխելով հավելվածի պիտակի բովանդակությունը

Դրոշը ավելացնելուց հետո սեղմեք «մուրճ» պատկերակի վրա և նորից հավաքեք փաթեթը։ Վերակառուցված փաթեթը կլինի build/apk գրացուցակում:

Նկար 11. Փաթեթի վերակառուցումը հաջողությամբ ավարտվեց

Վերակառուցումից հետո փաթեթը ստորագրվում է և կարող է նորից տեղադրվել սարքի վրա (բոլոր Android հավելվածները պետք է ստորագրված լինեն): Դիմումների մեծ մասը չի ստուգում ստորագրման համար օգտագործված վկայականը: Հակառակ դեպքում, դուք պետք է փոխեք կոդը, որն իրականացնում է այս ստուգումը:

Այժմ դուք պետք է տեղադրեք վերակառուցված փաթեթը: Նախ, հեռացրեք հին հավելվածը հետևյալ հրամանով.

adb pm տեղահանել

Այնուհետև տեղադրեք նոր փաթեթը.

adb տեղադրում [.apk ֆայլ]

Կարող եք նաև հեռացնել և տեղադրել փաթեթ մեկ հրամանով.

adb install -r [.apk ֆայլ]

Նկար 12. Վերակառուցված փաթեթի տեղադրում

Ստուգեք, որ վերինտեղադրված հավելվածը ճիշտ է աշխատում սարքի վրա: Եթե ​​ամեն ինչ աշխատում է, վերադարձեք Android Device Monitor, որտեղ պետք է հայտնվի թեստային հավելվածը:

Նկար 13. Այժմ վերակառուցված հավելվածը կարող է վրիպազերծվել

Մշակման միջավայրի կարգավորում (IDE)

Այժմ դուք կարող եք միացնել վրիպազերծիչը վերակառուցված հավելվածին, բայց նախ պետք է նախագիծ ստեղծեք զարգացման միջավայրում (այս հոդվածը օգտագործում է IntelliJ IDEA): Մենք ստեղծում ենք նոր նախագիծ։ Հավելվածի անուն դաշտում նշեք կամայական անուն: Փաթեթի անուն դաշտում նշեք անուն, որը ճշգրտորեն համապատասխանում է վերակառուցված փաթեթի թղթապանակի հիերարխիային:

Նկար 14. IntelliJ IDEA-ում նոր նախագծի ստեղծում

Սովորաբար APK ֆայլի անունը համապատասխանում է թղթապանակի կառուցվածքին, չնայած եթե վստահ չեք, APK Studio-ում ստուգեք գրացուցակի հիերարխիան մինչև այն թղթապանակը, որտեղ գտնվում են հավելվածի ֆայլերը: Իմ դեպքում անունը և թղթապանակի կառուցվածքը լրիվ նույնն են (com.netspi.egruber.test):

Նկար 15. Փորձարկման հայտի գրացուցակի հիերարխիա

Անջատեք «Ստեղծել Hello World Activity» նշումը և ավարտեք նախագծի ստեղծումը (մնացած բոլոր տարբերակները մնում են լռելյայն): Նոր նախագիծը պետք է այսպիսի տեսք ունենա.

Նկար 16. Նոր նախագծի թղթապանակների և ֆայլերի հիերարխիա

Նախագիծը ստեղծելուց հետո դուք պետք է ավելացնեք աղբյուրի կոդը APK ֆայլից, որպեսզի վրիպազերծիչը «իմանա» սիմվոլների անունները, մեթոդները, փոփոխականները և այլն: Լավ նորությունն այն է, որ Android հավելվածները կարող են ապակոմպիլացվել գրեթե առանց որակի կորստի ( սկզբնական կոդը կհամապատասխանի բնօրինակին): Ապակոմպիլյացիայից հետո սկզբնական կոդը ներմուծվում է զարգացման միջավայր (IDE):

Աղբյուրների ստացում հայտի փաթեթից

Նախ անհրաժեշտ է APK-ն փոխարկել բանկա ֆայլի: Այնուհետեւ, օգտագործելով java decompiler-ը, մենք կստանանք հավելվածի սկզբնական կոդը։ Մենք կվերափոխենք բանկա՝ օգտագործելով կոմունալը dex2jar. dex2jar-ն ունի d2j-dex2jar.bat ֆայլ, որն օգտագործվում է APK-ն բանկա փոխարկելու համար: Հրամանի շարահյուսությունը բավականին պարզ է.

d2j-dex2jar.bat [.apk ֆայլ]

Նկար 17. APK-ի փոխակերպում բանկա

Այնուհետև մենք բացում կամ քաշում ենք ստացված ֆայլը JD-GUI (սա java decompiler է):

Նկար 18. jar ֆայլի կառուցվածքը

jar ֆայլը պետք է ցուցադրվի որպես հիերարխիկ կառուցվածք, որի ներսում կան java ֆայլեր՝ ընթեռնելի կոդով։ Գնալ դեպի Ֆայլ > Պահպանել բոլոր աղբյուրները՝ բոլոր աղբյուրները zip արխիվի մեջ փաթեթավորելու համար:

Նկար 19. Ապակոմպիլացված ֆայլի աղբյուրների պահպանում

Աղբյուրի տեքստերը պահելուց հետո բացեք արխիվը առանձին գրացուցակի մեջ:

Նկար 20. Չփաթեթավորված արխիվ

Այժմ դուք պետք է երկու դիրեկտորիաները ներմուծեք ավելի վաղ IDE-ում ստեղծված նախագծում: IntelliJ-ում գնացեք src թղթապանակ և այնտեղ պատճենեք չփաթեթավորված արխիվի բովանդակությունը (երկու գրացուցակ):

Նկար 21. Երկու թղթապանակները պատճենված են src գրացուցակում

Վերադառնալով Intellij՝ տեսնում ենք թարմացված նախագիծը։

Նկար 22. Աղբյուրի տեքստերը հայտնվել են նախագծում

Եթե ​​մենք սեղմենք ցանկից որևէ տարրի վրա, կտեսնենք բնօրինակ տեքստը: Ինչպես տեսնում եք ստորև ներկայացված սքրինշոթում (LoginActivity դասի սկզբնական կոդը), սկզբնական կոդը խեղաթյուրվել է ProGuard-ի միջոցով:

Նկար 23. LoginActivity դասի մշուշված կոդ

Վրիպազերծիչի միացում

Այժմ, երբ նախագիծն ունի սկզբնաղբյուր, մենք կարող ենք սկսել մեթոդների և փոփոխականների բեկման կետերը: Երբ հասնենք ընդմիջման կետերին, հավելվածը կդադարի: Որպես օրինակ՝ ես սահմանել եմ տեքստային դաշտում մուտքագրված տեղեկատվության մշակման համար պատասխանատու մեթոդի (ճիշտ խճճված կոդի մեջ) բեկման կետ:

Նկար 24. Սահմանեք ընդմիջման կետ մշուշված մեթոդի վրա

Հենց հայտնվի ընդհատման կետը, մենք միացնում ենք վրիպազերծիչը սարքի գործընթացին՝ սեղմելով վերին աջ անկյունում գտնվող էկրանով պատկերակին (պատկերակը կարող է տարբերվել ձեր IDE-ում):

Նկար 25. Վրիպազերծիչի միացում գործընթացին

Նկար 26. Վրիպազերծիչի միացման գործընթացների ցանկ

Գործընթացն ընտրելուց հետո վրիպազերծիչը կմիանա սարքին:

Նկար 27. Սարքի վրա աշխատող գործընթացին կցված վրիպազերծիչ

Տեքստային դաշտում մուտքագրելու եմ 42 թիվը (եթե հիշում եք, համապատասխան մեթոդի վրա կա ընդմիջման կետ)։

Նկար 28. Տեքստային դաշտում մուտքագրեք 42 թիվը

«Մուտքագրեք կոդը» կոճակը սեղմելուց հետո հավելվածի կատարումը կխախտվի ընդմիջման կետում, քանի որ վրիպազերծիչը «տեղյակ է», թե որ մեթոդն է կանչվում սարքի վրա: Կազմված Android հավելվածը պարունակում է վրիպազերծման տեղեկատվություն (օրինակ՝ փոփոխականների անունները), որոնք հասանելի են Java Debug Wire Protocol-ի (JDWP) համապատասխանող վրիպազերծիչի համար: Եթե ​​վրիպազերծումը միացված է հավելվածում, ապա JDWP-ին համատեղելի վրիպազերծիչը (Java մշակման միջավայրի հետ կապված վրիպազերծիչների մեծ մասը պատկանում է այս կատեգորիային) կկարողանա միանալ Android հավելվածի վիրտուալ մեքենային, այնուհետև կարդալ և կատարել վրիպազերծման հրամանները:

Նկար 29. Ընդմիջման կետի հարված

Ստորև բերված սքրինշոթը ցույց է տալիս այն թիվը, որը մենք նախկինում մուտքագրել ենք տեքստային վանդակում:

Նկար 30. Դասի ընթացիկ օրինակի փոփոխականների ցանկ

Եզրակացություն

Մենք կարող ենք ոչ միայն կարդալ հավելվածի տվյալները, այլ նաև տեղադրել մերը: Սա կարող է օգտակար լինել, եթե, օրինակ, ցանկանում ենք ընդհատել կոդի կատարման հոսքը և շրջանցել ալգորիթմի որոշ մասեր։ Debugger-ի օգնությամբ մենք կարող ենք ավելի լավ հասկանալ հավելվածի տրամաբանությունը և վերլուծել այն, ինչը հասանելի չէ նորմալ օգտատիրոջը։ Օրինակ, կարող է շատ օգտակար լինել դիտել օգտագործվող գաղտնագրման գործառույթները և դինամիկ ստեղները: Նաև երբեմն վրիպազերծման ժամանակ օգտակար է իմանալ, թե ինչպես են գործառույթները փոխազդում ֆայլային համակարգի կամ տվյալների բազայի հետ՝ հասկանալու համար, թե ինչ տեղեկատվություն է պահվում հավելվածի կողմից: Նման մանիպուլյացիաները հասանելի են ցանկացած Android սարքում, առանց գերօգտագործողի արտոնությունների:

 
Հոդվածներ Ըստթեմա:
Որոնողական համակարգերի պատմություն
Բարեւ բոլորին! Այսօր հոդված է լինելու աշխարհի որոնողական համակարգերի մասին, որոնք հիմնականում գոյություն ունեն, երբ են հայտնվել, կոնկրետ ինչ է քշում Ռուսաստանում և ինչ կա ամբողջ աշխարհում: Հոդվածը հսկայական է, այնպես որ նստեք հարմարավետ, ցանկալի է դրանք պատրաստել
Համակարգչի RAM-ի ավելացման ուղիները
Ինչպե՞ս կարող եմ իմանալ, արդյոք իմ համակարգչի հիշողությունը կարող է թարմացվել: Գալիս է մի պահ, երբ սկսում ես հասկանալ, որ համակարգիչն այլևս չի կարող հաղթահարել իր առաջադրանքները, բայց դա չի նշանակում, որ դուք պետք է նորը գնեք, հատկապես, եթե ձեր պրոցեսորն ընդամենը երկու կամ երեք տարեկան է: Բոլոր հ
Ինչու՞ է Պրիպյատի հետախուզական զանգը ռենտգենից դուրս թռչում
Microsoft-ի արտադրանքի մեծ թվով օգտատերեր հայտնում են Windows 10-ի ակտիվացման կորստի և Pro տարբերակը Home-ի փոխակերպման մասին: Օգտագործողները ծանուցվում են ժամկետանց բանալու մասին, և երբ նրանք փորձում են նորից ակտիվացնել, նրանք ստանում են սխալ 0x803fa067 Windo-ի համար:
css տարրի տեսակի ընտրիչ
Այն, ինչ ընտրիչն է css-ում, այդ տարրի կամ տարրերի խմբի նկարագրությունն է, որը բրաուզերին ասում է, թե որ տարրը պետք է ընտրի՝ ոճ կիրառելու համար: Եկեք նայենք հիմնական CSS ընտրիչներին:1) .x .topic-title (ֆոնի գույնը՝ դեղին;)