অ্যান্ড্রয়েড স্টুডিও ৩.২ (সেপ্টেম্বর ২০১৮)

অ্যান্ড্রয়েড স্টুডিও ৩.২ একটি প্রধান সংস্করণ, যাতে বিভিন্ন নতুন বৈশিষ্ট্য এবং উন্নতি অন্তর্ভুক্ত রয়েছে।

৩.২.১ (অক্টোবর ২০১৮)

অ্যান্ড্রয়েড স্টুডিও ৩.২-এর এই আপডেটে নিম্নলিখিত পরিবর্তন ও সংশোধনগুলো অন্তর্ভুক্ত করা হয়েছে:

  • বান্ডেল করা কোটলিন সংস্করণটি এখন ১.২.৭১।
  • ডিফল্ট বিল্ড টুলস ভার্সন এখন ২৮.০.৩।
  • নেভিগেশন লাইব্রেরিতে, আর্গুমেন্ট টাইপগুলোর নাম type থেকে পরিবর্তন করে argType রাখা হয়েছে।
  • নিম্নলিখিত বাগগুলি সমাধান করা হয়েছে:
    • ডেটা বাইন্ডিং লাইব্রেরি ব্যবহার করার সময়, ভেরিয়েবলের নামে আন্ডারস্কোর থাকলে কম্পাইলেশন ত্রুটি দেখা দিচ্ছিল।
    • CMake-এর কারণে IntelliSense এবং CLion-এর অন্যান্য ফিচারগুলো কাজ করছিল না।
    • যেসব প্রজেক্টে androidx.* লাইব্রেরি ব্যবহার করা হতো না, সেগুলোতে SliceProvider যোগ করার ফলে কম্পাইলেশন এরর দেখা দিচ্ছিল।
    • কিছু কোটলিন ইউনিট টেস্ট রান হচ্ছিল না।
    • ডেটা বাইন্ডিং-এর একটি সমস্যার কারণে PsiInvalidElementAccessException দেখা দিচ্ছিল।
    • মাঝে মাঝে <merge> এলিমেন্টগুলোর কারণে লেআউট এডিটর ক্র্যাশ করছিল।

৩.২.০ পরিচিত সমস্যাসমূহ

দ্রষ্টব্য: অ্যান্ড্রয়েড স্টুডিও ৩.২.১-এ এই সমস্যাগুলো সমাধান করা হয়েছে।

  • আমরা কোটলিন সংস্করণ ১.২.৭০ ব্যবহার না করার জন্য দৃঢ়ভাবে সুপারিশ করছি।

    কোটলিন সংস্করণ ১.২.৬১-এ এমন একটি বাগ সংশোধন করা হয়েছে যার কারণে অ্যান্ড্রয়েড স্টুডিও হ্যাং হয়ে যেতে পারত, কিন্তু কোটলিন ১.২.৭০-এ এই সমাধানটি অন্তর্ভুক্ত করা হয়নি

    তবে, কোটলিন সংস্করণ 1.2.71 এবং তার পরবর্তী সংস্করণগুলিতে এই সমাধানটি অন্তর্ভুক্ত রয়েছে।

  • যদিও সাধারণত বিল্ড টুলসের ভার্সন উল্লেখ করার প্রয়োজন হয় না, কিন্তু renderscriptSupportModeEnabled কে true সেট করে Android Gradle প্লাগইন 3.2.0 ব্যবহার করার সময়, প্রতিটি মডিউলের build.gradle ফাইলে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত করতে হবে:

    android.buildToolsVersion "28.0.3"

নতুন কী আছে সহকারী

একটি নতুন অ্যাসিস্ট্যান্ট আপনাকে অ্যান্ড্রয়েড স্টুডিও-এর সর্বশেষ পরিবর্তনগুলো সম্পর্কে অবহিত করে।

নতুন ইনস্টলেশন বা আপডেটের পর আপনি যখন অ্যান্ড্রয়েড স্টুডিও চালু করেন, তখন যদি দেখানোর মতো নতুন কোনো তথ্য থাকে বলে অ্যাসিস্ট্যান্টটি শনাক্ত করে, তবে এটি খুলে যায়। এছাড়াও, আপনি অ্যান্ড্রয়েড স্টুডিওতে Help > What's new নির্বাচন করেও অ্যাসিস্ট্যান্টটি খুলতে পারেন।

অ্যান্ড্রয়েড জেটপ্যাক

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

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

অ্যান্ড্রয়েড স্টুডিও ৩.২-এ নেভিগেশন এডিটর একটি পরীক্ষামূলক ফিচার। নেভিগেশন এডিটর চালু করতে, ফাইল > সেটিংস (ম্যাকে অ্যান্ড্রয়েড স্টুডিও > প্রেফারেন্সেস )-এ ক্লিক করুন, বাম দিকের প্যানেলে এক্সপেরিমেন্টাল ক্যাটাগরিটি নির্বাচন করুন, ‘এনেবল নেভিগেশন এডিটর’- এর পাশের বক্সে টিক দিন এবং অ্যান্ড্রয়েড স্টুডিও পুনরায় চালু করুন।

