অ্যান্ড্রয়েড স্টুডিও ৩.৪ (এপ্রিল ২০১৯)
অ্যান্ড্রয়েড স্টুডিও ৩.৪ একটি প্রধান রিলিজ যাতে বিভিন্ন ধরণের নতুন বৈশিষ্ট্য এবং উন্নতি অন্তর্ভুক্ত রয়েছে।
৩.৪.২ (জুলাই ২০১৯)
এই ছোটখাটো আপডেটে বিভিন্ন বাগ সংশোধন এবং কর্মক্ষমতা উন্নতি অন্তর্ভুক্ত রয়েছে। উল্লেখযোগ্য বাগ সংশোধনের তালিকা দেখতে, রিলিজ আপডেট ব্লগে সম্পর্কিত পোস্টটি পড়ুন।
৩.৪.১ (মে ২০১৯)
এই ছোটখাটো আপডেটে বিভিন্ন বাগ সংশোধন এবং কর্মক্ষমতা উন্নতি অন্তর্ভুক্ত রয়েছে। উল্লেখযোগ্য বাগ সংশোধনের তালিকা দেখতে, রিলিজ আপডেট ব্লগে সম্পর্কিত পোস্টটি পড়ুন।
৩.৪.০ জ্ঞাত সমস্যা
Android Q বিটা চলমান ডিভাইসে আপনার অ্যাপ স্থাপন করার সময় প্রোফাইলিং অক্ষম করা হয়।
- ডেটা বাইন্ডিং লাইব্রেরি ব্যবহার করার সময়,
LiveDataListener.onChanged()NPE ব্যবহার করে ব্যর্থ হতে পারে। এই সমস্যার সমাধান Android Studio 3.4.1 এ অন্তর্ভুক্ত করা হবে এবং এটি ইতিমধ্যেই Android Studio 3.5 এর সর্বশেষ প্রিভিউ সংস্করণে উপলব্ধ। ( ইস্যু #122066788 দেখুন)
ইন্টেলিজে আইডিয়া ২০১৮.৩.৪
২০১৮.৩.৪ রিলিজের মাধ্যমে IntelliJ IDEA থেকে উন্নত বৈশিষ্ট্যের মাধ্যমে মূল Android Studio IDE আপডেট করা হয়েছে।
অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৩.৪.০ আপডেট
অ্যান্ড্রয়েড গ্র্যাডেল প্লাগইন ৩.৪.০-এ নতুন কী রয়েছে সে সম্পর্কে তথ্যের জন্য, এর রিলিজ নোটগুলি দেখুন।
নতুন প্রকল্প কাঠামোর ডায়ালগ
নতুন প্রজেক্ট স্ট্রাকচার ডায়ালগ (PSD) নির্ভরতা আপডেট করা এবং আপনার প্রজেক্টের বিভিন্ন দিক যেমন মডিউল, বিল্ড ভেরিয়েন্ট, সাইনিং কনফিগারেশন এবং বিল্ড ভেরিয়েবল কনফিগার করা সহজ করে তোলে।
আপনি মেনু বার থেকে File > Project Structure নির্বাচন করে PSD খুলতে পারেন। আপনি Windows এবং Linux-এ Ctrl+Shift+Alt+S , অথবা macOS-এ Command+; (সেমিকোলন) টিপে PSD খুলতে পারেন। আপনি নীচে PSD-এর কিছু নতুন এবং আপডেট করা অংশের বিবরণ পেতে পারেন।
ভেরিয়েবল
PSD-এর নতুন ভেরিয়েবল বিভাগটি আপনাকে বিল্ড ভেরিয়েবল তৈরি এবং পরিচালনা করতে দেয়, যেমন আপনার প্রকল্প জুড়ে নির্ভরতার জন্য সংস্করণ নম্বরগুলি সামঞ্জস্যপূর্ণ রাখা।

- আপনার প্রকল্পের গ্রেডল বিল্ড স্ক্রিপ্টগুলিতে ইতিমধ্যে বিদ্যমান বিল্ড ভেরিয়েবলগুলি দ্রুত দেখুন এবং সম্পাদনা করুন।
- PSD থেকে সরাসরি একটি প্রকল্প- অথবা মডিউল-স্তরে নতুন বিল্ড ভেরিয়েবল যোগ করুন।
দ্রষ্টব্য: যদি আপনার বিদ্যমান বিল্ড কনফিগারেশন ফাইলগুলি জটিল গ্রুভি স্ক্রিপ্টের মাধ্যমে মান নির্ধারণ করে, তাহলে আপনি PSD এর মাধ্যমে সেই মানগুলি সম্পাদনা করতে পারবেন না। উপরন্তু, আপনি PSD ব্যবহার করে Kotlin-এ লেখা বিল্ড ফাইলগুলি সম্পাদনা করতে পারবেন না।
মডিউল
একটি বিদ্যমান মডিউলের সমস্ত বিল্ড ভেরিয়েন্টে প্রয়োগ করা বৈশিষ্ট্যগুলি কনফিগার করুন অথবা মডিউল বিভাগ থেকে আপনার প্রকল্পে নতুন মডিউল যুক্ত করুন। উদাহরণস্বরূপ, এখানে আপনি defaultConfig বৈশিষ্ট্যগুলি কনফিগার করতে পারেন অথবা সাইনিং কনফিগারেশন পরিচালনা করতে পারেন।
নির্ভরতা
আপনার প্রকল্পের নির্ভরতা গ্রাফের প্রতিটি নির্ভরতা পরীক্ষা করুন এবং কল্পনা করুন, যা প্রকল্প সিঙ্কের সময় গ্র্যাডেল দ্বারা সমাধান করা হয়েছে, এই পদক্ষেপগুলি অনুসরণ করে:
- PSD এর বাম দিকের ফলকে, Dependencies নির্বাচন করুন।
- মডিউল ফলকে, এমন একটি মডিউল নির্বাচন করুন যার জন্য আপনি সমাধান করা নির্ভরতাগুলি পরীক্ষা করতে চান।
- PSD এর ডান দিকে, Resolved Dependencies প্যানটি খুলুন, যা নীচে দেখানো হয়েছে।

আপনি PSD এর Dependencies বিভাগ থেকে প্রথমে একটি মডিউল নির্বাচন করে, Declared Dependencies বিভাগে (+) বোতামে ক্লিক করে এবং আপনি যে ধরণের Dependencies যোগ করতে চান তা নির্বাচন করে দ্রুত আপনার প্রকল্পে Dependencies অনুসন্ধান এবং যোগ করতে পারেন।
আপনার নির্বাচিত নির্ভরতার ধরণের উপর নির্ভর করে, আপনি নীচের চিত্রের মতো একটি ডায়ালগ দেখতে পাবেন, যা আপনাকে মডিউলে নির্ভরতা যোগ করতে সাহায্য করবে।

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

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

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

- রিসোর্স ভিজ্যুয়ালাইজ করুন: আপনার প্রয়োজনীয় রিসোর্সগুলি দ্রুত খুঁজে পেতে আপনি অঙ্কনযোগ্য, রঙ এবং লেআউটগুলির পূর্বরূপ দেখতে পারেন।
- বাল্ক ইম্পোর্ট: আপনি রিসোর্স ম্যানেজার টুল উইন্ডোতে টেনে এনে অথবা ইম্পোর্ট ড্রয়েবলস উইজার্ড ব্যবহার করে একসাথে একাধিক ড্রয়েবল অ্যাসেট আমদানি করতে পারেন। উইজার্ডটি অ্যাক্সেস করতে, টুল উইন্ডোর উপরের-বাম কোণে (+) বোতামটি নির্বাচন করুন এবং তারপর ড্রপ ডাউন মেনু থেকে ইম্পোর্ট ড্রয়েবলস নির্বাচন করুন।
- SVG গুলিকে
VectorDrawableঅবজেক্টে রূপান্তর করুন: আপনি আপনার SVG ছবিগুলিকেVectorDrawableঅবজেক্টে রূপান্তর করতে Import Drawables উইজার্ড ব্যবহার করতে পারেন। - ড্র্যাগ অ্যান্ড ড্রপ অ্যাসেট: রিসোর্স ম্যানেজার টুল উইন্ডো থেকে, আপনি লেআউট এডিটরের ডিজাইন এবং XML ভিউ উভয়ের উপর ড্র্যাগ অ্যান্ড ড্রপ করতে পারেন।
- বিকল্প সংস্করণ দেখুন: আপনি এখন টুল উইন্ডোর মধ্যে থাকা কোনও রিসোর্সে ডাবল-ক্লিক করে আপনার রিসোর্সের বিকল্প সংস্করণগুলি দেখতে পারেন। এই ভিউটি আপনার তৈরি করা বিভিন্ন সংস্করণ এবং অন্তর্ভুক্ত করা কোয়ালিফায়ারগুলি দেখায়।
- টাইল এবং তালিকার দৃশ্য: আপনি বিভিন্ন বিন্যাসে আপনার সম্পদগুলি কল্পনা করতে টুল উইন্ডোর মধ্যে দৃশ্য পরিবর্তন করতে পারেন।
আরও জানতে, অ্যাপ রিসোর্সগুলি কীভাবে পরিচালনা করবেন সে সম্পর্কে নির্দেশিকাটি পড়ুন।
APK প্রোফাইলিং এবং ডিবাগ করার সময় বিল্ড আইডি পরীক্ষা করা হচ্ছে
যখন আপনি আপনার APK-এর ভিতরে .so শেয়ার্ড লাইব্রেরির জন্য ডিবাগিং সিম্বল ফাইল প্রদান করেন, তখন Android স্টুডিও যাচাই করে যে প্রদত্ত সিম্বল ফাইলগুলির বিল্ড আইডি APK-এর ভিতরে .so লাইব্রেরির বিল্ড আইডির সাথে মেলে।
যদি আপনি আপনার APK-তে একটি বিল্ড আইডি দিয়ে নেটিভ লাইব্রেরি তৈরি করেন, তাহলে অ্যান্ড্রয়েড স্টুডিও আপনার প্রতীক ফাইলের বিল্ড আইডি আপনার নেটিভ লাইব্রেরির বিল্ড আইডির সাথে মেলে কিনা তা পরীক্ষা করে এবং যদি কোনও অমিল থাকে তবে প্রতীক ফাইলগুলি প্রত্যাখ্যান করে। যদি আপনি একটি বিল্ড আইডি দিয়ে তৈরি না করে থাকেন, তাহলে ভুল প্রতীক ফাইল সরবরাহ করলে ডিবাগিংয়ে সমস্যা হতে পারে।
ডিফল্টরূপে R8 সক্রিয় করা হয়েছে
R8 এক ধাপে ডিসাগারিং, সঙ্কুচিতকরণ, অস্পষ্টকরণ, অপ্টিমাইজেশন এবং ডেক্সিং-কে একীভূত করে—যার ফলে বিল্ড পারফরম্যান্সের লক্ষণীয় উন্নতি ঘটে। R8 অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.3.0-এ চালু করা হয়েছিল এবং এখন প্লাগইন 3.4.0 এবং উচ্চতর সংস্করণ ব্যবহার করে অ্যাপ এবং অ্যান্ড্রয়েড লাইব্রেরি প্রকল্প উভয়ের জন্যই ডিফল্টরূপে সক্ষম।
নীচের ছবিটি R8 চালু হওয়ার আগে কম্পাইল প্রক্রিয়ার একটি উচ্চ-স্তরের ওভারভিউ প্রদান করে।

এখন, R8 এর সাহায্যে, ডিসুগারিং, সঙ্কুচিতকরণ, অস্পষ্টকরণ, অপ্টিমাইজেশন এবং ডেক্সিং (D8) সবই এক ধাপে সম্পন্ন হয়, যেমনটি নীচে দেখানো হয়েছে।

মনে রাখবেন, R8 আপনার বিদ্যমান ProGuard নিয়মগুলির সাথে কাজ করার জন্য ডিজাইন করা হয়েছে, তাই R8 থেকে উপকৃত হওয়ার জন্য আপনাকে সম্ভবত কোনও পদক্ষেপ নেওয়ার প্রয়োজন হবে না। তবে, যেহেতু এটি ProGuard থেকে আলাদা একটি প্রযুক্তি যা বিশেষভাবে Android প্রকল্পগুলির জন্য ডিজাইন করা হয়েছে, তাই সঙ্কুচিত এবং অপ্টিমাইজেশনের ফলে এমন কোড সরানো হতে পারে যা ProGuard-এর কাছে নাও থাকতে পারে। তাই, এই অপ্রত্যাশিত পরিস্থিতিতে, আপনার বিল্ড আউটপুটে সেই কোডটি রাখার জন্য আপনাকে অতিরিক্ত নিয়ম যোগ করতে হতে পারে।
যদি আপনার R8 ব্যবহারে কোনও সমস্যা হয়, তাহলে আপনার সমস্যার সমাধান আছে কিনা তা পরীক্ষা করার জন্য R8 সামঞ্জস্যতা সম্পর্কিত FAQ পড়ুন। যদি কোনও সমাধান নথিভুক্ত না থাকে, তাহলে দয়া করে একটি বাগ রিপোর্ট করুন । আপনার প্রকল্পের gradle.properties ফাইলে নিম্নলিখিত লাইনগুলির মধ্যে একটি যোগ করে আপনি R8 অক্ষম করতে পারেন:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
দ্রষ্টব্য: একটি নির্দিষ্ট বিল্ড টাইপের জন্য, যদি আপনি আপনার অ্যাপ মডিউলের build.gradle ফাইলে useProguard false এ সেট করেন, তাহলে Android Gradle প্লাগইনটি আপনার প্রোজেক্টের gradle.properties ফাইলে R8 অক্ষম করুন না কেন, সেই বিল্ড টাইপের জন্য আপনার অ্যাপের কোড সঙ্কুচিত করতে R8 ব্যবহার করে।
নেভিগেশন এডিটর এখন সকল ধরণের আর্গুমেন্ট সমর্থন করে
নেভিগেশন কম্পোনেন্ট দ্বারা সমর্থিত সকল আর্গুমেন্ট টাইপ এখন নেভিগেশন এডিটরে সমর্থিত। সমর্থিত টাইপ সম্পর্কে আরও তথ্যের জন্য, গন্তব্যস্থলের মধ্যে ডেটা পাস করুন দেখুন।
লেআউট এডিটরের উন্নতি {:#layout-editor}
লেআউট এডিটরের অ্যাট্রিবিউটস প্যানটি একটি একক পৃষ্ঠায় স্ট্রিমলাইন করা হয়েছে যেখানে আপনি এমন বিভাগগুলি প্রসারিত করতে পারেন যা আপনি কনফিগার করতে পারেন এমন অ্যাট্রিবিউটগুলি প্রকাশ করতে পারে। অ্যাট্রিবিউটস প্যানে নিম্নলিখিত আপডেটগুলিও অন্তর্ভুক্ত রয়েছে:
- একটি নতুন ঘোষিত বৈশিষ্ট্য বিভাগে লেআউট ফাইলটি নির্দিষ্ট করে এমন বৈশিষ্ট্যগুলি তালিকাভুক্ত করা হয়েছে এবং আপনাকে দ্রুত নতুন বৈশিষ্ট্য যুক্ত করতে দেয়।
- অ্যাট্রিবিউটস প্যানে এখন প্রতিটি অ্যাট্রিবিউটের পাশে এমন সূচকও রয়েছে যা অ্যাট্রিবিউটের মান একটি রিসোর্স রেফারেন্স হলে কঠিন থাকে এবং অন্যথায় খালি থাকে।
- ত্রুটি বা সতর্কতা সহ বৈশিষ্ট্যগুলি এখন হাইলাইট করা হয়েছে। লাল হাইলাইটগুলি ত্রুটিগুলি নির্দেশ করে (উদাহরণস্বরূপ, যখন আপনি অবৈধ লেআউট মান ব্যবহার করেন) এবং কমলা হাইলাইটগুলি সতর্কতাগুলি নির্দেশ করে (উদাহরণস্বরূপ, যখন আপনি হার্ড-কোডেড মান ব্যবহার করেন)।
দ্রুত নির্ভরতা আমদানির জন্য নতুন উদ্দেশ্যমূলক পদক্ষেপ
যদি আপনি আপনার কোডে নির্দিষ্ট কিছু Jetpack এবং Firebase ক্লাস ব্যবহার শুরু করেন, তাহলে একটি নতুন ইন্টেন্টেশন অ্যাকশন আপনার প্রোজেক্টে প্রয়োজনীয় Gradle লাইব্রেরি ডিপেন্ডেন্সি যোগ করার পরামর্শ দেয়, যদি আপনি ইতিমধ্যেই তা না করে থাকেন। উদাহরণস্বরূপ, যদি আপনি প্রথমে প্রয়োজনীয় android.arch.work:work-runtime ডিপেন্ডেন্সি আমদানি না করে WorkManager ক্লাসটি উল্লেখ করেন, তাহলে একটি ইন্টেন্টেশন অ্যাকশন আপনাকে নীচে দেখানো হিসাবে এক ক্লিকেই এটি সহজেই করতে দেয়।

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