অ্যান্ড্রয়েড স্টুডিও 3.4 (এপ্রিল 2019)

অ্যান্ড্রয়েড স্টুডিও 3.4 একটি বড় রিলিজ যাতে বিভিন্ন ধরনের নতুন বৈশিষ্ট্য এবং উন্নতি রয়েছে।

3.4.2 (জুলাই 2019)

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

3.4.1 (মে 2019)

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

3.4.0 পরিচিত সমস্যা

  • Android Q বিটা চালিত একটি ডিভাইসে আপনার অ্যাপ স্থাপন করার সময় প্রোফাইলিং অক্ষম করা হয়।

  • ডেটা বাইন্ডিং লাইব্রেরি ব্যবহার করার সময়, LiveDataListener.onChanged() NPE এর সাথে ব্যর্থ হতে পারে। এই সমস্যার একটি সমাধান অ্যান্ড্রয়েড স্টুডিও 3.4.1-এ অন্তর্ভুক্ত করা হবে এবং এটি ইতিমধ্যেই অ্যান্ড্রয়েড স্টুডিও 3.5-এর সর্বশেষ প্রিভিউ সংস্করণে উপলব্ধ। ( ইস্যু #122066788 দেখুন)

IntelliJ IDEA 2018.3.4

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

অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.4.0 আপডেট

অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.4.0-এ নতুন কী রয়েছে সে সম্পর্কে তথ্যের জন্য, এর রিলিজ নোটগুলি দেখুন।

নতুন প্রজেক্ট স্ট্রাকচার ডায়ালগ

নতুন প্রজেক্ট স্ট্রাকচার ডায়ালগ (PSD) নির্ভরতা আপডেট করা এবং আপনার প্রকল্পের বিভিন্ন দিক যেমন মডিউল, বিল্ড ভেরিয়েন্ট, কনফিগারেশন সাইনিং এবং ভেরিয়েবল তৈরি করা সহজ করে তোলে।

আপনি মেনু বার থেকে ফাইল > প্রজেক্ট স্ট্রাকচার নির্বাচন করে PSD খুলতে পারেন। আপনি উইন্ডোজ এবং লিনাক্সে Ctrl+Shift+Alt+S বা Command+; (সেমিকোলন) macOS-এ। আপনি নীচে PSD এর কিছু নতুন এবং আপডেট করা বিভাগের বিবরণ খুঁজে পেতে পারেন।

ভেরিয়েবল

PSD-এর নতুন ভেরিয়েবল বিভাগ আপনাকে বিল্ড ভেরিয়েবল তৈরি এবং পরিচালনা করতে দেয়, যেমন আপনার প্রোজেক্ট জুড়ে নির্ভরতার জন্য সংস্করণ নম্বরগুলিকে সামঞ্জস্যপূর্ণ রাখতে।

  • আপনার প্রোজেক্টের গ্রেডল বিল্ড স্ক্রিপ্টে আগে থেকেই বিদ্যমান বিল্ড ভেরিয়েবলগুলি দ্রুত দেখুন এবং সম্পাদনা করুন।
  • PSD থেকে সরাসরি একটি প্রজেক্ট- বা মডিউল-লেভেলে নতুন বিল্ড ভেরিয়েবল যোগ করুন।

দ্রষ্টব্য: যদি আপনার বিদ্যমান বিল্ড কনফিগারেশন ফাইলগুলি জটিল গ্রোভি স্ক্রিপ্টের মাধ্যমে মান নির্ধারণ করে, তাহলে আপনি PSD-এর মাধ্যমে সেই মানগুলি সম্পাদনা করতে পারবেন না। উপরন্তু, আপনি PSD ব্যবহার করে Kotlin এ লেখা বিল্ড ফাইল সম্পাদনা করতে পারবেন না।

মডিউল

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

নির্ভরতা

এই ধাপগুলি অনুসরণ করে প্রজেক্ট সিঙ্কের সময় Gradle দ্বারা সমাধান করা আপনার প্রকল্পের নির্ভরতা গ্রাফে প্রতিটি নির্ভরতা পরিদর্শন করুন এবং কল্পনা করুন:

  1. PSD এর বাম প্যানে, নির্ভরতা নির্বাচন করুন।
  2. মডিউল ফলকে, একটি মডিউল নির্বাচন করুন যার জন্য আপনি সমাধান করা নির্ভরতাগুলি পরিদর্শন করতে চান।
  3. পিএসডি-র ডানদিকে, সমাধানকৃত নির্ভরতা ফলকটি খুলুন, যা নীচে দেখানো হয়েছে।

এছাড়াও আপনি PSD-এর নির্ভরতা বিভাগ থেকে প্রথমে একটি মডিউল নির্বাচন করে, ঘোষিত নির্ভরতা বিভাগে (+) বোতামে ক্লিক করে এবং আপনি যে ধরনের নির্ভরতা যোগ করতে চান তা নির্বাচন করে দ্রুত অনুসন্ধান করতে এবং আপনার প্রকল্পে নির্ভরতা যোগ করতে পারেন।

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

ভেরিয়েন্ট তৈরি করুন

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

পরামর্শ

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

নতুন রিসোর্স ম্যানেজার

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

  • সম্পদগুলি কল্পনা করুন: আপনার প্রয়োজনীয় সংস্থানগুলি দ্রুত খুঁজে পেতে আপনি অঙ্কনযোগ্য, রঙ এবং লেআউটগুলির পূর্বরূপ দেখতে পারেন।
  • বাল্ক ইম্পোর্ট: আপনি রিসোর্স ম্যানেজার টুল উইন্ডোতে টেনে এনে ফেলে অথবা ইম্পোর্ট ড্রএবল উইজার্ড ব্যবহার করে একাধিক অঙ্কনযোগ্য সম্পদ একবারে আমদানি করতে পারেন। উইজার্ড অ্যাক্সেস করতে, টুল উইন্ডোর উপরের-বাম কোণে (+) বোতামটি নির্বাচন করুন, এবং তারপরে ড্রপ ডাউন মেনু থেকে আমদানি অঙ্কন নির্বাচন করুন।
  • SVG-কে VectorDrawable অবজেক্টে রূপান্তর করুন: আপনার SVG ছবিগুলিকে VectorDrawable অবজেক্টে রূপান্তর করতে আপনি Import Drawables উইজার্ড ব্যবহার করতে পারেন।
  • সম্পদ টেনে আনুন এবং ড্রপ করুন: রিসোর্স ম্যানেজার টুল উইন্ডো থেকে, আপনি লেআউট এডিটরের ডিজাইন এবং এক্সএমএল ভিউ উভয়েই ড্র্যাগ এবং ড্রপ করতে পারেন।
  • বিকল্প সংস্করণগুলি দেখুন: আপনি এখন টুল উইন্ডোর মধ্যে একটি সংস্থান ডাবল ক্লিক করে আপনার সংস্থানগুলির বিকল্প সংস্করণগুলি দেখতে পারেন৷ এই ভিউটি আপনার তৈরি করা বিভিন্ন সংস্করণ এবং যে কোয়ালিফায়ারগুলি অন্তর্ভুক্ত ছিল তা দেখায়৷
  • টাইল এবং তালিকার দৃশ্য: আপনি বিভিন্ন ব্যবস্থায় আপনার সংস্থানগুলিকে কল্পনা করতে টুল উইন্ডোর ভিউ পরিবর্তন করতে পারেন।

আরও জানতে, কীভাবে অ্যাপ সংস্থানগুলি পরিচালনা করবেন সে সম্পর্কে নির্দেশিকা পড়ুন।

এপিকে প্রোফাইলিং এবং ডিবাগ করার সময় বিল্ড আইডি চেক করা হচ্ছে

আপনি যখন আপনার APK-এর মধ্যে .so শেয়ার করা লাইব্রেরির জন্য ডিবাগিং প্রতীক ফাইলগুলি প্রদান করেন, তখন Android স্টুডিও যাচাই করে যে প্রদত্ত প্রতীক ফাইলগুলির বিল্ড আইডি APK-এর ভিতরের .so লাইব্রেরির বিল্ড আইডির সাথে মেলে৷

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

R8 ডিফল্টরূপে সক্রিয়

R8 এক ধাপে ডিসুগারিং, সঙ্কুচিত করা, অস্পষ্ট করা, অপ্টিমাইজ করা এবং ডেক্সিংকে একীভূত করে—ফলে লক্ষণীয় বিল্ড পারফরম্যান্সের উন্নতি হয় । R8 অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.3.0-এ চালু করা হয়েছিল এবং এখন প্লাগইন 3.4.0 এবং উচ্চতর ব্যবহার করে অ্যাপ এবং অ্যান্ড্রয়েড লাইব্রেরি উভয় প্রকল্পের জন্য ডিফল্টরূপে সক্রিয় করা হয়েছে।

নীচের ছবিটি R8 চালু করার আগে কম্পাইল প্রক্রিয়ার একটি উচ্চ-স্তরের ওভারভিউ প্রদান করে।

R8 এর আগে, ProGuard ছিল ডেক্সিং এবং desugaring থেকে একটি ভিন্ন কম্পাইল পদক্ষেপ।

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

R8 এর সাথে, ডিসুগারিং, সঙ্কুচিত করা, অস্পষ্ট করা, অপ্টিমাইজ করা এবং ডেক্সিং সব একটি একক কম্পাইল ধাপে সঞ্চালিত হয়।

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

আপনি যদি 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 প্লাগইন R8 ব্যবহার করে সেই বিল্ড টাইপের জন্য আপনার অ্যাপের কোড সঙ্কুচিত করতে, আপনি আপনার প্রোজেক্টের gradle.properties ফাইল।

ন্যাভিগেশন কম্পোনেন্ট দ্বারা সমর্থিত সমস্ত আর্গুমেন্ট প্রকার এখন ন্যাভিগেশন এডিটরে সমর্থিত। সমর্থিত প্রকারের বিষয়ে আরও তথ্যের জন্য, গন্তব্যগুলির মধ্যে ডেটা পাস করুন দেখুন।

লেআউট এডিটর উন্নতি {:#layout-editor}

লেআউট এডিটরের অ্যাট্রিবিউটস ফলকটিকে একটি একক পৃষ্ঠায় স্ট্রীমলাইন করা হয়েছে যেখানে আপনি কনফিগার করতে পারেন এমন বৈশিষ্ট্যগুলি প্রকাশ করতে আপনি প্রসারিত করতে পারেন। অ্যাট্রিবিউট প্যানে নিম্নলিখিত আপডেটগুলিও অন্তর্ভুক্ত রয়েছে:

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

নির্ভরতা দ্রুত আমদানি করতে নতুন অভিপ্রায় ক্রিয়া

আপনি যদি আপনার কোডে নির্দিষ্ট জেটপ্যাক এবং ফায়ারবেস ক্লাস ব্যবহার করা শুরু করেন, তাহলে একটি নতুন উদ্দেশ্য অ্যাকশন আপনার প্রোজেক্টে প্রয়োজনীয় Gradle লাইব্রেরি নির্ভরতা যোগ করার পরামর্শ দেয়, যদি আপনি ইতিমধ্যে তা না করে থাকেন। উদাহরণস্বরূপ, আপনি যদি প্রথমে প্রয়োজনীয় android.arch.work:work-runtime নির্ভরতা আমদানি না করে WorkManager ক্লাসটি উল্লেখ করেন, তাহলে একটি অভিপ্রায় ক্রিয়া আপনাকে একটি একক ক্লিকে সহজে করতে দেয়, যেমনটি নীচে দেখানো হয়েছে৷

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