Ikhtisar peluncuran dan debugging aplikasi di Android. Menghubungkan perangkat fisik ke Android Studio debugging aplikasi Android pada perangkat

Sebelumnya saya tulis. Anda dapat memecahkan masalah secara dramatis, jangan gunakan emulator, dan segera menguji pada perangkat seluler Anda menjalankan Android. Saya memiliki HTC yang luar biasa, dan mengatur. Jadi, untuk menjalankan aplikasi pada perangkat fisik yang Anda butuhkan:

  1. Di telepon, aktifkan fitur debugging USB. Anda dapat melakukan ini dengan memasukkan menu Pengaturan -\u003e Aplikasi -\u003e pengembangan dan menginstal kotak centang "USB debug"
  2. Tunggu untuk menginstal driver
  3. Nonaktifkan dan hubungkan telepon ke komputer lagi.

Untuk memverifikasi bahwa ponsel ini terlihat oleh komputer, Anda perlu melakukan hal berikut:

Jika Anda memiliki dengan cara ini, Anda dapat menggunakan program khusus: PDANET. () Biasanya digunakan untuk menggunakan Internet dari telepon dari komputer, tetapi ternyata mengandung sejumlah besar driver untuk ponsel. Saat menginstal, saya bertanya pada model perangkat, dan selanjutnya melompat balon merah yang indah dengan peringatan bahwa pengemudi tidak diuji, dan semuanya bisa berakhir, tetapi tidak - semuanya baik-baik saja, didirikan. Setelah itu, saya sekali lagi meluncurkan cek (perintah di atas) dan ponsel saya muncul di daftar perangkat.

Bagaimana cara bekerja dari Eclipse? Bahkan, semuanya dilakukan - hanya menjalankan proyek dan dibuka di telepon.

Saat membuat aplikasi Android, sebagian besar pengembang menggunakan emulator yang berbeda. Ini nyaman karena Anda tidak perlu menyimpan banyak perangkat yang berbeda di kotak tabel, tidak ada sakit kepala dengan perangkat penghubung ke komputer, tidak ada banyak kabel di atas meja. Klik mouse dan lihat karya program Anda di layar komputer. Sederhana dan elegan. Namun, emulator bukan telepon. Ini terbatas dalam kemampuannya. Jika aplikasi Anda menggunakan fungsi perangkat keras tertentu, seperti pengoperasian kamera, Bluetooth atau koneksi USB, bekerja sambil menerima panggilan telepon, dengan banyak probabilitas Anda dapat mengatakan bahwa Anda tidak dapat melakukannya tanpa debugging pada perangkat nyata. Untungnya, Eclipse berisi semua yang Anda butuhkan untuk menyelesaikan masalah ini.

Menghubungkan telepon dan memulai program

Sebelum menghubungkan telepon ke komputer menggunakan kabel data USB, Anda harus melakukan beberapa tindakan persiapan. Faktanya adalah Eclipse dikonfigurasikan untuk bekerja dengan emulator, dan kita perlu menyesuaikan konfigurasi mode debugging. Itu mudah. Pilih item menu Konfigurasi Run\u003e Debug, lalu droiddebug. Pada tab Target, di bagian Mode Pemilihan Target Penempatan, Anda perlu mengatur sakelar ke posisi manual dan klik Terapkan. Dengan demikian, mode pemilihan platform manual diaktifkan. Sekarang, ketika Anda memulai aplikasi, kotak dialog akan muncul di mana Anda dapat memilih emulator atau salah satu ponsel yang terhubung.

Untuk membuat ponsel dalam mode debug, juga perlu disesuaikan. Berada di layar beranda, Anda perlu mengklik tombol menu dan menemukan aplikasi pengaturan. Dalam aplikasi ini, buka bagian "Aplikasi", dan kemudian item pengembangan. Di layar yang terbuka, Anda harus memberi tanda centang di sebelah item "USB Debging". Urutan tindakan ini bekerja pada sebagian besar ponsel, tetapi ada kemungkinan pada perangkat Anda, mode debug UBS menyala di tempat lain.

Hubungkan ponsel ke komputer dan klik tombol Debug di Eclipse. Di kotak dialog yang muncul, Anda akan melihat dua daftar: "Pilih perangkat Android yang sedang berjalan" dan "Luncurkan perangkat virtual Android baru". Yang pertama mencantumkan ponsel yang terhubung ke komputer, di emulator kedua. Pilih ponsel Anda di daftar pertama. Eclipse Jalankan aplikasi pengaturan ke telepon dan mulai. Anda dapat men-debug program Anda.

