পূর্ব-নির্মিত APK ডিবাগ করুন

অ্যান্ড্রয়েড স্টুডিও 3.0 এবং উচ্চতর আপনাকে অ্যান্ড্রয়েড স্টুডিও প্রকল্প থেকে তৈরি না করেই ডিবাগিং সক্ষম করা APKগুলিকে প্রোফাইল এবং ডিবাগ করতে দেয়৷

একটি APK ডিবাগ করা শুরু করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যান্ড্রয়েড স্টুডিও ওয়েলকাম স্ক্রীন থেকে, প্রোফাইলে ক্লিক করুন বা APK ডিবাগ করুন

    আপনার যদি ইতিমধ্যেই একটি প্রকল্প খোলা থাকে, তাহলে মেনু বার থেকে ফাইল > প্রোফাইল বা ডিবাগ APK এ ক্লিক করুন।

  2. খোলা ডায়ালগে, আপনি Android স্টুডিওতে আমদানি করতে চান এমন APK নির্বাচন করুন।

  3. ওকে ক্লিক করুন।

এই বিকল্পটি না দেখালে, নিশ্চিত করুন যে আপনার "Android APK সাপোর্ট" প্লাগইন সক্ষম করা আছে।

অ্যান্ড্রয়েড স্টুডিও তারপরে চিত্র 1-এর মতো আনপ্যাক করা APK ফাইলগুলি প্রদর্শন করে৷ এটি সম্পূর্ণরূপে ডিকম্পাইল করা ফাইল নয়, তবে এটি DEX ফাইলগুলির আরও পাঠযোগ্য সংস্করণের জন্য SMALI ফাইলগুলি সরবরাহ করে৷

Android স্টুডিওতে একটি পূর্ব-নির্মিত APK আমদানি করা হচ্ছে

চিত্র 1. Android স্টুডিওতে একটি পূর্ব-নির্মিত APK আমদানি করা।

প্রজেক্ট ফলকে অ্যান্ড্রয়েড ভিউ আপনাকে আপনার APK এর নিম্নলিখিত বিষয়বস্তু পরিদর্শন করতে দেয়:

  • APK ফাইল: APK বিশ্লেষক খুলতে APK-এ ডাবল-ক্লিক করুন।
  • ম্যানিফেস্ট: APK থেকে বের করা অ্যাপ ম্যানিফেস্ট ধারণ করে।
  • java: কোটলিন বা জাভা কোড রয়েছে যা অ্যান্ড্রয়েড স্টুডিও আপনার APK এর DEX ফাইলগুলি থেকে (SMALI ফাইলগুলিতে) বিচ্ছিন্ন করে। এই ডিরেক্টরির প্রতিটি SMALI ফাইল একটি Kotlin বা Java ক্লাসের সাথে মিলে যায়।
  • cpp: যদি আপনার অ্যাপে নেটিভ কোড থাকে, তাহলে এই ডিরেক্টরিতে আপনার APK এর নেটিভ লাইব্রেরি (SO ফাইল) রয়েছে।
  • বাহ্যিক লাইব্রেরি: Android SDK ধারণ করে।

আপনি আপনার অ্যাপের কর্মক্ষমতা পরীক্ষা শুরু করতে Android প্রোফাইলার ব্যবহার করতে পারেন।

আপনার অ্যাপের কোটলিন বা জাভা কোড ডিবাগ করতে, আপনাকে কোটলিন বা জাভা সোর্স সংযুক্ত করতে হবে এবং কোটলিন বা জাভা সোর্স ফাইলে ব্রেকপয়েন্ট যোগ করতে হবে। একইভাবে, আপনার নেটিভ কোড ডিবাগ করতে, আপনাকে অবশ্যই নেটিভ ডিবাগ চিহ্ন সংযুক্ত করতে হবে।

কোটলিন বা জাভা উত্স সংযুক্ত করুন

ডিফল্টরূপে, Android স্টুডিও আপনার APK থেকে Kotlin বা Java কোড বের করে এবং SMALI ফাইল হিসেবে সংরক্ষণ করে। ব্রেকপয়েন্ট ব্যবহার করে কোটলিন বা জাভা কোড ডিবাগ করতে, আপনাকে আইডিই কোটলিন বা জাভা সোর্স ফাইলগুলিতে নির্দেশ করতে হবে যা আপনি ডিবাগ করতে চান এমন SMALI ফাইলগুলির সাথে সম্পর্কিত৷

কোটলিন বা জাভা উত্স সংযুক্ত করতে, নিম্নরূপ এগিয়ে যান:

  1. অ্যান্ড্রয়েড ভিউতে প্রজেক্ট ফলক থেকে একটি SMALI ফাইলে ডাবল ক্লিক করুন। ফাইল খোলার পরে, সম্পাদক আপনাকে কোটলিন বা জাভা উত্স নির্বাচন করতে বলে একটি ব্যানার প্রদর্শন করে: উত্স ব্যানার সংযুক্ত করুন
  2. সম্পাদক উইন্ডোতে ব্যানার থেকে কোটলিন/জাভা উত্স সংযুক্ত করুন... এ ক্লিক করুন।
  3. অ্যাপের কোটলিন বা জাভা সোর্স ফাইলগুলির সাথে ডিরেক্টরিতে নেভিগেট করুন এবং খুলুন ক্লিক করুন।

