Android'deki uygulamaların fırlatılmasına ve hata ayıklamasına genel bakış. Fiziksel bir aygıtı Android Studio'ya bağlama Cihazdaki Android Uygulamalarını Hata Ayıklama

Daha önce yazdım. Sorunu önemli ölçüde çözebilir, emülatörü kullanmayın, ancak hemen test edebilirsiniz. mobil cihaz Android yönetiminin altında. Onun için harika bir htc var ve kurdum. Böylece, ihtiyacınız olan fiziksel cihazdaki uygulamaları çalıştırmak için:

  1. Telefonda, USB hata ayıklama özelliğini etkinleştirin. Bunu ayarlar menüsüne girerek -\u003e Uygulamalar -\u003e Geliştirme ve "USB Debug" onay kutusunu yükleyerek yapabilirsiniz.
  2. Sürücüyü yüklemek için bekleyin
  3. Telefonu tekrar bilgisayara bağlayın ve bağlayın.

Telefonun bilgisayardan görülebileceğini doğrulamak için aşağıdakileri yapmanız gerekir:

Eğer öyleyse, o zaman yararlanabilirsiniz. Özel program: Pdanet. () Genellikle interneti telefondan bilgisayardan kullanmak için kullanılır, ancak telefonlar için çok sayıda sürücü içerdiği ortaya çıktı. Kurulurken, cihaz modeline sordum ve daha fazla sürücünün test edilmediğini ve her şeyin bitebileceği bir uyarı ile güzel bir kırmızı balon atladı, ancak hayır - her şey yolunda. Bundan sonra, bir kez daha bir çek başlattım (yukarıdaki komut) ve telefonum cihazlar listesinde belirdi.

Eclipse'den nasıl çalışılır? Aslında, her şey bitti - sadece projeyi çalıştırın ve telefonda açılır.

Android uygulamaları oluştururken çoğu geliştirici farklı emülatörler kullanır. Kullanışlıdır, çünkü tablo kutularında bir sürü farklı cihaz saklamanız gerekmez, cihazlara bir bilgisayara bağlama ile baş ağrısı yoktur, tabloda kablo yok. Fareye tıklayın ve programınızın çalışmasını bilgisayar ekranında görün. Basit ve zarif. Ancak, emülatör bir telefon değildir. Yeteneklerinde sınırlıdır. Uygulamanız, kameranın çalışması gibi herhangi bir özel donanım işlevi kullanıyorsa, Bluetooth veya USB bağlantısıResepsiyonda çalışmak telefon görüşmesiBüyük bir olasılıkla, gerçek cihaza hata ayıklamadan yapamayacağınızı söyleyebilirsiniz. Neyse ki, tutulma bu sorunu çözmeniz için gereken her şeyi içerir.

Telefonu bağlama ve programı başlat

Telefonu bir bilgisayara bağlamadan önce USB kablosu Veri aktarımı, birkaç hazırlık işlemi yapmanız gerekir. Gerçek şu ki, tutulmanın emülatörle çalışacak şekilde yapılandırıldığı ve hata ayıklama modu yapılandırmasını ayarlamamız gerekir. Basit. Çalıştır\u003e hata ayıklama yapılandırma menü öğesini seçin ve ardından DroidDebug. Hedef sekmesinde, Dağıtım Hedefi Seçim Modu bölümünde, düğmeyi manuel konumuna getirmeniz ve Uygula'yı tıklayın. Böylece dahil manuel mod Platform seçimi. Şimdi, uygulamayı başlattığınızda, bir emülatörü veya bağlı telefonlardan birini seçebileceğiniz bir iletişim kutusu görünecektir.

Telefonu hata ayıklama modunda yapmak için, buna göre ayarlanması gerekir. Ana ekranda olmak, Menü düğmesine tıklamanız ve Ayarlar uygulamasını bulunmanız gerekir. Bu uygulamada "Uygulamalar" bölümünü ve ardından geliştirme öğesini açın. Açılan ekranda, "USB Borçlanma" öğesinin yanında bir kene koymanız gerekir. Bu işlem dizisi çoğu telefon üzerinde çalışıyor, ancak cihazınızda, UBS hata ayıklama modu başka bir yerde açılıyor.