Pemantauan Status Telepon DDMS (Layanan Monitor Debug Dalvik)

Semua informasi status telepon tersedia melalui alat khusus yang disebut Layanan Debugging DDMS (Layanan Monitor Debug Dalvik). Untuk menjalankannya, klik tombol dengan gambar Android di sudut kanan atas Eclipse.

Jendela DDMS terdiri dari beberapa panel. Panel perangkat menampilkan daftar emulator yang tersedia dan telepon yang terhubung. Berikut adalah daftar proses yang berjalan saat ini. Setiap proses dimulai dengan mesin virtualnya sendiri. Thread ditampilkan pada tab Threads terpisah. Tab File Explorer dirancang untuk bekerja dengan sistem telepon. Dengan itu, Anda dapat menyalin file dari komputer ke telepon dan kembali. Menggunakan tombol Capture Screen, Anda dapat membuat tangkapan layar dari layar ponsel. Tombol dengan kumbang hijau memungkinkan Anda untuk melampirkan debugger ke proses yang dipilih. Untuk menggunakan fitur ini, Anda harus memiliki kode sumber terbuka dari proses ini.

Ini juga harus diperhatikan utilitas logcat logging dan panel yang sesuai yang mungkin sangat berguna saat mencari kesalahan. Bekerja dengan majalah dilakukan melalui kelas khusus Android.util.log. Metode berikut yang paling umum digunakan:

Log.e () - untuk mencatat kesalahan,
Log.w () - untuk peringatan jurnal,
Log.i () - ke pesan informasi penjurnalan,
Log.d () - ke penjurnalan debugging,
Log.v () - untuk mencatat catatan terperinci,

Sebagai parameter, metode ini harus ditransfer ke dua baris. Tag pertama, yang kemudian dapat digunakan untuk mencari dan memfilter dalam logcat. Yang kedua adalah informasi aktual yang dimasukkan ke majalah.

Bak pasir

Server Tuhan 18 September 2011 pukul 15:55

Gambaran Umum Peluncuran dan Debugging Aplikasi di Android

  • Kamar Lumber *

Mengembangkan aplikasi Android pertama Anda, saya mengalami masalah menjalankan aplikasi untuk memeriksa dan debugging. Artikel ini harus membantu pengguna novel memilih alat emulasi.

Perangkat virtual android (AVD)
Instalasi:
Alat emulasi ini tertanam di Android SDK.

Mendirikan:
(Pada contoh menggunakan Eclipse)
Jendela\u003e Android SDK dan AVD Manager\u003e Baru
Masukkan nama perangkat virtual, platform, ukuran kartu memori, jenis tampilan ...
Klik Buat AVD.

Lari:
Emulator peluncuran pertama berlangsung untuk waktu yang sangat lama, terutama pada perangkat yang lemah. Misalnya, saya tidak pernah bisa menunggu peluncuran pertama di netbook saya, tetapi, pertama kali pertama di komputer yakin bahwa emulator pergi ke siklus abadi.
Peluncuran emulator berikutnya akan sedikit berlengan.
Waktu antara menekan tombol "Jalankan" dan tampilan aktivasi utama aplikasi pengujian pada emulator melewati rata-rata 11 detik. Langkah-langkah yang dihabiskan untuk komputer yang cukup produktif.

Keuntungan dan kerugian:
+ Kemampuan untuk menguji aplikasi pada versi OS Android yang berbeda, pada perangkat dengan berbagai jenis tampilan ...
+ Berbagai pengaturan yang diperlukan untuk pengujian, misalnya, perubahan orientasi layar
+ Emulasi kartu SD
- periode waktu yang besar antara menekan tombol "Jalankan" dan mulai aplikasi pada emulator
- Emulator bekerja sangat lambat, misalnya, fakta bahwa telepon diproses 1-2 detik, emulator lakukan dalam 8-10 detik