আরও জানতে, নেভিগেশন এডিটর ডকুমেন্টেশন পড়ুন।

অ্যান্ড্রয়েডএক্স মাইগ্রেশন

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

অ্যান্ড্রয়েড স্টুডিও ৩.২ একটি নতুন মাইগ্রেশন ফিচারের মাধ্যমে এই প্রক্রিয়াটিতে আপনাকে সাহায্য করে।

বিদ্যমান কোনো প্রজেক্টকে AndroidX-এ মাইগ্রেট করতে, Refactor > Migrate to AndroidX নির্বাচন করুন। আপনার যদি এমন কোনো Maven ডিপেন্ডেন্সি থাকে যা AndroidX নেমস্পেসে মাইগ্রেট করা হয়নি, তাহলে Android Studio বিল্ড সিস্টেম স্বয়ংক্রিয়ভাবে সেই প্রজেক্ট ডিপেন্ডেন্সিগুলোকেও রূপান্তর করে নেয়।

অ্যান্ড্রয়েড গ্র্যাডল প্লাগইন নিম্নলিখিত গ্লোবাল ফ্ল্যাগগুলো প্রদান করে, যেগুলো আপনি আপনার gradle.properties ফাইলে সেট করতে পারেন:

  • android.useAndroidX : যখন এটি true তে সেট করা হয়, তখন এই ফ্ল্যাগটি নির্দেশ করে যে আপনি এখন থেকে AndroidX ব্যবহার শুরু করতে চান। যদি ফ্ল্যাগটি অনুপস্থিত থাকে, তাহলে Android Studio এমনভাবে কাজ করে যেন ফ্ল্যাগটি false তে সেট করা আছে।
  • android.enableJetifier : যখন এটি true তে সেট করা হয়, তখন এই ফ্ল্যাগটি নির্দেশ করে যে আপনি বিদ্যমান থার্ড-পার্টি লাইব্রেরিগুলোকে AndroidX-এর জন্য লেখা লাইব্রেরির মতো করে স্বয়ংক্রিয়ভাবে রূপান্তর করার জন্য (Android Gradle প্লাগইন থেকে) টুল সাপোর্ট পেতে চান। যদি ফ্ল্যাগটি অনুপস্থিত থাকে, তাহলে Android Studio এমনভাবে কাজ করে যেন ফ্ল্যাগটি false তে সেট করা আছে।

যখন আপনি 'Migrate to AndroidX' কমান্ডটি ব্যবহার করেন, তখন উভয় ফ্ল্যাগই ' true ' সেট করা হয়।

যদি আপনি অবিলম্বে AndroidX লাইব্রেরি ব্যবহার শুরু করতে চান এবং বিদ্যমান থার্ড-পার্টি লাইব্রেরি রূপান্তর করার প্রয়োজন না হয়, তাহলে আপনি android.useAndroidX ফ্ল্যাগটিকে true এবং android.enableJetifier ফ্ল্যাগটিকে false সেট করতে পারেন।

অ্যান্ড্রয়েড অ্যাপ বান্ডেল

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

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

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

একটি বান্ডেল তৈরি করতে, Build > Build Bundle(s) / APK(s) > Build Bundle(s) নির্বাচন করুন।

অ্যান্ড্রয়েড অ্যাপ বান্ডেল তৈরি এবং বিশ্লেষণ করার নির্দেশনাসহ আরও তথ্যের জন্য, অ্যান্ড্রয়েড অ্যাপ বান্ডেল দেখুন।

লেআউট এডিটরে নমুনা ডেটা

অনেক অ্যান্ড্রয়েড লেআউটে রানটাইম ডেটা থাকে, যার কারণে অ্যাপ ডেভেলপমেন্টের ডিজাইন পর্যায়ে লেআউটটির চেহারা ও অনুভূতি কল্পনা করা কঠিন হয়ে পড়ে। এখন আপনি লেআউট এডিটরে নমুনা ডেটা দিয়ে ভরা আপনার ভিউ-এর একটি প্রিভিউ সহজেই দেখতে পারবেন। যখন আপনি একটি ভিউ, একটি বাটন যোগ করেন ডিজাইন উইন্ডোতে ভিউ-এর নিচে এটি প্রদর্শিত হয়। ডিজাইন-টাইম ভিউ অ্যাট্রিবিউট সেট করতে এই বাটনটি ক্লিক করুন। আপনি বিভিন্ন ধরনের স্যাম্পল ডেটা টেমপ্লেট থেকে বেছে নিতে পারেন এবং ভিউটি পূরণ করার জন্য স্যাম্পল আইটেমের সংখ্যা নির্দিষ্ট করে দিতে পারেন।

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