Telefonu bilgisayara bağlayın ve Eclipse'deki hata ayıklama düğmesini tıklayın. Görünen iletişim kutusunda, iki listeyi göreceksiniz: "Çalışan bir Android cihazı seçti" ve "Yeni bir Android Sanal Cihazı başlatın". Bunlardan ilki, ikinci - emülatörlerde, bilgisayara bağlı telefonları listeler. İlk listede telefonunuzu seçin. Eclipse, kurulum uygulamasını telefona çalıştırın ve başlar. Programınızı hata ayırabilirsin.

DDMS Telefon Durumu İzleme (Dalvik Debug Monitor Service)

Tüm telefon durum bilgileri, DDMS hata ayıklama hizmeti (Dalvik Debug Monitor Service) adlı özel bir araçla mevcuttur. Çalıştırmak için, Eclipse'nin sağ üst köşesindeki Android'in görüntüsü ile düğmeyi tıklayın.

DDMS penceresi birkaç panelden oluşur. Cihazlar paneli, mevcut emülatörlerin ve bağlı telefonların bir listesini görüntüler. Ayrıca, koşuların bir listesini sağlar. şu an süreçler. Her işlem kendi başlar sanal makine. Konular tarafından görüntülenir ayrı sekme İş Parçacığı. Sekmek Dosya Gezgini. Çalışmak için tasarlanmış dosya sistemi telefon Bununla birlikte, dosyaları bir bilgisayardan telefona ve arkaya kopyalayabilirsiniz. Ekran Yakalama düğmesini kullanarak, telefon ekranının bir ekran görüntüsü yapabilirsiniz. Yeşil böceğe sahip düğme, hata ayıklayıcıyı seçilen işleme takmanıza izin verir. Bu özelliği kullanmak için, bu işlem için açık kaynak kodunuz olmalıdır.

Ayrıca Logcat Loging Utility programı ve ilgili panel, hataları ararken çok yararlı olabilecek şekilde not edilmelidir. Dergi ile çalışmak, Android.util.log özel sınıfı ile gerçekleştirilir. En yaygın olarak aşağıdaki yöntemleri kullanır:

Log.e () - Hatayı kaydetmek için,
Log.w () - Gazete uyarıları için,
Log.i () - Günlük bilgi mesajları için,
Log.d () - Gazete Hata Ayıklama,
Log.v () - Ayrıntılı kayıtları günlüğe kaydetmek için,

Parametreler olarak, bu yöntemler iki satıra aktarılmalıdır. Daha sonra Logcat'ta arama yapmak ve filtrelemek için kullanılan ilk etiket. İkincisi, dergiye girilen gerçek bilgilerdir.

Kum havuzu

Tanrı sunucusu 18 Eylül 2011, 15:55

Uygulamaların başlatılmasının ve android üzerindeki hata ayıklamasına genel bakış

  • Kereste odası *

İlk Android uygulamanızı geliştirme, kontrol etme ve hata ayıklama için bir başvuru çalıştırma problemiyle uğraştım. Bu makale, yeni kullanıcının bir öykünme aracı seçmesine yardımcı olmalıdır.

Android Sanal Cihazı (AVD)
Kurulum:
Bu öykünme aracı gömülü Android SDK..

Kurulum:
(Eclipse kullanmanın bir örneğinde)
Pencere\u003e Android SDK ve AVD Müdürü\u003e Yeni
Sanal cihazın adını, platform, hafıza kartı boyutunu, ekran türünü girin ...
AVD Oluştur'u tıklayın.

Çalıştırmak:
İlk fırlatma emülatörü, özellikle zayıf cihazlarda çok uzun bir süredir sürer. Örneğin, Netbook'umdaki ilk lansmanı asla bekleyemedim, ancak bilgisayardaki ilk kez emülatörün ebedi döngünün içine girdiğinden emindi.
İfulülatörün sonraki başlatılmaları biraz küçültülür.
"Çalıştır" düğmesine basıldığında ve emülatördeki test uygulamasının ana aktivasyonunun ortaya çıkması arasındaki süre ortalama 11 saniye geçer. Oldukça verimli bir bilgisayarda harcanan önlemler.