VirtualBox + Android X86
Instalasi dan Pengaturan:
  1. Unduh dan instal VirtualBox.
  2. Unduh gambar.
  3. "Buat Mesin Virtual Linux 2.6 / Linux Lain, RAM 512 MB, Jaringan Bridged, HD 2 GB, Nonaktifkan Integrasi Mouse. Hubungkan file ISO dan muat salah satu opsi LiveCD (ada opsi HDPI dan MDPI) "atau ikuti instruksi ini.
  4. Klik Alt-F1 untuk keluar dari konsol dan ketik Netcfg dan ingat alamat IP emulator. Untuk kembali ke GUI, tekan Alt-F7.
  5. aDB terhubung.

Lari:
Waktu antara menekan tombol "Run" dan tampilan aktivasi utama aplikasi pengujian pada emulator tidak memblokir, tetapi, menurut sensasi subjektif, itu terjadi hampir secara instan.

Keuntungan dan kerugian:
+ Sedikit waktu antara menekan tombol "Jalankan" dan mulai aplikasi pada emulator
+ tempat kerja chopper
- Instalasi yang cukup panjang dan terkadang bermasalah
- Emulator bekerja di berbagai tempat, ada masalah dengan gambar (terutama pada MDPI)
- Masalah dengan emulasi kartu SD, mengubah orientasi layar, ...
- Hanya dua (tiga) versi OS Android yang tersedia dan hanya dua jenis tampilan yang tersedia

Telepon dengan OS Android yang terhubung melalui USB
Instalasi dan Pengaturan:
  1. Nyalakan mode debug telepon. (Cetakan\u003e Aplikasi\u003e Pengembangan\u003e USB debugging).
  2. Unduh driver untuk ponsel Anda.
  3. Kami menghubungkan telepon ke PC.
  4. Instal driver. Bagian antarmuka ADB akan muncul di manajer perangkat.
  5. perangkat ADB. Jika ponsel Anda tidak ditampilkan dalam daftar, maka instal ulang driver ADB.

Lari:
Antara mengklik tombol "Run" dan tampilan aktivasi utama aplikasi pengujian pada ponsel memakan waktu sekitar 5 detik.

Keuntungan dan kerugian:
+ Kemampuan untuk melihat aplikasi sebagai pengguna akan melihatnya (momen yang sangat penting, terutama saat membuat antarmuka dan desain aplikasi)
+ Multitach (jika ada di telepon)
+ Ubah orientasi layar, accelerometer (jika ada di telepon)
- Hanya satu versi OS dan satu jenis tampilan
- Objek lain muncul di desktop fisik

Kesimpulan:
Saya mencoba bekerja dengan masing-masing alat emulasi ini dan berhenti pada versi ini:
1. Menulis dan menguji aplikasi menggunakan telepon;
2. Menguji aplikasi pada berbagai perangkat virtual Android dengan berbagai kombinasi versi OS dan jenis tampilan.
Saya harap bacaan itu membuat pilihan emulator atau belajar sesuatu yang baru untuk diri saya sendiri.
Semoga sukses dalam pengujian!

Tujuan bab ini adalah untuk menulis aplikasi minimum di bawah Android. Tetapi kita tidak akan pernah tahu persis jika kita dapat menulis sesuatu yang bisa diterapkan tanpa mencoba menjalankannya di perangkat nyata. Ini kita akan berurusan dengan artikel ini.

Kemampuan untuk menguji pada smartphone disediakan oleh ADB (Android Debug Bridge). Pada artikel ini kami akan mengkonfigurasinya dan meluncurkan aplikasi kami pada smartphone ini.

Apa itu adb.

Jembatan Android Debug (ADB) adalah alat baris perintah universal yang berkontribusi pada interaksi antara lingkungan pengembangan, dalam kasus kami Android Studio, dan emulator AVD atau perangkat Android fisik untuk kemungkinan memulai dan debugging aplikasi.

ADB terdiri dari klien, dari server yang berfungsi sebagai proses latar belakang, di komputer pengembang dan dari iblis yang bekerja sebagai proses latar belakang pada setiap instance emulator atau perangkat nyata.

Mengkonfigurasi perangkat Android untuk bekerja dengan ADB

Untuk menggunakan ADB dengan perangkat USB, Anda harus mengaktifkan USB debugging di pengaturan sistem ponsel atau tablet di bagian "Pengaturan Pengembang" (nama mungkin berbeda). Pada beberapa perangkat, bagian ini disembunyikan secara default. Pertimbangkan langkah-langkah dalam kasus ini ketika tidak ada pengaturan yang diinginkan.

  1. Pergi ke pengaturan, bagian "pada perangkat"
  2. Temukan item "Build Number" dan klik 7 kali. Sebuah jendela yang memberi tahu bahwa mode pengembang diaktifkan.
  3. Sekarang dalam pengaturan harus ada bagian dari parameter pengembang.
  4. Nyalakan opsi "Debug USB" di dalamnya.

