APK های از پیش ساخته شده را اشکال زدایی کنید

Android Studio نسخه 3.0 و بالاتر به شما امکان می‌دهد فایل‌های APK را که اشکال‌زدایی را فعال کرده‌اند، بدون نیاز به ساختن آن‌ها از پروژه Android Studio، نمایه و اشکال‌زدایی کنید.

برای شروع اشکال زدایی یک APK، این مراحل را دنبال کنید:

  1. از صفحه خوش‌آمدگویی Android Studio، روی نمایه یا اشکال‌زدایی APK کلیک کنید.

    اگر از قبل پروژه ای باز دارید، روی File > Profile یا Debug APK از نوار منو کلیک کنید.

  2. در گفتگوی باز شده، APK مورد نظر برای وارد کردن به Android Studio را انتخاب کنید.

  3. روی OK کلیک کنید.

اگر این گزینه نمایش داده نشد، مطمئن شوید که افزونه «Android APK Support» را فعال کرده اید.

سپس Android Studio فایل‌های APK بدون بسته‌بندی را نمایش می‌دهد، مشابه شکل 1. این مجموعه فایل‌های کاملاً دکامپایل‌شده نیست، اما فایل‌های SMALI را برای نسخه قابل خواندن‌تر فایل‌های DEX ارائه می‌کند.

وارد کردن یک APK از پیش ساخته شده به Android Studio

شکل 1. وارد کردن یک APK از پیش ساخته شده به Android Studio.

نمای Android در قسمت Project به شما امکان می دهد محتویات زیر APK خود را بررسی کنید:

  • فایل APK: روی APK دوبار کلیک کنید تا تحلیلگر APK باز شود.
  • manifests: شامل مانیفست های برنامه است که از APK استخراج می شوند.
  • جاوا: حاوی کد کاتلین یا جاوا است که اندروید استودیو از فایل‌های DEX APK شما جدا می‌شود (به فایل‌های SMALI). هر فایل SMALI در این فهرست مربوط به کلاس Kotlin یا Java است.
  • cpp: اگر برنامه شما دارای کد بومی باشد، این فهرست شامل کتابخانه های بومی APK شما (فایل های SO) است.
  • کتابخانه های خارجی: شامل Android SDK است.

می توانید از نمایه ساز اندروید برای شروع آزمایش عملکرد برنامه خود استفاده کنید .

برای اشکال زدایی کد Kotlin یا Java برنامه خود، باید منابع Kotlin یا Java را پیوست کنید و نقاط شکست را در فایل های منبع Kotlin یا Java اضافه کنید. به طور مشابه، برای اشکال زدایی کد بومی خود، باید نمادهای اشکال زدایی بومی را پیوست کنید .

منابع Kotlin یا Java را ضمیمه کنید

به طور پیش‌فرض، Android Studio کد Kotlin یا Java را از APK شما استخراج می‌کند و آن را به عنوان فایل SMALI ذخیره می‌کند. برای اشکال‌زدایی کد Kotlin یا Java با استفاده از نقاط شکست، باید IDE را به فایل‌های منبع Kotlin یا Java که مربوط به فایل‌های SMALI هستند که می‌خواهید اشکال زدایی کنید اشاره کنید.

برای پیوست کردن منابع Kotlin یا Java، به صورت زیر عمل کنید:

  1. روی یک فایل SMALI از پنجره Project در نمای اندروید دوبار کلیک کنید. پس از باز کردن فایل، ویرایشگر بنری را نمایش می دهد که از شما می خواهد منابع Kotlin یا Java را انتخاب کنید: ضمیمه بنر منابع
  2. روی Attach Kotlin/Java Sources... از بنر در پنجره ویرایشگر کلیک کنید.
  3. با فایل‌های منبع Kotlin یا Java برنامه به فهرست راهنما بروید و روی Open کلیک کنید.

در پنجره Project ، Android Studio فایل‌های SMALI را با فایل‌های منبع Kotlin یا Java مربوطه جایگزین می‌کند. Android Studio همچنین شامل کلاس های داخلی به طور خودکار است. اکنون می توانید نقاط شکست اضافه کنید و برنامه خود را اشکال زدایی کنید .

نمادهای اشکال زدایی بومی را ضمیمه کنید

اگر APK شما شامل کتابخانه‌های بومی (فایل‌های SO) است که نمادهای اشکال‌زدایی را شامل نمی‌شود، Android Studio یک بنر مشابه آنچه در شکل 1 نشان داده شده است به شما نشان می‌دهد. نمی‌توانید کد اصلی APK را اشکال زدایی کنید یا از نقاط شکست بدون پیوست کردن بومی قابل اشکال‌زدایی استفاده کنید. کتابخانه ها