স্লাইস

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

অ্যান্ড্রয়েড স্টুডিও ৩.২-এ একটি বিল্ট-ইন টেমপ্লেট রয়েছে যা আপনাকে নতুন স্লাইস প্রোভাইডার এপিআই (Slice Provider APIs) ব্যবহার করে আপনার অ্যাপকে আরও উন্নত করতে সাহায্য করে। এছাড়াও, স্লাইসগুলো তৈরি করার সময় আপনি সর্বোত্তম পদ্ধতি অনুসরণ করছেন কিনা তা নিশ্চিত করার জন্য এতে নতুন লিন্ট চেকও রয়েছে।

শুরু করতে, একটি প্রজেক্ট ফোল্ডারে রাইট-ক্লিক করুন এবং New > Other > Slice Provider নির্বাচন করুন।

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

কোটলিন ১.২.৬১

অ্যান্ড্রয়েড স্টুডিও ৩.২-এর সাথে কোটলিন ১.২.৬১ অন্তর্ভুক্ত রয়েছে এবং নতুন অ্যান্ড্রয়েড এসডিকে কোটলিনের সাথে আরও ভালোভাবে সমন্বিত হয়। আরও তথ্যের জন্য, অ্যান্ড্রয়েড ডেভেলপারস ব্লগ দেখুন।

ইন্টেলিজ আইডিয়া ২০১৮.১.৬

2018.1.6 রিলিজের মাধ্যমে ইন্টেলিজ আইডিয়া থেকে প্রাপ্ত উন্নতিসমূহ দ্বারা মূল অ্যান্ড্রয়েড স্টুডিও আইডিই আপডেট করা হয়েছে।

অ্যান্ড্রয়েড প্রোফাইলার

অ্যান্ড্রয়েড স্টুডিও ৩.২-এ নিম্নলিখিত নতুন অ্যান্ড্রয়েড প্রোফাইলার ফিচারগুলো ব্যবহার করে দেখুন।

অধিবেশন

এখন আপনি প্রোফাইলার ডেটা সেশন হিসেবে সংরক্ষণ করতে পারেন, যা পরে আবার দেখে ও পরীক্ষা করার জন্য কাজে লাগবে। আপনি IDE পুনরায় চালু না করা পর্যন্ত প্রোফাইলার আপনার সেশন ডেটা সংরক্ষণ করে রাখে।

যখন আপনি একটি মেথড ট্রেস রেকর্ড করেন বা একটি হিপ ডাম্প ক্যাপচার করেন , তখন IDE সেই ডেটা (আপনার অ্যাপের নেটওয়ার্ক অ্যাক্টিভিটির সাথে) বর্তমান সেশনে একটি পৃথক এন্ট্রি হিসেবে যোগ করে, এবং আপনি ডেটা তুলনা করার জন্য সহজেই রেকর্ডিংগুলোর মধ্যে আসা-যাওয়া করতে পারেন।

সিস্টেম ট্রেস

সিপিইউ প্রোফাইলার- এ, আপনার ডিভাইসের সিস্টেম সিপিইউ এবং থ্রেড অ্যাক্টিভিটি পরীক্ষা করার জন্য নতুন সিস্টেম ট্রেস কনফিগারেশনটি নির্বাচন করুন। এই ট্রেস কনফিগারেশনটি systrace -এর উপর ভিত্তি করে তৈরি এবং এটি ইউআই জ্যাঙ্ক (UI jank)-এর মতো সিস্টেম-স্তরের সমস্যাগুলি তদন্ত করার জন্য উপযোগী।

এই ট্রেস কনফিগারেশনটি ব্যবহার করার সময়, আপনি আপনার C/C++ কোডে নেটিভ ট্রেসিং API অথবা আপনার Java কোডে Trace ক্লাস যুক্ত করে প্রোফাইলার টাইমলাইনে গুরুত্বপূর্ণ কোড রুটিনগুলোকে দৃশ্যত চিহ্নিত করতে পারেন।

মেমরি প্রোফাইলার-এ JNI রেফারেন্সগুলি পরিদর্শন করুন

আপনি যদি আপনার অ্যাপটি অ্যান্ড্রয়েড ৮.০ (এপিআই লেভেল ২৬) বা তার চেয়ে উচ্চতর সংস্করণের কোনো ডিভাইসে স্থাপন করেন, তাহলে এখন আপনি মেমরি প্রোফাইলার ব্যবহার করে আপনার অ্যাপের JNI কোডের মেমরি অ্যালোকেশন পরীক্ষা করতে পারবেন।

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