Avantajlar ve dezavantajlar:
+ Uygulamayı test etme yeteneği farklı versiyonlar Android işletim sistemi, cihazlarda farklı şekiller Görüntüle ...
+ Çeşitli ayarlarTest için gerekli, örneğin, ekran oryantasyonu değişikliği
+ Emülasyon SD Kart
- "Çalıştır" düğmesine basmak ve uygulamayı emülatöre başlatmak arasında büyük bir süre
- Emulator çok yavaş çalışır, örneğin, telefonun 1-2 saniye işlediği gerçeği, emülatörü 8-10 saniyede yaptılar.

VirtualBox + Android X86
Kurulum ve kurulum:
  1. Virtualbox'ı indirin ve yükleyin.
  2. Görüntüyü indirin.
  3. "Sanal makine, Linux 2.6 / diğer Linux, 512 MB RAM, köprülü ağ, HD 2 GB, fare entegrasyonunu devre dışı bırak. Bağlamak İso dosyası Ve LiveCD seçeneklerinden birini (bir HDPI ve MDPI seçeneği var) yüklüyorsunuz veya bu talimatı izleyin.
  4. Konsoldan çıkmak ve NETCFG yazmak ve emülatörün IP adresini hatırlamak için ALT-F1'e tıklayın. GUI'ye dönmek için Alt-F7 tuşlarına basın.
  5. aDB Connect.

Çalıştırmak:
"Çalıştır" düğmesine basıldığında ve emülatördeki test uygulamasının ana aktivasyonunun ortaya çıkması arasındaki süre bloke etmedi, ancak öznel duyumlara göre neredeyse anında olur.