Sekarang Anda menghubungkan perangkat ke komputer, tergantung pada model Anda mungkin memiliki opsi koneksi baru.

ADB Setup pada Windows

Saat mengkonfigurasi Windows, pertama, pastikan Anda memiliki driver Google USB. Buka SDK Manager di bagian ekstra dan temukan driver Google USB, instal jika perlu.


Sekarang Anda harus memperbarui driver. Hubungkan perangkat ke komputer, buka Panel Kontrol -\u003e Peralatan dan Suara -\u003e Device Manager Temukan perangkat Anda. Klik kanan pada perangkat Anda untuk membuka menu konteks dan pilih "Perbarui driver ...". Pengemudi dapat ditemukan di direktori SDK di subfolder \\ (Direktori SDK) \\ ekstra \\ google \\ usb_driver.

Bagaimana cara memeriksa kebenaran pengaturan ADB?

Untuk memeriksa kinerja ADB, sambungkan perangkat ke komputer, jalankan di folder \\ (Direktori SDK) \\ Platform-Tools Command Line dan masukkan perintah di dalamnya:

Perangkat ADB.

Daftar seperti ini akan muncul:

Daftar perangkat yang dilampirkan perangkat 5CDP2Ced

Jalankan aplikasi pada perangkat nyata

Sama seperti dalam kasus berjalan pada emulator. Buka proyek kami di Android Studio, klik pada segitiga hijau, tetapi di jendela pemilihan perangkat yang muncul, pilih perangkat Anda.


Jika ditulis bahwa perangkat sedang offline, ambil USB dan biarkan USB debugging ke komputer:

Akibatnya, aplikasi kami akan tampak di layar ponsel atau tablet.

Kesimpulan

Ini mengakhiri bab ini. Kami telah berhasil: dapat mengkonfigurasi sistem kami untuk mengembangkan aplikasi Android dan bahkan menjalankan salah satunya di perangkat ini.

Jika sesuatu yang aktif tidak berhasil atau Anda bingung, silakan berhenti berlangganan, tolong, di komentar dan saya akan membantu Anda menangani masalah Anda.

Dekompilasi dan debugging aplikasi Android

Alexander Antipov.

Artikel ini akan dibahas tentang cara menghubungkan debugger ke aplikasi Android dan langkah demi langkah melewati metode yang disebut menggunakan informasi yang diterima setelah dekompilasi aplikasi.


Artikel ini akan dibahas tentang cara menghubungkan debugger ke aplikasi Android dan langkah demi langkah melewati metode yang disebut menggunakan informasi yang diterima setelah dekompilasi aplikasi. Berita baiknya adalah bahwa debugging tidak memerlukan hak istimewa superuser. Teknik yang dijelaskan dapat sangat berguna selama penstruksi aplikasi seluler, karena kita dapat "menembus" ke dalam kode selama program, dapatkan dan rekam informasi yang biasanya tidak memiliki akses. Misalnya, Anda dapat mencegat lalu lintas sebelum enkripsi dan mendapatkan kunci, kata sandi, dan informasi berharga lainnya dengan cepat. Artikel ini akan berguna untuk penenset dan pengembang aplikasi seluler yang ingin mendapatkan pengetahuan yang lebih dalam tentang kemungkinan serangan pada platform Android.