মেমরি হিপ ডাম্প ফাইল আমদানি, রপ্তানি এবং পরিদর্শন করুন

এখন আপনি মেমরি প্রোফাইলার দিয়ে তৈরি করা .hprof মেমরি হিপ ডাম্প ফাইলগুলো ইম্পোর্ট, এক্সপোর্ট এবং পরিদর্শন করতে পারবেন।

নতুন প্রোফাইলার সেশন শুরু করুন- এ ক্লিক করে আপনার .hprof ফাইলটি ইম্পোর্ট করুন। প্রোফাইলারের সেশনস প্যানে গিয়ে 'লোড ফ্রম ফাইল' নির্বাচন করুন। এরপর আপনি অন্য যেকোনো হিপ ডাম্পের মতোই মেমোরি প্রোফাইলার-এ এর ডেটা পরীক্ষা করতে পারবেন।

পরবর্তীতে পর্যালোচনার জন্য হিপ ডাম্প ডেটা সংরক্ষণ করতে, সেশনস প্যানে থাকা হিপ ডাম্প এন্ট্রির ডানদিকে অবস্থিত এক্সপোর্ট হিপ ডাম্প বাটনটি ব্যবহার করুন। প্রদর্শিত এক্সপোর্ট অ্যাজ ডায়ালগ বক্সে, ফাইলটি .hprof ফাইলনেম এক্সটেনশন দিয়ে সংরক্ষণ করুন।

অ্যাপ চালুর সময় সিপিইউ কার্যকলাপ রেকর্ড করুন

এখন আপনি আপনার অ্যাপ চালু হওয়ার সময় সিপিইউ কার্যকলাপ নিম্নোক্তভাবে রেকর্ড করতে পারবেন:

  1. প্রধান মেনু থেকে রান > কনফিগারেশন সম্পাদনা নির্বাচন করুন।
  2. আপনার পছন্দের রান কনফিগারেশনের প্রোফাইলিং ট্যাবের অধীনে, ‘স্টার্টআপে একটি মেথড ট্রেস রেকর্ড করা শুরু করুন’ লেখাটির পাশের বক্সে টিক চিহ্ন দিন।
  3. ড্রপডাউন মেনু থেকে ব্যবহারের জন্য একটি সিপিইউ রেকর্ডিং কনফিগারেশন নির্বাচন করুন।
  4. অ্যান্ড্রয়েড ৮.০ (এপিআই লেভেল ২৬) বা তার উচ্চতর সংস্করণে চালিত কোনো ডিভাইসে আপনার অ্যাপটি স্থাপন করতে রান > প্রোফাইল নির্বাচন করুন।

সিপিইউ ট্রেস রপ্তানি করুন

সিপিইউ প্রোফাইলার দিয়ে সিপিইউ কার্যকলাপ রেকর্ড করার পর, আপনি ডেটাটি একটি .trace ফাইল হিসেবে এক্সপোর্ট করতে পারেন, যা অন্যদের সাথে শেয়ার করতে বা পরে পর্যালোচনা করতে কাজে লাগবে।

সিপিইউ কার্যকলাপ রেকর্ড করার পরে একটি ট্রেস এক্সপোর্ট করতে, নিম্নলিখিতগুলি করুন:

  1. সিপিইউ টাইমলাইন থেকে যে রেকর্ডিংটি এক্সপোর্ট করতে চান, সেটির উপর রাইট-ক্লিক করুন।
  2. ড্রপডাউন মেনু থেকে এক্সপোর্ট ট্রেস নির্বাচন করুন।
  3. যেখানে ফাইলটি সংরক্ষণ করতে চান সেখানে যান এবং সেভ-এ ক্লিক করুন।

সিপিইউ ট্রেস ফাইলগুলি আমদানি এবং পরিদর্শন করুন

আপনি এখন ডিবাগ এপিআই (Debug API) বা সিপিইউ প্রোফাইলার (CPU Profiler ) দিয়ে তৈরি করা .trace ফাইলগুলো ইম্পোর্ট এবং পরীক্ষা করতে পারবেন। (বর্তমানে, আপনি সিস্টেম ট্রেস (System Trace) রেকর্ডিং ইম্পোর্ট করতে পারবেন না।)

নতুন প্রোফাইলার সেশন শুরু করতে ক্লিক করে আপনার ট্রেস ফাইলটি ইম্পোর্ট করুন। প্রোফাইলারের সেশনস প্যানে গিয়ে 'লোড ফ্রম ফাইল' নির্বাচন করুন। এরপর আপনি সিপিইউ প্রোফাইলার-এ এর ডেটা স্বাভাবিকভাবেই পরীক্ষা করতে পারবেন, তবে নিম্নলিখিত ব্যতিক্রমগুলো থাকবে:

  • সিপিইউ টাইমলাইন বরাবর সিপিইউ কার্যকলাপ দেখানো হয় না।
  • থ্রেড অ্যাক্টিভিটি টাইমলাইন শুধুমাত্র প্রতিটি থ্রেডের জন্য ট্রেস ডেটা কোথায় পাওয়া যাচ্ছে তা নির্দেশ করে, কিন্তু থ্রেডের প্রকৃত অবস্থা (যেমন চলমান, অপেক্ষারত বা ঘুমন্ত) দেখায় না।

