Saya baru mulai mengembangkan aplikasi Android sederhana saat saya masih mempelajari platformnya.
Saya menggunakan Eclipse IDE dengan plugin ADT 0.9.6.
Saya perlu tahu apakah mungkin untuk melihat Activity
tumpukan yang terkait dengan Tugas?
Apakah ada cara melalui alat DDMS atau melalui teknik lain?
Pada dasarnya apa yang saya butuhkan adalah dapat melihat aktivitas tumpukan tugas untuk memastikan bahwa aplikasi berperilaku seperti yang diharapkan.
Saya tahu bahwa dimungkinkan untuk mengontrol perilaku tugas dalam beberapa hal melalui penggunaan bendera di Intent
objek dan melalui beberapa atribut <activity>
elemen.
Namun alangkah baiknya memiliki semacam alat - terutama dalam mode debug atau lebih - yang akan memungkinkan pengembang untuk melihat Activity
tumpukan secara langsung.
sumber
Jawaban:
Dari baris perintah, Anda dapat menggunakan:
adb shell dumpsys activity
Ini meminta pengelola aktivitas untuk mencetak dump dari keadaannya saat ini. Bagian pertama adalah riwayat aktivitas lengkap, yang diatur menurut tugas. Ada juga banyak barang yang dicetak setelah itu, jadi Anda mungkin perlu menggulir sedikit ke atas untuk menemukan apa yang Anda inginkan.
Berikut adalah contoh keluarannya (konten persisnya berbeda-beda di setiap versi platform), yang menunjukkan tugas teratas adalah kontak dengan dua aktivitas, dan di belakang itu peluncur dengan satu aktivitas:
sumber
adb shell
<enter>dumpsys activity | grep -i run
.adb shell dmpsys activity
Anda bisa mendapatkan untuk setiap daftar misalnyaadb shell dmpsys activity activities
untuk ACTIVITY MANAGER ACTIVITIES yang berisi tumpukan utama, aktivitas yang sedang berjalan dan tugas terbaru.dumpsys activity intents
untuk maksud tertunda;dumpsys activity broadcasts
untuk status siaran;dumpsys activity providers
untuk penyedia konten;dumpsys activity services
untuk layanan;dumpsys activity processes
untuk menjalankan proses.adb shell dumpsys activity | grep -i run
atauadb shell dumpsys activity activities | grep -i run
untuk keluaran yang sedikit lebih bersih.Anda dapat menggunakan perintah berikut di baris perintah Anda untuk melihat tugas dan backstack dalam sistem:
adb shell dumpsys activity activities | sed -En -e '/Stack #/p' -e '/Running activities/,/Run #0/p'
Atau Anda dapat mencoba TaskLogger , alat sederhana yang saya buat yang dapat memantau semua aktivitas dan tugas di Aplikasi Anda, dan menampilkannya di Logcat secara real-time.
sumber
Saya tahu ini adalah pertanyaan lama, tetapi fungsi ini sekarang dimasukkan ke dalam Android Studio:
Kemudian di file teks yang dihasilkan, cari
ACTIVITY
(huruf besar semua):sumber
Jika Anda ingin memeriksa tumpukan tugas dari paket tertentu, perintah berikut akan dilakukan:
adb shell dumpsys activity activities | grep PACKAGE_NAME | grep Hist
sumber
Saya selalu memeriksa bagian pesan long dump ini ..
Running activities (most recent first): TaskRecord{4307f828 #56 A com.demo.proj U 0} Run #4: ActivityRecord{425a6838 com.demo.proj/com.demo.proj.Activity2} Run #3: ActivityRecord{427dc860 com.demo.proj/com.demo.proj.Activity1} Run #2: ActivityRecord{420cba18 com.demo.proj/com.demo.proj.MainActivity} TaskRecord{430341d0 #2 A com.lge.launcher2 U 0} Run #1: ActivityRecord{41e0af68 com.lge.launcher2/.Launcher} TaskRecord{44e26ce0 #18 A com.lge.appbox.client U 0} Run #0: ActivityRecord{41e9dbe8 com.lge.appbox.client/.AppBoxClient}
Catatan: Jalankan # 4 adalah aktivitas yang Anda lihat sekarang di layar. :)
sumber
Anda dapat menggunakan alat hierarchyviewer.bat. Ini adalah bagian dari Android SDK. Ini hanya bekerja dengan emulator. Tapi itu jauh lebih nyaman dan lebih jelas.
Sunting: Saya baru saja menemukan Hierarchy Viewer dalam Eclipse! Dan itu berfungsi dengan perangkat nyata juga. Buka saja perspektif Windows-> Open Perspective-> Hierarchy View Dalam daftar, Anda dapat melihat semua perangkat dan emulator yang terhubung serta tumpukan aktivitas. Selain itu, di tampilan hierarki, Anda dapat melihat lebih banyak informasi tentang tampilan itu sendiri.
Edit: Hierarchy Viewer hanya akan bekerja dengan perangkat pengembang. Perangkat produksi tidak dapat melakukannya untuk alasan keamanan. Untuk informasi lebih lanjut silakan lihat jawaban berikut
sumber
Untuk daftar tugas terbaru
Untuk daftar Layanan yang sedang berjalan
Untuk daftar Penyedia Konten saat ini
Untuk daftar status Siaran
Untuk daftar Maksud Tertunda
Untuk daftar izin
sumber
AdbCommander
plugin dan menambahkan perintah-perintah itu dimacros
tabAda plugin untuk itu sekarang:
https://plugins.jetbrains.com/plugin/12293-activity-stack-view
sumber
Solusi: 'aktivitas dumpsys shell adb' tidak berfungsi dengan TabActivity. Saat setiap item tab dipilih, aktivitas terkait akan diluncurkan. Tetapi ketika menggunakan 'adb shell dumpsys activity', aktivitas 'main' selalu dikembalikan:
public class main extends TabActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { Log.e("xyz", "start main..............."); super.onCreate(savedInstanceState); setContentView(R.layout.main); Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = getTabHost(); // The activity TabHost TabHost.TabSpec spec; // Resusable TabSpec for each tab Intent intent; // Reusable Intent for each tab // Create an Intent to launch an Activity for the tab (to be reused) intent = new Intent().setClass(this, widgets.class); spec = tabHost.newTabSpec("Widgets").setIndicator("Widgets", res.getDrawable(R.drawable.tab1)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, layouts.class); spec = tabHost.newTabSpec("Layouts").setIndicator("Layouts",res.getDrawable(R.drawable.tab2)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, composite1.class); spec = tabHost.newTabSpec("Composite").setIndicator("Composite",res.getDrawable(R.drawable.tab3)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, imageMedia.class); spec = tabHost.newTabSpec("Image_Media").setIndicator("Image&Media",res.getDrawable(R.drawable.tab4)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, timeDate.class); spec = tabHost.newTabSpec("Time_Date").setIndicator("Time&Date",res.getDrawable(R.drawable.tab5)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, transitions.class); spec = tabHost.newTabSpec("Transitions").setIndicator("Transitions",res.getDrawable(R.drawable.tab6)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, advanced.class); spec = tabHost.newTabSpec("Advanced").setIndicator("Advanced",res.getDrawable(R.drawable.tab7)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, others.class); spec = tabHost.newTabSpec("Others").setIndicator("Others",res.getDrawable(R.drawable.tab8)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, Dynamic.class); spec = tabHost.newTabSpec("Dynamic").setIndicator("Dynamic",res.getDrawable(R.drawable.tab2)).setContent(intent); tabHost.addTab(spec); tabHost.setCurrentTab(0); } }
sumber