برای پیوست کردن کتابخانه‌های بومی قابل اشکال‌زدایی، به صورت زیر عمل کنید:

  1. اگر قبلاً این کار را نکرده‌اید، NDK و ابزارها را دانلود کنید .
  2. در نمای Android ، در زیر فهرست cpp در پنجره Project ، روی فایل کتابخانه بومی که شامل نمادهای اشکال زدایی نیست، دوبار کلیک کنید.

    ویرایشگر جدولی از تمام ABI هایی که APK شما پشتیبانی می کند را نشان می دهد.

  3. روی Add در گوشه سمت راست بالای پنجره ویرایشگر کلیک کنید.

  4. به فهرستی که شامل کتابخانه‌های بومی قابل اشکال‌زدایی است که می‌خواهید پیوست کنید بروید و روی OK کلیک کنید.

اگر APK و کتابخانه‌های بومی قابل اشکال‌زدایی با استفاده از یک ایستگاه کاری متفاوت ساخته شده‌اند، باید مسیرهای نمادهای اشکال‌زدایی محلی را نیز با دنبال کردن این مراحل مشخص کنید:

  1. با ویرایش فیلد زیر ستون Local Paths در قسمت Path Mappings پنجره ویرایشگر، که در شکل 2 نشان داده شده است، مسیرهای محلی را به نمادهای اشکال زدایی از دست رفته اضافه کنید.

    در بیشتر موارد، شما فقط باید مسیر یک پوشه ریشه را ارائه دهید و Android Studio به طور خودکار زیر شاخه ها را بررسی می کند تا منابع اضافی را ترسیم کند. Android Studio همچنین به طور خودکار مسیرهای یک NDK راه دور را برای دانلود NDK محلی شما ترسیم می کند.

  2. روی Apply Changes در قسمت Path Mappings پنجره ویرایشگر کلیک کنید.

ارائه مسیرهایی برای نمادهای اشکال زدایی محلی

شکل 2. مسیرهای محلی برای اشکال زدایی نمادها.

فایل های منبع بومی در پنجره Project ظاهر می شوند. برای افزودن نقاط شکست و اشکال زدایی برنامه خود ، آن فایل های منبع بومی را باز کنید. برای حذف نقشه ها، در قسمت Path Mappings در پنجره ویرایشگر، روی Clear کلیک کنید.

مشکل شناخته شده: هنگام پیوست کردن نمادهای اشکال زدایی به یک APK، فایل های APK و SO قابل اشکال زدایی باید با استفاده از یک ایستگاه کاری یا سرور ساخت یکسان ساخته شوند.

در Android Studio نسخه 3.6 و بالاتر، وقتی APK خارج از IDE به روز می شود، نیازی به ایجاد پروژه جدید ندارید. Android Studio تغییرات را در APK تشخیص می دهد و به شما امکان می دهد آن را دوباره وارد کنید.

APK به روز شده را وارد کنید

شکل 3. فایل های APK به روز شده خارج از Android Studio را می توان دوباره وارد کرد.

،

Android Studio نسخه 3.0 و بالاتر به شما امکان می‌دهد فایل‌های APK را که اشکال‌زدایی را فعال کرده‌اند، بدون نیاز به ساختن آن‌ها از پروژه Android Studio، نمایه و اشکال‌زدایی کنید.

برای شروع اشکال زدایی یک APK، این مراحل را دنبال کنید:

  1. از صفحه خوش‌آمدگویی Android Studio، روی نمایه یا اشکال‌زدایی APK کلیک کنید.

    اگر از قبل پروژه ای باز دارید، روی File > Profile یا Debug APK از نوار منو کلیک کنید.

  2. در گفتگوی باز شده، APK مورد نظر برای وارد کردن به Android Studio را انتخاب کنید.

  3. روی OK کلیک کنید.

اگر این گزینه نمایش داده نشد، مطمئن شوید که افزونه «Android APK Support» را فعال کرده اید.

سپس Android Studio فایل‌های APK بدون بسته‌بندی را نمایش می‌دهد، مشابه شکل 1. این مجموعه فایل‌های کاملاً دکامپایل‌شده نیست، اما فایل‌های SMALI را برای نسخه قابل خواندن‌تر فایل‌های DEX ارائه می‌کند.

وارد کردن یک APK از پیش ساخته شده به Android Studio

شکل 1. وارد کردن یک APK از پیش ساخته شده به Android Studio.

نمای Android در قسمت Project به شما امکان می دهد محتویات زیر APK خود را بررسی کنید:

  • فایل APK: روی APK دوبار کلیک کنید تا تحلیلگر APK باز شود.
  • manifests: شامل مانیفست های برنامه است که از APK استخراج می شوند.
  • جاوا: حاوی کد کاتلین یا جاوا است که اندروید استودیو از فایل‌های DEX APK شما جدا می‌شود (به فایل‌های SMALI). هر فایل SMALI در این فهرست مربوط به کلاس Kotlin یا Java است.
  • cpp: اگر برنامه شما دارای کد بومی باشد، این فهرست شامل کتابخانه های بومی APK شما (فایل های SO) است.
  • کتابخانه های خارجی: شامل Android SDK است.

می توانید از نمایه ساز اندروید برای شروع آزمایش عملکرد برنامه خود استفاده کنید .

برای اشکال زدایی کد Kotlin یا Java برنامه خود، باید منابع Kotlin یا Java را پیوست کنید و نقاط شکست را در فایل های منبع Kotlin یا Java اضافه کنید. به طور مشابه، برای اشکال زدایی کد بومی خود، باید نمادهای اشکال زدایی بومی را پیوست کنید .