ডিবাগ এপিআই ব্যবহার করে সিপিইউ কার্যকলাপ রেকর্ড করুন

এখন আপনি ডিবাগ এপিআই (Debug API) দিয়ে আপনার অ্যাপকে ইন্সট্রুমেন্ট করার মাধ্যমে সিপিইউ প্রোফাইলার (CPU Profiler)-এ সিপিইউ অ্যাক্টিভিটি রেকর্ডিং শুরু এবং বন্ধ করতে পারেন। কোনো ডিভাইসে আপনার অ্যাপ ডেপ্লয় করার পর, যখন আপনার অ্যাপ startMethodTracing(String tracePath) কল করে, তখন প্রোফাইলার স্বয়ংক্রিয়ভাবে সিপিইউ অ্যাক্টিভিটি রেকর্ডিং শুরু করে এবং যখন আপনার অ্যাপ stopMethodTracing() কল করে, তখন প্রোফাইলার রেকর্ডিং বন্ধ করে দেয়। এই এপিআই ব্যবহার করে ট্রিগার হওয়া সিপিইউ অ্যাক্টিভিটি রেকর্ড করার সময়, সিপিইউ প্রোফাইলার নির্বাচিত সিপিইউ রেকর্ডিং কনফিগারেশন হিসেবে ডিবাগ এপিআই দেখায়।

এনার্জি প্রোফাইলার

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

যখন আপনি আপনার অ্যাপটি কোনো সংযুক্ত ডিভাইসে অথবা অ্যান্ড্রয়েড ৮.০ (এপিআই ২৬) বা তার উচ্চতর সংস্করণে চালিত অ্যান্ড্রয়েড এমুলেটরে চালান, তখন এনার্জি প্রোফাইলারটি প্রোফাইলার উইন্ডোর নিচে একটি নতুন সারি হিসেবে প্রদর্শিত হয়।

এনার্জি প্রোফাইলার ভিউটি বড় করে দেখতে এনার্জি রো-তে ক্লিক করুন। সিপিইউ, নেটওয়ার্ক এবং লোকেশন (জিপিএস) রিসোর্স অনুযায়ী শক্তি ব্যবহারের বিস্তারিত বিবরণ এবং প্রাসঙ্গিক সিস্টেম ইভেন্টগুলো দেখতে টাইমলাইনের কোনো বারের উপর আপনার মাউস পয়েন্টার রাখুন।

যেসব সিস্টেম ইভেন্ট শক্তি ব্যবহারকে প্রভাবিত করে, সেগুলো এনার্জি টাইমলাইনের নিচে থাকা সিস্টেম টাইমলাইনে দেখানো হয়। এনার্জি টাইমলাইনে একটি সময়সীমা নির্বাচন করলে, সেই নির্দিষ্ট সময়সীমার মধ্যেকার সিস্টেম ইভেন্টগুলোর বিস্তারিত বিবরণ ইভেন্ট প্যানে দেখানো হয়।

কোনো সিস্টেম ইভেন্টের (যেমন ওয়েক-লক) কল স্ট্যাক এবং অন্যান্য বিবরণ দেখতে, ইভেন্ট প্যানে ইভেন্টটি নির্বাচন করুন। সিস্টেম ইভেন্টের জন্য দায়ী কোডে যেতে, কল স্ট্যাকে থাকা এন্ট্রিটিতে ডাবল-ক্লিক করুন।

লিন্ট পরীক্ষা

অ্যান্ড্রয়েড স্টুডিও ৩.২-এ লিন্ট চেকিংয়ের জন্য অনেক নতুন ও উন্নত বৈশিষ্ট্য অন্তর্ভুক্ত করা হয়েছে।

নতুন লিন্ট চেকগুলো আপনাকে কোডের সাধারণ সমস্যাগুলো খুঁজে বের করতে ও শনাক্ত করতে সাহায্য করে, যার মধ্যে সম্ভাব্য ব্যবহারযোগ্যতার সমস্যা সম্পর্কিত সতর্কবার্তা থেকে শুরু করে সম্ভাব্য নিরাপত্তা দুর্বলতা সংক্রান্ত উচ্চ-অগ্রাধিকারের ত্রুটি পর্যন্ত অন্তর্ভুক্ত।