Avantajlar ve dezavantajlar:
+ "Çalıştır" düğmesine basmak ve uygulamayı emülatördeki başlatmak için küçük bir süre
+ yerler doğrayıcı iş
- Yeterince uzun ve bazen sorunlu kurulum
- Emulator yavaşça yerlerde çalışır, görüntü ile ilgili sorunlar vardır (özellikle MDPI'de)
- SD kart öykünmesi ile ilgili problemler, ekran yönünü değiştirme, ...
- Android işletim sisteminin yalnızca iki (üç) mevcut sürümü ve yalnızca iki adet mevcut ekran tipi

Android işletim sistemi USB üzerinden bağlı olan telefon
Kurulum ve kurulum:
  1. Telefon hata ayıklama modunu açın. (Kalıplar\u003e Uygulamalar\u003e Geliştirme\u003e USB hata ayıklama).
  2. Telefonunuz için sürücüyü indirin.
  3. Telefonu PC'ye bağlıyoruz.
  4. Sürücüleri yükleyin. ADB arayüz bölümü Aygıt Yöneticisi'nde görünmelidir.
  5. aDB cihazları. Telefonunuz listede görüntülenmiyorsa, ADB sürücüsünü yeniden yükleyin.

Çalıştırmak:
"Çalıştır" düğmesine tıklamak arasında ve telefondaki test uygulamasının ana aktivasyonunun görünümü yaklaşık 5 saniye sürer.

Avantajlar ve dezavantajlar:
+ Uygulamayı göreceği gibi görebilme yeteneği (çok Önemli bir an, özellikle bir uygulama arayüzü ve tasarım oluştururken)
+ Multitach (telefonda varsa)
+ Ekran oryantasyonu değişikliği, ivmeölçer (telefonda varsa)
- İşletim sisteminin yalnızca bir versiyonu ve bir tür ekran
- Fiziksel masaüstünde başka bir nesne görünür

Sonuçlar:
Bu öykünme araçlarının her biriyle çalışmaya çalıştım ve bu sürümde durdum:
1. Telefonu kullanarak uygulamayı yazmak ve test etmek;
2. Çok sayıda Android sanal cihazında bir uygulamayı, işletim sistemi sürümünün ve ekran türünün çeşitli kombinasyonlarına sahip test etme.
Umarım okuma emülatörünün seçimini yapmış veya kendim için yeni bir şey öğrendi.
Testte iyi şanslar!

Bu bölümün amacı, asgari uygulamayı Android altına yazmaktır. Ancak tam olarak gerçek cihazda çalıştırmaya çalışmadan çalıştırılabilir bir şey yazabilseydik. Bu, bu makaleyle ilgileneceğiz.

Akıllı telefonda test etme yeteneği ADB (Android Debug Köprüsü) tarafından sağlanmaktadır. Bu yazıda onu yapılandıracak ve bu akıllı telefondaki uygulamamızı başlatacağız.

ADB nedir.

Android Debug Köprüsü (ADB), geliştirme ortamı arasındaki etkileşime katkıda bulunan evrensel bir komut satırı aracıdır. vaka android Uygulamaları başlatma ve hata ayıklama olasılığı için stüdyo ve AVD emülatörleri veya fiziksel Android cihazları.

ADB, bir müşteriden oluşur, arka plan süreci, bir geliştiricinin bilgisayarında ve bir şeytanın her bir örneğinde, bir emülatörün veya gerçek bir cihazın her bir örneğinde çalışan bir şeytandan.

ADB ile çalışmak için Android cihazlarını yapılandırma

ADB'yi USB bağlı bir cihazla kullanmak için, USB hata ayıklamasına izin vermeniz gerekir. sistem ayarları "Geliştirici Ayarları" bölümündeki telefon veya tablet (isim farklı olabilir). Bazı cihazlarda, bu bölüm varsayılan olarak gizlenir. İstenilen ayarlar olmadığında durumdaki adımları düşünün.

  1. Ayarlara, "Cihazda" bölümüne gidin
  2. "Numarayı Yap" öğesini bulun ve 7 kez tıklayın. Geliştirici modunun etkinleştirildiğini bildiren bir pencere.
  3. Şimdi ayarlarda, geliştirici parametrelerinin bir bölümü olmalıdır.
  4. İçindeki "hata ayıklama USB" seçeneğini açın.

Artık cihazı bir bilgisayara bağladığınızda, modele bağlı olarak yeni bir bağlantı seçeneğiniz olabilir.

Windows'ta ADB Kurulumu

İçin kurulum pencereleriİlk önce, bir Google USB sürücüsünüz olduğundan emin olun. Ekstralar bölümündeki SDK Yöneticisine gidin ve Google USB sürücüsünü bulun, gerekirse kurun.


Şimdi sürücüyü güncellemelisin. Cihazı bilgisayara bağlayın, kontrol paneline gidin -\u003e Ekipman ve Ses -\u003e Aygıt Yöneticisi Cihazınızı bulun. Açılacak cihazınızdaki sağ tuş bağlam menüsü Ve "Sürücüleri Güncelle ..." seçeneğini seçin. Sürücü, SDK dizininde alt klasördeki SDK dizininde bulunabilir \\ (SDK dizini) \\ extras \\ Google \\ usb_driver.

ADB ayarlarının doğruluğunu nasıl kontrol edersiniz?

ADB performansını kontrol etmek için, cihazı bilgisayara bağlayın, Klasör (SDK dizini) \\ Platform-Tools komut satırı'nda çalıştırın ve komutu girin:

ADB cihazları.

Bunun gibi bir liste görünecektir:

Ekli cihazların listesi 5CDB2CED cihaz

Gerçek bir cihaza bir başvuru çalıştırın

Hepsi emülatör üzerinde koşma durumunda olduğu gibi. Projemizi Android Studio'da açın, yeşil üçgene tıklayın, ancak görünen cihaz seçim penceresinde, cihazınızı seçin.


Cihazın çevrimdışı olduğu yazılırsa, USB'yi alın ve USB'nin bilgisayara hata ayıklamasına izin verin:

Sonuç olarak, uygulamamız telefonda veya tablet ekranında görünecektir.

Sonuç

Bu bölüm biter. Biz başardı: Sistemimizi Android uygulamaları geliştirmek ve hatta mevcut cihazda bir tane çalıştırmak için yapılandırabilir.

Aktif olarak işe yaramazsa ya da kafanız karışmazsa, lütfen abonelikten çıkın, lütfen, yorumlarda ve probleminizle ilgilenmenize yardımcı olurum.

Dekompilasyon ve Hata Ayıklama Android Uygulamaları

Alexander Antipov.

Makale, hata ayıklayıcısını Android uygulamasına nasıl bağlayacağı ve adım adım geçişi, uygulama dekompilasyonundan sonra alınan bilgileri kullanarak adlandırılan yöntemlerle geçiş yapılır.


Makale, hata ayıklayıcısını Android uygulamasına nasıl bağlayacağı ve adım adım geçişi, uygulama dekompilasyonundan sonra alınan bilgileri kullanarak adlandırılan yöntemlerle geçiş yapılır. İyi haber, hata ayıklamanın Süperüsleyici'nin ayrıcalıklarını gerektirmediğidir. Açıklanan teknikler penalar sırasında bu arada olabilir mobil uygulamalarÇalışırken koda "nüfuz etmeyeceğimizden", genellikle erişimimiz olmadığımız bilgileri alın ve kaydedin. Örneğin, şifrelemeden önce trafiği engelleyebilir ve anahtardaki anahtarları, şifreleri ve diğer değerli bilgileri alabilirsiniz. Makale, Android platformunda olası saldırılar hakkında daha fazla bilgi edinmek isteyen pensetler ve mobil uygulama geliştiricileri için yararlı olacaktır.

Test ortamının gereksinimleri:

  • İşletim sistemi: Windows / Mac OS X / Linux
  • Java (Önerilen Sürüm 1.7)
  • IDE (Eclipse, Intellij fikri, Android Studio)
  • Android SDK (https://developer.android.com/sdk/index.html?hl\u003di)
  • Apktool (https://code.google.com/p/androidroid-apktool/) / apk stüdyosu (http://apkstudio.codeplex.com)
  • Cihaz / emülatör android dayalı

Makale aşağıdaki konfigürasyonu kullanır: Windows 8, Android Studio ve Intellij Fikir. Cihaz: Nexus 4 ile Android sürümü 4.4.4. Bu araçlara erişimi kolaylaştırmak ve hızlandırmak için yol ortamı değişkenine eklemek için tüm yardımcı programları öneririm.

Makalede kullanılan Android Uygulama Paketi (APK), buradan indirebilirsiniz: com.netspi.eguber.test.apk .

Cihaz kurulumu

Aşağıdaki talimatlar deneyler için bir cihaz hazırlamanıza yardımcı olacaktır.

Geliştirici Seçenekleri bölümünün etkinleştirilmesi

Android cihazında başlamak için, USB üzerinden hata ayıklamak için izin verilmelidir (USB hata ayıklama seçeneği), bu araçları kullanarak cihazla "iletişim kurmanızı" sağlayacaktır. android SDK. Ancak, geliştirici seçenekleri bölümünü etkinleştirmek gerekir. Cihazda Ayarlar\u003e Telefon hakkında Ve Yapı Numarasına birkaç kez tıklayın, ardından geliştirici seçenekleri bölümünün etkinleştirildiği bir mesaj görünmelidir.

Şekil 1: Geliştirici Seçenekleri bölümünü etkinleştirmek için, birkaç kez oluşturma numarasına tıklamanız gerekir.

USB üzerinden hata ayıklama

Bir USB bağlantı noktasından hata ayıklamana izin vermek için, Ayarlar\u003e Geliştirici Seçenekleri'ne gidin ve USB hata ayıklamasının yanındaki kutuyu işaretleyin.

Şekil 2: USB seçeneklerini etkinleştirme Hata ayıklama

Cihazı bağlama ve ADB'yi başlat

Cihazı USB portu üzerinden bir bilgisayara bağladıktan sonra, "Cihaza bağlı USB hata ayıklama" mesajı görünmelidir. Android SDK'da (Android SDK Platform-Tools paketi) dahil olan Android Debug Köprüsü (ADB) uygulamasını kullanarak cihaza bağlanıp bağlanabilmeniz gerekmediğini de kontrol etmelisiniz. Komut isteminde, aşağıdaki komutu girin:

Cihaz listede görüntülenmelidir.

Şekil 3: Bağlı cihazların listesi

Cihaz listede görüntülenmiyorsa, en olası neden yanlış yüklü sürücüler (Windows'ta). Cihaza bağlı olarak, sürücü Android SDK'da veya üreticinin web sitesinde bulunabilir.

Hata ayıklama için başvuruyu kontrol edin

Android uygulamalarını hata ayıklamadan önce, bu bir fırsat olup olmadığını kontrol etmek için önce gereklidir. Kontrol birkaç şekilde yapılabilir.

Koşmanın ilk yolu Android cihaz monitörüAndroid SDK'ya (Araçlar klasöründe) dahildir. İÇİNDE Windows dosyası. Monitor.bat denir. İçin açılış android Cihaz monitörü Cihaz aygıtlarında görüntülenecektir.

Şekil 4: Android Cihazı Monitör Uygulaması

Cihazdaki herhangi bir uygulama hata ayıklanabilirse, bu uygulama listede de görüntülenecektir. Bir test programı oluşturdum, ancak liste boştur, çünkü programı hata ayıklamak imkansızdır.

Uygulamayı hata ayıklamak için başvuruyu kontrol etmenin ikinci yolu, Uygulama Paketi'nden (APK, Android Uygulama Paketi) Androidmanifest.xml dosyasını keşfetmektir. APK, Android cihazında bir uygulamayı başlatmak için gerekli tüm bilgileri içeren bir zip arşividir.

Ne zaman başvurular yüklendiğinde Google Oyun. Mağaza, uygulama paketini de yükler. İndirilen tüm APK dosyaları genellikle / veri / uygulama klasöründeki cihazda saklanır. Bir süper kullanıcı hakkınız yoksa, / veri / uygulama dizininden bir dosya listesi alamazsınız. Ancak, APK dosyasını biliyorsanız, yardımcı programı kullanarak kopyalayabilirsiniz. adb.. APK dosyasını bulmak için aşağıdaki komutu girin:

Görünecek komut satırı Aygıtlar. Ardından aşağıdaki komutu girin:

pM Listeleri Paketleri -F

Cihazdaki tüm paketlerin bir listesi görünecektir.

Şekil 5: Cihazdaki paketlerin listesi

Listeye baktığımızda bir test uygulaması buluyoruz.

Şekil 6: Oluşturulan test uygulamasının paketi (vurgulanan beyaz)

Şimdi paket dosyasını kopyalamanız gerekir. Kabuğu açarız ve aşağıdaki komutu giriyoruz:

adb çekin /data/app/p.apk dosyası]

Şekil 7: APK dosyasını cihazdan sisteme kopyalayın

Şimdi paket dosyasını açmanız ve Androidmanifest.xml içeriğini keşfetmeniz gerekir. Ne yazık ki, APK dosyası ikili bir biçimde kodlandığı için arşivi sadece açamazız. Yardımcı program çoğunlukla çözme için kullanılır. apktool, kullanırım olmasına rağmen APK Studio.Çünkü bu uygulama dostça grafik arayüzü. Daha sonra, makale apk stüdyosunu söyleyecektir.

Apk Studio'da, küçük bir yeşil simgeye tıklayın, projenin adını ayarlayın ve yolunu belirtin Apk dosyası. Ardından, projeyi kaydetmeniz için olmasına izin verin.

Şekil 8: APK Studio'da yeni bir proje oluşturma

APK açıldıktan sonra, Androidmanifest.xml dosyasını seçin ve uygulama etiketinin parametrelerini kontrol edin. Android bayrağı: hatası eksikse (veya mevcut, ancak yanlış değer ayarlanır), uygulamanın hata ayıklanamadığı anlamına gelir.

Şekil 9: AndroidManifest.xml dosyasının içeriği

AndroidManifest.xml dosyasının değiştirilmesi

ApkTool veya APK Studio yardımcı programını kullanarak, dosyaları ve paket içeriğini pakete geri değiştirebiliriz. Şimdi, uygulamanın hata ayıklanabilmesi için Androidmanifest.xml dosyasını değiştireceğiz. Uygulama etiketinin içine ekle, satır android: debuggable \u003d "true".

Şekil 10: Uygulama etiketinin içeriğini değiştirin

"Çekiç" simgesine tıklayarak ve paketi tekrar toplayarak bir bayrak ekledikten sonra. Yeniden montaj paketi Yapı / APK dizininde bulunacaktır.

Şekil 11: Yeniden montaj paketi başarıyla tamamlandı

Yeniden oluşturduktan sonra, paket aboneler ve cihaza yeniden yükleyebilirsiniz (tüm Android uygulamaları imzalanmalıdır). Çoğu uygulama, imzanın gerçekleştiği sertifikayı kontrol etmiyor. Aksi takdirde, bu kontrolü yapan kodu değiştirmeniz gerekir.

Şimdi bir montaj paketi kurmanız gerekir. İlk önce, aşağıdaki komutu kullanarak eski uygulamayı silin:

aDB PM Kaldır

Sonra yeni bir paket ayarlayın:

aDB Kurulumu [.apk dosyası]

Ayrıca paketi bir komutla da silebilir ve yükleyebilirsiniz:

aDB Kurulumu -R [.apk dosya]

Şekil 12: Güvenli bir paket takma

Sıfırlama uygulamasının cihazda doğru bir şekilde başlatıldığından emin olun. Her şey çalışıyorsa, test uygulamasının görünmesi gereken Android cihaz monitörüne geri dönün.

Şekil 13: Şimdi Güvence verilen uygulama hata ayıklanabilir

Geliştirme ortamını yapılandırın (IDE)

Şimdi hata ayıklayıcı, yeniden düzenlenmiş bir uygulamaya kadar alınabilir, ancak önce gelişim ortamında bir proje oluşturmanız gerekir (makale Intellij fikri kullanır). Yeni bir proje oluşturun. Uygulama adı alanında, keyfi bir isim belirtin. Paket Adı alanında, adını tam olarak karşılaştırılmış paketin klasörünün hiyerarşisi ile karşılaştık.

Şekil 14: Intellij Fikirinde Yeni Bir Proje Oluşturma

Genellikle, APK dosyasının adı, klasör yapısıyla çakışıyor, ancak APK Studio'da, uygulamaların bulunduğu klasöre dizin hiyerarşisini kontrol edin. Benim durumumda, klasörlerin adı ve yapısı tamamen çakışıyor (com.netspi.eguber.test).

Şekil 15: Test başvurusu dizinlerinin hiyerarşisi

"HELLO Dünya Aktivitesi Oluştur" nın onay kutusunun işaretini kaldırın ve proje oluşturmayı tamamlayın (diğer tüm parametreler varsayılan olarak kalır). Yeni proje Böyle bir şeye bakmalı:

Şekil 16: Yeni projenin klasörlerinin ve dosyaların hiyerarşisi

Bir proje oluşturduktan sonra, APK dosyasından kaynak kodu ekleyin, böylece karakter, yöntemler, değişkenler vb. Hata ayıklayıcısının, yöntemler, yöntemler, vb. orijinal ile eşleşecek). Döndürüldükten sonra, kaynak metin geliştirme ortamına (IDE) ithal edilmektedir.

Uygulama paketinden kaynak metinleri elde etme

Öncelikle APK'ı JAR dosyasına dönüştürmeniz gerekir. Sonra Java Decompiler'in yardımıyla başvurunun kaynak metnini elde ettik. Kavanoza dönüşüm yardımcı programla yapacak dex2jar. Dex2jar, APK'a JAR'a dönüştürmek için kullanılan bir D2J-Dex2jar.bat dosyasına sahiptir. Takımın sözdizimi oldukça basittir:

d2j-dex2jar.bat [.apk dosya]

Şekil 17: APK'yı kavanoza dönüştürme

Ardından, alınan dosyayı JD-GUI'de açın veya sürükleyin (bu bir Java Decompiler).

Şekil 18: JAR Dosya Yapısı

JAR dosyası, okunabilir kaynak kodlu Java dosyalarının bulunduğu hiyerarşik bir yapı biçiminde görüntülenmelidir. Dosyaya Git\u003e ZIP arşivindeki tüm kaynak metinleri paketlemek için tüm kaynakları kaydet.

Şekil 19: Decompile dosyasının kaynak metinlerini kaydetme

Kaynak metinleri kaydettikten sonra, arşivi ayrı bir dizine açın.

Şekil 20: Açılmamış Arşiv

Artık her iki dizin de IDE'taki önceden oluşturulan projeye ithal etmeniz gerekir. Intellij SRC klasörüne gidin ve oradaki açılmamış arşivin içeriğini kopyalayın (iki dizin).

Şekil 21: Her iki klasör de SRC dizinine kopyalanır

Intellij'e geri dönen, güncellenmiş bir proje görüyoruz.

Şekil 22: Projede kaynak metinler ortaya çıktı

Listeden bazı öğelere tıklarsak, kaynak metni göreceğiz. Aşağıdaki ekran görüntüsünde görülebileceği gibi (loginactivity sınıfının kaynak metni), kaynak kodu proguard kullanılarak açıklanmaktadır.

Şekil 23: Oppelted Kaynak metin girişi

Hata Ayıklayıcı Bağlantı

Şimdi, kaynak metinler projede göründüğünde, yöntemler ve değişkenler üzerine kesme noktaları kurmaya başlayabiliriz. Kapatma noktalarına ulaştıktan sonra, uygulama durur. Örnek olarak, metin alanına girilen bilgilerin işlenmesinden sorumlu olan yöntemde (doğrudan bir bileşen kodunda) bir durma noktası kurdum.

Şekil 24: Bir bileşen yöntemi için durma noktasını yerleştirin

Durdurma noktası ortaya çıktığında, hata ayıklayıcısını cihazdaki işleme bağlayın, sağdaki ekrana simgesine tıklayarak üst köşe (IDE'nizde, simge farklı olabilir).

Şekil 25: Hata ayıklayıcıyı işleme bağlayın

Şekil 26: Hata ayıklayıcıyı bağlamak için süreçlerin listesi

İşlemi seçtikten sonra, hata ayıklayıcı cihaza bağlanacaktır.

Şekil 27: Hata ayıklayıcı, cihazda çalışan işleme bağlıdır.

Metin alanında, 42 numarayı gireceğim (hatırlarsanız, durma noktası ilgili yöntemde buna değer).

Şekil 28: Metin alanında 42 numarayı giriyoruz

"Kodu Gir" düğmesine tıklandıktan sonra, uygulama durdurma noktasında tamamlanacaktır, çünkü hata ayıklayıcı "farkında", hangi yöntemde cihazda çağrılır. Derlenmiş Android uygulaması, Java Debug Wire Protokolü (JDWP) ile uyumlu herhangi bir hata ayıklayıcı için hata ayıklama bilgileri (örneğin, değişken isimleri) içerir. Başvurunun hata ayıklama işlemlerine izin verilirse, JDWP ile uyumlu bir hata ayıklayıcı (bu kategoride, Java için geliştirme ortamında çalışan çoğu hata oluştu) Android uygulama sanal makinesine bağlanabilir ve daha sonra hata ayıklama komutlarını okuyun ve çalıştırabilir.

Şekil 29: Durma noktasını çalıştı

Aşağıdaki ekran görüntüsü, daha önce metin alanına girdiğimiz numarayı göstermektedir.

Şekil 30: Sınıfın geçerli örneğinin değişkenlerinin listesi

Sonuç

Sadece uygulamadaki verileri okuyabiliriz, aynı zamanda kendi ekleriz. Bu, örneğin, kodun yürütülmesinin akışını kesmek ve algoritmanın bazı bölümlerini atlamak isteyecektir. Hata ayıklayıcıyı kullanarak, uygulamanın mantığını daha iyi anlayabilir ve normal kullanıcıya neyin kullanılamadığını analiz edebiliriz. Örneğin, kullanılan şifreleme işlevlerini ve dinamik tuşları görüntülemek için çok faydalı olabilir. Ek olarak, bazen hata ayıklama yaparken, fonksiyonların uygulama tarafından hangi bilgilerin saklandığını anlamak için dosya sistemi veya veritabanıyla nasıl etkileşimde bulunduğunu bilmek faydalıdır. Bu tür manipülasyonlar, süperüsücü ayrıcalıkları olmayan herhangi bir Android cihazda bulunur.