منابع Kotlin یا Java را ضمیمه کنید

به طور پیش‌فرض، Android Studio کد Kotlin یا Java را از APK شما استخراج می‌کند و آن را به عنوان فایل SMALI ذخیره می‌کند. برای اشکال‌زدایی کد Kotlin یا Java با استفاده از نقاط شکست، باید IDE را به فایل‌های منبع Kotlin یا Java که مربوط به فایل‌های SMALI هستند که می‌خواهید اشکال زدایی کنید اشاره کنید.

برای پیوست کردن منابع Kotlin یا Java، به صورت زیر عمل کنید:

  1. روی یک فایل SMALI از پنجره Project در نمای اندروید دوبار کلیک کنید. پس از باز کردن فایل، ویرایشگر بنری را نمایش می دهد که از شما می خواهد منابع Kotlin یا Java را انتخاب کنید: ضمیمه بنر منابع
  2. روی Attach Kotlin/Java Sources... از بنر در پنجره ویرایشگر کلیک کنید.
  3. با فایل‌های منبع Kotlin یا Java برنامه به فهرست راهنما بروید و روی Open کلیک کنید.

در پنجره Project ، Android Studio فایل‌های SMALI را با فایل‌های منبع Kotlin یا Java مربوطه جایگزین می‌کند. Android Studio همچنین شامل کلاس های داخلی به طور خودکار است. اکنون می توانید نقاط شکست اضافه کنید و برنامه خود را اشکال زدایی کنید .

نمادهای اشکال زدایی بومی را ضمیمه کنید

اگر APK شما شامل کتابخانه‌های بومی (فایل‌های SO) است که نمادهای اشکال‌زدایی را شامل نمی‌شود، Android Studio یک بنر مشابه آنچه در شکل 1 نشان داده شده است به شما نشان می‌دهد. نمی‌توانید کد اصلی APK را اشکال زدایی کنید یا از نقاط شکست بدون پیوست کردن بومی قابل اشکال‌زدایی استفاده کنید. کتابخانه ها

برای پیوست کردن کتابخانه‌های بومی قابل اشکال‌زدایی، به صورت زیر عمل کنید:

  1. اگر قبلاً این کار را نکرده‌اید، NDK و ابزارها را دانلود کنید .
  2. در نمای Android ، در زیر فهرست cpp در پنجره Project ، روی فایل کتابخانه بومی که شامل نمادهای اشکال زدایی نیست، دوبار کلیک کنید.

    ویرایشگر جدولی از تمام ABI هایی که APK شما پشتیبانی می کند را نشان می دهد.

  3. روی Add در گوشه سمت راست بالای پنجره ویرایشگر کلیک کنید.

  4. به فهرستی که شامل کتابخانه‌های بومی قابل اشکال‌زدایی است که می‌خواهید پیوست کنید بروید و روی OK کلیک کنید.

اگر APK و کتابخانه‌های بومی قابل اشکال‌زدایی با استفاده از یک ایستگاه کاری متفاوت ساخته شده‌اند، باید مسیرهای نمادهای اشکال‌زدایی محلی را نیز با دنبال کردن این مراحل مشخص کنید:

  1. با ویرایش فیلد زیر ستون Local Paths در قسمت Path Mappings پنجره ویرایشگر، که در شکل 2 نشان داده شده است، مسیرهای محلی را به نمادهای اشکال زدایی از دست رفته اضافه کنید.

    در بیشتر موارد، شما فقط باید مسیر یک پوشه ریشه را ارائه دهید و Android Studio به طور خودکار زیر شاخه ها را بررسی می کند تا منابع اضافی را ترسیم کند. Android Studio همچنین به طور خودکار مسیرهای یک NDK راه دور را برای دانلود NDK محلی شما ترسیم می کند.

  2. روی Apply Changes در قسمت Path Mappings پنجره ویرایشگر کلیک کنید.

ارائه مسیرهایی برای نمادهای اشکال زدایی محلی

شکل 2. مسیرهای محلی برای اشکال زدایی نمادها.

فایل های منبع بومی در پنجره Project ظاهر می شوند. برای افزودن نقاط شکست و اشکال زدایی برنامه خود ، آن فایل های منبع بومی را باز کنید. برای حذف نقشه ها، در قسمت Path Mappings در پنجره ویرایشگر، روی Clear کلیک کنید.

مشکل شناخته شده: هنگام پیوست کردن نمادهای اشکال زدایی به یک APK، فایل های APK و SO قابل اشکال زدایی باید با استفاده از یک ایستگاه کاری یا سرور ساخت یکسان ساخته شوند.

در Android Studio نسخه 3.6 و بالاتر، وقتی APK خارج از IDE به روز می شود، نیازی به ایجاد پروژه جدید ندارید. Android Studio تغییرات را در APK تشخیص می دهد و به شما امکان می دهد آن را دوباره وارد کنید.

APK به روز شده را وارد کنید

شکل 3. فایل های APK به روز شده خارج از Android Studio را می توان دوباره وارد کرد.