জাভা/কোটলিন আন্তঃকার্যক্ষমতার জন্য লিন্ট চেক

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

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

কমান্ড-লাইন বিল্ডের জন্য এই চেকগুলি সক্রিয় করতে, আপনার build.gradle ফাইলে নিম্নলিখিতটি যোগ করুন:

        android {
            lintOptions {
                check 'Interoperability'
            }
        }
        
      

স্লাইসের জন্য লিন্ট পরীক্ষা

স্লাইসের জন্য নতুন লিন্ট চেকগুলো নিশ্চিত করতে সাহায্য করে যে আপনি স্লাইসগুলো সঠিকভাবে তৈরি করছেন। উদাহরণস্বরূপ, যদি আপনি কোনো স্লাইসে একটি প্রাথমিক অ্যাকশন নির্ধারণ না করে থাকেন, তাহলে লিন্ট চেকগুলো আপনাকে সতর্ক করে।

নতুন গ্রেডল লক্ষ্য

লিন্ট চেক দ্বারা প্রস্তাবিত সমস্ত নিরাপদ সমাধান সরাসরি সোর্স কোডে প্রয়োগ করতে নতুন lintFix Gradle টাস্কটি ব্যবহার করুন। SyntheticAccessor হলো এমন একটি লিন্ট চেকের উদাহরণ যা প্রয়োগ করার জন্য একটি নিরাপদ সমাধানের পরামর্শ দেয়।

মেটাডেটা আপডেট

অ্যান্ড্রয়েড ৯ (এপিআই লেভেল ২৮)-এর সাথে লিন্ট চেক কাজ করার জন্য সার্ভিস কাস্ট চেকের মতো বিভিন্ন মেটাডেটা আপডেট করা হয়েছে।

নতুন ভ্যারিয়েন্টে লিন্ট চালালে সতর্কতা।

লিন্ট এখন রেকর্ড করে যে একটি বেসলাইন কোন ভ্যারিয়েন্ট এবং ভার্সন দিয়ে রেকর্ড করা হয়েছে, এবং যে ভ্যারিয়েন্ট দিয়ে বেসলাইনটি তৈরি করা হয়েছিল তার থেকে ভিন্ন কোনো ভ্যারিয়েন্টে এটি চালালে লিন্ট আপনাকে সতর্ক করে।

বিদ্যমান লিন্ট চেকের উন্নতি

অ্যান্ড্রয়েড স্টুডিও ৩.২-এ বিদ্যমান লিন্ট চেকগুলোতে অনেক উন্নতি করা হয়েছে। উদাহরণস্বরূপ, রিসোর্স সাইকেল চেকগুলো এখন অতিরিক্ত রিসোর্স টাইপের ক্ষেত্রেও প্রযোজ্য হয়, এবং ট্রান্সলেশন ডিটেক্টর এডিটরের মধ্যেই তাৎক্ষণিকভাবে অনুপস্থিত অনুবাদ খুঁজে বের করতে পারে।

ইস্যু আইডিগুলো আরও সহজে খুঁজে পাওয়া যায়

এখন ইস্যু আইডিগুলো ইন্সপেকশন রেজাল্টস উইন্ডোসহ আরও অনেক জায়গায় দেখানো হয়। এর ফলে build.gradlelintOptions এর মাধ্যমে নির্দিষ্ট চেক চালু বা বন্ধ করার জন্য প্রয়োজনীয় তথ্য খুঁজে পাওয়া আপনার জন্য আরও সহজ হবে।

আরও তথ্যের জন্য, Gradle-এর সাথে লিন্ট অপশন কনফিগার করুন দেখুন।

ডেটা বাইন্ডিং V2

ডেটা বাইন্ডিং V2 এখন ডিফল্টরূপে সক্রিয় করা হয়েছে এবং এটি V1-এর সাথে সামঞ্জস্যপূর্ণ। এর মানে হলো, আপনার যদি এমন কোনো লাইব্রেরি ডিপেন্ডেন্সি থাকে যা আপনি V1 দিয়ে কম্পাইল করেছেন, তবে আপনি ডেটা বাইন্ডিং V2 ব্যবহার করা প্রোজেক্টে সেগুলো ব্যবহার করতে পারবেন। তবে, মনে রাখবেন যে V1 ব্যবহার করা প্রোজেক্টগুলো V2 দিয়ে কম্পাইল করা ডিপেন্ডেন্সি ব্যবহার করতে পারবে না।

D8 ডিসুগারিং

অ্যান্ড্রয়েড স্টুডিও ৩.১-এ, আমরা সামগ্রিক বিল্ড টাইম কমানোর জন্য ডি৮ টুলে ডিসুগারিং ধাপটিকে একটি পরীক্ষামূলক ফিচার হিসেবে যুক্ত করেছিলাম। অ্যান্ড্রয়েড স্টুডিও ৩.২-এ, ডি৮ দিয়ে ডিসুগারিং ডিফল্টরূপে চালু থাকে।