Persyaratan untuk lingkungan pengujian:

  • Sistem Operasi: Windows / Mac OS X / Linux
  • Java (Direkomendasikan versi 1.7)
  • IDE (Eclipse, Intellij Ide, Studio Android)
  • Android SDK (https://developer.android.com/sdk/index.html?hl\u003dI)
  • ApkTool (https://code.google.com/p/androidroid-apktool/) / APK Studio (http://apkstudio.codeplex.com)
  • Perangkat / Emulator berdasarkan Android

Artikel ini akan menggunakan konfigurasi berikut: Windows 8, Android Studio dan Intellij ide. Perangkat: Nexus 4 dengan Android versi 4.4.4. Saya merekomendasikan semua utilitas untuk menambah variabel lingkungan jalur untuk membuatnya lebih mudah dan mempercepat akses ke alat ini.

Paket Aplikasi Android (APK) Digunakan dalam artikel, Anda dapat mengunduh dari sini: com.netspi.egruber.test.apk .

Pengaturan Perangkat

Instruksi di bawah ini akan membantu Anda menyiapkan perangkat untuk eksperimen.

Aktivasi bagian Opsi Pengembang

Untuk memulai pada perangkat Android, debugging melalui USB (opsi debugging USB) harus diizinkan, yang akan memungkinkan Anda untuk "berkomunikasi" dengan perangkat menggunakan alat dari SDK SET Android. Namun, perlu untuk mengaktifkan bagian Opsi Pengembang. Pada perangkat, buka Pengaturan\u003e Tentang bagian Telepon dan klik beberapa kali ke nomor build, setelah itu pesan akan muncul bahwa bagian Opsi Pengembang diaktifkan.

Gambar 1: Untuk mengaktifkan bagian Opsi Pengembang, Anda perlu mengklik nomor build beberapa kali

Debugging melalui USB.

Untuk mengizinkan debugging melalui port USB, buka Pengaturan\u003e Opsi Pengembang dan centang kotak di sebelah USB debugging.

Gambar 2: Mengaktifkan debugging opsi USB

Menghubungkan perangkat dan meluncurkan ADB

Setelah menghubungkan perangkat ke komputer melalui port USB, pesan "Debugging USB terhubung pada perangkat" akan muncul. Anda juga harus memeriksa apakah Anda dapat terhubung ke perangkat menggunakan aplikasi Android Debug Bridge (ADB) yang termasuk dalam SDK Android (Paket Alat-Platform Android SDK). Dalam Command Prompt, masukkan perintah berikut:

Perangkat harus ditampilkan dalam daftar.

Gambar 3: Daftar perangkat yang terhubung

Jika perangkat tidak ditampilkan dalam daftar, maka alasan yang paling mungkin dalam driver yang salah diinstal (di Windows). Tergantung pada perangkat, driver dapat ditemukan di Android SDK atau di situs web pabrikan.

Periksa aplikasi untuk debugging

Sebelum men-debug aplikasi Android, pertama-tama perlu untuk memeriksa apakah ada peluang seperti itu. Cek dapat dilakukan dengan beberapa cara.

Cara pertama untuk menjalankan Monitor Perangkat AndroidTermasuk di Android SDK (di folder Tools). Di Windows, file disebut monitor.bat. Saat membuka monitor perangkat Android, perangkat akan ditampilkan di bagian Perangkat.

Gambar 4: Aplikasi Monitor Perangkat Android

Jika ada aplikasi pada perangkat dapat debug, aplikasi ini juga akan ditampilkan dalam daftar. Saya membuat program uji, tetapi daftarnya kosong, karena tidak mungkin untuk men-debug program.

Cara kedua untuk memeriksa aplikasi untuk men-debug aplikasi adalah untuk menjelajahi file AndroidManifest.xml dari paket aplikasi (APK, paket aplikasi Android). APK adalah arsip zip yang berisi semua informasi yang diperlukan untuk memulai aplikasi pada perangkat Android.

Setiap kali aplikasi dimuat dari Google Play Store, paket aplikasi juga dimuat. Semua file APK yang diunduh biasanya disimpan pada perangkat di folder / Data / App. Jika Anda tidak memiliki hak superuser, Anda tidak akan bisa mendapatkan daftar file dari direktori / data / aplikasi. Meskipun, jika Anda tahu file nama APK, Anda dapat menyalinnya menggunakan utilitas aDB.. Untuk mengetahui file nama APK, masukkan perintah berikut:

Baris perintah perangkat muncul. Kemudian masukkan perintah berikut:

pM daftar paket -f

Daftar semua paket pada perangkat akan muncul.

Gambar 5: Daftar paket pada perangkat

Melihat daftar, kami menemukan aplikasi uji.

Gambar 6: Paket aplikasi uji yang dibuat (Highlighted White)

Sekarang Anda perlu menyalin file paket. Kami membuka shell dan memasukkan perintah berikut:

adb tarik /data/app/[.apk file]

Gambar 7: Salin file APK dari perangkat ke sistem

Sekarang Anda perlu membuka file paket dan menjelajahi konten AndroidManifest.xml. Sayangnya, kami tidak dapat membongkar arsip karena file APK dikodekan dalam format biner. Utilitas paling sering digunakan untuk decoding. apkTool., meskipun saya gunakan APK Studio.Karena aplikasi ini memiliki antarmuka grafis yang ramah. Selanjutnya, artikel tersebut akan menceritakan tentang Studio APK.

Di APK Studio, klik ikon hijau kecil, atur nama proyek dan tentukan jalur ke file APK. Kemudian tentukan biarlah untuk menyimpan proyek.

Gambar 8: Membuat proyek baru di APK Studio

Setelah membuka APK, pilih file AndroidManifest.xml dan periksa parameter tag aplikasi. Jika bendera Android: debuggable hilang (atau sekarang, tetapi nilai salah diatur), itu berarti bahwa aplikasi tidak dapat dibebankan.

Gambar 9: Isi file AndroidManifest.xml

Modifikasi file AndroidManifest.xml

Menggunakan apkTool atau APK Studio Utility, kami dapat memodifikasi file dan paket konten kembali ke paket. Sekarang kami akan mengubah file AndroidManifest.xml sehingga aplikasi dapat debugged. Tambahkan di dalam tag aplikasi, The Line Android: debuggable \u003d "true".

Gambar 10: Ubah isi tag aplikasi

Setelah menambahkan bendera dengan mengklik ikon "palu" dan kumpulkan kembali paket. Paket reassembly akan ditemukan di direktori build / apk.

Gambar 11: Paket reassembly selesai dengan sukses

Setelah membangun kembali, paket berlangganan dan Anda dapat menginstalnya kembali pada perangkat (semua aplikasi Android harus ditandatangani). Sebagian besar aplikasi tidak memeriksa sertifikat yang ditimbulkan oleh tanda tangan. Jika tidak, Anda perlu mengubah kode yang melakukan pemeriksaan ini.

Sekarang Anda perlu menginstal paket yang dipasang kembali. Pertama, hapus aplikasi lama menggunakan perintah berikut:

aDB PM Uninstall.

Kemudian atur paket baru:

aDB menginstal [.apk file]

Anda juga dapat menghapus dan menginstal paket dengan satu perintah:

aDB install -r [.apk file]

Gambar 12: Menginstal paket yang ditetapkan kembali

Periksa apakah aplikasi reset dimulai dengan benar pada perangkat. Jika semuanya berfungsi, kembali ke monitor perangkat Android, di mana aplikasi pengujian akan muncul.

Gambar 13: Sekarang aplikasi yang ditetapkan kembali dapat debugged

Konfigurasikan lingkungan pengembangan (IDE)

Sekarang debugger dapat diambil ke aplikasi bermata malas, tetapi pertama-tama Anda perlu membuat proyek di lingkungan pengembangan (artikel ini menggunakan Ide IntelliJ). Buat proyek baru. Di bidang Nama Aplikasi, tentukan nama arbitrer. Di bidang Nama Paket, Anda menentukan nama, persis bertepatan dengan hierarki folder dari paket yang ditetapkan kembali.

Gambar 14: Menciptakan proyek baru dalam Ide IntelliJ

Biasanya, nama file APK bertepatan dengan struktur folder, meskipun jika Anda tidak yakin, di APK Studio, periksa hierarki direktori ke folder tempat aplikasi berada. Dalam kasus saya, nama dan struktur folder sepenuhnya bertepatan (com.netspi.egruber.test).

Gambar 15: Hierarki Direktori Aplikasi Uji

Hapus centang pada kotak centang "Buat Hello World Activity" dan selesaikan kreasi proyek (semua parameter lain tetap default). Proyek baru harus terlihat seperti ini:

Gambar 16: hierarki folder dan file proyek baru

Setelah membuat proyek, tambahkan kode sumber dari file APK sehingga debugger "tahu" nama-nama karakter, metode, variabel, dll. Berita baiknya adalah bahwa aplikasi Android dapat didekompilasi hampir tanpa kehilangan kualitas (kode sumber akan cocok dengan aslinya). Setelah mendekompilasi, teks sumber diimpor ke lingkungan pengembangan (IDE).

Memperoleh teks sumber dari paket aplikasi

Pertama, Anda perlu mengkonversi APK ke file JAR. Kemudian kami dengan bantuan Java Decompiler kami mendapatkan teks sumber aplikasi. Konversi ke Jar akan dilakukan dengan utilitas dex2jar.. Dex2jar memiliki file d2j-dex2jar.bat yang digunakan untuk mengkonversi APK ke Jar. Sintaks tim cukup sederhana:

d2j-dex2jar.bat [.apk file]

Gambar 17: Konversi APK di Jar

Kemudian buka atau seret file yang diterima di JD-GUI (ini adalah DECOMPILER JAVA).

Gambar 18: Struktur File Jar

File JAR harus ditampilkan dalam bentuk struktur hierarkis, di mana file Java dengan kode sumber yang dapat dibaca berada. Buka File\u003e Simpan semua sumber untuk mengemas semua teks sumber di arsip zip.

Gambar 19: Menyimpan teks sumber dari file yang didekompilasi

Setelah menyimpan teks sumber, buka arsip ke direktori terpisah.

Gambar 20: Arsip Bongkar

Sekarang Anda perlu mengimpor kedua direktori ke proyek yang dibuat sebelumnya dalam IDE. IntelliJ pergi ke folder SRC dan menyalin konten arsip yang tidak dibongkar di sana (dua direktori).

Gambar 21: Kedua folder disalin ke direktori SRC

Kembali ke IntelliJ, kami melihat proyek yang diperbarui.

Gambar 22: Dalam proyek muncul teks sumber

Jika kita mengklik beberapa elemen dari daftar, kita akan melihat teks sumber. Seperti yang dapat dilihat pada tangkapan layar di bawah ini (teks sumber kelas loginaktivitas), kode sumber dijelaskan menggunakan Proguard.

Gambar 23: Opphelted Sumber Teks LoginAktivitas

Menghubungkan debugger.

Sekarang, ketika teks sumber muncul di proyek, kita dapat mulai menginstal breakpoint pada metode dan variabel. Setelah mencapai titik shutdown, aplikasi akan berhenti. Sebagai contoh, saya menginstal titik pemberhentian pada metode (langsung dalam kode komponen) yang bertanggung jawab untuk memproses informasi yang dimasukkan dalam bidang teks.

Gambar 24: Masukkan titik stop untuk metode komponen

Segera setelah titik stop muncul, hubungkan debugger ke proses pada perangkat dengan mengklik ikon dengan layar di sudut kanan atas (pada IDE Anda, ikon mungkin berbeda).

Gambar 25: Hubungkan debugger ke proses

Gambar 26: Daftar proses untuk menghubungkan debugger

Setelah memilih proses, debugger akan terhubung ke perangkat.

Gambar 27: Debugger terhubung ke proses berjalan pada perangkat

Di bidang teks, saya akan memasukkan angka 42 (jika Anda ingat, titik stop itu layak pada metode yang sesuai).

Gambar 28: Di bidang Teks Kami memasukkan angka 42

Setelah mengklik tombol "Enter Code", aplikasi akan selesai pada titik stop, karena debugger "sadar", metode mana yang disebut pada perangkat. Aplikasi Android yang dikompilasi berisi informasi debugging (misalnya, nama variabel) tersedia untuk setiap debugger yang kompatibel dengan Java Debug Wire Protocol (JDWP). Jika aplikasi diizinkan dengan debugging, debugger yang kompatibel dengan JDWP (dalam kategori ini, sebagian besar debugger yang berjalan di media pengembangan untuk Java) dapat dihubungkan ke aplikasi virtual aplikasi Android, dan kemudian membaca dan menjalankan perintah debug.

Gambar 29: Bekerja Point

Tangkapan layar di bawah ini menunjukkan nomor yang telah kami masukkan sebelumnya di bidang teks.

Gambar 30: Daftar variabel dari instance terkini dari kelas

Kesimpulan

Kami tidak hanya dapat membaca data dalam aplikasi, tetapi juga memasukkannya sendiri. Ini dapat berguna jika kita, misalnya, akan ingin mengganggu aliran eksekusi kode dan memotong beberapa bagian algoritma. Menggunakan debugger, kita dapat lebih memahami logika aplikasi dan menganalisis apa yang tidak tersedia untuk pengguna yang biasa. Misalnya, mungkin sangat berguna untuk melihat fungsi enkripsi yang digunakan dan kunci dinamis. Selain itu, kadang-kadang ketika debugging berguna untuk mengetahui bagaimana fungsi berinteraksi dengan sistem file atau basis data untuk memahami informasi apa yang disimpan oleh aplikasi. Manipulasi tersebut tersedia di perangkat Android apa pun tanpa hak superuser.