প্রজেক্ট উইন্ডোতে, অ্যান্ড্রয়েড স্টুডিও SMALI ফাইলগুলিকে তাদের সংশ্লিষ্ট কোটলিন বা জাভা সোর্স ফাইলগুলির সাথে প্রতিস্থাপন করে৷ অ্যান্ড্রয়েড স্টুডিও স্বয়ংক্রিয়ভাবে অভ্যন্তরীণ ক্লাস অন্তর্ভুক্ত করে। আপনি এখন ব্রেকপয়েন্ট যোগ করতে পারেন এবং আপনার অ্যাপ ডিবাগ করতে পারেন।

নেটিভ ডিবাগ চিহ্ন সংযুক্ত করুন

আপনার এপিকে যদি নেটিভ লাইব্রেরি (এসও ফাইল) থাকে যা ডিবাগ চিহ্নগুলি অন্তর্ভুক্ত করে না, তাহলে Android স্টুডিও আপনাকে একটি ব্যানার দেখায়, চিত্র 1-এ দেখানো একটির মতো। আপনি APK এর নেটিভ কোড ডিবাগ করতে পারবেন না বা ডিবাগযোগ্য নেটিভ সংযুক্ত না করে ব্রেকপয়েন্ট ব্যবহার করতে পারবেন না লাইব্রেরি

ডিবাগযোগ্য নেটিভ লাইব্রেরি সংযুক্ত করতে, নিম্নরূপ এগিয়ে যান:

  1. আপনি যদি ইতিমধ্যে এটি না করে থাকেন, তাহলে NDK এবং টুল ডাউনলোড করুন
  2. অ্যান্ড্রয়েড ভিউতে, প্রজেক্ট উইন্ডোতে cpp ডিরেক্টরির অধীনে, একটি নেটিভ লাইব্রেরি ফাইলে ডাবল-ক্লিক করুন যাতে ডিবাগ চিহ্ন অন্তর্ভুক্ত নেই।

    সম্পাদক আপনার APK সমর্থন করে এমন সমস্ত ABIগুলির একটি টেবিল দেখায়৷

  3. এডিটর উইন্ডোর উপরের ডানদিকের কোণায় Add এ ক্লিক করুন।

  4. আপনি সংযুক্ত করতে চান ডিবাগযোগ্য নেটিভ লাইব্রেরিগুলি অন্তর্ভুক্ত করে এমন ডিরেক্টরিতে নেভিগেট করুন এবং ঠিক আছে ক্লিক করুন।

যদি APK এবং ডিবাগযোগ্য নেটিভ লাইব্রেরিগুলি একটি ভিন্ন ওয়ার্কস্টেশন ব্যবহার করে তৈরি করা হয়, তাহলে আপনাকে এই পদক্ষেপগুলি অনুসরণ করে স্থানীয় ডিবাগ চিহ্নগুলির পাথও নির্দিষ্ট করতে হবে:

  1. চিত্র 2-এ দেখানো সম্পাদক উইন্ডোর পাথ ম্যাপিং বিভাগে স্থানীয় পাথ কলামের অধীনে ক্ষেত্রটি সম্পাদনা করে অনুপস্থিত ডিবাগ প্রতীকগুলিতে স্থানীয় পাথ যোগ করুন।

    বেশিরভাগ ক্ষেত্রে, আপনাকে শুধুমাত্র একটি রুট ফোল্ডারের পথ প্রদান করতে হবে এবং Android স্টুডিও অতিরিক্ত উত্সগুলি ম্যাপ করতে স্বয়ংক্রিয়ভাবে সাবডিরেক্টরিগুলি পরিদর্শন করে৷ অ্যান্ড্রয়েড স্টুডিও স্বয়ংক্রিয়ভাবে আপনার স্থানীয় NDK ডাউনলোডের জন্য দূরবর্তী NDK-এর পথ ম্যাপ করে।

  2. সম্পাদক উইন্ডোর পাথ ম্যাপিং বিভাগে পরিবর্তনগুলি প্রয়োগ করুন ক্লিক করুন।

স্থানীয় ডিবাগ প্রতীকের পাথ প্রদান করা হচ্ছে

চিত্র 2. প্রতীক ডিবাগ করার জন্য স্থানীয় পাথ।

নেটিভ সোর্স ফাইলগুলি প্রজেক্ট উইন্ডোতে উপস্থিত হয়। ব্রেকপয়েন্ট যোগ করতে এবং আপনার অ্যাপ ডিবাগ করতে সেই নেটিভ সোর্স ফাইলগুলি খুলুন। ম্যাপিংগুলি সরাতে, সম্পাদক উইন্ডোর পাথ ম্যাপিং বিভাগে সাফ ক্লিক করুন৷

পরিচিত সমস্যা: একটি APK-এ ডিবাগ চিহ্ন সংযুক্ত করার সময়, APK এবং ডিবাগযোগ্য SO ফাইল উভয়ই একই ওয়ার্কস্টেশন বা বিল্ড সার্ভার ব্যবহার করে তৈরি করতে হবে।

অ্যান্ড্রয়েড স্টুডিও 3.6 এবং উচ্চতর সংস্করণে, যখন IDE-এর বাইরে APK আপডেট করা হয় তখন আপনাকে একটি নতুন প্রকল্প তৈরি করতে হবে না। অ্যান্ড্রয়েড স্টুডিও এপিকে পরিবর্তনগুলি সনাক্ত করে এবং আপনাকে এটি পুনরায় আমদানি করার বিকল্প দেয়৷

আপডেট করা APK আমদানি করুন

চিত্র 3. অ্যান্ড্রয়েড স্টুডিওর বাইরে আপডেট করা APKগুলি পুনরায় আমদানি করা যেতে পারে৷