নতুন কোড সংকুচিতকারী

R8 হলো কোড সঙ্কুচিতকরণ এবং দুর্বোধ্যকরণের একটি নতুন টুল যা ProGuard-কে প্রতিস্থাপন করে। আপনার প্রোজেক্টের gradle.properties ফাইলে নিম্নলিখিতটি অন্তর্ভুক্ত করে আপনি R8-এর প্রিভিউ সংস্করণ ব্যবহার শুরু করতে পারেন:

      android.enableR8 = true
    

একাধিক APK-এর জন্য ডিফল্ট ABI পরিবর্তন করা হয়েছে

যখন ভিন্ন ভিন্ন ABI-কে লক্ষ্য করে একাধিক APK তৈরি করা হয় , তখন প্লাগইনটি ডিফল্টরূপে আর নিম্নলিখিত ABI-গুলির জন্য APK তৈরি করে না: mips , mips64 , এবং armeabi

আপনি যদি এই ABI-গুলোকে টার্গেট করে APK তৈরি করতে চান, তাহলে আপনাকে অবশ্যই NDK r16b বা তার নিম্নতর সংস্করণ ব্যবহার করতে হবে এবং আপনার build.gradle ফাইলে ABI-গুলো উল্লেখ করতে হবে, যেমনটা নিচে দেখানো হয়েছে:

    splits {
        abi {
            include 'armeabi', 'mips', 'mips64'
            ...
        }
    }
    
    splits {
        abi {
            include("armeabi", "mips", "mips64")
            ...
        }
    }
    

দ্রষ্টব্য: এই আচরণগত পরিবর্তনটি Android Studio 3.1 RC1 এবং এর পরবর্তী সংস্করণগুলোতেও অন্তর্ভুক্ত করা হয়েছে।

CMake বিল্ড ফাইলগুলির জন্য উন্নত এডিটর বৈশিষ্ট্য

আপনি যদি আপনার প্রজেক্টে C এবং C++ কোড যোগ করার জন্য CMake ব্যবহার করেন, তাহলে আপনার CMake বিল্ড স্ক্রিপ্টগুলো সম্পাদনা করতে সাহায্য করার জন্য Android Studio-তে এখন উন্নত এডিটর ফিচার রয়েছে, যেমন:

  • সিনট্যাক্স হাইলাইটিং এবং কোড কমপ্লিশন: IDE এখন সাধারণ CMake কমান্ডগুলোর জন্য কোড কমপ্লিশন হাইলাইট করে এবং সাজেস্ট করে। এছাড়াও, আপনি কন্ট্রোল কী (Mac-এ Command) চেপে ধরে কোনো ফাইলে ক্লিক করে সেখানে নেভিগেট করতে পারবেন।
  • কোড রিফরম্যাটিং: এখন আপনি আপনার CMake বিল্ড স্ক্রিপ্টগুলিতে কোড স্টাইল প্রয়োগ করতে IntelliJ-এর কোড রিফরম্যাট অপশনটি ব্যবহার করতে পারেন।
  • নিরাপদ রিফ্যাক্টরিং: আপনার CMake বিল্ড স্ক্রিপ্টে উল্লেখিত ফাইলগুলোর নাম পরিবর্তন বা মুছে ফেলার সময় আপনি কী করছেন, তাও এখন IDE-এর বিল্ট-ইন রিফ্যাক্টরিং টুলগুলো যাচাই করে।

অ্যান্ড্রয়েড স্টুডিওর পূর্ববর্তী সংস্করণগুলিতে প্রজেক্ট উইন্ডো ব্যবহার করার সময়, আপনি শুধুমাত্র আপনার লোকাল প্রজেক্ট থেকে বিল্ড করা লাইব্রেরিগুলির হেডার ফাইলগুলি নেভিগেট এবং পরিদর্শন করতে পারতেন। এই রিলিজের মাধ্যমে, আপনি এখন আপনার অ্যাপ প্রজেক্টে ইম্পোর্ট করা এক্সটার্নাল C/C++ লাইব্রেরি ডিপেন্ডেন্সিগুলির সাথে অন্তর্ভুক্ত হেডার ফাইলগুলিও দেখতে এবং পরিদর্শন করতে পারবেন।

যদি আপনি ইতিমধ্যেই আপনার প্রজেক্টে C/C++ কোড এবং লাইব্রেরি অন্তর্ভুক্ত করে থাকেন , তাহলে প্রধান মেনু থেকে View > Tool Windows > Project নির্বাচন করে IDE-র বাম দিকে থাকা প্রজেক্ট উইন্ডোটি খুলুন এবং ড্রপ-ডাউন মেনু থেকে Android নির্বাচন করুন। cpp ডিরেক্টরিতে, আপনার অ্যাপ প্রজেক্টের আওতাধীন সমস্ত হেডার ফাইল আপনার প্রতিটি লোকাল C/C++ লাইব্রেরি ডিপেন্ডেন্সির জন্য include নোডের অধীনে সাজানো থাকে, যেমনটি নিচে দেখানো হয়েছে।

ডিফল্টরূপে নেটিভ মাল্টিডেক্স সক্রিয় করা আছে

অ্যান্ড্রয়েড স্টুডিও-র পূর্ববর্তী সংস্করণগুলিতে, অ্যান্ড্রয়েড এপিআই লেভেল ২১ বা তার উচ্চতর সংস্করণে চালিত কোনো ডিভাইসে অ্যাপের ডিবাগ সংস্করণ ডেপ্লয় করার সময় নেটিভ মাল্টিডেক্স সক্রিয় করা যেত। এখন, আপনি ডিভাইসে ডেপ্লয় করুন বা রিলিজের জন্য এপিকে তৈরি করুন, গ্রেডল-এর অ্যান্ড্রয়েড প্লাগইনটি সেই সমস্ত মডিউলের জন্য নেটিভ মাল্টিডেক্স সক্রিয় করে, যেগুলিতে minSdkVersion=21 বা তার উচ্চতর মান সেট করা আছে।

AAPT2 গুগলের মেভেন রিপোজিটরিতে স্থানান্তরিত হয়েছে।

অ্যান্ড্রয়েড স্টুডিও ৩.২ থেকে শুরু করে, AAPT2 (অ্যান্ড্রয়েড অ্যাসেট প্যাকেজিং টুল ২) -এর সোর্স হলো গুগলের মেভেন রিপোজিটরি।

AAPT2 ব্যবহার করতে হলে, আপনার build.gradle ফাইলে google() ডিপেন্ডেন্সিটি আছে কিনা তা নিশ্চিত করুন, যেমনটি এখানে দেখানো হয়েছে:

    buildscript {
        repositories {
            google() // here
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.2.0'
        }
    }
    allprojects {
        repositories {
            google() // and here
            jcenter()
        }
    }
    
    buildscript {
        repositories {
            google() // here
            jcenter()
        }
        dependencies {
            classpath("com.android.tools.build:gradle:3.2.0")
        }
    }
    allprojects {
        repositories {
            google() // and here
            jcenter()
        }
    }
    

AAPT2-এর নতুন সংস্করণে অনেক সমস্যার সমাধান করা হয়েছে, যার মধ্যে উইন্ডোজে নন-ASCII অক্ষরগুলোর উন্নততর পরিচালনাও অন্তর্ভুক্ত।

চাহিদা অনুযায়ী কনফিগারেশন অপসারণ

অ্যান্ড্রয়েড স্টুডিও থেকে ‘Configure on demand’ প্রেফারেন্সটি সরিয়ে দেওয়া হয়েছে।

অ্যান্ড্রয়েড স্টুডিও এখন আর গ্রেডল-এ --configure-on-demand আর্গুমেন্টটি পাঠায় না।

এডিবি সংযোগ সহকারী

নতুন এডিবি কানেকশন অ্যাসিস্ট্যান্ট আপনাকে অ্যান্ড্রয়েড ডিবাগ ব্রিজ (এডিবি) কানেকশনের মাধ্যমে একটি ডিভাইস সেট আপ ও ব্যবহার করতে ধাপে ধাপে নির্দেশাবলী প্রদান করে।

অ্যাসিস্ট্যান্ট চালু করতে, টুলস > কানেকশন অ্যাসিস্ট্যান্ট নির্বাচন করুন।

এডিবি কানেকশন অ্যাসিস্ট্যান্ট তার অ্যাসিস্ট্যান্ট প্যানেলের একাধিক পৃষ্ঠায় নির্দেশাবলী, প্রাসঙ্গিক নিয়ন্ত্রণ এবং সংযুক্ত ডিভাইসগুলোর একটি তালিকা প্রদান করে।

এমুলেটরের উন্নতি

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

AVD স্ন্যাপশট সংরক্ষণ, লোড এবং পরিচালনা করার কন্ট্রোলগুলো এখন এমুলেটরের এক্সটেন্ডেড কন্ট্রোলস উইন্ডোর স্ন্যাপশটস ট্যাবে রয়েছে।

বিস্তারিত জানতে স্ন্যাপশটসমূহ দেখুন।

এমুলেটরে নতুন কী কী এসেছে এবং কী কী পরিবর্তন করা হয়েছে, সে সম্পর্কে আরও তথ্যের জন্য এমুলেটর রিলিজ নোট দেখুন।