নিচে Android Studio 3.6 এবং তার নিচের সংস্করণ এবং Android Gradle প্লাগইন 3.6.0 এবং তার নিচের রিলিজ নোট রয়েছে।
অ্যান্ড্রয়েড স্টুডিওর পুরনো রিলিজ
3.6 (ফেব্রুয়ারি 2020)
অ্যান্ড্রয়েড স্টুডিও 3.6 একটি বড় রিলিজ যাতে বিভিন্ন ধরনের নতুন বৈশিষ্ট্য এবং উন্নতি রয়েছে।
আমরা আমাদের সম্প্রদায়ের সকল অবদানকারীদের ধন্যবাদ জানাতে চাই যারা এই প্রকাশের সাথে সাহায্য করেছেন৷
3.6.3 (এপ্রিল 2020)
এই ছোটখাট আপডেটে বিভিন্ন বাগ ফিক্স অন্তর্ভুক্ত রয়েছে। উল্লেখযোগ্য বাগ ফিক্সের তালিকা দেখতে, রিলিজ আপডেট ব্লগে সম্পর্কিত পোস্ট পড়ুন।
3.6.2 (মার্চ 2020)
এই ছোটখাট আপডেটে বিভিন্ন বাগ ফিক্স অন্তর্ভুক্ত রয়েছে। উল্লেখযোগ্য বাগ ফিক্সের তালিকা দেখতে, রিলিজ আপডেট ব্লগে সম্পর্কিত পোস্ট পড়ুন।
3.6.1 (ফেব্রুয়ারি 2020)
এই ছোটখাট আপডেটে বিভিন্ন বাগ ফিক্স অন্তর্ভুক্ত রয়েছে। উল্লেখযোগ্য বাগ ফিক্সের তালিকা দেখতে, রিলিজ আপডেট ব্লগে সম্পর্কিত পোস্ট পড়ুন।
ডিজাইন টুলস
অ্যান্ড্রয়েড স্টুডিওর এই সংস্করণে লেআউট এডিটর এবং রিসোর্স ম্যানেজার সহ বেশ কিছু ডিজাইন টুলের আপডেট রয়েছে।
বিভক্ত দৃশ্য এবং নকশা সম্পাদক জুম
ভিজ্যুয়াল ডিজাইন এডিটরগুলির নিম্নলিখিত আপডেটগুলি এই রিলিজে অন্তর্ভুক্ত করা হয়েছে:
ডিজাইন এডিটর, যেমন লেআউট এডিটর এবং নেভিগেশন এডিটর, এখন একটি স্প্লিট ভিউ প্রদান করে যা আপনাকে একই সময়ে আপনার UI এর ডিজাইন এবং কোড ভিউ দেখতে সক্ষম করে। সম্পাদক উইন্ডোর উপরের-ডান কোণে, এখন তিনটি বোতাম রয়েছে
দেখার বিকল্পগুলির মধ্যে টগল করার জন্য:
- স্প্লিট ভিউ সক্ষম করতে, স্প্লিট আইকনে ক্লিক করুন
.
- XML সোর্স ভিউ সক্ষম করতে, সোর্স আইকনে ক্লিক করুন
.
- ডিজাইন ভিউ সক্ষম করতে, ডিজাইন আইকনে ক্লিক করুন
.
- স্প্লিট ভিউ সক্ষম করতে, স্প্লিট আইকনে ক্লিক করুন
ডিজাইন এডিটরগুলির মধ্যে জুমিং এবং প্যান করার জন্য নিয়ন্ত্রণগুলি সম্পাদক উইন্ডোর নীচে-ডানদিকে একটি ভাসমান প্যানেলে চলে গেছে।
আরও জানতে, লেআউট এডিটর দিয়ে একটি UI তৈরি করুন দেখুন।
কালার পিকার রিসোর্স ট্যাব
আপনি যখন আপনার XML বা ডিজাইন টুলে কালার পিকার ব্যবহার করছেন তখন আপনার অ্যাপে রঙের রিসোর্স মান দ্রুত আপডেট করতে সাহায্য করার জন্য, IDE এখন আপনার জন্য রঙের রিসোর্স মান পূরণ করে।
রিসোর্স ম্যানেজার
রিসোর্স ম্যানেজারে নিম্নলিখিত আপডেটগুলি রয়েছে:
- রিসোর্স ম্যানেজার এখন বেশিরভাগ রিসোর্স প্রকারকে সমর্থন করে।
- একটি সম্পদ অনুসন্ধান করার সময়, রিসোর্স ম্যানেজার এখন সমস্ত প্রকল্প মডিউল থেকে ফলাফল প্রদর্শন করে। পূর্বে, অনুসন্ধান শুধুমাত্র নির্বাচিত মডিউল থেকে ফলাফল প্রদান করে।
- ফিল্টার বোতাম আপনাকে স্থানীয় নির্ভরশীল মডিউল, বহিরাগত লাইব্রেরি এবং অ্যান্ড্রয়েড ফ্রেমওয়ার্ক থেকে সংস্থানগুলি দেখতে দেয়। আপনি থিম বৈশিষ্ট্যগুলি দেখানোর জন্য ফিল্টার ব্যবহার করতে পারেন।
- আপনি এখন রিসোর্সের উপরে টেক্সটবক্সের মধ্যে ক্লিক করে আমদানি প্রক্রিয়া চলাকালীন সম্পদের নাম পরিবর্তন করতে পারেন।
আরও জানতে, রিসোর্স ম্যানেজার দিয়ে আপনার অ্যাপের UI সংস্থানগুলি পরিচালনা করুন দেখুন।
অ্যান্ড্রয়েড গ্রেডল প্লাগইনের আপডেট
অ্যান্ড্রয়েড গ্রেডল প্লাগইনের সর্বশেষ সংস্করণে অনেক আপডেট রয়েছে, যার মধ্যে রয়েছে বিল্ড স্পিডের জন্য অপ্টিমাইজেশান, ম্যাভেন প্রকাশনা প্লাগইনের জন্য সমর্থন এবং ভিউ বাইন্ডিংয়ের জন্য সমর্থন। আরও জানতে, সম্পূর্ণ রিলিজ নোট পড়ুন।
দেখুন বাঁধাই
ভিউ বাইন্ডিং আপনাকে আরও সহজে কোড লিখতে দেয় যা প্রতিটি XML লেআউট ফাইলের জন্য একটি বাইন্ডিং ক্লাস তৈরি করে ভিউয়ের সাথে ইন্টারঅ্যাক্ট করে। এই ক্লাসগুলিতে সংশ্লিষ্ট লেআউটে একটি আইডি আছে এমন সমস্ত দর্শনের সরাসরি উল্লেখ থাকে।
যেহেতু এটি findViewById()
প্রতিস্থাপন করে, ভিউ বাইন্ডিং একটি অবৈধ ভিউ আইডির ফলে নাল পয়েন্টার ব্যতিক্রম হওয়ার ঝুঁকি দূর করে।
ভিউ বাইন্ডিং সক্ষম করতে, আপনাকে অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.6.0 বা উচ্চতর ব্যবহার করতে হবে এবং প্রতিটি মডিউলের build.gradle
ফাইলে নিম্নলিখিতগুলি অন্তর্ভুক্ত করতে হবে:
গ্রোভি
android { buildFeatures.viewBinding = true }
কোটলিন
android { buildFeatures.viewBinding = true }
পরিবর্তনগুলি প্রয়োগ করুন
আপনি এখন একটি ক্লাস যোগ করতে পারেন এবং তারপর কোড পরিবর্তনগুলি প্রয়োগ করুন বা পরিবর্তনগুলি প্রয়োগ করুন এবং কার্যকলাপ পুনরায় চালু করুন ক্লিক করে আপনার চলমান অ্যাপে সেই কোড পরিবর্তনটি স্থাপন করতে পারেন৷
এই দুটি কর্মের মধ্যে পার্থক্য সম্পর্কে আরও জানতে, পরিবর্তনগুলি প্রয়োগ করুন দেখুন।
রিফ্যাক্টর মেনু বিকল্প ইনস্ট্যান্ট অ্যাপস সমর্থন সক্ষম করতে
আপনি এখন নিচের মত করে আপনার অ্যাপ প্রজেক্ট তৈরি করার পর যেকোনও সময় আপনার বেস মডিউলটি তাৎক্ষণিক-সক্ষম করতে পারেন:
- মেনু বার থেকে View > Tool Windows > Project নির্বাচন করে প্রজেক্ট প্যানেলটি খুলুন।
- আপনার বেস মডিউলে রাইট-ক্লিক করুন, সাধারণত 'অ্যাপ' নামে, এবং রিফ্যাক্টর > ইনস্ট্যান্ট অ্যাপস সমর্থন সক্ষম করুন নির্বাচন করুন।
- প্রদর্শিত ডায়ালগে, ড্রপডাউন মেনু থেকে আপনার বেস মডিউল নির্বাচন করুন।
- ওকে ক্লিক করুন।
দ্রষ্টব্য: নতুন প্রজেক্ট তৈরি উইজার্ড থেকে আপনার বেস অ্যাপ মডিউলকে তাত্ক্ষণিক-সক্ষম করার বিকল্পটি সরানো হয়েছে।
আরও জানতে, Google Play Instant-এর ওভারভিউ পড়ুন।
APK বিশ্লেষক-এ ডিওফসকেট ক্লাস এবং পদ্ধতি বাইটকোড
DEX ফাইলগুলি পরিদর্শন করার জন্য APK বিশ্লেষক ব্যবহার করার সময়, আপনি নিম্নোক্তভাবে ক্লাস এবং পদ্ধতি বাইটকোড ডিঅফসকেট করতে পারেন:
- মেনু বার থেকে Build > Analyze APK নির্বাচন করুন।
- প্রদর্শিত ডায়ালগে, আপনি যে APK পরিদর্শন করতে চান সেটিতে নেভিগেট করুন এবং এটি নির্বাচন করুন।
- খুলুন ক্লিক করুন.
- APK অ্যানালাইজারে, আপনি যে DEX ফাইলটি পরিদর্শন করতে চান সেটি নির্বাচন করুন।
- DEX ফাইল ভিউয়ারে, আপনি যে APK বিশ্লেষণ করছেন তার জন্য ProGuard ম্যাপিং ফাইলটি লোড করুন ।
- আপনি যে ক্লাস বা পদ্ধতিটি পরিদর্শন করতে চান তার উপর ডান-ক্লিক করুন এবং বাইটকোড দেখান নির্বাচন করুন।
নেটিভ টুলিং
নিম্নলিখিত আপডেটগুলি অ্যান্ড্রয়েড স্টুডিওতে নেটিভ (C/C++) বিকাশ সমর্থন করে।
কোটলিন সমর্থন
অ্যান্ড্রয়েড স্টুডিওতে নিম্নলিখিত NDK বৈশিষ্ট্যগুলি আগে জাভাতে সমর্থিত, এখন কোটলিনেও সমর্থিত:
একটি JNI ঘোষণা থেকে C/C++ এ সংশ্লিষ্ট বাস্তবায়ন ফাংশনে নেভিগেট করুন। পরিচালিত সোর্স কোড ফাইলে লাইন নম্বরের কাছে C বা C++ আইটেম মার্কারের উপর ঘোরার মাধ্যমে এই ম্যাপিংটি দেখুন।
JNI ঘোষণার জন্য স্বয়ংক্রিয়ভাবে একটি স্টাব বাস্তবায়ন ফাংশন তৈরি করুন। প্রথমে JNI ঘোষণাটি সংজ্ঞায়িত করুন এবং তারপর সক্রিয় করতে C/C++ ফাইলে "jni" বা পদ্ধতির নাম টাইপ করুন।
অব্যবহৃত নেটিভ ইমপ্লিমেন্টেশন ফাংশন সোর্স কোডে সতর্কতা হিসাবে হাইলাইট করা হয়েছে। অনুপস্থিত বাস্তবায়ন সহ JNI ঘোষণাগুলিও একটি ত্রুটি হিসাবে হাইলাইট করা হয়েছে।
যখন আপনি একটি নেটিভ ইমপ্লিমেন্টেশন ফাংশন (রিফ্যাক্টর) রিনেম করেন, তখন সমস্ত সংশ্লিষ্ট JNI ঘোষণা আপডেট করা হয়। নেটিভ ইমপ্লিমেন্টেশন ফাংশন আপডেট করতে একটি JNI ঘোষণার নাম পরিবর্তন করুন।
অন্তর্নিহিতভাবে আবদ্ধ JNI বাস্তবায়নের জন্য স্বাক্ষর পরীক্ষা করা হচ্ছে।
অন্যান্য JNI উন্নতি
অ্যান্ড্রয়েড স্টুডিওতে কোড এডিটর এখন আরও নিরবচ্ছিন্ন JNI ডেভেলপমেন্ট ওয়ার্কফ্লোকে সমর্থন করে, যার মধ্যে উন্নত ধরনের ইঙ্গিত, স্বয়ংক্রিয়-সম্পূর্ণতা, পরিদর্শন এবং কোড রিফ্যাক্টরিং সহ।
স্থানীয় লাইব্রেরির জন্য APK পুনরায় লোড হচ্ছে {:#3.6-reload-apk}
আপনার প্রকল্পের APK IDE-এর বাইরে আপডেট হলে আপনাকে আর একটি নতুন প্রকল্প তৈরি করতে হবে না। অ্যান্ড্রয়েড স্টুডিও এপিকে পরিবর্তনগুলি সনাক্ত করে এবং আপনাকে এটি পুনরায় আমদানি করার বিকল্প দেয়৷
কোটলিন-শুধু APK উত্স সংযুক্ত করুন
আপনি যখন পূর্ব-নির্মিত APK প্রোফাইল এবং ডিবাগ করেন তখন কোটলিন-কেবল বহিরাগত APK উত্স সংযুক্ত করা এখন সম্ভব। আরও জানতে, কোটলিন/জাভা উত্স সংযুক্ত করুন দেখুন।
মেমরি প্রোফাইলারে লিক সনাক্তকরণ
মেমরি প্রোফাইলারে একটি হিপ ডাম্প বিশ্লেষণ করার সময়, আপনি এখন প্রোফাইলিং ডেটা ফিল্টার করতে পারেন যা অ্যান্ড্রয়েড স্টুডিও মনে করে আপনার অ্যাপে Activity
এবং Fragment
উদাহরণগুলির জন্য মেমরি লিক হতে পারে।
ফিল্টারটি যে ধরণের ডেটা দেখায় তার মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:
-
Activity
দৃষ্টান্ত যা ধ্বংস করা হয়েছে কিন্তু এখনও উল্লেখ করা হচ্ছে। -
Fragment
দৃষ্টান্তগুলির একটি বৈধFragmentManager
নেই কিন্তু এখনও উল্লেখ করা হচ্ছে।
কোটলিন-শুধু APK উত্স সংযুক্ত করুন
আপনি যখন পূর্ব-নির্মিত APK প্রোফাইল এবং ডিবাগ করেন তখন কোটলিন-কেবল বহিরাগত APK উত্স সংযুক্ত করা এখন সম্ভব। আরও জানতে, কোটলিন/জাভা উত্স সংযুক্ত করুন দেখুন।
মেমরি প্রোফাইলারে লিক সনাক্তকরণ
মেমরি প্রোফাইলারে একটি হিপ ডাম্প বিশ্লেষণ করার সময়, আপনি এখন প্রোফাইলিং ডেটা ফিল্টার করতে পারেন যা অ্যান্ড্রয়েড স্টুডিও মনে করে আপনার অ্যাপে Activity
এবং Fragment
উদাহরণগুলির জন্য মেমরি লিক হতে পারে।
ফিল্টারটি যে ধরণের ডেটা দেখায় তার মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:
-
Activity
দৃষ্টান্ত যা ধ্বংস করা হয়েছে কিন্তু এখনও উল্লেখ করা হচ্ছে। -
Fragment
দৃষ্টান্তগুলির একটি বৈধFragmentManager
নেই কিন্তু এখনও উল্লেখ করা হচ্ছে।
নির্দিষ্ট পরিস্থিতিতে, যেমন নিম্নলিখিত, ফিল্টার মিথ্যা ইতিবাচক ফল দিতে পারে:
- একটি
Fragment
তৈরি করা হয়েছে কিন্তু এখনও ব্যবহার করা হয়নি। - একটি
Fragment
ক্যাশে করা হচ্ছে কিন্তু একটিFragmentTransaction
অংশ হিসাবে নয়।
এই বৈশিষ্ট্যটি ব্যবহার করতে, প্রথমে একটি হিপ ডাম্প ক্যাপচার করুন বা Android স্টুডিওতে একটি হিপ ডাম্প ফাইল আমদানি করুন ৷ মেমরি লিক হতে পারে এমন টুকরো এবং ক্রিয়াকলাপগুলি প্রদর্শন করতে, মেমরি প্রোফাইলারের হিপ ডাম্প প্যানে অ্যাক্টিভিটি/ফ্র্যাগমেন্ট লিক চেকবক্স নির্বাচন করুন।
মেমরি ফাঁসের জন্য একটি হিপ ডাম্প ফিল্টার করা হচ্ছে।
এমুলেটর
অ্যান্ড্রয়েড স্টুডিও 3.6 আপনাকে Android এমুলেটর 29.2.7 এবং উচ্চতর সংস্করণে অন্তর্ভুক্ত বিভিন্ন আপডেটের সুবিধা নিতে সাহায্য করে, যেমনটি নীচে বর্ণনা করা হয়েছে।
উন্নত অবস্থান সমর্থন
অ্যান্ড্রয়েড এমুলেটর 29.2.7 এবং উচ্চতর GPS স্থানাঙ্ক এবং রুট তথ্য অনুকরণের জন্য অতিরিক্ত সমর্থন প্রদান করে। আপনি যখন এমুলেটর এক্সটেন্ডেড কন্ট্রোল খুলবেন, তখন লোকেশন ট্যাবের বিকল্পগুলি এখন দুটি ট্যাবের অধীনে সংগঠিত হয়: একক পয়েন্ট এবং রুট ।
একক পয়েন্ট
একক পয়েন্ট ট্যাবে, আপনি পছন্দের পয়েন্টগুলি অনুসন্ধান করতে Google মানচিত্র ওয়েবভিউ ব্যবহার করতে পারেন, ঠিক যেমন আপনি একটি ফোন বা ব্রাউজারে Google মানচিত্র ব্যবহার করার সময় করেন৷ আপনি যখন মানচিত্রে একটি অবস্থান অনুসন্ধান করেন বা ক্লিক করেন, তখন আপনি মানচিত্রের নীচের কাছে সেভ পয়েন্ট নির্বাচন করে অবস্থানটি সংরক্ষণ করতে পারেন। আপনার সমস্ত সংরক্ষিত অবস্থানগুলি বর্ধিত নিয়ন্ত্রণ উইন্ডোর ডানদিকে তালিকাভুক্ত করা হয়েছে৷
আপনি মানচিত্রে যে অবস্থানটি বেছে নিয়েছেন সেখানে এমুলেটর অবস্থান সেট করতে, প্রসারিত নিয়ন্ত্রণ উইন্ডোর নীচে ডানদিকে অবস্থান সেট করুন বোতামে ক্লিক করুন।
.
রুট
একক পয়েন্ট ট্যাবের মতো, রুট ট্যাবটি একটি Google মানচিত্র ওয়েবভিউ প্রদান করে যা আপনি দুই বা ততোধিক অবস্থানের মধ্যে একটি রুট তৈরি করতে ব্যবহার করতে পারেন। একটি রুট তৈরি এবং সংরক্ষণ করতে, নিম্নলিখিতগুলি করুন:
- মানচিত্র দৃশ্যে, আপনার রুটে প্রথম গন্তব্য অনুসন্ধান করতে পাঠ্য ক্ষেত্রটি ব্যবহার করুন।
- অনুসন্ধান ফলাফল থেকে অবস্থান নির্বাচন করুন.
- নেভিগেট বোতামটি নির্বাচন করুন।
- মানচিত্র থেকে আপনার রুটের সূচনা বিন্দু নির্বাচন করুন।
- (ঐচ্ছিক) আপনার রুটে অতিরিক্ত স্টপ যোগ করতে গন্তব্য যোগ করুন ক্লিক করুন।
- ম্যাপ ভিউতে সেভ রুট এ ক্লিক করে আপনার রুট সেভ করুন।
- রুটের জন্য একটি নাম উল্লেখ করুন এবং সংরক্ষণ করুন ক্লিক করুন।
আপনার সংরক্ষিত রুট অনুসরণ করে এমুলেটর অনুকরণ করতে, সংরক্ষিত রুটের তালিকা থেকে রুটটি নির্বাচন করুন এবং এক্সটেন্ডেড কন্ট্রোল উইন্ডোর নীচে ডানদিকে প্লে রুটে ক্লিক করুন। সিমুলেশন বন্ধ করতে, রুট থামাতে ক্লিক করুন।
.
নির্দিষ্ট রুট অনুসরণ করে ক্রমাগত এমুলেটর অনুকরণ করতে, প্লেব্যাক পুনরাবৃত্তি করুন এর পাশের সুইচটি সক্ষম করুন। এমুলেটর কত দ্রুত নির্দিষ্ট রুট অনুসরণ করে তা পরিবর্তন করতে, প্লেব্যাক গতির ড্রপডাউন থেকে একটি বিকল্প নির্বাচন করুন।
মাল্টি-ডিসপ্লে সমর্থন
অ্যান্ড্রয়েড এমুলেটর এখন আপনাকে একাধিক ডিসপ্লেতে আপনার অ্যাপ স্থাপন করার অনুমতি দেয়, যা কাস্টমাইজযোগ্য মাত্রা সমর্থন করে এবং মাল্টি-উইন্ডো এবং মাল্টি-ডিসপ্লে সমর্থন করে এমন অ্যাপ পরীক্ষা করতে সাহায্য করে। একটি ভার্চুয়াল ডিভাইস চলাকালীন, আপনি নিম্নলিখিত হিসাবে দুটি অতিরিক্ত প্রদর্শন যোগ করতে পারেন:
এক্সটেন্ডেড কন্ট্রোল খুলুন এবং ডিসপ্লে ট্যাবে নেভিগেট করুন।
সেকেন্ডারি ডিসপ্লে যোগ করুন ক্লিক করে অন্য ডিসপ্লে যোগ করুন।
মাধ্যমিক প্রদর্শনের অধীনে ড্রপডাউন মেনু থেকে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
প্রিসেট আকৃতির অনুপাতের একটি নির্বাচন করুন
কাস্টম নির্বাচন করুন এবং আপনার কাস্টম প্রদর্শনের জন্য উচ্চতা , প্রস্থ এবং dpi সেট করুন।
(ঐচ্ছিক) তৃতীয় ডিসপ্লে যোগ করতে সেকেন্ডারি ডিসপ্লে যোগ করুন ক্লিক করুন।
চলমান ভার্চুয়াল ডিভাইসে নির্দিষ্ট প্রদর্শন(গুলি) যোগ করতে পরিবর্তনগুলি প্রয়োগ করুন ক্লিক করুন।
Android Automotive OS-এর জন্য নতুন ভার্চুয়াল ডিভাইস এবং প্রজেক্ট টেমপ্লেট
আপনি যখন অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে একটি নতুন প্রকল্প তৈরি করেন, আপনি এখন নতুন প্রকল্প তৈরি করুন উইজার্ডে অটোমোটিভ ট্যাব থেকে তিনটি টেমপ্লেট থেকে নির্বাচন করতে পারেন: কোনো কার্যকলাপ নেই , মিডিয়া পরিষেবা এবং বার্তা পরিষেবা ৷ বিদ্যমান প্রকল্পগুলির জন্য, আপনি মেনু বার থেকে ফাইল > নতুন > নতুন মডিউল নির্বাচন করে এবং অটোমোটিভ মডিউল নির্বাচন করে অ্যান্ড্রয়েড অটোমোটিভ ডিভাইসের জন্য সমর্থন যোগ করতে পারেন। নতুন মডিউল তৈরি করুন উইজার্ড তারপরে Android Automotive প্রকল্পের টেমপ্লেটগুলির মধ্যে একটি ব্যবহার করে একটি নতুন মডিউল তৈরি করার মাধ্যমে আপনাকে গাইড করে৷
.
উপরন্তু, আপনি এখন ভার্চুয়াল ডিভাইস কনফিগারেশন উইজার্ডের অটোমোটিভ ট্যাবে নিম্নলিখিত বিকল্পগুলির মধ্যে একটি নির্বাচন করে Android Automotive OS ডিভাইসগুলির জন্য একটি Android ভার্চুয়াল ডিভাইস (AVD) তৈরি করতে পারেন৷
- পোলেস্টার 2 : একটি AVD তৈরি করুন যা পোলেস্টার 2 হেড ইউনিটকে অনুকরণ করে।
- অটোমোটিভ (1024p ল্যান্ডস্কেপ) : জেনেরিক 1024 x 768 পিক্সেল অ্যান্ড্রয়েড অটোমোটিভ হেড ইউনিটের জন্য একটি AVD তৈরি করুন।
.
পুনরায় শুরু করা SDK ডাউনলোড
SDK ম্যানেজার ব্যবহার করে SDK কম্পোনেন্ট এবং টুল ডাউনলোড করার সময়, অ্যান্ড্রয়েড স্টুডিও এখন শুরু থেকে ডাউনলোড রিস্টার্ট করার পরিবর্তে বাধাগ্রস্ত হওয়া ডাউনলোডগুলিকে পুনরায় শুরু করার অনুমতি দেয় (উদাহরণস্বরূপ, একটি নেটওয়ার্ক সমস্যার কারণে)। এই বর্ধিতকরণটি বিশেষত বড় ডাউনলোডের জন্য সহায়ক, যেমন Android এমুলেটর বা সিস্টেমের ছবি, যখন ইন্টারনেট সংযোগ অবিশ্বস্ত হয়।
এছাড়াও, আপনার যদি ব্যাকগ্রাউন্ডে একটি SDK ডাউনলোড টাস্ক চলছে, আপনি এখন স্ট্যাটাস বারে নিয়ন্ত্রণগুলি ব্যবহার করে ডাউনলোডটি বিরতি বা পুনরায় শুরু করতে পারেন৷
নতুন কন্ট্রোল সহ স্ট্যাটাস বারে একটি ব্যাকগ্রাউন্ড ডাউনলোড টাস্ক যা আপনাকে ডাউনলোড থামাতে বা পুনরায় শুরু করতে দেয়।
Win32 অবরুদ্ধ
অ্যান্ড্রয়েড স্টুডিওর Windows 32-বিট সংস্করণ ডিসেম্বর 2019 এর পরে আর আপডেট পাবে না এবং এটি ডিসেম্বর 2020 এর পরে আর সমর্থন পাবে না। আপনি Android স্টুডিও ব্যবহার করা চালিয়ে যেতে পারেন। যাইহোক, অতিরিক্ত আপডেট পেতে, আপনার ওয়ার্কস্টেশনকে Windows এর 64-বিট সংস্করণে আপগ্রেড করুন।
আরও জানতে, Windows 32-বিট অবচয় ব্লগ পড়ুন
Gradle সিঙ্ক সময় অপ্টিমাইজ করার জন্য নতুন বিকল্প
পূর্ববর্তী প্রকাশগুলিতে, অ্যান্ড্রয়েড স্টুডিও গ্র্যাডল সিঙ্কের সময় সমস্ত গ্রেডল কাজের তালিকা পুনরুদ্ধার করেছে। বড় প্রকল্পের জন্য, টাস্ক লিস্ট পুনরুদ্ধার করার ফলে সিঙ্ক সময় ধীর হতে পারে।
Gradle Sync কর্মক্ষমতা উন্নত করতে, File > Settings > Experimental এ যান এবং Gradle সিঙ্কের সময় Gradle টাস্ক লিস্ট তৈরি করবেন না নির্বাচন করুন।
আপনি যখন এই বিকল্পটি সক্ষম করেন, তখন Android স্টুডিও সিঙ্কের সময় টাস্ক তালিকা তৈরি করা এড়িয়ে যায়, যা Gradle Sync কে দ্রুত সম্পন্ন করতে দেয় এবং UI প্রতিক্রিয়াশীলতা উন্নত করে। মনে রাখবেন, যখন IDE টাস্ক লিস্ট তৈরি করা এড়িয়ে যায়, তখন Gradle প্যানেলে টাস্ক লিস্টগুলি খালি থাকে এবং বিল্ড ফাইলে টাস্ক নাম স্বয়ংক্রিয়ভাবে সমাপ্তি কাজ করে না।
Gradle এর অফলাইন মোড টগল করার জন্য নতুন অবস্থান
Gradle এর অফলাইন মোড সক্ষম বা নিষ্ক্রিয় করতে, প্রথমে মেনু বার থেকে View > Tool Windows > Gradle নির্বাচন করুন। তারপর, গ্রেডল উইন্ডোর উপরের দিকে, অফলাইন মোড টগল করুন ক্লিক করুন .
ইন্টেলিজে আইডিয়া 2019.2
মূল অ্যান্ড্রয়েড স্টুডিও আইডিই 2019.2 রিলিজের মাধ্যমে IntelliJ IDEA থেকে উন্নতির সাথে আপডেট করা হয়েছে।
2019.2 সংস্করণের সাথে সমন্বিতভাবে অন্তর্ভুক্ত অন্যান্য IntelliJ সংস্করণগুলির উন্নতি সম্পর্কে আরও জানতে, নিম্নলিখিত পৃষ্ঠাগুলি দেখুন:
সম্প্রদায় অবদানকারী
আমাদের সকল সম্প্রদায়ের অবদানকারীদের ধন্যবাদ যারা আমাদের Android স্টুডিও 3.6 উন্নত করার বাগ এবং অন্যান্য উপায়গুলি আবিষ্কার করতে সাহায্য করেছেন৷ বিশেষ করে, আমরা নিম্নলিখিত ব্যক্তিদের ধন্যবাদ জানাতে চাই যারা বাগ রিপোর্ট করেছেন:
3.5 (আগস্ট 2019)
অ্যান্ড্রয়েড স্টুডিও 3.5 একটি বড় রিলিজ এবং প্রজেক্ট মার্বেলের ফলাফল। অ্যান্ড্রয়েড স্টুডিও 3.3 প্রকাশের সাথে শুরু করে, প্রজেক্ট মার্বেল উদ্যোগটি একাধিক রিলিজ ছড়িয়ে দিয়েছে যা IDE-এর তিনটি প্রধান ক্ষেত্র উন্নত করার উপর ফোকাস করে: সিস্টেম হেলথ , ফিচার পলিশ এবং বাগ ফিক্সিং।
এগুলি এবং অন্যান্য প্রজেক্ট মার্বেল আপডেট সম্পর্কে তথ্যের জন্য, অ্যান্ড্রয়েড ডেভেলপারদের ব্লগ পোস্ট বা নীচের বিভাগগুলি পড়ুন৷
আমরা আমাদের সম্প্রদায়ের সকল অবদানকারীদের ধন্যবাদ জানাতে চাই যারা এই প্রকাশের সাথে সাহায্য করেছেন৷
3.5.3 (ডিসেম্বর 2019)
এই ছোটখাট আপডেটে বিভিন্ন বাগ ফিক্স এবং পারফরম্যান্সের উন্নতি অন্তর্ভুক্ত রয়েছে।
3.5.2 (নভেম্বর 2019)
এই ছোটখাট আপডেটে বিভিন্ন বাগ ফিক্স এবং পারফরম্যান্সের উন্নতি অন্তর্ভুক্ত রয়েছে। উল্লেখযোগ্য বাগ ফিক্সের তালিকা দেখতে, রিলিজ আপডেট ব্লগে সম্পর্কিত পোস্ট পড়ুন।
3.5.1 (অক্টোবর 2019)
এই ছোটখাট আপডেটে বিভিন্ন বাগ ফিক্স এবং পারফরম্যান্সের উন্নতি অন্তর্ভুক্ত রয়েছে। উল্লেখযোগ্য বাগ ফিক্সের তালিকা দেখতে, রিলিজ আপডেট ব্লগে সম্পর্কিত পোস্ট পড়ুন।
প্রকল্প মার্বেল: সিস্টেম স্বাস্থ্য
এই বিভাগে অ্যান্ড্রয়েড স্টুডিও 3.5-এর পরিবর্তনগুলি বর্ণনা করা হয়েছে যা সিস্টেমের স্বাস্থ্যের উন্নতির উপর দৃষ্টি নিবদ্ধ করে৷
প্রস্তাবিত মেমরি সেটিংস
অ্যান্ড্রয়েড স্টুডিও এখন আপনাকে অবহিত করে যদি এটি সনাক্ত করে যে আপনি সর্বাধিক পরিমাণ RAM বাড়িয়ে কর্মক্ষমতা উন্নত করতে পারেন যা আপনার OS-এর Android স্টুডিও প্রক্রিয়াগুলির জন্য বরাদ্দ করা উচিত, যেমন কোর IDE, Gradle ডেমন এবং Kotlin ডেমন৷ আপনি বিজ্ঞপ্তিতে অ্যাকশন লিঙ্কে ক্লিক করে প্রস্তাবিত সেটিংস গ্রহণ করতে পারেন, অথবা আপনি ফাইল > সেটিংস (বা অ্যান্ড্রয়েড স্টুডিও > ম্যাকওএস-এ পছন্দগুলি ) নির্বাচন করে এবং তারপর চেহারা এবং আচরণ > এর অধীনে মেমরি সেটিংস বিভাগটি খুঁজে বের করে এই সেটিংসগুলিকে ম্যানুয়ালি সামঞ্জস্য করতে পারেন। সিস্টেম সেটিংস । আরও জানতে, সর্বোচ্চ হিপ সাইজ দেখুন।
প্রস্তাবিত মেমরি সেটিংস সম্পর্কে একটি বিজ্ঞপ্তি।
মেমরি ব্যবহারের প্রতিবেদন
অ্যান্ড্রয়েড স্টুডিওতে মেমরি সমস্যাগুলি পুনরুত্পাদন এবং রিপোর্ট করা কখনও কখনও কঠিন। এই সমস্যা সমাধানে সাহায্য করার জন্য, অ্যান্ড্রয়েড স্টুডিও আপনাকে মেনু বার থেকে সাহায্য > মেমরি ব্যবহার বিশ্লেষণে ক্লিক করে একটি মেমরি ব্যবহারের প্রতিবেদন তৈরি করতে দেয়। আপনি যখন তা করেন, তখন IDE স্থানীয়ভাবে ব্যক্তিগত তথ্যের জন্য ডেটা স্যানিটাইজ করে, আপনি মেমরি সমস্যার উত্স সনাক্ত করতে সহায়তা করার জন্য Android স্টুডিও টিমের কাছে পাঠাতে চান কিনা তা জিজ্ঞাসা করার আগে। আরও জানতে, একটি মেমরি ব্যবহারের প্রতিবেদন চালান দেখুন।
একটি মেমরি ব্যবহার রিপোর্ট.
উইন্ডোজ: অ্যান্টিভাইরাস ফাইল I/O অপ্টিমাইজেশান
অ্যান্ড্রয়েড স্টুডিও এখন স্বয়ংক্রিয়ভাবে পরীক্ষা করে যে নির্দিষ্ট প্রজেক্ট ডিরেক্টরি রিয়েল-টাইম অ্যান্টিভাইরাস স্ক্যানিং থেকে বাদ দেওয়া হয়েছে কিনা। যখন বিল্ড পারফরম্যান্স উন্নত করার জন্য সামঞ্জস্য করা যেতে পারে, তখন Android স্টুডিও আপনাকে অবহিত করে এবং কীভাবে আপনার অ্যান্টিভাইরাস কনফিগারেশন অপ্টিমাইজ করতে হয় তার নির্দেশাবলী প্রদান করে। আরও জানতে, বিল্ড স্পিডে অ্যান্টিভাইরাস সফ্টওয়্যারের প্রভাব মিনিমাইজ করুন দেখুন।
প্রজেক্ট মার্বেল: ফিচার পলিশ
এই বিভাগে Android স্টুডিও 3.5-এর পরিবর্তনগুলি বর্ণনা করা হয়েছে যা বিদ্যমান বৈশিষ্ট্যগুলিকে উন্নত করার উপর দৃষ্টি নিবদ্ধ করে৷
পরিবর্তনগুলি প্রয়োগ করুন
পরিবর্তনগুলি প্রয়োগ করুন আপনাকে আপনার অ্যাপ রিস্টার্ট না করেই আপনার চলমান অ্যাপে কোড এবং রিসোর্স পরিবর্তনগুলি পুশ করতে দেয়—এবং কিছু ক্ষেত্রে, বর্তমান অ্যাক্টিভিটি রিস্টার্ট না করেও৷ পরিবর্তনগুলি প্রয়োগ করুন আপনার অ্যাপের অবস্থা সংরক্ষণের জন্য একটি সম্পূর্ণ নতুন পদ্ধতি প্রয়োগ করে৷ ইন্সট্যান্ট রানের বিপরীতে, যেটি আপনার APK-এর বাইটকোড পুনর্লিখন করে, অ্যাপ্লাই চেঞ্জস অ্যান্ড্রয়েড 8.0 (এপিআই লেভেল 26) বা উচ্চতর সমর্থিত রানটাইম ইন্সট্রুমেন্টেশন ব্যবহার করে ফ্লাইতে ক্লাসগুলিকে পুনরায় সংজ্ঞায়িত করে৷
আরও জানতে, পরিবর্তনগুলি প্রয়োগ করুন দেখুন।
পরিবর্তন প্রয়োগের জন্য টুলবার বোতাম।
অ্যাপ স্থাপনার প্রবাহ
IDE-তে একটি নতুন ড্রপ-ডাউন মেনু রয়েছে যা আপনাকে দ্রুত কোন ডিভাইসে আপনার অ্যাপ স্থাপন করতে চান তা নির্বাচন করতে দেয়। এই মেনুতে একটি নতুন বিকল্পও রয়েছে যা আপনাকে একবারে একাধিক ডিভাইসে আপনার অ্যাপ চালাতে দেয়।
লক্ষ্য ডিভাইস ড্রপ ডাউন মেনু.
উন্নত Gradle সিঙ্ক এবং ক্যাশে সনাক্তকরণ
হার্ডডিস্কের ব্যবহার কমানোর সময় Gradle পর্যায়ক্রমে আপনার বিল্ড ক্যাশে সাফ করলে IDE এখন আরও ভালভাবে সনাক্ত করে। পূর্ববর্তী সংস্করণগুলিতে, এই অবস্থা IDE-কে অনুপস্থিত নির্ভরতা এবং গ্র্যাডল সিঙ্ক ব্যর্থ হওয়ার জন্য রিপোর্ট করে। এখন, আইডিই কেবলমাত্র গ্র্যাডল সিঙ্ক সফলভাবে সম্পন্ন হয়েছে তা নিশ্চিত করার জন্য প্রয়োজনীয় নির্ভরতাগুলি ডাউনলোড করে।
উন্নত বিল্ড ত্রুটি আউটপুট
বিল্ড উইন্ডোটি এখন আরও ভাল ত্রুটি প্রতিবেদন প্রদান করে, যেমন ফাইলের একটি লিঙ্ক এবং রিপোর্ট করা ত্রুটির লাইন, নিম্নলিখিত বিল্ড প্রক্রিয়াগুলির জন্য:
- AAPT সংকলন এবং লিঙ্কিং
- R8 এবং ProGuard
- ডেক্সিং
- সম্পদ একত্রীকরণ
- XML ফাইল পার্সিং
- Javac, Kotlinc, এবং CMake সংকলন
প্রকল্প আপগ্রেড
আইডিই এবং অ্যান্ড্রয়েড গ্রেডল প্লাগইন আপডেট করতে আপনাকে সাহায্য করার জন্য আরও তথ্য এবং ক্রিয়া সরবরাহ করার জন্য উন্নত আপডেট অভিজ্ঞতা। উদাহরণস্বরূপ, আরও সিঙ্ক এবং বিল্ড ত্রুটিগুলি আপডেট করার সময় আপনাকে ত্রুটিগুলি কমাতে সহায়তা করার জন্য ক্রিয়াগুলি অন্তর্ভুক্ত করে।
এটা মনে রাখা গুরুত্বপূর্ণ, আপনি IDE আপডেট করতে পারেন অন্যান্য উপাদান থেকে স্বাধীনভাবে, যেমন Android Gradle প্লাগইন। সুতরাং, একটি নতুন সংস্করণ উপলব্ধ হওয়ার সাথে সাথে আপনি নিরাপদে IDE আপডেট করতে পারেন এবং পরে অন্যান্য উপাদানগুলি আপডেট করতে পারেন।
লেআউট সম্পাদক
অ্যান্ড্রয়েড স্টুডিও 3.5 লেআউট ভিজ্যুয়ালাইজেশন, পরিচালনা এবং মিথস্ক্রিয়াতে বেশ কিছু উন্নতি অন্তর্ভুক্ত করে।
ConstraintLayout
সাথে কাজ করার সময়, বৈশিষ্ট্য প্যানেলে একটি নতুন সীমাবদ্ধতা বিভাগ নির্বাচিত UI উপাদানের সীমাবদ্ধতার সম্পর্ক তালিকাভুক্ত করে। আপনি উভয় ক্ষেত্রের সীমাবদ্ধতা হাইলাইট করতে নকশা পৃষ্ঠ থেকে বা সীমাবদ্ধতার তালিকা থেকে একটি সীমাবদ্ধতা নির্বাচন করতে পারেন।
একটি নির্বাচিত UI উপাদানের জন্য সীমাবদ্ধতা সম্পর্ক।
একইভাবে, আপনি এখন এটি নির্বাচন করে এবং Delete
কী টিপে একটি সীমাবদ্ধতা মুছে ফেলতে পারেন। আপনি Control
Command
ধরে রেখে এবং সীমাবদ্ধ অ্যাঙ্করে ক্লিক করে একটি সীমাবদ্ধতা মুছতে পারেন। মনে রাখবেন যে আপনি যখন Control
বা Command
কী ধরে রাখেন এবং একটি অ্যাঙ্করের উপর হোভার করেন, তখন যে কোনো সংশ্লিষ্ট সীমাবদ্ধতা লাল হয়ে যায় নির্দেশ করে যে আপনি সেগুলি মুছতে ক্লিক করতে পারেন।
যখন একটি ভিউ নির্বাচন করা হয়, আপনি নিম্নলিখিত ছবিতে দেখানো হিসাবে অ্যাট্রিবিউট প্যানেলের সীমাবদ্ধতা উইজেট বিভাগে + আইকনগুলির যেকোনো একটিতে ক্লিক করে একটি সীমাবদ্ধতা তৈরি করতে পারেন। আপনি যখন একটি নতুন সীমাবদ্ধতা তৈরি করেন, তখন লেআউট সম্পাদক এখন সীমাবদ্ধতা নির্বাচন করে এবং হাইলাইট করে, আপনি যা যোগ করেছেন তার জন্য তাত্ক্ষণিক ভিজ্যুয়াল প্রতিক্রিয়া প্রদান করে।
সীমাবদ্ধতা তৈরি করতে সীমাবদ্ধতা উইজেট ব্যবহার করে।
একটি সীমাবদ্ধতা তৈরি করার সময়, লেআউট এডিটর এখন শুধুমাত্র যোগ্য অ্যাঙ্কর পয়েন্টগুলি দেখায় যা আপনি সীমাবদ্ধ করতে পারেন। পূর্বে, লেআউট এডিটর সমস্ত দৃষ্টিভঙ্গিতে সমস্ত অ্যাঙ্কর পয়েন্ট হাইলাইট করেছিল, আপনি সেগুলিকে বাধা দিতে পারেন কিনা তা নির্বিশেষে। উপরন্তু, একটি নীল ওভারলে এখন সীমাবদ্ধতার লক্ষ্যকে হাইলাইট করে। এই হাইলাইটিংটি বিশেষভাবে উপযোগী হয় যখন অন্যের সাথে ওভারল্যাপ করে এমন একটি উপাদানকে সীমাবদ্ধ করার চেষ্টা করা হয়।
অ্যান্ড্রয়েড স্টুডিও 3.4-এ একটি ওভারল্যাপিং উপাদানের জন্য একটি সীমাবদ্ধতা তৈরি করা।
অ্যান্ড্রয়েড স্টুডিও 3.5-এ একটি ওভারল্যাপিং উপাদানের জন্য একটি সীমাবদ্ধতা তৈরি করা।
উপরের আপডেটগুলি ছাড়াও, অ্যান্ড্রয়েড স্টুডিও 3.5-এ নিম্নলিখিত লেআউট এডিটর উন্নতিগুলিও রয়েছে:
- সীমাবদ্ধতা উইজেট এবং ডিফল্ট মার্জিন ড্রপ-ডাউন এখন আপনাকে মার্জিনের জন্য মাত্রা সম্পদ ব্যবহার করার অনুমতি দেয়।
- লেআউট এডিটর টুলবারে, ডিজাইনের পৃষ্ঠের আকার নির্ধারণ করে এমন ডিভাইসগুলির তালিকা আপডেট করা হয়েছে। উপরন্তু, আকার পরিবর্তন করার সময় স্ন্যাপিং আচরণ উন্নত করা হয়েছে, এবং ডিজাইনের পৃষ্ঠে আকার পরিবর্তনের হ্যান্ডেলগুলি এখন সর্বদা দৃশ্যমান। আকার পরিবর্তন করার সময়, নতুন ওভারলে প্রদর্শিত হয় যা সাধারণ ডিভাইসের আকার দেখায়।
- লেআউট এডিটরের একটি নতুন রঙের স্কিম রয়েছে যা ধারাবাহিকতা উন্নত করে এবং উপাদান, পাঠ্য এবং সীমাবদ্ধতার মধ্যে বৈসাদৃশ্য কমায়।
- ব্লুপ্রিন্ট মোডে এখন এমন কিছু উপাদানের জন্য পাঠ্য সমর্থন অন্তর্ভুক্ত রয়েছে যেখানে পাঠ্য দেখানো হচ্ছে না।
এই পরিবর্তনগুলি সম্পর্কে আরও তথ্যের জন্য, দেখুন Android Studio Project Marble: Layout Editor ।
ডেটা বাইন্ডিং
ডেটা বাইন্ডিংয়ের জন্য ক্রমবর্ধমান টীকা প্রক্রিয়াকরণ সমর্থন যোগ করার পাশাপাশি, XML-এ ডেটা বাইন্ডিং এক্সপ্রেশন তৈরি করার সময় IDE স্মার্ট সম্পাদক বৈশিষ্ট্য এবং কর্মক্ষমতা উন্নত করে।
অ্যান্ড্রয়েড স্টুডিও 3.4-এ কোড এডিটর পারফরম্যান্স।

অ্যান্ড্রয়েড স্টুডিও 3.5 এ উন্নত কোড এডিটিং কর্মক্ষমতা।
C/C++ প্রকল্পের জন্য উন্নত সমর্থন
অ্যান্ড্রয়েড স্টুডিও 3.5-এ বেশ কিছু পরিবর্তন রয়েছে যা C/C++ প্রকল্পগুলির জন্য সমর্থন উন্নত করে।
একক ভেরিয়েন্ট সিঙ্কের জন্য ভেরিয়েন্ট প্যানেলের উন্নতিগুলি তৈরি করুন৷
আপনি এখন বিল্ড ভেরিয়েন্ট প্যানেলে সক্রিয় বিল্ড ভেরিয়েন্ট এবং সক্রিয় ABI উভয়ই নির্দিষ্ট করতে পারেন। এই বৈশিষ্ট্যটি মডিউল প্রতি বিল্ড কনফিগারেশনকে সহজ করে এবং Gradle সিঙ্ক কর্মক্ষমতা উন্নত করতে পারে।
আরও জানতে, বিল্ড বৈকল্পিক পরিবর্তন দেখুন।
ABI দ্বারা একক ভেরিয়েন্ট নির্বাচন সহ বিল্ড ভেরিয়েন্ট প্যানেল।
NDK-এর পাশাপাশি সংস্করণ
আপনি এখন পাশাপাশি NDK এর একাধিক সংস্করণ ব্যবহার করতে পারেন। আপনার প্রকল্পগুলি কনফিগার করার সময় এই বৈশিষ্ট্যটি আপনাকে আরও নমনীয়তা দেয়—উদাহরণস্বরূপ, আপনার যদি এমন প্রকল্প থাকে যা একই মেশিনে NDK-এর বিভিন্ন সংস্করণ ব্যবহার করে।
আপনার প্রোজেক্ট যদি অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.5.0 বা উচ্চতর ব্যবহার করে, তাহলে আপনি NDK-এর সংস্করণও নির্দিষ্ট করতে পারেন যা আপনার প্রোজেক্টের প্রতিটি মডিউল ব্যবহার করবে। আপনি এই বৈশিষ্ট্যটি পুনরুত্পাদনযোগ্য বিল্ড তৈরি করতে এবং NDK সংস্করণ এবং Android Gradle প্লাগইনের মধ্যে অসঙ্গতি প্রশমিত করতে ব্যবহার করতে পারেন।
আরও জানতে, NDK, CMake এবং LLDB ইনস্টল এবং কনফিগার করুন দেখুন।
ChromeOS সমর্থন
অ্যান্ড্রয়েড স্টুডিও এখন আনুষ্ঠানিকভাবে ChromeOS ডিভাইসগুলিকে সমর্থন করে, যেমন HP Chromebook x360 14, Acer Chromebook 13/Spin 13, এবং অন্যান্য যা আপনি সিস্টেমের প্রয়োজনীয়তাগুলিতে পড়তে পারেন৷ শুরু করতে, আপনার সামঞ্জস্যপূর্ণ ChromeOS ডিভাইসে Android স্টুডিও ডাউনলোড করুন এবং ইনস্টলেশন নির্দেশাবলী অনুসরণ করুন।
দ্রষ্টব্য: ChromeOS-এ Android স্টুডিও বর্তমানে শুধুমাত্র একটি সংযুক্ত হার্ডওয়্যার ডিভাইসে আপনার অ্যাপ স্থাপন করা সমর্থন করে। আরও জানতে, একটি হার্ডওয়্যার ডিভাইসে অ্যাপ চালান পড়ুন।
বৈশিষ্ট্য মডিউল জন্য শর্তাধীন ডেলিভারি
শর্তসাপেক্ষ ডেলিভারি আপনাকে অ্যাপ ইনস্টলের সময় স্বয়ংক্রিয়ভাবে ফিচার মডিউল ডাউনলোড করার জন্য নির্দিষ্ট ডিভাইস কনফিগারেশনের প্রয়োজনীয়তা সেট করতে দেয়। উদাহরণস্বরূপ, আপনি একটি বৈশিষ্ট্য মডিউল কনফিগার করতে পারেন যাতে অগমেন্টেড রিয়েলিটি (AR) এর কার্যকারিতা অন্তর্ভুক্ত থাকে যা শুধুমাত্র AR সমর্থন করে এমন ডিভাইসগুলির জন্য অ্যাপ ইনস্টলে উপলব্ধ।
এই ডেলিভারি মেকানিজম বর্তমানে নিম্নলিখিত ডিভাইস কনফিগারেশনের উপর ভিত্তি করে অ্যাপ ইনস্টল-টাইমে একটি মডিউল ডাউনলোড নিয়ন্ত্রণ করতে সমর্থন করে:
- OpenGL ES সংস্করণ সহ ডিভাইস হার্ডওয়্যার এবং সফ্টওয়্যার বৈশিষ্ট্য
- ব্যবহারকারী দেশ
- API স্তর
যদি কোনও ডিভাইস আপনার নির্দিষ্ট করা সমস্ত প্রয়োজনীয়তা পূরণ না করে, তাহলে অ্যাপ ইনস্টলের সময় মডিউলটি ডাউনলোড করা হয় না। যাইহোক, আপনার অ্যাপ পরে প্লে কোর লাইব্রেরি ব্যবহার করে চাহিদা অনুযায়ী মডিউল ডাউনলোড করার অনুরোধ করতে পারে। আরও জানতে, শর্তসাপেক্ষ ডেলিভারি কনফিগার করুন পড়ুন।
ইন্টেলিজে আইডিয়া 2019.1
মূল Android Studio IDE 2019.1 রিলিজের মাধ্যমে IntelliJ IDEA থেকে থিম কাস্টমাইজেশনের মতো উন্নতি সহ আপডেট করা হয়েছে।
অ্যান্ড্রয়েড স্টুডিওর সাথে অন্তর্ভুক্ত করা সর্বশেষ ইন্টেলিজ সংস্করণটি ছিল 2018.3.4। অ্যান্ড্রয়েড স্টুডিওর এই প্রকাশের সাথে ক্রমবর্ধমানভাবে অন্তর্ভুক্ত অন্যান্য IntelliJ সংস্করণগুলির উন্নতি সম্পর্কে আরও তথ্যের জন্য, নিম্নলিখিত বাগ-ফিক্স আপডেটগুলি দেখুন:
- IntelliJ IDEA 2018.3.6 {: .external-link}
- IntelliJ IDEA 2018.3.5 {: .external-link}
অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.5.0 আপডেট
অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.5.0-এ নতুন কী রয়েছে সে সম্পর্কে তথ্যের জন্য, যেমন ক্রমবর্ধমান টীকা প্রক্রিয়াকরণ এবং ক্যাশেযোগ্য ইউনিট পরীক্ষার জন্য উন্নত সমর্থন, এর রিলিজ নোটগুলি দেখুন।
সম্প্রদায় অবদানকারী
আমাদের সকল সম্প্রদায়ের অবদানকারীদের ধন্যবাদ যারা আমাদেরকে Android Studio 3.5 উন্নত করার জন্য বাগ এবং অন্যান্য উপায় আবিষ্কার করতে সাহায্য করেছেন। বিশেষ করে, আমরা নিম্নলিখিত ব্যক্তিদের ধন্যবাদ জানাতে চাই যারা P0 এবং P1 বাগ রিপোর্ট করেছেন:
|
|
|
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 দ্বারা সমাধান করা আপনার প্রকল্পের নির্ভরতা গ্রাফে প্রতিটি নির্ভরতা পরিদর্শন করুন এবং কল্পনা করুন:
- PSD এর বাম প্যানে, নির্ভরতা নির্বাচন করুন।
- মডিউল ফলকে, একটি মডিউল নির্বাচন করুন যার জন্য আপনি সমাধান করা নির্ভরতাগুলি পরিদর্শন করতে চান।
- পিএসডি-র ডানদিকে, সমাধানকৃত নির্ভরতা ফলকটি খুলুন, যা নীচে দেখানো হয়েছে।
এছাড়াও আপনি 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 এর সাথে, ডিসুগারিং, সঙ্কুচিত করা, অস্পষ্ট করা, অপ্টিমাইজ করা এবং ডেক্সিং (D8) সবই এক ধাপে সম্পন্ন হয়েছে, যেমনটি নীচে চিত্রিত হয়েছে।
মনে রাখবেন, 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
ক্লাসটি উল্লেখ করেন, তাহলে একটি অভিপ্রায় ক্রিয়া আপনাকে একটি একক ক্লিকে সহজে করতে দেয়, যেমনটি নীচে দেখানো হয়েছে৷
বিশেষ করে, যেহেতু জেটপ্যাক সমর্থন লাইব্রেরিটিকে বিচ্ছিন্ন প্যাকেজগুলিতে পুনরায় প্যাকেজ করেছে যা পরিচালনা এবং আপডেট করা সহজ, এই অভিপ্রায় ক্রিয়া আপনাকে দ্রুত কেবলমাত্র জেটপ্যাক উপাদানগুলির জন্য আপনার প্রয়োজনীয় নির্ভরতা যোগ করতে সহায়তা করে যা আপনি ব্যবহার করতে চান।
3.3 (জানুয়ারি 2019)
অ্যান্ড্রয়েড স্টুডিও 3.3 একটি বড় রিলিজ যাতে বিভিন্ন ধরনের নতুন বৈশিষ্ট্য এবং উন্নতি রয়েছে।
3.3.2 (মার্চ 2019)
এই ছোটখাট আপডেটে বিভিন্ন বাগ ফিক্স এবং পারফরম্যান্সের উন্নতি অন্তর্ভুক্ত রয়েছে। উল্লেখযোগ্য বাগ ফিক্সের তালিকা দেখতে, রিলিজ আপডেট ব্লগে সম্পর্কিত পোস্ট পড়ুন।
3.3.1 (ফেব্রুয়ারি 2019)
এই ছোটখাট আপডেটে বিভিন্ন বাগ ফিক্স এবং পারফরম্যান্সের উন্নতি অন্তর্ভুক্ত রয়েছে।
IntelliJ IDEA 2018.2.2
মূল অ্যান্ড্রয়েড স্টুডিও আইডিই 2018.2.2 রিলিজের মাধ্যমে IntelliJ IDEA থেকে উন্নতির সাথে আপডেট করা হয়েছে।
অ্যান্ড্রয়েড গ্রেডল প্লাগইন আপডেট
অ্যান্ড্রয়েড গ্রেডল প্লাগইনে নতুন কী আছে সে সম্পর্কে তথ্যের জন্য, এর রিলিজ নোটগুলি দেখুন।
নেভিগেশন এডিটর
নেভিগেশন এডিটর আপনাকে নেভিগেশন আর্কিটেকচার কম্পোনেন্ট ব্যবহার করে আপনার অ্যাপে দ্রুত ভিজ্যুয়ালাইজ করতে এবং নেভিগেশন তৈরি করতে দেয়।
আরও তথ্যের জন্য, নেভিগেশন আর্কিটেকচার কম্পোনেন্টের সাথে নেভিগেশন বাস্তবায়ন দেখুন।
অব্যবহৃত অ্যান্ড্রয়েড স্টুডিও ডিরেক্টরি মুছুন
আপনি যখন প্রথমবার অ্যান্ড্রয়েড স্টুডিওর একটি প্রধান সংস্করণ চালান, তখন এটি অ্যান্ড্রয়েড স্টুডিওর সংস্করণগুলির জন্য ক্যাশে, সেটিংস, সূচক এবং লগ ধারণকারী ডিরেক্টরিগুলি সন্ধান করে যার জন্য একটি অনুরূপ ইনস্টলেশন পাওয়া যায় না। অব্যবহৃত অ্যান্ড্রয়েড স্টুডিও ডিরেক্টরিগুলি মুছুন ডায়ালগ তারপরে এই অব্যবহৃত ডিরেক্টরিগুলির অবস্থান, আকার এবং শেষ-সংশোধিত সময়গুলি প্রদর্শন করে এবং সেগুলি মুছতে একটি বিকল্প সরবরাহ করে।
অ্যান্ড্রয়েড স্টুডিও যে ডিরেক্টরিগুলি মুছে ফেলার জন্য বিবেচনা করে তা নীচে তালিকাভুক্ত করা হয়েছে:
- লিনাক্স:
~/.AndroidStudio[Preview] XY
- Mac:
~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview] XY
- উইন্ডোজ:
%USER%.AndroidStudio[Preview] XY
লিন্ট উন্নতি
লিন্ট, যখন গ্রেডল থেকে আহ্বান করা হয়, তা উল্লেখযোগ্যভাবে দ্রুত হয়- বড় প্রকল্পগুলি লিন্ট চারগুণ দ্রুত চালানোর আশা করতে পারে।
নতুন প্রজেক্ট উইজার্ড তৈরি করুন
নতুন প্রজেক্ট তৈরি করুন উইজার্ডটির একটি নতুন চেহারা রয়েছে এবং এতে এমন আপডেট রয়েছে যা নতুন অ্যান্ড্রয়েড স্টুডিও প্রজেক্ট তৈরি করতে সাহায্য করে।
আরও তথ্যের জন্য, একটি প্রকল্প তৈরি করুন দেখুন।
প্রোফাইলার আপডেট
অ্যান্ড্রয়েড স্টুডিও 3.3-এ বেশ কয়েকটি পৃথক প্রোফাইলারের আপডেট অন্তর্ভুক্ত রয়েছে।
উন্নত কর্মক্ষমতা
ব্যবহারকারীর প্রতিক্রিয়ার উপর ভিত্তি করে, প্রোফাইলার ব্যবহার করার সময় রেন্ডারিং কর্মক্ষমতা ব্যাপকভাবে উন্নত করা হয়েছে। অনুগ্রহ করে প্রতিক্রিয়া প্রদান করা চালিয়ে যান, বিশেষ করে যদি আপনি কর্মক্ষমতা সমস্যা দেখতে থাকেন।
প্রোফাইলার মেমরি বরাদ্দ ট্র্যাকিং বিকল্প
প্রোফাইলিং করার সময় অ্যাপের কর্মক্ষমতা উন্নত করতে, মেমরি প্রোফাইলার এখন ডিফল্টভাবে পর্যায়ক্রমে মেমরি বরাদ্দের নমুনা দেয়। যদি ইচ্ছা হয়, আপনি Android 8.0 (API স্তর 26) বা উচ্চতর চলমান ডিভাইসগুলিতে পরীক্ষা করার সময় বরাদ্দ ট্র্যাকিং ড্রপডাউন ব্যবহার করে এই আচরণটি পরিবর্তন করতে পারেন।
বরাদ্দ ট্র্যাকিং ড্রপডাউন ব্যবহার করে, আপনি নিম্নলিখিত মোডগুলি থেকে চয়ন করতে পারেন:
সম্পূর্ণ: সমস্ত অবজেক্ট মেমরি বরাদ্দ ক্যাপচার করে। মনে রাখবেন যে আপনার যদি এমন একটি অ্যাপ থাকে যা অনেকগুলি বস্তু বরাদ্দ করে, আপনি প্রোফাইল করার সময় উল্লেখযোগ্য কর্মক্ষমতা সমস্যা দেখতে পারেন।
নমুনা: অবজেক্ট মেমরি বরাদ্দের একটি পর্যায়ক্রমিক নমুনা ক্যাপচার করে। এটি ডিফল্ট আচরণ এবং প্রোফাইল করার সময় অ্যাপের কার্যক্ষমতার উপর কম প্রভাব ফেলে। আপনি অ্যাপগুলির সাথে কিছু পারফরম্যান্স সমস্যার সম্মুখীন হতে পারেন যা অল্প সময়ের মধ্যে অনেকগুলি বস্তু বরাদ্দ করে।
বন্ধ: মেমরি বরাদ্দ বন্ধ করে। যদি ইতিমধ্যে নির্বাচিত না থাকে, তাহলে এই মোডটি একটি CPU রেকর্ডিং নেওয়ার সময় স্বয়ংক্রিয়ভাবে সক্ষম হয় এবং তারপর রেকর্ডিং শেষ হলে পূর্ববর্তী সেটিংয়ে ফিরে আসে। আপনি CPU রেকর্ডিং কনফিগারেশন ডায়ালগে এই আচরণ পরিবর্তন করতে পারেন।
ট্র্যাকিং জাভা অবজেক্ট এবং JNI রেফারেন্স উভয়কেই প্রভাবিত করে।
ফ্রেম রেন্ডারিং ডেটা পরিদর্শন করুন
CPU প্রোফাইলারে , আপনি এখন পরিদর্শন করতে পারেন যে আপনার জাভা অ্যাপটি মূল UI থ্রেড এবং RenderThread-এ প্রতিটি ফ্রেম রেন্ডার করতে কতক্ষণ সময় নেয়। UI জ্যাঙ্ক এবং কম ফ্রেমরেটের কারণে বাধাগুলি তদন্ত করার সময় এই ডেটাটি কার্যকর হতে পারে। উদাহরণস্বরূপ, একটি মসৃণ ফ্রেমরেট বজায় রাখার জন্য প্রয়োজনীয় 16ms এর চেয়ে বেশি সময় নেয় এমন প্রতিটি ফ্রেম লাল রঙে প্রদর্শিত হয়।
ফ্রেম রেন্ডারিং ডেটা দেখতে, একটি কনফিগারেশন ব্যবহার করে একটি ট্রেস রেকর্ড করুন যা আপনাকে সিস্টেম কলগুলি ট্রেস করতে দেয়৷ ট্রেস রেকর্ড করার পরে, নীচে দেখানো হিসাবে FRAMES নামক বিভাগের অধীনে রেকর্ডিংয়ের জন্য সময়রেখা বরাবর প্রতিটি ফ্রেমের সম্পর্কে তথ্য সন্ধান করুন।
ফ্রেমরেট সমস্যাগুলির তদন্ত এবং সমাধান সম্পর্কে আরও জানতে, স্লো রেন্ডারিং পড়ুন।
ইভেন্ট টাইমলাইনে টুকরা
ইভেন্ট টাইমলাইন এখন দেখায় যখন টুকরো সংযুক্ত এবং বিচ্ছিন্ন করা হয়। অতিরিক্তভাবে, আপনি যখন একটি খণ্ডের উপর হোভার করেন, তখন একটি টুলটিপ আপনাকে খণ্ডের স্থিতি দেখায়।
নেটওয়ার্ক প্রোফাইলারে সংযোগ পেলোডের জন্য বিন্যাসিত পাঠ্য দেখুন
পূর্বে, নেটওয়ার্ক প্রোফাইলার শুধুমাত্র সংযোগ পেলোড থেকে কাঁচা পাঠ প্রদর্শন করত। অ্যান্ড্রয়েড স্টুডিও 3.3 এখন JSON, XML এবং HTML সহ ডিফল্টরূপে নির্দিষ্ট পাঠ্য প্রকারগুলিকে ফর্ম্যাট করে৷ রেসপন্স এবং রিকোয়েস্ট ট্যাবে, ফরম্যাট করা টেক্সট প্রদর্শন করতে পার্স করা ভিউ লিঙ্কে ক্লিক করুন এবং কাঁচা টেক্সট প্রদর্শন করতে সোর্স দেখুন লিঙ্কে ক্লিক করুন।
আরও তথ্যের জন্য, নেটওয়ার্ক প্রোফাইলারের সাথে নেটওয়ার্ক ট্র্যাফিক পরিদর্শন দেখুন।
SDK উপাদানগুলির স্বয়ংক্রিয় ডাউনলোডিং
যখন আপনার প্রকল্পের SDK প্ল্যাটফর্ম, NDK, বা CMake থেকে একটি SDK উপাদানের প্রয়োজন হয়, তখন Gradle এখন স্বয়ংক্রিয়ভাবে প্রয়োজনীয় প্যাকেজগুলি ডাউনলোড করার চেষ্টা করে যতক্ষণ না আপনি পূর্বে SDK ম্যানেজার ব্যবহার করে কোনো সম্পর্কিত লাইসেন্স চুক্তি গ্রহণ করেছেন।
আরও তথ্যের জন্য, গ্রেডলের সাথে অনুপস্থিত প্যাকেজগুলি স্বয়ংক্রিয় ডাউনলোড করুন দেখুন।
ঝনঝন-পরিপাটি জন্য সমর্থন
অ্যান্ড্রয়েড স্টুডিওতে এখন নেটিভ কোড অন্তর্ভুক্ত প্রকল্পগুলির জন্য ক্ল্যাং-টাইডি ব্যবহার করে স্ট্যাটিক কোড বিশ্লেষণের জন্য সমর্থন অন্তর্ভুক্ত রয়েছে। Clang-Tidy-এর জন্য সমর্থন সক্ষম করতে, আপনার NDK আপডেট করুন r18 বা তার বেশি।
তারপরে আপনি সেটিংস বা পছন্দ ডায়ালগ খুলে এবং সম্পাদক > পরিদর্শন > C/C++ > সাধারণ > Clang-Tidy- এ নেভিগেট করে পরিদর্শনগুলি সক্ষম বা পুনরায় সক্ষম করতে পারেন। সেটিংস বা পছন্দ ডায়ালগে এই পরিদর্শনটি নির্বাচন করার সময়, আপনি ডান-সবচেয়ে প্যানেলের বিকল্প বিভাগের অধীনে সক্রিয় এবং অক্ষম করা ক্ল্যাং-টিডি চেকের তালিকাও দেখতে পারেন। অতিরিক্ত চেক সক্রিয় করতে, তালিকায় যোগ করুন এবং প্রয়োগ করুন ক্লিক করুন।
অতিরিক্ত বিকল্পগুলির সাথে ক্ল্যাং-টিডি কনফিগার করতে, ক্ল্যাং-টিডি চেক বিকল্পগুলি কনফিগার করুন ক্লিক করুন এবং খোলা ডায়ালগে সেগুলি যুক্ত করুন৷
C++ কাস্টমাইজেশনের জন্য অপশন অপসারণ
নিম্নলিখিত বিকল্পগুলি কাস্টমাইজ C++ সমর্থন ডায়ালগ থেকে সরানো হয়েছে:
- ব্যতিক্রম সমর্থন (-ব্যতিক্রম)
- রানটাইম টাইপ ইনফরমেশন সাপোর্ট (-ftti)
অ্যান্ড্রয়েড স্টুডিওর মাধ্যমে তৈরি সমস্ত প্রকল্পের জন্য সংশ্লিষ্ট আচরণগুলি সক্ষম করা হয়েছে।
CMake সংস্করণ 3.10.2
CMake সংস্করণ 3.10.2 এখন SDK ম্যানেজারের সাথে অন্তর্ভুক্ত করা হয়েছে। উল্লেখ্য যে Gradle এখনও ডিফল্টরূপে সংস্করণ 3.6.0 ব্যবহার করে।
Gradle ব্যবহারের জন্য একটি CMake সংস্করণ নির্দিষ্ট করতে, আপনার মডিউলের build.gradle
ফাইলে নিম্নলিখিত যোগ করুন:
android {
...
externalNativeBuild {
cmake {
...
version "3.10.2"
}
}
}
build.gradle
এ CMake কনফিগার করার বিষয়ে আরও তথ্যের জন্য, দেখুন ম্যানুয়ালি Gradle কনফিগার করুন ।
ন্যূনতম CMake সংস্করণ নির্দিষ্ট করতে নতুন “+” বাক্য গঠন
আপনার প্রধান মডিউলের build.gradle
ফাইলে CMake-এর একটি সংস্করণ উল্লেখ করার সময়, আপনি এখন CMake-এর cmake_minimum_required()
কমান্ডের আচরণের সাথে মেলে একটি “+” যোগ করতে পারেন।
সতর্কতা: অন্যান্য বিল্ড নির্ভরতার সাথে "+" সিনট্যাক্স ব্যবহার করা নিরুৎসাহিত করা হয়, কারণ গতিশীল নির্ভরতা অপ্রত্যাশিত সংস্করণ আপডেট এবং সংস্করণের পার্থক্যগুলি সমাধান করতে অসুবিধা সৃষ্টি করতে পারে।
অ্যান্ড্রয়েড অ্যাপ বান্ডেলগুলি এখন ইনস্ট্যান্ট অ্যাপ সমর্থন করে
Android Studio এখন আপনাকে Google Play Instant- এর জন্য সম্পূর্ণ সমর্থন সহ Android App Bundles তৈরি করতে দেয়। অন্য কথায়, আপনি এখন একটি একক অ্যান্ড্রয়েড স্টুডিও প্রকল্প থেকে ইনস্টল করা অ্যাপ এবং তাত্ক্ষণিক অভিজ্ঞতা উভয়ই তৈরি এবং স্থাপন করতে পারেন এবং সেগুলিকে একটি একক অ্যান্ড্রয়েড অ্যাপ বান্ডেলে অন্তর্ভুক্ত করতে পারেন।
আপনি যদি নতুন প্রজেক্ট তৈরি করুন ডায়ালগ ব্যবহার করে একটি নতুন অ্যান্ড্রয়েড স্টুডিও প্রোজেক্ট তৈরি করেন, তাহলে নিশ্চিত করুন যে আপনি আপনার প্রোজেক্ট কনফিগার করুন > এই প্রোজেক্ট তাত্ক্ষণিক অ্যাপগুলিকে সমর্থন করবে এর পাশের বাক্সে টিক চিহ্ন দিয়েছেন। অ্যান্ড্রয়েড স্টুডিও তখন একটি নতুন অ্যাপ প্রোজেক্ট তৈরি করে যেমন এটি সাধারণত হয়, কিন্তু আপনার অ্যাপের বেস মডিউলে ঝটপট অ্যাপ সমর্থন যোগ করতে আপনার ম্যানিফেস্টে নিম্নলিখিত বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করে:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
...
</manifest>
তারপরে আপনি মেনু বার থেকে ফাইল > নতুন > নতুন মডিউল নির্বাচন করে একটি তাত্ক্ষণিক-সক্ষম বৈশিষ্ট্য মডিউল তৈরি করতে পারেন এবং তারপরে নতুন মডিউল তৈরি করুন ডায়ালগ থেকে তাত্ক্ষণিক গতিশীল বৈশিষ্ট্য মডিউল নির্বাচন করে। মনে রাখবেন, এই মডিউলটি তৈরি করা আপনার অ্যাপের বেস মডিউলকে তাৎক্ষণিক-সক্ষম করে।
একটি তাত্ক্ষণিক অভিজ্ঞতা হিসাবে একটি স্থানীয় ডিভাইসে আপনার অ্যাপ স্থাপন করতে, আপনার রান কনফিগারেশন সম্পাদনা করুন এবং সাধারণ > তাত্ক্ষণিক অ্যাপ হিসাবে স্থাপন করুন এর পাশের বাক্সে টিক চিহ্ন দিন।
একক-ভেরিয়েন্ট প্রকল্প সিঙ্ক
আপনার বিল্ড কনফিগারেশনের সাথে আপনার প্রোজেক্ট সিঙ্ক করা হল Android স্টুডিওকে আপনার প্রোজেক্ট কীভাবে গঠন করা হয়েছে তা বুঝতে দেওয়ার একটি গুরুত্বপূর্ণ পদক্ষেপ। যাইহোক, এই প্রক্রিয়াটি বড় প্রকল্পের জন্য সময়সাপেক্ষ হতে পারে। যদি আপনার প্রোজেক্ট একাধিক বিল্ড ভেরিয়েন্ট ব্যবহার করে, তাহলে আপনি এখন শুধুমাত্র আপনার নির্বাচিত ভেরিয়েন্টে সীমাবদ্ধ রেখে প্রোজেক্ট সিঙ্কগুলিকে অপ্টিমাইজ করতে পারেন।
এই অপ্টিমাইজেশানটি সক্ষম করার জন্য আপনাকে Android Gradle প্লাগইন 3.3.0 বা উচ্চতর সহ Android Studio 3.3 বা উচ্চতর ব্যবহার করতে হবে৷ আপনি যখন এই প্রয়োজনীয়তাগুলি পূরণ করেন, আপনি যখন আপনার প্রকল্প সিঙ্ক করেন তখন IDE আপনাকে এই অপ্টিমাইজেশান সক্ষম করতে অনুরোধ করে। অপ্টিমাইজেশন নতুন প্রকল্পে ডিফল্টরূপে সক্রিয় করা হয়.
এই অপ্টিমাইজেশনটি ম্যানুয়ালি সক্ষম করতে, ফাইল > সেটিংস > পরীক্ষামূলক > গ্রেডল ( অ্যান্ড্রয়েড স্টুডিও > পছন্দগুলি > পরীক্ষামূলক > একটি ম্যাকের উপর গ্রেডল ) ক্লিক করুন এবং শুধুমাত্র সক্রিয় বৈকল্পিক চেকবক্সটি সিঙ্ক করুন।
দ্রষ্টব্য: এই অপ্টিমাইজেশানটি বর্তমানে শুধুমাত্র জাভা প্রোগ্রামিং ভাষা অন্তর্ভুক্ত প্রকল্পগুলিকে সমর্থন করে৷ উদাহরণস্বরূপ, যদি IDE আপনার প্রোজেক্টে Kotlin বা C++ কোড সনাক্ত করে, তাহলে এটি স্বয়ংক্রিয়ভাবে এই অপ্টিমাইজেশানটি সক্ষম করে না এবং আপনার ম্যানুয়ালি এটি সক্ষম করা উচিত নয়।
আরও তথ্যের জন্য, একক-ভেরিয়েন্ট প্রকল্প সিঙ্ক সক্ষম করুন দেখুন।
দ্রুত প্রতিক্রিয়া প্রদান করুন
আপনি যদি অ্যান্ড্রয়েড স্টুডিওর উন্নতিতে সাহায্য করার জন্য ব্যবহারের পরিসংখ্যান ভাগ করে নেওয়ার বিকল্প বেছে নেন, তাহলে আপনি IDE উইন্ডোর নীচে স্ট্যাটাস বারে এই দুটি নতুন আইকন দেখতে পাবেন:


শুধু আইকনটিতে ক্লিক করুন যা IDE এর সাথে আপনার বর্তমান অভিজ্ঞতাকে সবচেয়ে ভালোভাবে উপস্থাপন করে। আপনি যখন তা করেন, তখন IDE ব্যবহার পরিসংখ্যান পাঠায় যা Android Studio টিমকে আপনার অনুভূতি আরও ভালভাবে বুঝতে দেয়। কিছু ক্ষেত্রে, যেমন আপনি যখন IDE এর সাথে একটি নেতিবাচক অভিজ্ঞতা নির্দেশ করেন, তখন আপনার কাছে অতিরিক্ত প্রতিক্রিয়া প্রদানের সুযোগ থাকবে।
যদি আপনি ইতিমধ্যে এটি না করে থাকেন, তাহলে আপনি একটি Mac-এ সেটিংস ডায়ালগ পছন্দগুলি খোলার মাধ্যমে, চেহারা এবং আচরণ > সিস্টেম সেটিংস > ডেটা শেয়ারিং- এ নেভিগেট করে এবং Google-এ ব্যবহারের পরিসংখ্যান পাঠান চেক করে শেয়ারিং ব্যবহার পরিসংখ্যান সক্ষম করতে পারেন।
3.2 (সেপ্টেম্বর 2018)
অ্যান্ড্রয়েড স্টুডিও 3.2 একটি বড় রিলিজ যাতে বিভিন্ন ধরনের নতুন বৈশিষ্ট্য এবং উন্নতি রয়েছে।
3.2.1 (অক্টোবর 2018)
অ্যান্ড্রয়েড স্টুডিও 3.2-এর এই আপডেটে নিম্নলিখিত পরিবর্তন এবং সংশোধনগুলি অন্তর্ভুক্ত রয়েছে:
- বান্ডিল কোটলিন সংস্করণ এখন 1.2.71।
- ডিফল্ট বিল্ড টুল সংস্করণ এখন 28.0.3।
- নেভিগেশন লাইব্রেরিতে, আর্গুমেন্টের প্রকারগুলিকে
type
থেকেargType
এ নামকরণ করা হয়েছে। - নিম্নলিখিত বাগ সংশোধন করা হয়েছে:
- ডেটা বাইন্ডিং লাইব্রেরি ব্যবহার করার সময়, আন্ডারস্কোর সহ ভেরিয়েবল নামগুলি সংকলন ত্রুটির কারণ ছিল।
- CMake IntelliSense এবং অন্যান্য CLion বৈশিষ্ট্যগুলিকে ব্যর্থ করে দিয়েছিল।
- একটি
SliceProvider
যোগ করার ফলেandroidx.*
লাইব্রেরি ব্যবহার করা হয়নি এমন প্রজেক্টে সংকলন ত্রুটি ঘটছে। - কিছু কোটলিন ইউনিট পরীক্ষা চালানো হচ্ছে না.
- ডেটা বাইন্ডিংয়ের সাথে একটি সমস্যা একটি
PsiInvalidElementAccessException
সৃষ্টি করেছিল। -
<merge>
উপাদানগুলি মাঝে মাঝে লেআউট এডিটরকে ক্র্যাশ করে দেয়।
3.2.0 পরিচিত সমস্যা
দ্রষ্টব্য: এই সমস্যাগুলি অ্যান্ড্রয়েড স্টুডিও 3.2.1 এ সমাধান করা হয়েছে
আমরা দৃঢ়ভাবে কোটলিন সংস্করণ 1.2.70 ব্যবহার করার বিরুদ্ধে সুপারিশ করি।
Kotlin সংস্করণ 1.2.61 একটি বাগ সংশোধন করে যা Android স্টুডিওকে হ্যাং করতে পারে, কিন্তু Kotlin 1.2.70 এই সমাধানটি অন্তর্ভুক্ত করে না ।
Kotlin সংস্করণ 1.2.71 এবং পরবর্তী, যাইহোক, এই সংশোধন অন্তর্ভুক্ত করে।
যদিও আপনাকে সাধারণত বিল্ড টুল সংস্করণ নির্দিষ্ট করার প্রয়োজন হয় না, Android Gradle প্লাগইন 3.2.0 ব্যবহার করার সময়
renderscriptSupportModeEnabled
এর সাথেtrue
সেট করা হয়, আপনাকে প্রতিটি মডিউলেরbuild.gradle
ফাইলে নিম্নলিখিতগুলি অন্তর্ভুক্ত করতে হবে:android.buildToolsVersion "28.0.3"
নতুন সহকারী কি
একটি নতুন সহকারী আপনাকে Android স্টুডিওতে সাম্প্রতিক পরিবর্তনগুলি সম্পর্কে অবহিত করবে৷
একটি নতুন ইনস্টলেশন বা আপডেটের পরে যখন আপনি Android স্টুডিও শুরু করেন তখন সহকারীটি খোলে যদি এটি সনাক্ত করে যে দেখানোর জন্য নতুন তথ্য রয়েছে। আপনি Android স্টুডিওতে সহায়তা > নতুন কী আছে বেছে নিয়ে সহকারী খুলতে পারেন।
অ্যান্ড্রয়েড জেটপ্যাক
অ্যান্ড্রয়েড জেটপ্যাক উপাদান, সরঞ্জাম এবং নির্দেশিকা সহ Android বিকাশকে ত্বরান্বিত করতে সহায়তা করে যা পুনরাবৃত্তিমূলক কাজগুলি দূর করে এবং আপনাকে আরও দ্রুত এবং সহজে উচ্চ-মানের, পরীক্ষাযোগ্য অ্যাপ তৈরি করতে সক্ষম করে। অ্যান্ড্রয়েড স্টুডিওতে জেটপ্যাক সমর্থন করার জন্য নিম্নলিখিত আপডেটগুলি অন্তর্ভুক্ত রয়েছে। আরও তথ্যের জন্য, জেটপ্যাক ডকুমেন্টেশন দেখুন।
নেভিগেশন এডিটর
নতুন ন্যাভিগেশন এডিটর আপনার অ্যাপের নেভিগেশন কাঠামো তৈরি করার জন্য একটি গ্রাফিকাল ভিউ প্রদান করতে Android Jetpack-এর নেভিগেশন উপাদানগুলির সাথে একীভূত হয়। নেভিগেশন এডিটর অ্যাপ-মধ্যস্থ গন্তব্যগুলির মধ্যে নেভিগেশনের নকশা এবং বাস্তবায়নকে সহজ করে।
অ্যান্ড্রয়েড স্টুডিও 3.2-এ, নেভিগেশন এডিটর একটি পরীক্ষামূলক বৈশিষ্ট্য। ন্যাভিগেশন এডিটর সক্ষম করতে, ফাইল > সেটিংস ( অ্যান্ড্রয়েড স্টুডিও > ম্যাকের পছন্দগুলি ) ক্লিক করুন, বাম ফলকে পরীক্ষামূলক বিভাগ নির্বাচন করুন, নেভিগেশন সম্পাদক সক্ষম করুন এর পাশের বাক্সটি চেক করুন এবং অ্যান্ড্রয়েড স্টুডিও পুনরায় চালু করুন।
আরও জানতে, নেভিগেশন এডিটর ডকুমেন্টেশন পড়ুন।
AndroidX মাইগ্রেশন
জেটপ্যাকের অংশ হিসেবে, আমরা অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরিগুলিকে androidx
নেমস্পেস ব্যবহার করে একটি নতুন অ্যান্ড্রয়েড এক্সটেনশন লাইব্রেরিতে স্থানান্তরিত করছি। আরও তথ্যের জন্য, AndroidX ওভারভিউ দেখুন।
অ্যান্ড্রয়েড স্টুডিও 3.2 আপনাকে একটি নতুন মাইগ্রেশন বৈশিষ্ট্য সহ এই প্রক্রিয়াটির মাধ্যমে সাহায্য করে।
একটি বিদ্যমান প্রজেক্টকে AndroidX-এ স্থানান্তর করতে, Refactor > AndroidX-এ মাইগ্রেট করুন বেছে নিন। আপনার যদি এমন কোনো Maven নির্ভরতা থাকে যেগুলি AndroidX নামস্থানে স্থানান্তরিত না হয়, তাহলে Android Studio বিল্ড সিস্টেম স্বয়ংক্রিয়ভাবে সেই প্রকল্প নির্ভরতাগুলিকে রূপান্তর করে।
অ্যান্ড্রয়েড গ্রেডল প্লাগইন নিম্নলিখিত গ্লোবাল পতাকা প্রদান করে যা আপনি আপনার gradle.properties
ফাইলে সেট করতে পারেন:
-
android.useAndroidX
:true
সেট করা হলে, এই পতাকাটি নির্দেশ করে যে আপনি এখন থেকে AndroidX ব্যবহার শুরু করতে চান৷ পতাকাটি অনুপস্থিত থাকলে, Android স্টুডিও এমন আচরণ করে যেন পতাকাটিfalse
সেট করা হয়েছে। -
android.enableJetifier
:true
সেট করা হলে, এই পতাকাটি নির্দেশ করে যে আপনি বিদ্যমান তৃতীয় পক্ষের লাইব্রেরিগুলিকে স্বয়ংক্রিয়ভাবে রূপান্তর করতে টুল সমর্থন (Android Gradle প্লাগইন থেকে) পেতে চান যেন সেগুলি AndroidX-এর জন্য লেখা হয়েছে৷ পতাকাটি অনুপস্থিত থাকলে, Android স্টুডিও এমন আচরণ করে যেন পতাকাটিfalse
সেট করা হয়েছে।
আপনি যখন AndroidX-এ মাইগ্রেট কমান্ড ব্যবহার করেন তখন উভয় পতাকা true
হিসাবে সেট করা হয়।
আপনি যদি অবিলম্বে AndroidX লাইব্রেরি ব্যবহার শুরু করতে চান এবং বিদ্যমান তৃতীয় পক্ষের লাইব্রেরিগুলিকে রূপান্তর করতে না চান, তাহলে আপনি android.useAndroidX
পতাকাটিকে true
এবং android.enableJetifier
পতাকাটিকে false
সেট করতে পারেন৷
অ্যান্ড্রয়েড অ্যাপ বান্ডেল
অ্যান্ড্রয়েড অ্যাপ বান্ডেল হল একটি নতুন আপলোড ফর্ম্যাট যাতে আপনার অ্যাপের সংকলিত কোড এবং সংস্থানগুলি অন্তর্ভুক্ত থাকে, তবে APK তৈরি করা এবং Google Play স্টোরে সাইন করাকে পিছিয়ে দেয়৷
Google Play-এর নতুন অ্যাপ সার্ভিং মডেল তারপরে প্রতিটি ব্যবহারকারীর ডিভাইস কনফিগারেশনের জন্য অপ্টিমাইজ করা APK তৈরি এবং পরিবেশন করতে আপনার অ্যাপ বান্ডেল ব্যবহার করে, তাই প্রতিটি ব্যবহারকারী আপনার অ্যাপ চালানোর জন্য তাদের প্রয়োজনীয় কোড এবং সংস্থানগুলি ডাউনলোড করে। আপনাকে আর একাধিক APK তৈরি করতে, সাইন করতে এবং পরিচালনা করতে হবে না এবং ব্যবহারকারীরা আরও ছোট, আরও অপ্টিমাইজ করা ডাউনলোড পাবেন।
উপরন্তু, আপনি আপনার অ্যাপ প্রকল্পে বৈশিষ্ট্য মডিউল যোগ করতে পারেন এবং আপনার অ্যাপ বান্ডেলে অন্তর্ভুক্ত করতে পারেন। আপনার ব্যবহারকারীরা চাহিদা অনুযায়ী আপনার অ্যাপের বৈশিষ্ট্যগুলি ডাউনলোড এবং ইনস্টল করতে পারবেন।
একটি বান্ডেল তৈরি করতে, Build > Build Bundle(s) / APK(s) > Build Bundle(s) বেছে নিন।
একটি Android অ্যাপ বান্ডেল তৈরি এবং বিশ্লেষণ করার নির্দেশাবলী সহ আরও তথ্যের জন্য, Android অ্যাপ বান্ডেল দেখুন।
লেআউট এডিটরে নমুনা ডেটা
অনেক অ্যান্ড্রয়েড লেআউটে রানটাইম ডেটা থাকে যা অ্যাপ ডেভেলপমেন্টের ডিজাইন পর্যায়ে একটি লেআউটের চেহারা এবং অনুভূতি কল্পনা করা কঠিন করে তোলে। আপনি এখন নমুনা ডেটা দিয়ে ভরা লেআউট সম্পাদকে আপনার দৃশ্যের একটি পূর্বরূপ দেখতে পারেন। যখন আপনি একটি ভিউ, একটি বোতাম যোগ করুন ডিজাইন উইন্ডোতে ভিউয়ের নিচে প্রদর্শিত হবে। ডিজাইন-টাইম ভিউ অ্যাট্রিবিউট সেট করতে এই বোতামে ক্লিক করুন। আপনি বিভিন্ন নমুনা ডেটা টেমপ্লেট থেকে চয়ন করতে পারেন এবং নমুনা আইটেমের সংখ্যা নির্দিষ্ট করতে পারেন যার সাথে ভিউটি পূরণ করতে হবে।
নমুনা ডেটা ব্যবহার করার চেষ্টা করতে, একটি নতুন লেআউটে একটি RecyclerView
যোগ করুন, ডিজাইন-টাইম বৈশিষ্ট্য বোতামে ক্লিক করুন দৃশ্যের নীচে, এবং নমুনা ডেটা টেমপ্লেটগুলির ক্যারোজেল থেকে একটি নির্বাচন চয়ন করুন৷
স্লাইস
স্লাইসগুলি অ্যান্ড্রয়েডে অন্যান্য ব্যবহারকারী ইন্টারফেস পৃষ্ঠগুলিতে আপনার অ্যাপের কার্যকারিতার অংশগুলি এম্বেড করার একটি নতুন উপায় সরবরাহ করে। উদাহরণস্বরূপ, স্লাইসগুলি Google অনুসন্ধান পরামর্শগুলিতে অ্যাপ কার্যকারিতা এবং সামগ্রী দেখানো সম্ভব করে।
অ্যান্ড্রয়েড স্টুডিও 3.2-এ একটি অন্তর্নির্মিত টেমপ্লেট রয়েছে যা আপনাকে নতুন স্লাইস প্রোভাইডার API-এর সাথে আপনার অ্যাপটি প্রসারিত করতে সাহায্য করে, সেইসাথে নতুন লিন্ট চেকগুলি নিশ্চিত করতে যে আপনি স্লাইসগুলি তৈরি করার সময় সর্বোত্তম অনুশীলনগুলি অনুসরণ করছেন।
শুরু করতে একটি প্রকল্প ফোল্ডারে ডান-ক্লিক করুন এবং নতুন > অন্যান্য > স্লাইস প্রদানকারী নির্বাচন করুন।
আপনার স্লাইস ইন্টারঅ্যাকশনগুলি কীভাবে পরীক্ষা করবেন তা সহ আরও জানতে, স্লাইস শুরু করার নির্দেশিকা পড়ুন।
কোটলিন 1.2.61
অ্যান্ড্রয়েড স্টুডিও 3.2 কোটলিন 1.2.61 বান্ডেল করে এবং নতুন অ্যান্ড্রয়েড SDK কোটলিনের সাথে আরও ভালভাবে সংহত করে। আরও তথ্যের জন্য, অ্যান্ড্রয়েড বিকাশকারী ব্লগ দেখুন।
IntelliJ IDEA 2018.1.6
কোর অ্যান্ড্রয়েড স্টুডিও আইডিই 2018.1.6 রিলিজের মাধ্যমে ইন্টেলিজ আইডিয়া থেকে উন্নতির সাথে আপডেট করা হয়েছে।
অ্যান্ড্রয়েড প্রোফাইলার
অ্যান্ড্রয়েড স্টুডিও 3.2 এ নিম্নলিখিত নতুন অ্যান্ড্রয়েড প্রোফাইলার বৈশিষ্ট্যগুলি ব্যবহার করে দেখুন।
সেশন
আপনি এখন পুনর্বিবেচনা করতে এবং পরে পরিদর্শন করতে সেশন হিসাবে প্রোফাইলার ডেটা সংরক্ষণ করতে পারেন। আপনি আইডিই পুনরায় চালু না করা পর্যন্ত প্রোফাইলার আপনার সেশনের ডেটা রাখে।
আপনি যখন কোনও পদ্ধতি ট্রেস রেকর্ড করেন বা একটি হিপ ডাম্প ক্যাপচার করেন , আইডিই বর্তমান সেশনে পৃথক এন্ট্রি হিসাবে সেই ডেটা (আপনার অ্যাপের নেটওয়ার্ক ক্রিয়াকলাপের সাথে) যুক্ত করে এবং আপনি সহজেই ডেটা তুলনা করতে রেকর্ডিংয়ের মধ্যে পিছনে পিছনে স্যুইচ করতে পারেন।
সিস্টেম ট্রেস
সিপিইউ প্রোফাইলারে , আপনার ডিভাইসের সিস্টেম সিপিইউ এবং থ্রেড ক্রিয়াকলাপ পরিদর্শন করতে নতুন সিস্টেম ট্রেস কনফিগারেশন নির্বাচন করুন। এই ট্রেস কনফিগারেশনটি systrace
নির্মিত এবং ইউআই জ্যাঙ্কের মতো সিস্টেম-স্তরের সমস্যাগুলি তদন্তের জন্য দরকারী।
এই ট্রেস কনফিগারেশনটি ব্যবহার করার সময়, আপনি Trace
ক্লাসের সাথে নেটিভ ট্রেসিং এপিআই বা আপনার জাভা কোডের সাথে আপনার সি/সি ++ কোডটি উপকরণ দিয়ে প্রোফাইলার টাইমলাইনে গুরুত্বপূর্ণ কোড রুটিনগুলি দৃশ্যত চিহ্নিত করতে পারেন।
মেমরি প্রোফাইলারে জেএনআই রেফারেন্সগুলি পরিদর্শন করুন
আপনি যদি অ্যান্ড্রয়েড 8.0 (এপিআই স্তর 26) বা উচ্চতর চালিত কোনও ডিভাইসে আপনার অ্যাপ্লিকেশন স্থাপন করেন তবে আপনি এখন মেমরি প্রোফাইলার ব্যবহার করে আপনার অ্যাপের জেএনআই কোডের জন্য মেমরি বরাদ্দগুলি পরিদর্শন করতে পারেন।
আপনার অ্যাপ্লিকেশন চলাকালীন, আপনি ক্লাস তালিকার উপরে ড্রপ-ডাউন মেনু থেকে জেএনআই হিপটি পরিদর্শন করতে এবং নির্বাচন করতে চান এমন টাইমলাইনের একটি অংশ নির্বাচন করুন, নীচে দেখানো হয়েছে। তারপরে আপনি সাধারণত হিপে অবজেক্টগুলি পরিদর্শন করতে পারেন কারণ আপনি সাধারণত যে জেএনআই রেফারেন্সগুলি বরাদ্দ করা হয়েছে এবং আপনার কোডে প্রকাশিত হয়েছে তা দেখতে বরাদ্দ কল স্ট্যাক ট্যাবে অবজেক্টগুলিকে ডাবল-ক্লিক করুন।

আমদানি, রফতানি এবং মেমরি হিপ ডাম্প ফাইলগুলি পরিদর্শন করুন
আপনি এখন মেমরি প্রোফাইলার দিয়ে তৈরি .hprof
মেমরি হিপ ডাম্প ফাইলগুলি আমদানি, রফতানি করতে এবং পরিদর্শন করতে পারেন।
নতুন প্রোফাইলার সেশন শুরু করুন ক্লিক করে আপনার .hprof
ফাইলটি আমদানি করুন প্রোফাইলারের সেশনস ফলকে এবং তারপরে ফাইল থেকে লোড নির্বাচন করা। তারপরে আপনি মেমরি প্রোফাইলারে এর ডেটা পরিদর্শন করতে পারেন যেমন আপনি অন্য কোনও হিপ ডাম্প করবেন।
পরে পর্যালোচনা করতে হিপ ডাম্প ডেটা সংরক্ষণ করতে, সেশনস ফলকে হিপ ডাম্প এন্ট্রিটির ডানদিকে রফতানি হিপ ডাম্প বোতামটি ব্যবহার করুন। রফতানি হিসাবে সংলাপ হিসাবে প্রদর্শিত হয়, ফাইলটি .hprof
ফাইলের নাম এক্সটেনশন দিয়ে সংরক্ষণ করুন।
অ্যাপ স্টার্টআপের সময় সিপিইউ ক্রিয়াকলাপ রেকর্ড করুন
আপনি এখন আপনার অ্যাপের স্টার্টআপের সময় সিপিইউ ক্রিয়াকলাপটি রেকর্ড করতে পারেন, নিম্নরূপ:
- মূল মেনু থেকে রান> কনফিগারেশন সম্পাদনা নির্বাচন করুন।
- আপনার পছন্দসই রান কনফিগারেশনের প্রোফাইলিং ট্যাবের অধীনে, স্টার্টআপে কোনও পদ্ধতি ট্রেস রেকর্ডিং শুরু করতে পাশের বাক্সটি চেক করুন।
- ড্রপডাউন মেনু থেকে ব্যবহারের জন্য একটি সিপিইউ রেকর্ডিং কনফিগারেশন নির্বাচন করুন।
- আপনার অ্যাপ্লিকেশনটি অ্যান্ড্রয়েড 8.0 (এপিআই স্তর 26) বা উচ্চতর রান> প্রোফাইল নির্বাচন করে চালিত কোনও ডিভাইসে স্থাপন করুন।
সিপিইউ ট্রেস রফতানি করুন
আপনি সিপিইউ প্রোফাইলারের সাথে সিপিইউ ক্রিয়াকলাপ রেকর্ড করার পরে, আপনি অন্যদের সাথে ভাগ করে নেওয়ার জন্য বা পরে পরিদর্শন করার জন্য একটি .trace
ফাইল হিসাবে ডেটা রফতানি করতে পারেন।
আপনি সিপিইউ ক্রিয়াকলাপ রেকর্ড করার পরে একটি ট্রেস রফতানি করতে, নিম্নলিখিতগুলি করুন:
- আপনি সিপিইউ টাইমলাইন থেকে রফতানি করতে চান এমন রেকর্ডিংয়ে ডান ক্লিক করুন।
- ড্রপডাউন মেনু থেকে রফতানি ট্রেস নির্বাচন করুন।
- আপনি যেখানে ফাইলটি সংরক্ষণ করতে চান সেখানে নেভিগেট করুন এবং সংরক্ষণ ক্লিক করুন।
সিপিইউ ট্রেস ফাইলগুলি আমদানি করুন এবং পরিদর্শন করুন
আপনি এখন ডিবাগ এপিআই বা সিপিইউ প্রোফাইলারের সাহায্যে তৈরি করা .trace
আমদানি করতে এবং পরীক্ষা করতে পারেন। (বর্তমানে, আপনি সিস্টেম ট্রেস রেকর্ডিং আমদানি করতে পারবেন না))
নতুন প্রোফাইলার সেশন শুরু করুন ক্লিক করে আপনার ট্রেস ফাইলটি আমদানি করুন প্রোফাইলারের সেশনস ফলকে এবং তারপরে ফাইল থেকে লোড নির্বাচন করা। তারপরে আপনি নিম্নলিখিত ব্যতিক্রমগুলি সহ আপনি সাধারণত কীভাবে চান তার অনুরূপ সিপিইউ প্রোফাইলারে এর ডেটা পরিদর্শন করতে পারেন:
- সিপিইউ ক্রিয়াকলাপ সিপিইউ টাইমলাইনের সাথে প্রতিনিধিত্ব করা হয় না।
- থ্রেড ক্রিয়াকলাপের সময়রেখাটি কেবলমাত্র যেখানে প্রতিটি থ্রেডের জন্য ট্রেস ডেটা উপলব্ধ এবং প্রকৃত থ্রেডের রাজ্যগুলি নয় (যেমন দৌড়াতে, অপেক্ষা করা বা ঘুমানো) কেবল নির্দেশ করে।
ডিবাগ এপিআই ব্যবহার করে সিপিইউ ক্রিয়াকলাপ রেকর্ড করুন
আপনি এখন ডিবাগ এপিআই দিয়ে আপনার অ্যাপ্লিকেশনটি উপকরণ দিয়ে সিপিইউ প্রোফাইলারে সিপিইউ ক্রিয়াকলাপ রেকর্ডিং শুরু এবং বন্ধ করতে পারেন। আপনি আপনার অ্যাপ্লিকেশনটিকে কোনও ডিভাইসে স্থাপন করার পরে, যখন আপনার অ্যাপ্লিকেশনটি startMethodTracing(String tracePath)
কল করে তখন প্রোফাইলার স্বয়ংক্রিয়ভাবে সিপিইউ ক্রিয়াকলাপটি রেকর্ডিং শুরু করে এবং যখন আপনার অ্যাপ্লিকেশনটি stopMethodTracing()
কল করে তখন প্রোফাইলার রেকর্ডিং বন্ধ করে দেয়। এই এপিআই ব্যবহার করে ট্রিগার করা সিপিইউ ক্রিয়াকলাপটি রেকর্ড করার সময়, সিপিইউ প্রোফাইলারটি নির্বাচিত সিপিইউ রেকর্ডিং কনফিগারেশন হিসাবে ডিবাগ এপিআই দেখায়।
শক্তি প্রোফাইলার
এনার্জি প্রোফাইলার আপনার অ্যাপ্লিকেশনটির আনুমানিক শক্তি ব্যবহারের দৃশ্যের পাশাপাশি সিস্টেম ইভেন্টগুলি যা শক্তি ব্যবহারকে প্রভাবিত করে যেমন ওয়াকলকস, অ্যালার্ম এবং চাকরিগুলি প্রদর্শন করে।
আপনি যখন সংযুক্ত ডিভাইস বা অ্যান্ড্রয়েড এমুলেটর অ্যান্ড্রয়েড 8.0 (এপিআই 26) বা উচ্চতর চলমান আপনার অ্যাপটি চালানোর সময় প্রোফাইলার উইন্ডোর নীচে একটি নতুন সারি হিসাবে উপস্থিত হয়।
শক্তি প্রোফাইলার ভিউ সর্বাধিক করতে শক্তি সারি ক্লিক করুন। সিপিইউ, নেটওয়ার্ক এবং অবস্থান (জিপিএস) সংস্থানগুলির পাশাপাশি প্রাসঙ্গিক সিস্টেম ইভেন্টগুলির দ্বারা শক্তি ব্যবহারের একটি ভাঙ্গন দেখতে টাইমলাইনে একটি বারের উপরে আপনার মাউস পয়েন্টারটি রাখুন।
শক্তি ব্যবহারকে প্রভাবিত করে এমন সিস্টেম ইভেন্টগুলি শক্তি টাইমলাইনের নীচে সিস্টেমের টাইমলাইনে নির্দেশিত হয়। নির্দিষ্ট সময়সীমার মধ্যে সিস্টেম ইভেন্টগুলির বিবরণ ইভেন্ট ফলকে প্রদর্শিত হয় যখন আপনি শক্তি সময়রেখায় একটি সময়সীমা নির্বাচন করেন।
কল স্ট্যাক এবং একটি সিস্টেম ইভেন্টের জন্য অন্যান্য বিশদ যেমন ওয়াকলকের মতো দেখতে, ইভেন্ট ফলকে এটি নির্বাচন করুন। কোনও সিস্টেম ইভেন্টের জন্য দায়ী কোডে যেতে, কল স্ট্যাকের প্রবেশের ডাবল ক্লিক করুন।
লিন্ট চেকিং
অ্যান্ড্রয়েড স্টুডিও 3.2 লিন্ট চেকিংয়ের জন্য অনেকগুলি নতুন এবং উন্নত বৈশিষ্ট্য অন্তর্ভুক্ত করে।
নতুন লিন্ট চেকগুলি আপনাকে সম্ভাব্য ব্যবহারযোগ্যতার সমস্যাগুলি সম্পর্কে সতর্কতা থেকে শুরু করে সম্ভাব্য সুরক্ষা দুর্বলতা সম্পর্কিত উচ্চ-অগ্রাধিকারের ত্রুটিগুলি পর্যন্ত সাধারণ কোড সমস্যাগুলি সন্ধান এবং সনাক্ত করতে সহায়তা করে।
জাভা/কোটলিন আন্তঃব্যবহারযোগ্যতার জন্য লিন্ট চেক
আপনার জাভা কোডটি আপনার কোটলিন কোডের সাথে ভালভাবে আন্তঃসংযোগ করেছে তা নিশ্চিত করার জন্য, নতুন লিন্ট চেকগুলি কোটলিন ইন্টারপ গাইডে বর্ণিত সেরা অনুশীলনগুলি প্রয়োগ করে। এই চেকগুলির উদাহরণগুলির মধ্যে রয়েছে নালিবিলিটি টীকাগুলির উপস্থিতি, কোটলিন হার্ড কীওয়ার্ডগুলির ব্যবহার এবং ল্যাম্বদা প্যারামিটারগুলি সর্বশেষে স্থাপন করা।
এই চেকগুলি সক্ষম করতে, সেটিংস ডায়ালগটি খোলার জন্য ফাইল> সেটিংস ( অ্যান্ড্রয়েড স্টুডিও> ম্যাকের পছন্দগুলি ) ক্লিক করুন, সম্পাদক> পরিদর্শন> অ্যান্ড্রয়েড> লিন্ট> ইন্টারঅ্যাপেরিবিলিটি> কোটলিন আন্তঃব্যবহারযোগ্যতা বিভাগে নেভিগেট করুন এবং আপনি সক্ষম করতে চান এমন নিয়মগুলি নির্বাচন করুন।

কমান্ড-লাইন বিল্ডগুলির জন্য এই চেকগুলি সক্ষম করতে, নিম্নলিখিতগুলি আপনার বিল্ডগুলিতে যুক্ত করুন build.gradle
ফাইল:
android {
lintOptions {
check 'Interoperability'
}
}
টুকরা জন্য লিন্ট চেক
স্লাইসগুলির জন্য নতুন লিন্ট চেকগুলি আপনি সঠিকভাবে স্লাইসগুলি তৈরি করছেন তা নিশ্চিত করতে সহায়তা করে। উদাহরণস্বরূপ, লিন্ট চেকগুলি আপনাকে সতর্ক করে দেয় যদি আপনি কোনও টুকরোতে প্রাথমিক ক্রিয়া বরাদ্দ না করে থাকেন।
নতুন গ্রেডল টার্গেট
সোর্স কোডে সরাসরি লিন্ট চেক দ্বারা প্রস্তাবিত সমস্ত নিরাপদ ফিক্সগুলি প্রয়োগ করতে নতুন lintFix
গ্রেডল টাস্কটি ব্যবহার করুন। একটি লিন্ট চেকের উদাহরণ যা প্রয়োগের জন্য নিরাপদ ফিক্সের পরামর্শ দেয় তা হ'ল SyntheticAccessor
।
মেটাডেটা আপডেট
অ্যান্ড্রয়েড 9 (এপিআই স্তর 28) এর সাথে কাজ করার জন্য লিন্ট চেকগুলির জন্য বিভিন্ন মেটাডেটা যেমন পরিষেবা কাস্ট চেক, আপডেট করা হয়েছে।
সতর্কতা যদি কোনও নতুন বৈকল্পিক লিন্ট চালানো হয়
লিন্ট এখন রেকর্ড করে কোন বৈকল্পিক এবং সংস্করণ একটি বেসলাইন দিয়ে রেকর্ড করা হয়েছে, এবং লিন্ট আপনাকে সতর্ক করে দেয় যদি আপনি এটি বেসলাইনটি তৈরি করা হয়েছিল তার চেয়ে আলাদা বৈকল্পিকের উপর এটি চালনা করেন।
বিদ্যমান লিন্ট চেকের উন্নতি
অ্যান্ড্রয়েড স্টুডিও 3.2 এর মধ্যে বিদ্যমান লিন্ট চেকগুলিতে অনেক উন্নতি অন্তর্ভুক্ত রয়েছে। উদাহরণস্বরূপ, রিসোর্স চক্র চেকগুলি এখন অতিরিক্ত সংস্থান প্রকারের ক্ষেত্রে প্রযোজ্য এবং অনুবাদ ডিটেক্টর সম্পাদকে, ফ্লাইতে অনুপস্থিত অনুবাদগুলি খুঁজে পেতে পারে।
ইস্যু আইডি আরও আবিষ্কারযোগ্য
ইস্যু আইডিগুলি এখন আরও বেশি জায়গায় দেখানো হয়েছে, পরিদর্শন ফলাফল উইন্ডো সহ। এটি আপনার পক্ষে build.gradle
lintOptions
মাধ্যমে নির্দিষ্ট চেকগুলি সক্ষম বা অক্ষম করার জন্য প্রয়োজনীয় তথ্যগুলি সন্ধান করা আপনার পক্ষে সহজ করে তোলে।
আরও তথ্যের জন্য, গ্রেডের সাথে লিন্ট বিকল্পগুলি কনফিগার করুন ।
ডেটা বাইন্ডিং ভি 2
ডেটা বাইন্ডিং ভি 2 এখন ডিফল্টরূপে সক্ষম করা হয়েছে এবং ভি 1 এর সাথে সামঞ্জস্যপূর্ণ। এর অর্থ হ'ল, যদি আপনার কাছে ভি 1 এর সাথে সংকলিত লাইব্রেরির নির্ভরতা থাকে তবে আপনি ডেটা বাইন্ডিং ভি 2 ব্যবহার করে প্রকল্পগুলির সাথে সেগুলি ব্যবহার করতে পারেন। তবে নোট করুন যে ভি 1 ব্যবহার করে প্রকল্পগুলি ভি 2 এর সাথে সংকলিত নির্ভরতাগুলি গ্রাস করতে পারে না।
D8 desugaring
অ্যান্ড্রয়েড স্টুডিও ৩.১ -এ, আমরা সামগ্রিক বিল্ড সময়কে হ্রাস করে একটি পরীক্ষামূলক বৈশিষ্ট্য হিসাবে ডি 8 সরঞ্জামে ডিসুগারিং পদক্ষেপটি সংহত করেছি। অ্যান্ড্রয়েড স্টুডিওতে 3.2 -এ, ডি 8 এর সাথে ডেসুগারিং ডিফল্টরূপে চালু হয়।
নতুন কোড সঙ্কুচিত
আর 8 হ'ল কোড সঙ্কুচিত এবং অবহেলা করার জন্য একটি নতুন সরঞ্জাম যা অগ্রগতি প্রতিস্থাপন করে। আপনি আপনার প্রকল্পের gradle.properties
ফাইলগুলিতে নিম্নলিখিতগুলি অন্তর্ভুক্ত করে আর 8 এর পূর্বরূপ সংস্করণ ব্যবহার শুরু করতে পারেন:
android.enableR8 = true
মাল্টি-এপিক্সের জন্য ডিফল্ট এবিস পরিবর্তন করা হয়েছে
একাধিক এপিকে তৈরি করার সময় যা প্রতিটি আলাদা এবিআই লক্ষ্য করে, প্লাগইনটি আর ডিফল্টরূপে নিম্নলিখিত এবিআইগুলির জন্য এপিকে তৈরি করে না: mips
, mips64
এবং armeabi
।
আপনি যদি এই এবিসকে লক্ষ্য করে এমন APKs তৈরি করতে চান তবে আপনাকে অবশ্যই এনডিকে আর 16 বি বা তার চেয়ে কম ব্যবহার করতে হবে এবং নীচে দেখানো হিসাবে আপনার build.gradle
ফাইলটিতে এবিস নির্দিষ্ট করতে হবে:
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
দ্রষ্টব্য: এই আচরণ পরিবর্তনটি অ্যান্ড্রয়েড স্টুডিও 3.1 আরসি 1 এবং উচ্চতর অন্তর্ভুক্ত।
সিএমকে বিল্ড ফাইলগুলির জন্য উন্নত সম্পাদক বৈশিষ্ট্যগুলি
আপনি যদি আপনার প্রকল্পে সি এবং সি ++ কোড যুক্ত করতে সিএমকে ব্যবহার করেন তবে অ্যান্ড্রয়েড স্টুডিওতে এখন আপনার সিএমকে বিল্ড স্ক্রিপ্টগুলি সম্পাদনা করতে সহায়তা করার জন্য উন্নত সম্পাদক বৈশিষ্ট্যগুলি অন্তর্ভুক্ত রয়েছে যেমন নিম্নলিখিত:
- সিনট্যাক্স হাইলাইটিং এবং কোড সমাপ্তি: আইডিই এখন সাধারণ সিএমইকে কমান্ডের জন্য কোড সমাপ্তির হাইলাইট করে এবং পরামর্শ দেয়। অতিরিক্তভাবে, আপনি কোনও ফাইল কন্ট্রোল কী (ম্যাকের কমান্ড) টিপতে ক্লিক করে নেভিগেট করতে পারেন।
- কোড রিফর্ম্যাটিং: আপনি এখন আপনার সিএমকে বিল্ড স্ক্রিপ্টগুলিতে কোড শৈলী প্রয়োগ করতে ইন্টেলিজের কোড রিফর্ম্যাট বিকল্পটি ব্যবহার করতে পারেন।
- নিরাপদ রিফ্যাক্টরিং: আইডিইর অন্তর্নির্মিত রিফ্যাক্টরিং সরঞ্জামগুলি এখন আপনি আপনার সিএমকে বিল্ড স্ক্রিপ্টগুলিতে উল্লেখ করা ফাইলগুলির নাম পরিবর্তন বা মুছে ফেলছেন কিনা তাও পরীক্ষা করে দেখুন।
বাহ্যিক শিরোনাম ফাইল নেভিগেট করুন
অ্যান্ড্রয়েড স্টুডিওর পূর্ববর্তী সংস্করণগুলিতে প্রকল্প উইন্ডোটি ব্যবহার করার সময়, আপনি কোনও স্থানীয় প্রকল্প থেকে তৈরি লাইব্রেরির সাথে সম্পর্কিত কেবল শিরোনাম ফাইলগুলি নেভিগেট করতে এবং পরিদর্শন করতে পারেন। এই রিলিজের সাহায্যে আপনি এখন আপনার অ্যাপ্লিকেশন প্রকল্পে আমদানি করা বাহ্যিক সি/সি ++ লাইব্রেরি নির্ভরতা সহ অন্তর্ভুক্ত শিরোনাম ফাইলগুলি দেখতে এবং পরিদর্শন করতে পারেন।
আপনি যদি ইতিমধ্যে আপনার প্রকল্পে সি/সি ++ কোড এবং গ্রন্থাগারগুলি অন্তর্ভুক্ত করেন তবে মূল মেনু থেকে ভিউ> সরঞ্জাম উইন্ডোজ> প্রকল্পটি নির্বাচন করে আইডিইর বাম দিকে প্রকল্প উইন্ডোটি খুলুন এবং ড্রপ-ডাউন মেনু থেকে অ্যান্ড্রয়েড নির্বাচন করুন। সিপিপি ডিরেক্টরিতে, আপনার অ্যাপ্লিকেশন প্রকল্পের আওতার মধ্যে থাকা সমস্ত শিরোনামগুলি নীচে দেখানো হিসাবে আপনার স্থানীয় সি/সি ++ লাইব্রেরির নির্ভরতাগুলির জন্য অন্তর্ভুক্ত নোডের অধীনে সংগঠিত হয়েছে।

নেটিভ মাল্টিডেক্স ডিফল্টরূপে সক্ষম
অ্যান্ড্রয়েড স্টুডিওর পূর্ববর্তী সংস্করণগুলি অ্যান্ড্রয়েড এপিআই স্তর 21 বা ততোধিক চালিত কোনও ডিভাইসে কোনও অ্যাপ্লিকেশনটির ডিবাগ সংস্করণ স্থাপন করার সময় নেটিভ মাল্টিডেক্স সক্ষম করেছে। এখন, আপনি কোনও ডিভাইসে মোতায়েন করছেন বা রিলিজের জন্য একটি এপিকে তৈরি করছেন না কেন, গ্রেডের জন্য অ্যান্ড্রয়েড প্লাগইনটি সমস্ত মডিউলগুলির জন্য নেটিভ মাল্টিডেক্স সক্ষম করে যা minSdkVersion=21
বা তার বেশি সেট করে।
এএপিটি 2 গুগলের মাভেন সংগ্রহস্থলে চলে গেছে
অ্যান্ড্রয়েড স্টুডিও 3.2 দিয়ে শুরু করে, এএপিটি 2 (অ্যান্ড্রয়েড অ্যাসেট প্যাকেজিং সরঞ্জাম 2) এর উত্স হ'ল গুগলের মাভেন সংগ্রহস্থল।
এএপিটি 2 ব্যবহার করতে, আপনার 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() } }
এএপিটি 2 এর নতুন সংস্করণটি উইন্ডোজে অ-এএসসিআইআই অক্ষরগুলির উন্নত হ্যান্ডলিং সহ অনেকগুলি সমস্যা সমাধান করে।
চাহিদা উপর কনফিগারেশন অপসারণ
চাহিদা পছন্দের কনফিগারটি অ্যান্ড্রয়েড স্টুডিও থেকে সরানো হয়েছে।
অ্যান্ড্রয়েড স্টুডিও আর গ্রেডে- --configure-on-demand
যুক্তিটি পাস করে না।
এডিবি সংযোগ সহকারী
নতুন এডিবি সংযোগ সহকারী আপনাকে অ্যান্ড্রয়েড ডিবাগ ব্রিজ (এডিবি) সংযোগের মাধ্যমে একটি ডিভাইস সেট আপ এবং ব্যবহার করতে সহায়তা করার জন্য ধাপে ধাপে নির্দেশাবলী সরবরাহ করে।
সহকারী শুরু করতে, সরঞ্জাম> সংযোগ সহকারী চয়ন করুন।
এডিবি সংযোগ সহকারী সহকারী প্যানেলে একাধিক পৃষ্ঠাগুলিতে নির্দেশাবলী, ইন-কনটেক্সট নিয়ন্ত্রণ এবং সংযুক্ত ডিভাইসের একটি তালিকা সরবরাহ করে।
এমুলেটর উন্নতি
আপনি এখন অ্যান্ড্রয়েড এমুলেটরটিতে যে কোনও সময় কোনও এভিডি (অ্যান্ড্রয়েড ভার্চুয়াল ডিভাইস) এর স্ন্যাপশটগুলি সংরক্ষণ এবং লোড করতে পারেন, এটি পরীক্ষার জন্য একটি ইমুলেটেড ডিভাইসটিকে একটি পরিচিত অবস্থায় ফিরিয়ে দেওয়া দ্রুত এবং সহজ করে তোলে। আপনি যখন এভিডি ম্যানেজার ব্যবহার করে কোনও এভিডি সম্পাদনা করেন, আপনি এভিডি শুরু হওয়ার পরে কোন এভিডি স্ন্যাপশটটি লোড করতে পারেন তা নির্দিষ্ট করতে পারেন।
এভিডি স্ন্যাপশটগুলি সংরক্ষণ, লোডিং এবং পরিচালনার জন্য নিয়ন্ত্রণগুলি এখন এমুলেটরের বর্ধিত নিয়ন্ত্রণ উইন্ডোতে স্ন্যাপশট ট্যাবে রয়েছে।
বিশদ জন্য, স্ন্যাপশট দেখুন।
এমুলেটরে কী নতুন এবং পরিবর্তিত হয়েছে সে সম্পর্কে অতিরিক্ত তথ্যের জন্য, এমুলেটর রিলিজ নোটগুলি দেখুন।
3.1 (মার্চ 2018)
অ্যান্ড্রয়েড স্টুডিও 3.1.0 একটি প্রধান প্রকাশ যা বিভিন্ন নতুন বৈশিষ্ট্য এবং উন্নতি অন্তর্ভুক্ত করে।
3.1.4 (আগস্ট 2018)
অ্যান্ড্রয়েড স্টুডিও 3.1 এর এই আপডেটটিতে নিম্নলিখিত পরিবর্তনগুলি এবং ফিক্সগুলি অন্তর্ভুক্ত রয়েছে:
- বান্ডিলযুক্ত কোটলিন এখন সংস্করণ 1.2.50।
-
kotlin-stdlib-jdk* artifacts
পরিবর্তেkotlin-stdlib-jre*
আর্টিফ্যাক্টগুলির সাথে নতুন প্রকল্পগুলি তৈরি করা হয়েছে, যা অবমূল্যায়িত হয়। - প্রোগুয়ার্ড বিধিগুলির আর 8 পার্সিং উন্নত করা হয়েছে।
- নিম্নলিখিত বাগ সংশোধন করা হয়েছে:
- কোটলিন মেইন ক্লাস চালানোর চেষ্টা করা একটি ত্রুটি দিয়ে ব্যর্থ হয়েছে:
"Error: Could not find or load main class..."
- আর 8 নির্দিষ্ট অপ্টিমাইজেশন সম্পাদন করার সময় একটি অসীম লুপ প্রবেশ করেছে।
- রান উইন্ডোতে পুনরায় ব্যর্থ ব্যর্থ টেস্ট কমান্ড ব্যবহার করে কখনও কখনও ভুলভাবে "কোনও পরীক্ষা পাওয়া যায় নি" বার্তাটি ফিরে আসে।
- ডি 8 সঠিকভাবে
invoke-virtual
দৃষ্টান্তগুলি পরিচালনা করেনি, যা একটিVerifyError
সাথে ক্র্যাশ ঘটায়:invoke-super/virtual can't be used on private method
- ডেটা বাইন্ডিং সংকলকটি
com.android.tools:annotations
: annotations এর একটি পুরানো সংস্করণের উপর নির্ভর করে। সংকলকটি এখন উপলভ্য হলে বেস প্রকল্প থেকে সরঞ্জাম টীকাগুলি ব্যবহার করে। - প্রোফাইলারগুলি ব্যবহার করার সময় অ্যান্ড্রয়েড স্টুডিও খণ্ডের ট্রানজিশনের সময় ক্র্যাশ হয়েছিল।
- একটি পাঠ্য বাক্সের সাথে কোনও লেআউট ডিবাগ করার সময় ডিবাগারটি ক্র্যাশ হয়েছিল।
- ডি 8 বিশেষ অক্ষর সহ কিছু জিপ ফাইল পড়তে ব্যর্থ হয়েছিল।
3.1.3 (জুন 2018)
অ্যান্ড্রয়েড স্টুডিও 3.1 এর এই আপডেটটিতে নিম্নলিখিত বাগগুলির জন্য ফিক্সগুলি অন্তর্ভুক্ত রয়েছে:
- আপনি লেআউট সম্পাদকটি ব্যবহার করার পরে মেমোরি ফাঁস অ্যান্ড্রয়েড স্টুডিওকে ধীর এবং প্রতিক্রিয়াহীন হয়ে উঠেছে। এই আপডেটে এই বেশিরভাগ সমস্যার জন্য ফিক্সগুলি অন্তর্ভুক্ত রয়েছে। আমরা অতিরিক্ত মেমরি ফাঁসকে সম্বোধন করতে শীঘ্রই আরও একটি আপডেট প্রকাশের ইচ্ছা করি।
- ডি 8 দিয়ে নির্মিত কিছু অ্যাপ্লিকেশন কিছু ভেরিজন এলিপসিস ট্যাবলেটগুলিতে ক্র্যাশ হয়েছে।
- ডি 8 দিয়ে নির্মিত অ্যাপ্লিকেশনগুলির ইনস্টলেশন অ্যান্ড্রয়েড 5.0 বা 5.1 (এপিআই স্তর 21 বা 22) চলমান ডিভাইসগুলিতে একটি
INSTALL_FAILED_DEXOPT
ত্রুটি সহ ব্যর্থ হয়েছে। - কিছু অ্যাপ্লিকেশন যা ওকেএইচটিটিপি লাইব্রেরি ব্যবহার করেছে এবং ডি 8 দিয়ে নির্মিত হয়েছিল অ্যান্ড্রয়েড 4.4 (এপিআই স্তর 19) চলমান ডিভাইসগুলিতে ক্র্যাশ হয়েছে।
- অ্যান্ড্রয়েড স্টুডিও কখনও কখনও
com.intellij.psi.jsp.JspElementType
এর জন্য ক্লাস ইনিশিয়ালাইজেশন চলাকালীন একটিProcessCanceledException
দিয়ে শুরু করতে ব্যর্থ হয়।
3.1.2 (এপ্রিল 2018)
অ্যান্ড্রয়েড স্টুডিও 3.1 এর এই আপডেটটিতে নিম্নলিখিত বাগগুলির জন্য ফিক্সগুলি অন্তর্ভুক্ত রয়েছে:
- কিছু ক্ষেত্রে, অ্যান্ড্রয়েড স্টুডিও প্রস্থানের সময় অনির্দিষ্টকালের জন্য ঝুলিয়ে রাখে।
উত্স সেটগুলির সাথে কনফিগার করা বিল্ডগুলি নিম্নলিখিত বার্তাটি দিয়ে ব্যর্থ হয়েছিল যখন তাত্ক্ষণিক রান সক্ষম করা হয়েছিল:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- যখন তাত্ক্ষণিক রান সক্ষম করা হয়েছিল, রান কমান্ড দ্বারা ট্রিগার করা হলে নতুন কোটলিন প্রকল্পগুলির বিল্ডগুলি ব্যর্থ হয়েছিল।
-
build.gradle
। নিম্নলিখিত ত্রুটি বার্তা সহ বিপুল সংখ্যক মডিউল বা বাহ্যিক নির্ভরতা সহ কিছু প্রকল্পে ডেক্সিংয়ের সময় বিল্ড ব্যর্থতাগুলি ঘটেছিল:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- ডি 8 মেইন ডেক্স তালিকার গণনা কিছু প্রতিফলিত আমন্ত্রণকে বিবেচনায় নিচ্ছিল না।
এই আপডেটে এমন পরিবর্তনগুলিও অন্তর্ভুক্ত রয়েছে যা কিছু পরিস্থিতিতে গ্রেড থেকে লিন্ট চেকগুলি আরও দ্রুততর করে তোলে।
3.1.1 (এপ্রিল 2018)
অ্যান্ড্রয়েড স্টুডিও 3.1 এর এই আপডেটটিতে নিম্নলিখিত বাগগুলির জন্য ফিক্সগুলি অন্তর্ভুক্ত রয়েছে:
কিছু ক্ষেত্রে, অ্যান্ড্রয়েড স্টুডিও 3.0.০ এ তৈরি একটি প্রকল্প যখন অ্যান্ড্রয়েড স্টুডিও 3.1-এ প্রথমবারের জন্য খোলা হয়েছিল, তখন গ্রেড-অ্যাওয়ার মেক মেক টাস্কটি রান/ডিবাগ কনফিগারেশনে লঞ্চের অঞ্চল থেকে সরানো হয়েছিল। ফলাফলটি ছিল যে রান বা ডিবাগ বোতামটি ক্লিক করার সময় প্রকল্পগুলি তৈরি হয়নি, যার ফলে তাত্ক্ষণিক রান ব্যবহার করার সময় ভুল এপিকে এবং ক্র্যাশগুলি স্থাপনের মতো ব্যর্থতা দেখা দেয়।
এই সমস্যাটি সমাধান করার জন্য, অ্যান্ড্রয়েড স্টুডিও 3.1.1 এই এন্ট্রিটি অনুপস্থিত প্রকল্পগুলির জন্য রান কনফিগারেশনে গ্রেডল-অ্যাওয়ার মেক টাস্ক যুক্ত করেছে। প্রকল্পটি লোড হওয়ার পরে প্রথম গ্রেডল সিঙ্কের পরে এই পরিবর্তনটি ঘটে।
- অ্যাডভান্সড প্রোফাইলিং সক্ষম করা থাকলে একটি পাঠ্য বাক্সের সাথে একটি লেআউট ডিবাগ করার সময় ডিবাগারটি ক্র্যাশ হয়েছিল।
- আপনি বিল্ড ভেরিয়েন্টগুলিতে ক্লিক করার পরে অ্যান্ড্রয়েড স্টুডিও হিমশীতল।
- এআর (অ্যান্ড্রয়েড সংরক্ষণাগার) ফাইলগুলি একবার গ্রেডল সিঙ্ক প্রক্রিয়া চলাকালীন এবং একবার গ্রেডল বিল্ড প্রক্রিয়া চলাকালীন দু'বার বের করা হয়েছিল।
- এসভিজি ফাইলগুলি থেকে আমদানি করা কিছু ভেক্টর ড্রইবলগুলি থেকে উপাদানগুলি অনুপস্থিত ছিল।
-
compile
নির্ভরতা কনফিগারেশনের অবমূল্যায়ন সম্পর্কিত সতর্কতাimplementation
এবংapi
কনফিগারেশন সম্পর্কিত আরও ভাল গাইডেন্সের সাথে আপডেট করা হয়েছে।compile
কনফিগারেশন ব্যবহার থেকে দূরে সরে যাওয়ার বিশদগুলির জন্য, নতুন নির্ভরতা কনফিগারেশনের জন্য ডকুমেন্টেশন দেখুন।
কোডিং/আইডিই
ইন্টেলিজ 2017.3.3
কোর অ্যান্ড্রয়েড স্টুডিও আইডিই 2017.3.3 রিলিজের মাধ্যমে ইন্টেলিজ আইডিয়া থেকে উন্নতির সাথে আপডেট করা হয়েছে। উন্নতিগুলির মধ্যে রয়েছে সংগ্রহ এবং স্ট্রিংগুলির জন্য আরও ভাল নিয়ন্ত্রণ প্রবাহ বিশ্লেষণ, উন্নত নালিবিলিটি অনুমান, নতুন দ্রুত সংশোধন এবং আরও অনেক কিছু অন্তর্ভুক্ত।
বিশদগুলির জন্য, জেটব্রাইনস ইন্টেলিজ আইডিয়া সংস্করণগুলির জন্য 2017.2 এবং 2017.3 এর জন্য নোটগুলি প্রকাশ করুন, পাশাপাশি বাগ-ফিক্স আপডেটের জন্য জেটব্রাইন প্রকাশের নোটগুলি দেখুন।
কক্ষের সাথে এসকিউএল সম্পাদনা উন্নতি
আপনি যখন রুম ডাটাবেস লাইব্রেরি ব্যবহার করেন, আপনি এসকিউএল সম্পাদনাটিতে বেশ কয়েকটি উন্নতির সুবিধা নিতে পারেন:
- একটি
Query
মধ্যে কোড সমাপ্তি এসকিউএল টেবিলগুলি (সত্তা), কলামগুলি, ক্যোয়ারী প্যারামিটার, এলিয়াস, যোগদান, সাবকিউরিগুলি এবং ধারাগুলির সাথে বোঝে। - এসকিউএল সিনট্যাক্স হাইলাইটিং এখন কাজ করে।
- আপনি এসকিউএল-তে একটি টেবিলের নামটিতে ডান ক্লিক করতে পারেন এবং এর নাম পরিবর্তন করতে পারেন, যা সংশ্লিষ্ট জাভা বা কোটলিন কোডটি আবারও লিখেছেন (উদাহরণস্বরূপ, ক্যোয়ারির রিটার্নের ধরণ সহ)। নামকরণ অন্য দিকেও কাজ করে, তাই জাভা ক্লাস বা ফিল্ডের নামকরণ করা সংশ্লিষ্ট এসকিউএল কোডটি পুনরায় লিখতে পারে।
- এসকিউএল ব্যবহারগুলি ব্যবহার করার সময় দেখানো হয় (ডান ক্লিক করুন এবং প্রসঙ্গ মেনু থেকে ব্যবহারগুলি বেছে নিন )।
- জাভা বা কোটলিন কোডে কোনও এসকিউএল সত্তার ঘোষণায় নেভিগেট করতে, আপনি সত্তায় ক্লিক করার সময় নিয়ন্ত্রণ (ম্যাকের উপর কমান্ড) রাখতে পারেন।
ঘরের সাথে এসকিউএল ব্যবহারের তথ্যের জন্য, ঘর ব্যবহার করে কোনও স্থানীয় ডাটাবেসে ডেটা সংরক্ষণ করুন ।
ডেটা বাইন্ডিং আপডেট
এই আপডেটে ডেটা বাইন্ডিংয়ের জন্য বেশ কয়েকটি উন্নতি অন্তর্ভুক্ত রয়েছে:
আপনি এখন ডেটা বাইন্ডিং এক্সপ্রেশনগুলিতে একটি পর্যবেক্ষণযোগ্য ক্ষেত্র হিসাবে একটি
LiveData
অবজেক্ট ব্যবহার করতে পারেন।ViewDataBinding
ক্লাসে এখন একটি নতুনsetLifecycle()
পদ্ধতি অন্তর্ভুক্ত রয়েছে যা আপনিLiveData
অবজেক্টগুলি পর্যবেক্ষণ করতে ব্যবহার করেন।ObservableField
শ্রেণি এখন তার কনস্ট্রাক্টরে অন্যান্যObservable
বস্তু গ্রহণ করতে পারে।আপনি আপনার ডেটা বাইন্ডিং ক্লাসের জন্য একটি নতুন ইনক্রিমেন্টাল সংকলক পূর্বরূপ দেখতে পারেন। এই নতুন সংকলক এবং এটি সক্ষম করার জন্য নির্দেশাবলীর বিশদগুলির জন্য, ডেটা বাইন্ডিং সংকলক ভি 2 দেখুন।
নতুন সংকলকের সুবিধাগুলি নিম্নলিখিতগুলি অন্তর্ভুক্ত করে:
-
ViewBinding
ক্লাসগুলি জাভা সংকলকের আগে গ্রেডের জন্য অ্যান্ড্রয়েড প্লাগইন দ্বারা উত্পাদিত হয়। - লাইব্রেরিগুলি প্রতিবার পুনর্নির্মাণের পরিবর্তে অ্যাপ্লিকেশনটি সংকলিত হলে তাদের উত্পন্ন বাইন্ডিং ক্লাস রাখে। এটি মাল্টি-মডিউল প্রকল্পগুলির জন্য পারফরম্যান্সকে ব্যাপকভাবে উন্নত করতে পারে।
-
সংকলক এবং গ্রেডল
ডি 8 হ'ল ডিফল্ট ডেক্স সংকলক
ডি 8 সংকলকটি এখন ডেক্স বাইটকোড তৈরির জন্য ডিফল্টরূপে ব্যবহৃত হয়।
এই নতুন ডেক্স সংকলকটি নিম্নলিখিতগুলি সহ বেশ কয়েকটি সুবিধা নিয়ে আসে:
- দ্রুত ডেক্সিং
- নিম্ন মেমরির ব্যবহার
- উন্নত কোড জেনারেশন (আরও ভাল নিবন্ধ বরাদ্দ, স্মার্ট স্ট্রিং টেবিল)
- কোডের মাধ্যমে পদক্ষেপ নেওয়ার সময় আরও ভাল ডিবাগিংয়ের অভিজ্ঞতা
এই সুবিধাগুলি পেতে আপনার কোড বা আপনার বিকাশের কর্মপ্রবাহে কোনও পরিবর্তন করার দরকার নেই, যদি না আপনি আগে ম্যানুয়ালি ডি 8 সংকলকটি অক্ষম করে থাকেন।
আপনি যদি আপনার gradle.properties
android.enableD8
কে false
সেট করেন তবে হয় সেই পতাকাটি মুছুন বা এটি true
সেট করুন:
android.enableD8=true
বিশদের জন্য, নতুন ডেক্স সংকলক দেখুন।
বর্ধিত desugaring
জাভা 8 ভাষার বৈশিষ্ট্যগুলি ব্যবহার করে এমন প্রকল্পগুলির জন্য, ইনক্রিমেন্টাল ডিসুগারিং ডিফল্টরূপে সক্ষম করা হয়, যা বিল্ড টাইমগুলিকে উন্নত করতে পারে।
ডেসুগারিং সিনট্যাকটিক চিনিকে এমন একটি আকারে রূপান্তর করে যা সংকলক আরও দক্ষতার সাথে প্রক্রিয়া করতে পারে।
আপনি আপনার প্রকল্পের gradle.properties
ফাইল:
android.enableIncrementalDesugaring=false
সরলীকৃত আউটপুট উইন্ডো
গ্রেডল কনসোলটি বিল্ড উইন্ডো দিয়ে প্রতিস্থাপন করা হয়েছে, এতে সিঙ্ক এবং বিল্ড ট্যাব রয়েছে।
নতুন, সরলীকৃত বিল্ড উইন্ডোটি কীভাবে ব্যবহার করবেন সে সম্পর্কে বিশদগুলির জন্য, বিল্ড প্রক্রিয়াটি পর্যবেক্ষণ করুন।
ব্যাচ আপডেট এবং ইনডেক্সিং কনচারেন্সি
গ্রেডল সিঙ্ক এবং আইডিই সূচক প্রক্রিয়াগুলি এখন অনেক বেশি দক্ষ, অনেকগুলি অপ্রয়োজনীয় সূচীকরণ ক্রিয়াকলাপগুলিতে সময় নষ্ট করে।
সি ++ এবং এলএলডিবি
আমরা সি ++ বিকাশের কোডিং, সিঙ্কিং, বিল্ডিং এবং ডিবাগিং পর্যায়গুলিতে অনেক গুণমান এবং কার্য সম্পাদনের উন্নতি করেছি। উন্নতিগুলি নিম্নলিখিত অন্তর্ভুক্ত:
আপনি যদি বড় সি ++ প্রকল্পগুলির সাথে কাজ করেন তবে আপনার বিল্ডিং প্রতীকগুলি ব্যয় করা সময় হ্রাসের ক্ষেত্রে একটি উল্লেখযোগ্য উন্নতি লক্ষ্য করা উচিত। বড় প্রকল্পগুলির জন্য সিঙ্ক সময়ও হ্রাস করা হয়।
সিএমইকে দিয়ে বিল্ডিং এবং সিঙ্ক করার সময় পারফরম্যান্স ক্যাশেড ফলাফলগুলির আরও আক্রমণাত্মক পুনরায় ব্যবহারের মাধ্যমে উন্নত করা হয়েছে।
আরও সি ++ ডেটা স্ট্রাকচারের জন্য ফর্ম্যাটারগুলি ("প্রিটি প্রিন্টার") সংযোজন এলএলডিবি আউটপুট পড়া সহজ করে তোলে।
এলএলডিবি এখন কেবলমাত্র অ্যান্ড্রয়েড 4.1 (এপিআই স্তর 16) এবং উচ্চতর সাথে কাজ করে।
দ্রষ্টব্য: অ্যান্ড্রয়েড স্টুডিও 3.0 বা তার বেশি সহ নেটিভ ডিবাগিং 32-বিট উইন্ডোতে কাজ করে না। আপনি যদি 32-বিট উইন্ডোজ ব্যবহার করছেন এবং নেটিভ কোডটি ডিবাগ করার প্রয়োজন হয় তবে অ্যান্ড্রয়েড স্টুডিও 2.3 ব্যবহার করুন।
কোটলিন
কোটলিন সংস্করণ 1.2.30 এ আপগ্রেড করা হয়েছে
অ্যান্ড্রয়েড স্টুডিও 3.1 এর মধ্যে কোটলিন সংস্করণ 1.2.30 অন্তর্ভুক্ত রয়েছে।
কোটলিন কোড এখন কমান্ড-লাইন লিন্ট চেক দিয়ে বিশ্লেষণ করা হয়েছে
কমান্ড লাইন থেকে লিন্ট চালানো এখন আপনার কোটলিন ক্লাস বিশ্লেষণ করে।
আপনি যে প্রতিটি প্রকল্পে লিন্ট চালাতে চান তার জন্য, গুগলের মাভেন রিপোজিটরিটি অবশ্যই শীর্ষ-স্তরের build.gradle
ফাইলটিতে অন্তর্ভুক্ত থাকতে হবে। ম্যাভেন রিপোজিটরিটি ইতিমধ্যে অ্যান্ড্রয়েড স্টুডিও 3.0 এবং উচ্চতর তৈরি প্রকল্পগুলির জন্য অন্তর্ভুক্ত রয়েছে।
কর্মক্ষমতা সরঞ্জাম
সিপিইউ প্রোফাইলার সহ নেটিভ সি ++ প্রক্রিয়া নমুনা
সিপিইউ প্রোফাইলারটিতে এখন আপনার অ্যাপের নেটিভ থ্রেডগুলির নমুনাযুক্ত ট্রেস রেকর্ড করার জন্য একটি ডিফল্ট কনফিগারেশন অন্তর্ভুক্ত রয়েছে। আপনি এই কনফিগারেশনটি অ্যান্ড্রয়েড 8.0 (এপিআই স্তর 26) বা উচ্চতর কোনও ডিভাইসে মোতায়েন করে এই কনফিগারেশনটি ব্যবহার করতে পারেন এবং তারপরে সিপিইউ প্রোফাইলারের রেকর্ডিং কনফিগারেশন ড্রপডাউন মেনু থেকে নমুনাযুক্ত (নেটিভ) নির্বাচন করে। এর পরে, আপনি সাধারণত যেমন চান তেমন একটি ট্রেস রেকর্ড করুন এবং পরিদর্শন করুন ।
আপনি রেকর্ডিং কনফিগারেশন তৈরি করে ডিফল্ট সেটিংস যেমন স্যাম্পলিং অন্তর পরিবর্তন করতে পারেন।
আপনার জাভা থ্রেডগুলি ট্রেস করতে ফিরে স্যুইচ করতে, একটি নমুনাযুক্ত (জাভা) বা চালিত (জাভা) কনফিগারেশন নির্বাচন করুন।
ফিল্টার সিপিইউ ট্রেস, মেমরি বরাদ্দ ফলাফল এবং হিপ ডাম্প
সিপিইউ প্রোফাইলার এবং মেমরি প্রোফাইলারটিতে একটি অনুসন্ধান বৈশিষ্ট্য অন্তর্ভুক্ত রয়েছে যা আপনাকে একটি পদ্ধতি ট্রেস, মেমরি বরাদ্দ বা হিপ ডাম্প রেকর্ড করে ফলাফল ফিল্টার করতে দেয়।

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

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

লেআউট সম্পাদক
লেআউট সম্পাদকের প্যালেটটি অনেক উন্নতি পেয়েছে:
- ভিউ এবং লেআউটগুলির জন্য বিভাগগুলির পুনর্গঠন।
- ভিউ এবং লেআউটগুলির জন্য নতুন সাধারণ বিভাগ, যা আপনি একটি প্রিয় কমান্ডের সাথে যুক্ত করতে পারেন।
- ভিউ এবং লেআউটগুলির জন্য উন্নত অনুসন্ধান ।
- নির্দিষ্ট ভিউ বা লেআউট উপাদানগুলির জন্য ডকুমেন্টেশন খোলার জন্য নতুন কমান্ড।
আপনি কোনও ভিউ বা লেআউটকে অন্য ধরণের ভিউ বা লেআউটে রূপান্তর করতে উপাদান গাছ বা ডিজাইন সম্পাদকটিতে নতুন কনভার্ট ভিউ কমান্ডটি ব্যবহার করতে পারেন।
আপনি এখন নতুন একটি সংযোগ তৈরি করে নির্বাচিত ভিউয়ের কাছে আইটেমগুলিতে সহজেই সীমাবদ্ধতা তৈরি করতে পারেন বৈশিষ্ট্য উইন্ডোটির শীর্ষে ভিউ ইন্সপেক্টরের বোতামগুলি।
রান এবং তাত্ক্ষণিক রান
নির্বাচিত ডিপ্লোয়মেন্ট টার্গেট ডায়ালগটিতে ভবিষ্যতের লঞ্চ বিকল্পের জন্য একই নির্বাচনের আচরণটি আরও সামঞ্জস্যপূর্ণ করা হয়েছে। যদি একই নির্বাচনের বিকল্পটি সক্ষম করা থাকে তবে নির্বাচিত ডিভাইসটি আর সংযুক্ত না হওয়া পর্যন্ত আপনি প্রথমবারের মতো প্রথমবারের মতো চালু করুন ডিপ্লোয়মেন্ট টার্গেট ডায়ালগটি খোলে।
অ্যান্ড্রয়েড 8.0 (এপিআই স্তর 26) বা উচ্চতর চালিত কোনও ডিভাইসকে লক্ষ্য করার সময়, তাত্ক্ষণিক রান কোনও অ্যাপ্লিকেশন পুনরায় চালু না করে সংস্থানগুলিতে পরিবর্তনগুলি মোতায়েন করতে পারে। এটি সম্ভব কারণ সংস্থানগুলি একটি বিভক্ত এপিকে অন্তর্ভুক্ত রয়েছে।
এমুলেটর
অ্যান্ড্রয়েড স্টুডিও 3.0.০ এর পর থেকে এমুলেটরে কী নতুন এবং পরিবর্তিত হয়েছে তার বিশদগুলির জন্য, অ্যান্ড্রয়েড এমুলেটর রিলিজ নোটগুলি সংস্করণ 27.0.2 থেকে সংস্করণ 27.1.12 এর মাধ্যমে দেখুন।
প্রধান উন্নতিগুলি নিম্নলিখিতগুলি অন্তর্ভুক্ত করে:
- কাস্টম স্টার্ট স্টেট সংরক্ষণের জন্য সেভ নাও কমান্ডটি ব্যবহার করার ক্ষমতা সহ এমুলেটর স্টেট এবং দ্রুত শুরু করার জন্য দ্রুত বুট স্ন্যাপশটগুলি।
- উইন্ডোজহীন এমুলেটর স্ক্রিন।
- অ্যান্ড্রয়েড 8.0 (এপিআই স্তর 26), অ্যান্ড্রয়েড 8.1 (এপিআই স্তর 27) এবং অ্যান্ড্রয়েড পি বিকাশকারী পূর্বরূপের জন্য সিস্টেম চিত্রগুলি।
ব্যবহারকারী ইন্টারফেস এবং ব্যবহারকারীর অভিজ্ঞতার উন্নতি
আরও সরঞ্জামদণ্ড, কীবোর্ড শর্টকাট এবং সহায়ক বার্তা
আমরা অ্যান্ড্রয়েড স্টুডিও জুড়ে অনেক জায়গায় টুলটিপস এবং সহায়ক বার্তা ওভারলে যুক্ত করেছি।
অনেক কমান্ডের জন্য কীবোর্ড শর্টকাটগুলি দেখতে, টুলটিপটি উপস্থিত না হওয়া পর্যন্ত কেবল একটি বোতামের উপরে মাউস পয়েন্টারটি ধরে রাখুন।
সরঞ্জাম> অ্যান্ড্রয়েড মেনু সরানো হয়েছে
সরঞ্জামগুলি> অ্যান্ড্রয়েড মেনু সরানো হয়েছে। পূর্বে এই মেনুর অধীনে থাকা কমান্ডগুলি সরানো হয়েছে।
- অনেক কমান্ড সরাসরি সরঞ্জাম মেনুতে চলে গেছে।
- গ্রেড ফাইল কমান্ড সহ সিঙ্ক প্রকল্পটি ফাইল মেনুতে সরানো হয়েছে।
- নীচে বর্ণিত হিসাবে ডিভাইস মনিটর কমান্ডটি সরানো হয়েছে।
কমান্ড লাইন থেকে ডিভাইস মনিটর উপলব্ধ
অ্যান্ড্রয়েড স্টুডিও ৩.১ -এ, ডিভাইস মনিটরটি আগের চেয়ে কম ভূমিকা পালন করে। অনেক ক্ষেত্রে, ডিভাইস মনিটরের মাধ্যমে উপলব্ধ কার্যকারিতা এখন নতুন এবং উন্নত সরঞ্জাম দ্বারা সরবরাহ করা হয়।
কমান্ড লাইন থেকে ডিভাইস মনিটরকে অনুরোধ করার জন্য এবং ডিভাইস মনিটরের মাধ্যমে উপলব্ধ সরঞ্জামগুলির বিশদগুলির জন্য ডিভাইস মনিটরের ডকুমেন্টেশন দেখুন।
3.0 (অক্টোবর 2017)
অ্যান্ড্রয়েড স্টুডিও 3.0.0 একটি প্রধান প্রকাশ যা বিভিন্ন নতুন বৈশিষ্ট্য এবং উন্নতি অন্তর্ভুক্ত করে।
ম্যাকোস ব্যবহারকারীরা: আপনি যদি অ্যান্ড্রয়েড স্টুডিওর কোনও পুরানো সংস্করণ আপডেট করছেন তবে আপনি একটি আপডেট ত্রুটি ডায়ালগের মুখোমুখি হতে পারেন যা বলে যে "ইনস্টলেশন অঞ্চলে কিছু দ্বন্দ্ব পাওয়া গেছে"। কেবল এই ত্রুটিটিকে উপেক্ষা করুন এবং ইনস্টলেশনটি পুনরায় শুরু করতে বাতিল ক্লিক করুন।
3.0.1 (নভেম্বর 2017)
এটি অ্যান্ড্রয়েড স্টুডিও 3.0 এর একটি সামান্য আপডেট যা সাধারণ বাগ ফিক্স এবং পারফরম্যান্সের উন্নতি অন্তর্ভুক্ত করে।
গ্রেড 3.0.0 এর জন্য অ্যান্ড্রয়েড প্লাগইন
গ্রেডের জন্য নতুন অ্যান্ড্রয়েড প্লাগইনটিতে বিভিন্ন উন্নতি এবং নতুন বৈশিষ্ট্য অন্তর্ভুক্ত রয়েছে তবে এটি প্রাথমিকভাবে এমন প্রকল্পগুলির জন্য বিল্ডিং পারফরম্যান্সের উন্নতি করে যা প্রচুর পরিমাণে মডিউল রয়েছে। এই বড় প্রকল্পগুলির সাথে নতুন প্লাগইন ব্যবহার করার সময়, আপনার নিম্নলিখিতগুলি অনুভব করা উচিত:
- নতুন বিলম্বিত নির্ভরতা রেজোলিউশনের কারণে দ্রুত বিল্ড কনফিগারেশন সময়।
- আপনি যে প্রকল্পগুলি তৈরি করছেন তার জন্য বৈকল্পিক-সচেতন নির্ভরতা রেজোলিউশন ।
- কোড বা সংস্থানগুলিতে সহজ পরিবর্তনগুলি প্রয়োগ করার সময় দ্রুত বর্ধিত বিল্ড বার।
দ্রষ্টব্য: এই উন্নতিগুলির জন্য উল্লেখযোগ্য পরিবর্তনগুলির প্রয়োজন যা প্লাগইনের কিছু আচরণ, ডিএসএল এবং এপিআইগুলিকে ভেঙে দেয়। সংস্করণ 3.0.0 এ আপগ্রেড করার জন্য আপনার বিল্ড ফাইল এবং গ্রেড প্লাগইনগুলিতে পরিবর্তন প্রয়োজন।
এই সংস্করণটিতে নিম্নলিখিতগুলিও অন্তর্ভুক্ত রয়েছে:
- অ্যান্ড্রয়েড 8.0 এর জন্য সমর্থন।
- ভাষা সংস্থার উপর ভিত্তি করে পৃথক এপিকে তৈরির জন্য সমর্থন।
- জাভা 8 লাইব্রেরি এবং জাভা 8 ভাষার বৈশিষ্ট্যগুলির জন্য সমর্থন (জ্যাক সংকলক ছাড়াই)।
- অ্যান্ড্রয়েড টেস্ট সমর্থন লাইব্রেরি 1.0 (অ্যান্ড্রয়েড টেস্ট ইউটিলিটি এবং অ্যান্ড্রয়েড টেস্ট অর্কেস্টেটর ) এর জন্য সমর্থন।
- উন্নত এনডিকে-বিল্ড এবং সিএমকে বিল্ড গতি।
- উন্নত গ্রেডল সিঙ্ক গতি।
- এএপিটি 2 এখন ডিফল্টরূপে সক্ষম করা হয়েছে।
-
ndkCompile
ব্যবহার করা এখন আরও সীমাবদ্ধ। পরিবর্তে আপনি আপনার এপিকে প্যাকেজ করতে চান এমন নেটিভ কোড সংকলন করতে সিএমকে বা এনডিকে-বিল্ড ব্যবহার করে স্থানান্তরিত করা উচিত। আরও জানতে, এনডিককমপাইল থেকে মাইগ্রেট পড়ুন।
কী পরিবর্তন হয়েছে সে সম্পর্কে আরও তথ্যের জন্য, গ্রেডল রিলিজ নোটগুলির জন্য অ্যান্ড্রয়েড প্লাগইনটি দেখুন।
আপনি যদি নতুন প্লাগইনটিতে আপগ্রেড করতে প্রস্তুত থাকেন তবে গ্রেড 3.0.0 এর জন্য অ্যান্ড্রয়েড প্লাগইনে মাইগ্রেট দেখুন।
কোটলিন সমর্থন
গুগল আই/ও 2017 এ ঘোষিত হিসাবে, কোটলিন প্রোগ্রামিং ভাষা এখন আনুষ্ঠানিকভাবে অ্যান্ড্রয়েডে সমর্থিত। সুতরাং এই প্রকাশের সাথে, অ্যান্ড্রয়েড স্টুডিওতে অ্যান্ড্রয়েড বিকাশের জন্য কোটলিন ভাষা সমর্থন অন্তর্ভুক্ত রয়েছে।
আপনি জাভা ফাইলকে কোটলিনে রূপান্তর করে কোটলিনকে আপনার প্রকল্পে অন্তর্ভুক্ত করতে পারেন ( কোড> কোড> জাভা ফাইলকে কোটলিন ফাইলে রূপান্তর করুন ) বা নতুন প্রকল্প উইজার্ড ব্যবহার করে একটি নতুন কোটলিন-সক্ষম প্রকল্প তৈরি করে।
শুরু করার জন্য, কীভাবে আপনার প্রকল্পে কোটলিন যুক্ত করবেন তা পড়ুন।

জাভা 8 ভাষা বৈশিষ্ট্য সমর্থন
আপনি এখন নির্দিষ্ট জাভা 8 ভাষার বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন এবং জাভা 8 দিয়ে নির্মিত লাইব্রেরিগুলি ব্যবহার করতে পারেন । জ্যাকের আর প্রয়োজন নেই এবং আপনার প্রথমে জ্যাককে ডিফল্ট টুলচেইনে নির্মিত উন্নত জাভা 8 সমর্থনটি ব্যবহার করতে অক্ষম করা উচিত।
নতুন জাভা 8 ল্যাঙ্গুয়েজ টুলচেইন সমর্থন করার জন্য আপনার প্রকল্পটি আপডেট করতে, প্রজেক্ট স্ট্রাকচার ডায়ালগটিতে উত্সের সামঞ্জস্যতা এবং লক্ষ্য সামঞ্জস্যতা 1.8 এ আপডেট করুন ( ফাইল> প্রকল্প কাঠামো ক্লিক করুন)। আরও জানতে, জাভা 8 টি ভাষা বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করবেন তা পড়ুন।

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

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

মেমরি প্রোফাইলার
The Memory Profiler helps you identify memory leaks and memory churn that can lead to stutter, freezes, and even app crashes. It shows a realtime graph of your app's memory use, lets you capture a heap dump, force garbage collections, and track memory allocations.
For more information, see the Memory Profiler guide .

নেটওয়ার্ক প্রোফাইলার
The Network Profiler allows you to monitor the network activity of your app, inspect the payload of each of your network requests, and link back to the code that generated the network request.
For more information, see the Network Profiler guide .

APK profiling and debugging
Android Studio now allows you to profile and debug any APK without having to build it from an Android Studio project—as long as the APK is built to enable debugging and you have access to the debug symbols and source files.
To get started, click Profile or debug APK from the Android Studio Welcome screen. Or, if you already have a project open, click File > Profile or debug APK from the menu bar. This displays the unpacked APK files, but it does not decompile the code. So, to properly add breakpoints and view stack traces, you need to attach Java source files and native debug symbols.
For more information, see Profile and Debug Pre-built APKs .

Device File Explorer
The new Device File Explorer allows you to inspect your connected device's filesystem, and transfer files between the device and your computer. This replaces the filesystem tool available in DDMS.
To open, click View > Tool Windows > Device File Explorer .
For more information, see the Device File Explorer guide .

Instant Apps support
New support for Android Instant Apps allows you to create Instant Apps in your project using two new module types : Instant App modules and Feature modules (these require that you install the Instant Apps Development SDK ).

Android Studio also includes a new modularize refactoring action to help you add support for Instant Apps in an existing project. For example, if you want to refactor your project to place some classes in an Instant App feature module, select the classes in the Project window and click Refactor > Modularize . In the dialog that appears, select the module where the classes should go and click OK .
And when you're ready to test your Instant App, you can build and run your Instant App module on a connected device by specifying the Instant App's URL within the run configuration launch options : Select Run > Edit Configurations , select your Instant App module, and then set the URL under Launch Options .
For more information, see Android Instant Apps .
Android Things modules
New Android Things templates in the New Project and New Module wizards to help you start developing for Android-powered IOT devices.
For more information, see how to create an Android Things project .
Adaptive Icons wizard
Image Asset Studio now supports vector drawables and allows you to create adaptive launcher icons for Android 8.0 while simultaneously creating traditional icons ("Legacy" icons) for older devices.
To start, right-click on the res folder in your project, and then click New > Image Asset . In the Asset Studio window, select Launcher Icons (Adaptive and Legacy) as the icon type.
Note: You must set compileSdkVersion
to 26 or higher to use adaptive launcher icons.
For more information, read about Adaptive Icons .

Support for font resources
To support the new font resources in Android 8.0, Android Studio includes a font resources selector to help bundle fonts into your app or configure your project to download the fonts on the device (when available). The layout editor can also preview the fonts in your layout.
To try downloadable fonts, ensure that your device or emulator is running Google Play Services v11.2.63 or higher. For more information, read about Downloadable Fonts .

Firebase App Indexing Assistant
The Firebase Assistant has been updated with a new tutorial to test App Indexing . To open the Assistant, select Tools > Firebase . Then select App Indexing > Test App Indexing .
The tutorial includes new buttons to test your public and personal content indexing:
- In step 2, click Preview search results to verify that your URLs are showing up in Google Search results.
- In step 3, click Check for errors to verify that the indexable objects in your app have been added to the personal content index.
Android App Links Assistant
The App Links Assistant has been updated with the following new capabilities:
Add URL tests for each URL mapping to be sure your intent filters handle real-world URLs.
You can also define these URL tests by hand using the
<tools:validation>
tag described below.Create a Digital Asset Links file with the appropriate object entry to support Google Smart Lock , and add the corresponding
asset_statements
<meta-data>
tag to your manifest file.

URL intent-filter validator
Android Studio now supports a special tag in the manifest file that allows you to test your intent filter URLs . These are the same tags that the App Links Assistant can create for you .
To declare a test URL for an intent filter, add a <tools:validation>
element alongside the corresponding <intent-filter>
element. যেমন:
<activity ...>
<intent-filter>
...
</intent-filter>
<tools:validation testUrl="https://www.example.com/recipe/1138" />
</activity>
Be sure to also include xmlns:tools="http://schemas.android.com/tools"
in the <manifest>
tag.
If any one of the test URLs does not pass the intent filter definition, a lint error appears. Such an error still allows you to build debug variants, but it will break your release builds.

লেআউট সম্পাদক
The Layout Editor has been updated with a number of enhancements, including the following:
- New toolbar layout and icons.
- Updated layout in the component tree.
- Improved drag-and-drop view insertions.
- New error panel below the editor, showing all issues with suggestions to fix (if available).
- Various UI enhancements for building with
ConstraintLayout
, including the following:- New support to create barriers .
- New support to create groups: In the toolbar, select Guidelines > Add Group (requires ConstraintLayout 1.1.0 beta 2 or higher)
- New UI to create chains: Select multiple views, and then right-click and select Chain .

Layout Inspector
The Layout Inspector includes enhancements to make it easier to debug issues with your app layouts, including grouping properties into common categories and new search functionality in both the View Tree and the Properties panes.

APK Analyzer
You can now use the APK Analyzer from the command line with the apkanalyzer
tool.
The APK Analyzer has also been updated with the following improvements:
- For APKs built with ProGuard, you can load ProGuard mapping files that add capabilities to the DEX viewer, including:
- Bolded nodes to indicate that the nodes should not be removed when shrinking code.
- A button to show nodes that were removed during the shrinking process.
- A button that restores the original names of nodes in the tree view that were obfuscated by ProGuard.
- The DEX Viewer now shows the estimated size impact of each package, class and method.
- New filtering options at the top to show and hide fields and methods.
- In the tree view, nodes that are references not defined in the DEX file appear in italics.
For more information, see Analyze Your Build with APK Analyzer .
Preview for D8 DEX compiler
Android Studio 3.0 includes an optional new DEX compiler called D8. It will eventually replace the DX compiler, but you can opt-in to use the new D8 compiler now.
DEX compilation directly impacts your app's build time, .dex
file size, and runtime performance. And when comparing the new D8 compiler with the current DX compiler, D8 compiles faster and outputs smaller .dex
files, while having the same or better app runtime performance.
To try it, set the following in your project's gradle.properties
file:
android.enableD8=true
For more information, see the blog post about the D8 compiler .
Google's Maven repository
Android Studio now uses Google's Maven Repository by default instead of depending on the Android SDK Manager to get updates for Android Support Library, Google Play Services, Firebase, and other dependencies. This makes it easier to keep your libraries up to date, especially when using a continuous integration (CI) system.
All new projects now include the Google Maven repository by default. To update your existing project, add google()
in the repositories
block of the top-level build.gradle
file:
allprojects {
repositories {
google()
}
}
Learn more about Google's Maven repository here .
অন্যান্য পরিবর্তন
- Native debugging with Android Studio no longer supports 32-bit Windows. We've chosen to focus on other platforms because very few developers are using this platform. If you are using 32-bit Windows and you plan to debug native code, you should keep using Android Studio 2.3 .
- Upgraded the base IDE to IntelliJ 2017.1.2 , which adds a number of new features from 2016.3 and 2017.1 , such as Java 8 language refactoring, parameter hints, semantic highlighting, draggable breakpoints, instant results in search, and much more.
- Added many new lint checks.
- Also see the latest Android Emulator updates .
2.3 (March 2017)
অ্যান্ড্রয়েড স্টুডিও 2.3.0 প্রাথমিকভাবে একটি বাগ ফিক্স এবং স্থিতিশীলতা রিলিজ, তবে এতে বেশ কয়েকটি নতুন বৈশিষ্ট্যও রয়েছে।
2.3.3 (জুন 2017)
Android O (API স্তর 26) এর জন্য সমর্থন যোগ করার জন্য এটি একটি ছোটখাট আপডেট।
2.3.2 (এপ্রিল 2017)
নিম্নলিখিত পরিবর্তনগুলির জন্য এটি অ্যান্ড্রয়েড স্টুডিও 2.3-তে একটি ছোটখাট আপডেট:
- সিস্টেম ইমেজে Google Play সমর্থন করার জন্য AVD ম্যানেজার আপডেট।
- NDK-এর R14+ ব্যবহার করার সময় NDK বিল্ডের বাগ ফিক্স।
এছাড়াও অ্যান্ড্রয়েড এমুলেটর 26.0.3 এর জন্য সংশ্লিষ্ট আপডেটগুলি দেখুন।
2.3.1 (এপ্রিল 2017)
এটি অ্যান্ড্রয়েড স্টুডিও 2.3-এর একটি ছোটখাট আপডেট যা একটি সমস্যার সমাধান করে যেখানে কিছু শারীরিক অ্যান্ড্রয়েড ডিভাইস ইনস্ট্যান্ট রানের সাথে সঠিকভাবে কাজ করে না ( ইস্যু #235879 দেখুন)।
<h3 class="hide-from-toc">
New
</h3>
<div class="video-wrapper-left">
<iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
</iframe>
</div>
<ul>
<li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
WebP format. WebP is an image file format from Google that provides lossy
compression (like JPEG) as well as transparency (like PNG) but can provide
better compression than either JPEG or PNG. For more information, see
<a href="/studio/write/convert-webp.html">Convert images to WebP in Android
Studio</a>.
</li>
<li>The new <a href="/studio/write/app-link-indexing.html">App Links
Assistant</a> simplifies the process of adding Android App Links to your app
into a step-by-step wizard. Android App Links are HTTP URLs that bring users
directly to specific content in your Android app.
</li>
<li>The Layout Editor now includes support for two new ConstraintLayout
features:
<ul>
<li>Define a view size based on an aspect ratio.
</li>
<li>Create packed, spread, and weighted linear groups with constraint
chains.
</li>
</ul>
For more information, see <a href=
"/training/constraint-layout/index.html">Build a Responsive UI with
ConstraintLayout</a>.
</li>
<li>The Layout Editor also now lets you create a list of <a href=
"/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
you don't have to click <b>View all attributes</b> to access the attributes
you use most.
</li>
<li>When adding a material icon using the Vector Import Dialog (<b>File >
New > Vector Asset</b>), you can now filter the list of available icons by
category or by icon name. For more information, see <a href=
"/studio/write/vector-asset-studio.html#materialicon">Adding a material
icon</a>.
</li>
<li>
<a href="/studio/write/annotations.html#accessibility">New and updated
annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
classes, and packages lets you restrict an API. The updated
<code>@VisibleForTesting</code> annotation now has an optional
<code>otherwise</code> argument that lets you designate what the visibility
of a method should be if not for the need to make it visible for testing.
Lint uses the <code>otherwise</code> option to enforce the intended
visibility of the method.
</li>
<li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
allows you to use a snapshot of your project's current set of warnings as a
baseline for future inspection runs so only new issues are reported. The
baseline snapshot lets you start using lint to fail the build for new issues
without having to go back and address all existing issues first.
</li>
<li>New lint checks, including the following:
<ul>
<li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
code that checks for SDK versions.
</li>
<li>Object Animator Validation: Lint analyzes your code to make sure that
your <code>ObjectAnimator</code> calls reference valid methods with the
right signatures and checks that those methods are annotated with <code>
@Keep</code> to prevent ProGuard from renaming or removing them during
release builds.
</li>
<li>Unnecessary Item Decorator Copy: Older versions of the
<code>RecyclerView</code> library did not include a divider decorator
class, but one was provided as a sample in the support demos. Recent
versions of the library have a divider decorator class. Lint looks for
the old sample and suggests replacing it with the new one.
</li>
<li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class<T>)">Context.getSystemService()</a></code>
can cause a memory leak if the context is not the application context.
Lint looks for these initializations, and if it <em>cannot</em> determine
that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
initialization.
</li>
<li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
lint check had many limitations. You can now configure your project with
a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
}</code>, and lint makes sure that all of your resources are using this
prefix. You can use variations of the name for styles and themes. For
example for the <var>my_lib</var> prefix, you can have themes named
<code>MyLibTheme</code>, <code>myLibAttr</code>,
<code>my_lib_layout</code>, and so on.
</li>
<li>Switch to WebP: This check identifies images in your project that can
be converted to WebP format based on your project’s
<code>minSdkVersion</code> setting. An associated quickfix can
automatically convert the images, or you can <a href=
"/studio/write/convert-webp.html">convert images to WebP</a> manually.
</li>
<li>Unsafe WebP: If your project already includes WebP images, this check
analyzes your project to ensure that your <code>minSdkVersion</code>
setting is high enough to support the included images. For more
information about WebP support in Android and Android Studio, see
<a class="external" href=
"https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
Which browsers natively support WebP?</a> and <a href=
"/studio/write/convert-webp.html">Create WebP Images Using Android
Studio</a>.
</li>
</ul>
</li>
</ul>
<h3 class="hide-from-toc">
Changes
</h3>
<ul>
<li>A separate button to push changes with Instant Run: After deploying your
app, you now click <b>Apply Changes</b> <img src=
"/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
"inline-icon"> to quickly push incremental changes to your running app using
Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon"> and <b>Debug</b> <img src=
"/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
buttons are always available to you when you want to reliably push your
changes and force an app restart.
<ul>
<li>Instant Run is supported only when deploying your app to a target
device running Android 5.0 (API level 21) or higher.
</li>
<li>Instant Run is no longer disabled for projects that <a href=
"/studio/projects/add-native-code.html">link to external native
projects</a> using CMake or ndk-build. However, you can only use Instant
Run to push incremental changes to your Java code, not your native code.
</li>
<li>Cold swaps (which you can force for a running app by clicking
<strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
also fixes the issue where changes to notification and widget UIs were
not updated on the target device.
</li>
<li>Includes optimizations that make app startup much faster. These
optimizations may affect profiling, so you should temporarily <a href=
"/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
profiling your app.
</li>
</ul>
</li>
<li>
<p>
The <b>AVD Manager</b> <img src=
"/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
"inline-icon"> and <b>SDK Manager</b> <img src=
"/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
"inline-icon"> buttons are now included in the lean Navigation Bar as
well as the full Toolbar. To use the lean Navigation Bar, click
<b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
is selected and <b>Toolbar</b> is <em>not</em> selected.
</p>
<img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
</li>
<li>The "Hybrid" debugger has been renamed to "Dual" debugger.
</li>
<li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
Configurations</a> dialog, under Defaults in the left pane, the following run
configuration names have changed with no behavior changes:
<ul>
<li>The JUnit name has changed to Android JUnit. If you have a project
that uses JUnit run configurations, those configurations are transformed
to Android JUnit run configurations the first time you open the project
with Android Studio. A dialog appears to inform you of the name change.
</li>
<li>The Android Tests name has changed to Android Instrumented Tests.
</li>
</ul>
</li>
<li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
been removed from Android Studio as of version 2.3. An open-source,
standalone version of the tool is now available on <a href=
"https://github.com/google/gapid" class="external-link">GitHub</a>.
</li>
<li>The Run/Debug option is no longer available when you right-click a <code>
*.gradle build</code> script.
</li>
<li>All templates now use <code>ConstraintLayout</code> as the default
layout.
</li>
<li>The Widgets palette in the Layout Editor has been redesigned.
</li>
</ul>
<p>
This release also includes a number of bug fixes. <a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.3+status%3DReleased&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&cells=tiles">
See all bug fixes in 2.3.0.</a>
</p>
<p class="note">
<b>Known issue:</b> Some device manufacturers block apps from automatically
launching after being installed on the device. When deploying your app to a
physical device using Android Studio 2.3, this restriction breaks the
intended behavior of Instant Run and causes the following error output:
<code>Error: Not found; no service started</code>. To avoid this issue,
either <a href="/studio/run/emulator.html">use the emulator</a> or enable
automatic launching for your app in your device's settings. The procedure
for doing this is different for each device, so check the instructions
provided by the manufacturer. To learn more about this issue, see
<a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
#235879</a>.
</p>
2.2 (September 2016)
2.2.3 (December 2016)
<p>
This is a minor update to Android Studio 2.2. It includes a bug fixes
focused around gradle, the core IDE, and lint.
</p>
<p>
Highlighted build changes:
</p>
<ul>
<li>ProGuard version rollback. Due to a <a href=
"https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
have worked with the ProGuard team on getting a fix quickly, and we expect
to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
</li>
<li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
not working properly (<a href="http://b.android.com/224167">issue
224167</a>)
</li>
<li>Bug fix for Gradle autodownload for Constraint Layout library
(<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
212128</a>)
</li>
<li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
"http://b.android.com/227729">issue 227729</a>)
</li>
</ul>
<p>
<a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.2.3+status%3AReleased+&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&cells=tiles">
See all bug fixes in 2.2.3</a>.
</p>
2.2.2 (October 2016)
<p>
This is a minor update to Android Studio 2.2. It includes a number of small
changes and bug fixes, including:
</p>
<ul>
<li>When reporting Instant Run issues through the IDE, the report now also
includes logcat output for <code>InstantRun</code> events. To help us
improve Instant Run, please <a href=
"/studio/run/index.html#submit-feedback">enable extra logging and report
any issues</a>.
</li>
<li>A number of small bug fixes for Gradle.
</li>
<li>A fix for problems with generating multiple APKs.
</li>
</ul>
2.2.1 (October 2016)
<p>
This is a minor update to Android Studio 2.2. It includes several bug fixes
and a new feature to enable extra logging to help us troubleshoot Instant
Run issues—to help us improve Instant Run, please <a href=
"/studio/run/index.html#submit-feedback">enable extra logging and report
any issues</a>.
</p>
নতুন
- All new Layout Editor with tools custom-built to support ConstraintLayout .
<li>New <strong><a href=
"http://tools.android.com/tech-docs/layout-inspector">Layout
Inspector</a></strong> lets you examine snapshots of your layout hierarchy
while your app is running on the emulator or a device.
</li>
<li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
window to help you integrate Firebase services into your app.
</li>
<li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
Analyzer</a></strong> tool so you can inspect the contents of your packaged
app.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/test-recorder">Espresso Test
Recorder</a></strong> tool (currently in beta) to help you create UI tests by
recording your own interactions.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
(currently experimental) to speed up build performance.
</li>
<li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
Compile and build new or existing native code into libraries packaged into
your APK, and debug using lldb. For new projects, Android Studio uses CMake
by default, but also supports ndk-build for existing projects. To learn how
to include native code in your Android application, read <a href=
"/studio/projects/add-native-code.html">Add C and C++ Code to Your
Project</a>. To learn how to debug native code with lldb, see <a href=
"/studio/debug/index.html#debug-native">Debug Native Code</a>.
</li>
<li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
Browser</a></strong> so you can easily look up Google Android sample code
from within Android Studio to jump start app development.
</li>
<li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
manifest file merges with your app dependencies across project build
variants.
</li>
<li>The <strong>Run</strong> window now contains log messages for the current
running app. Note that you can configure the <a href=
"/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
<strong>Run</strong> window.
</li>
<li>New <strong><a href="/studio/run/emulator.html">Android
Emulator</a></strong> features:
<ul>
<li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
<strong>Cellular</strong> > <strong>Signal Strength</strong> controls.
</li>
<li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
> <strong>Network type</strong> control.
</li>
<li>Added simulated vertical swipes for scrolling through vertical menus
with a mouse wheel.
</li>
</ul>
</li>
<li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
Configuration</a></strong> features:
<ul>
<li>The <strong>Debugger</strong> tab of the Android App and Android
Tests templates now contain several new options for debugging with LLDB.
</li>
<li>The <strong>Profiling</strong> tab of the Android App and Android
Tests templates now contain a <strong>Capture GPU Commands</strong>
option for enabling GPU tracing. You can display GPU traces in the GPU
Debugger (a beta feature).
</li>
<li>The Android Tests template now has a <strong>Firebase Test Lab Device
Matrix</strong> option for the <strong>Deployment Target</strong>.
</li>
<li>The Native Application template has been deprecated. If you use this
template in a project, Android Studio automatically converts it to the
Android App template.
</li>
<li>The Android Application template has been renamed to Android App.
</li>
</ul>
</li>
<li>Improved installation, configuration, performance, and UI features in the
<strong><a href="/studio/debug/am-gpu-debugger.html">GPU
Debugger</a></strong> (currently in beta).
</li>
<li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
Existing projects still use the JDK specified in <strong>File > Project
Structure > SDK Location</strong>. You can switch to use the new bundled
JDK by clicking <strong>File > Project Structure > SDK
Location</strong> and checking the <strong>Use embedded JDK</strong>
checkbox.
</li>
<li>Added new <strong>help menus and buttons</strong> in the UI so you can
more easily find the online documentation.
</li>
পরিবর্তন
- Updated the IDE codebase from IntelliJ 15 to IntelliJ 2016.1
- Instant Run now requires the platform SDK corresponding to the target device API level to be installed.
- Instant Run will automatically disabled if user is running the app under a work profile or as a secondary user.
- Fixed many reliability issues for Instant Run where changes were not getting deployed or the app would crash:
- Some app assets were not deployed to your running app. ( Bug: #213454 )
- App crashes when user transitions between Instant Run and non Instant Run sessions where a Serializable class does not have serialVersionUID defined. ( Bug: #209006 )
- Style changes aren't reflected with Instant Run. ( Bug: #210851 )
- Instant Run session is unreliable and causes FileNotFoundException. ( Bug: #213083 )
- Changes to drawables not reflected until full rebuild is performed for KitKat. ( Bug: #21530 )
- Resource changes aren't reflected with Instant Run when custom sourceSets contain nested paths. ( Bug: #219145 )
- Hot and warm swap don't work if changed class contains annotation with enum value. ( Bug: #209047 )
- Changes to annotation data not reflected with Instant Run. ( Bug: #210089 )
- Instant Run doesn't pick up code changes if you make changes outside the IDE. ( Bug: #213205 )
- Instant Run session is unreliable due to mismatch security token. ( Bug: #211989
- Cold swap fails for devices that doesn't properly support run-as. ( Bug: #210875 )
- App crash after instant run restart. ( Bug: #219744 )
- ClassNotFoundException observed when switching from Instant Run to Instant Debug. ( Bug: #215805 )
<li>Improved performance for <strong>Gradle sync</strong> within the IDE,
especially for large projects.
</li>
<li>Improved build times for both full and incremental builds with new app
packaging code.
</li>
<li>Improved <strong>Jack compiler performance and features</strong>,
including support for annotation processors and dexing in process. To learn
more, read the <a href=
"/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
2.2.0 release notes</a>.
</li>
<li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
</li>
<li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
command-line options now report which ports and serial number the emulator
instance is using, and warn if there are any issues with the values you
provided.
</li>
<li>Improved the <strong><a href=
"/studio/write/create-java-class.html">Create New Class dialog</a></strong>
and the corresponding file templates. <strong>Note:</strong> If you've
previously customized the <strong>AnnotationType</strong>,
<strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
<strong>Singleton</strong> file templates, you need to modify your templates
to comply with the new templates or you won’t be able to use the new fields
in the <strong>Create New Class</strong> dialog.
</li>
<li>Improved the <strong><a href=
"/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
user interface and added support for Adobe Photoshop Document (PSD) files.
</li>
<li>Improved the <strong><a href=
"/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
interface.
</li>
<li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
</li>
<li>Fixed memory leaks and reduced overall memory usage in Android Studio.
</li>
<li>Added a <strong>Background</strong> button in the <strong><a href=
"/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
get back to work and install your packages in the background.
</li>
<li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
features</a></strong>, including support for screen readers and keyboard
navigation.
</li>
<li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
Java 8 language usage and more cross-file analysis.
</li>
<li>Several toolbar icons have changed.
</li>
2.1 (April 2016)
এই আপডেটের প্রাথমিক পরিবর্তনগুলি অ্যান্ড্রয়েড এন প্রিভিউয়ের সাথে বিকাশের জন্য সমর্থন প্রদান করে৷
2.1.3 (August 2016)
This update adds compatibility with Gradle 2.14.1, which includes performance improvements, new features, and an important security fix . For more details, see the Gradle release notes .
By default, new projects in Android Studio 2.1.3 use Gradle 2.14.1. For existing projects, the IDE prompts you to upgrade to Gradle 2.14.1 and Android plugin for Gradle 2.1.3 , which is required when using Gradle 2.14.1 and higher.
2.1.2 (জুন 2016)
এই আপডেটে অনেকগুলি ছোট পরিবর্তন এবং বাগ ফিক্স রয়েছে:
- ইনস্ট্যান্ট রান আপডেট এবং বাগ ফিক্স।
- LLDB কর্মক্ষমতা এবং ক্র্যাশ বিজ্ঞপ্তির উন্নতি।
- অ্যান্ড্রয়েড স্টুডিও 2.1.1 নিরাপত্তা আপডেটে একটি রিগ্রেশন স্থির করা হয়েছে যার কারণে
git rebase
ব্যর্থ হয়েছে।
2.1.1 (মে 2016)
নিরাপত্তা রিলিজ আপডেট.
অ্যান্ড্রয়েড এন প্ল্যাটফর্ম জাভা 8 ভাষার বৈশিষ্ট্যগুলির জন্য সমর্থন যোগ করে, যার জন্য জ্যাক নামে একটি নতুন পরীক্ষামূলক কম্পাইলার প্রয়োজন। জ্যাকের সর্বশেষ সংস্করণটি বর্তমানে শুধুমাত্র অ্যান্ড্রয়েড স্টুডিও 2.1-এ সমর্থিত। সুতরাং আপনি যদি জাভা 8 ভাষার বৈশিষ্ট্যগুলি ব্যবহার করতে চান তবে আপনার অ্যাপটি তৈরি করতে আপনাকে অ্যান্ড্রয়েড স্টুডিও 2.1 ব্যবহার করতে হবে।
দ্রষ্টব্য: আপনি যখন জ্যাক কম্পাইলার সক্ষম করেন তখন তাত্ক্ষণিক রান নিষ্ক্রিয় হয় কারণ সেগুলি বর্তমানে সামঞ্জস্যপূর্ণ নয়৷
যদিও অ্যান্ড্রয়েড স্টুডিও 2.1 এখন স্থিতিশীল, জ্যাক কম্পাইলার এখনও পরীক্ষামূলক এবং আপনাকে অবশ্যই আপনার build.gradle
ফাইলে jackOptions
প্রপার্টি দিয়ে এটি সক্ষম করতে হবে।
এন প্রিভিউ সমর্থন করার জন্য পরিবর্তনগুলি ছাড়াও, অ্যান্ড্রয়েড স্টুডিও 2.1-এ ছোটখাটো বাগ ফিক্স এবং নিম্নলিখিত বর্ধনগুলি অন্তর্ভুক্ত রয়েছে:
- জাভা-সচেতন C++ ডিবাগার এখন ডিফল্টরূপে সক্রিয় থাকে যখন আপনি একটি N ডিভাইস বা এমুলেটর ব্যবহার করেন এবং নেটিভ ডিবাগার মোড নির্বাচন করেন (আপনার রান/ডিবাগ কনফিগারেশনের জন্য ডিবাগার ট্যাবে)।
ইনক্রিমেন্টাল জাভা কম্পাইলেশন এবং ডেক্সিং-ইন-প্রসেস সহ অন্যান্য বিল্ড এনহান্সমেন্টের জন্য, গ্রেডলের জন্য আপনার অ্যান্ড্রয়েড প্লাগইন 2.1.0 সংস্করণে আপডেট করুন।
2.0 (April 2016)
Note: If you are developing for the N Developer Preview, you should use Android Studio 2.1 Preview. Android Studio 2.0 does not support all the features required to target the N Preview.
Instant Run :
- Android Studio now deploys clean builds faster than ever before. Additionally, pushing incremental code changes to the emulator or a physical device is now almost instantaneous. Review your updates without redeploying a new debug build or, in many cases, without restarting the app.
- Instant Run supports pushing the following changes to a running app:
- Changes to the implementation of an existing instance method or static method
- Changes to an existing app resource
- Changes to structural code, such as a method signature or a static field (requires a target device running API level 21 or higher).
- Read the documentation to learn more about Instant Run .
Note: Instant Run is supported only when you deploy the debug build variant, use Android plugin for Gradle version 2.0.0 or higher, and configure your app's module-level
build.gradle
file forminSdkVersion 15
or higher. For the best performance, configure your app forminSdkVersion 21
or higher.
New additions to Lint:
- Inspection of
switch
statements using@IntDef
annotated integers to make sure all constants are handled. To quickly add any missing statements, use the intention action drop-down menu and select Add Missing @IntDef Constants . - Flags for incorrect attempts to use string interpolation to insert version numbers in the
build.gradle
file. - Flags for anonymous classes that extend the
Fragment
class. - Flags for native code in unsafe locations, such as the
res/
andasset/
folders. This flag encourages storing native code in thelibs/
folder, which is then securely packaged into the application'sdata/app-lib/
folder at install time. AOSP: #169950 - Flags for unsafe calls to
Runtime.load()
andSystem.load()
calls. AOSP: #179980 - Find and remove any unused resources by selecting Refactor > Remove Unused Resources from the menu bar. Unused resource detection now supports resources only referenced by unused resources, references in raw files such as
.html
image references, andtools:keep
andtools:discard
attributes used by the Gradle resource shrinker, while considering inactive source sets (such as resources used in other build flavors) and properly handling static field imports. - Checks that implicit API references are supported on all platforms targeted by
minSdkVersion
. - Flags improper usage of
RecyclerView
andParcelable
. -
@IntDef
,@IntRange
, and@Size
inspections are now also checked forint
arrays and varargs.
Additional Improvements :
- Optimized for Android Emulator 2.0, which is faster than ever before, supports a wider range of virtual devices, and features a drastically improved UI. To learn more about the new emulator, read the SDK Tools release notes .
- Improvements to the Android Virtual Device Manager :
- System images are now categorized under the following tabs: Recommended , x86 , and Other .
- Under advanced settings, you can enable multi-core support and specify the number of cores the emulator can use.
- Under advanced settings, you can determine how graphics are rendered on the emulator by selecting one of the following options:
- Hardware: use you computer's graphics card for faster rendering.
- Software: use software-based rendering.
- Auto: let the emulator decide the best option. এটি ডিফল্ট সেটিং।
- Improved AAPT packaging times by specifying deploy target before the app is built. This allows Android Studio to efficiently package only the resources required by the specified device.
- Added Cloud Test Lab integration to provide on-demand app testing with the convenience and scalability of a cloud service. Learn more about how you can use Cloud Test Lab with Android Studio .
- Added a preview of the new GPU Debugger . For graphics intensive applications, you can now visually step through your OpenGL ES code to optimize your app or game.
- Added Google App Indexing Test. Add support for URLs, app indexing, and search functionality to your apps to help drive more traffic to your app, discover which app content is used most, and attract new users. Test and validate URLs in your app all within Android Studio. See Supporting URLs and App Indexing in Android Studio .
- Upgrades from the latest IntelliJ 15 release, including improved code analysis and performance. নতুন বৈশিষ্ট্য এবং বর্ধনের সম্পূর্ণ বিবরণের জন্য IntelliJ-এ নতুন কী আছে দেখুন।
- XML editor auto-complete now adds quotations marks when completing attributes. To check if this option is enabled, open the Setting or Preferences dialogue, navigate to Editor > General > Smart Keys , and check the box next to Add quotes for attribute value on attribute completion . Issue: 195113
- The XML editor now supports code completion for data binding expressions.
Android Studio v1.5.1 (December 2015)
সংশোধন এবং বর্ধিতকরণ:
- Fixed a rendering failure issue in the Layout Editor. Issue: 194612
- Added the ability to vary
description
manifest attributes by configuration. Issue: 194705 - Improved the contrast of the Android Studio Darcula appearance theme in Vector Asset Studio. Issue: 191819
- Added Help button support to Vector Asset Studio.
- Added support for the
%
operator for data binding. Issue: 194045 - Fixed a case where launching an app for debugging resulted in the debugger connecting to the wrong device. Issue: 195167
- Fixed a null pointer exception that could occur when attempting to run an app in certain scenarios.
অ্যান্ড্রয়েড স্টুডিও v1.5.0 (নভেম্বর 2015)
সংশোধন এবং বর্ধিতকরণ:
- অ্যান্ড্রয়েড মনিটরে নতুন মেমরি মনিটর বিশ্লেষণ ক্ষমতা যুক্ত করা হয়েছে। আপনি যখন এই মনিটর থেকে ক্যাপচার করা একটি HPROF ফাইল দেখেন, তখন ডিসপ্লেটি এখন আরও সহায়ক যাতে আপনি আরও দ্রুত সমস্যাগুলি সনাক্ত করতে পারেন, যেমন মেমরি লিক৷ এই মনিটরটি ব্যবহার করতে, প্রধান উইন্ডোর নীচে অ্যান্ড্রয়েড মনিটরে ক্লিক করুন। অ্যান্ড্রয়েড মনিটরে, মেমরি ট্যাবে ক্লিক করুন। মনিটর চলাকালীন, ডাম্প জাভা হিপ আইকনে ক্লিক করুন এবং তারপরে প্রধান উইন্ডোতে ক্যাপচারে ক্লিক করুন এবং ফাইলটি দেখতে ডাবল-ক্লিক করুন। ডানদিকে ক্যাপচার বিশ্লেষণ ক্লিক করুন. (অ্যান্ড্রয়েড ডিভাইস মনিটর অ্যান্ড্রয়েড মনিটরের মতো একই সময়ে চলতে পারে না।)
- নতুন গভীর লিঙ্ক এবং অ্যাপ লিঙ্ক সমর্থন যোগ করা হয়েছে. কোড এডিটর স্বয়ংক্রিয়ভাবে
AndroidManifest.xml
ফাইলে গভীর লিঙ্ক করার জন্য একটি অভিপ্রায় ফিল্টার তৈরি করতে পারে। এটি একটি জাভা ফাইলের একটি কার্যকলাপে অ্যাপ ইন্ডেক্সিং API এর সাথে সংহত করতে সহায়তা করার জন্য কোড তৈরি করতে পারে। একটি ডিপ লিঙ্ক টেস্টিং বৈশিষ্ট্য আপনাকে যাচাই করতে সাহায্য করে যে একটি নির্দিষ্ট ডিপ লিঙ্ক একটি অ্যাপ চালু করতে পারে। রান/ডিবাগ কনফিগারেশন ডায়ালগের সাধারণ ট্যাবে, আপনি গভীর লিঙ্ক লঞ্চ বিকল্পগুলি নির্দিষ্ট করতে পারেন। আপনি অ্যান্ড্রয়েড মনিটর লগক্যাট ডিসপ্লে ব্যবহার করে কোনও অ্যাক্টিভিটিতে অ্যাপ ইন্ডেক্সিং API কলগুলি পরীক্ষা করতে পারেন। অ্যান্ড্রয়েডlint
টুলে এখন ডিপ লিঙ্ক এবং অ্যাপ ইন্ডেক্সিং এপিআই জড়িত কিছু সমস্যার জন্য সতর্কতা রয়েছে। - কোড এডিটরে কাস্টম ভিউ কোড-সম্পূর্ণ করার সময় ছোট নাম ব্যবহার করার ক্ষমতা যোগ করা হয়েছে।
- পশ্চাদগামী-সামঞ্জস্যতার জন্য ভেক্টর অ্যাসেট স্টুডিওতে আরও
VectorDrawable
উপাদানগুলির জন্য সমর্থন যোগ করা হয়েছে। ভেক্টর অ্যাসেট স্টুডিও Android 4.4 (API লেভেল 20) এবং তার নিচের সাথে ব্যবহার করার জন্য ভেক্টর ড্রয়েবলগুলিকে PNG রাস্টার ছবিতে রূপান্তর করতে এই উপাদানগুলি ব্যবহার করতে পারে। - Android TV এবং Android Auto-এর জন্য নতুন
lint
চেক যোগ করা হয়েছে যাতে আপনি Android স্টুডিওতে তাৎক্ষণিক, অ্যাকশনেবল ফিডব্যাক দিতে পারেন, সাথে বেশ কিছু দ্রুত সমাধান। উদাহরণস্বরূপ, অ্যান্ড্রয়েড টিভির জন্য, এটি অনুমতি, অসমর্থিত হার্ডওয়্যার,uses-feature
উপাদান এবং অনুপস্থিত ব্যানার সমস্যাগুলির জন্য একটি দ্রুত সমাধানের প্রতিবেদন করতে এবং প্রদান করতে পারে। অ্যান্ড্রয়েড অটোর জন্য, এটি আপনারAndroidManifest.xml
ফাইল থেকে উল্লেখ করা বর্ণনাকারী ফাইলের সঠিক ব্যবহার যাচাই করতে পারে,MediaBrowserService
ক্লাসের জন্য কোনো উদ্দেশ্য ফিল্টার না থাকলে রিপোর্ট করতে পারে এবং কিছু ভয়েস অ্যাকশন সংক্রান্ত সমস্যা চিহ্নিত করতে পারে। - অনিরাপদ ব্রডকাস্ট রিসিভার,
SSLCertificateSocketFactory
এবংHostnameVerifier
ক্লাসের ব্যবহার এবংFile.setReadable()
এবংFile.setWritable()
কলগুলির জন্য নতুনlint
চেক যোগ করা হয়েছে৷ এটি অবৈধ ম্যানিফেস্ট রিসোর্স লুকআপও শনাক্ত করে, বিশেষত কনফিগারেশন অনুসারে পরিবর্তিত সংস্থানগুলির জন্য। - স্থিতিশীলতার বেশ কয়েকটি সমস্যা সমাধান করা হয়েছে।
Android Studio v1.4.1 (October 2015)
সংশোধন এবং বর্ধিতকরণ:
- Fixed a Gradle model caching issue that could lead to excessive Gradle syncing when the IDE was restarted.
- Fixed a native debugging deadlock issue.
- Fixed an issue blocking users of the Subversion 1.9 version control system.
- Fixed a Device Chooser dialog problem where after connecting a device that was unauthorized you could no longer select the emulator. Issue: 189658
- Fixed incorrect translation error reporting for locales that have a region qualifier and a translation in the region (but not in the base locale). Issue: 188577
- Fixed a deadlock issue in the Theme Editor related to its interaction with the Layout Editor. Issue: 188070
- Fixed a Theme Editor reload and edit conflict causing attributes to not properly update. Issue: 187726
- Improved Theme Editor performance.
- Fixed an issue where the
android:required
attribute was ignored in the manifest. Issue: 187665
অ্যান্ড্রয়েড স্টুডিও v1.4.0 (সেপ্টেম্বর 2015)
সংশোধন এবং বর্ধিতকরণ:
- ভেক্টর গ্রাফিক্স আমদানি করার জন্য ভেক্টর অ্যাসেট স্টুডিও টুল যোগ করা হয়েছে, যেমন উপাদান আইকন এবং SVG ফাইল। এই টুলটি ব্যবহার করতে, প্রজেক্ট উইন্ডোর অ্যান্ড্রয়েড ভিউতে, রেস ফোল্ডারে ডান-ক্লিক করুন এবং নতুন > ভেক্টর সম্পদ নির্বাচন করুন।
- নতুন অ্যান্ড্রয়েড মনিটর ফাংশন, GPU এবং নেটওয়ার্ক যোগ করা হয়েছে। এই মনিটরগুলি ব্যবহার করতে, প্রধান উইন্ডোর নীচে Android মনিটরে ক্লিক করুন৷ অ্যান্ড্রয়েড ডিভাইস মনিটর অ্যান্ড্রয়েড মনিটরের মতো একই সময়ে চলতে পারে না।
- নতুন থিম সম্পাদকের একটি প্রাথমিক পূর্বরূপ যোগ করা হয়েছে৷ এই বৈশিষ্ট্যটি ব্যবহার করতে, Tools > Android > Theme Editor নির্বাচন করুন।
- ডিজাইন সাপোর্ট লাইব্রেরির জন্য অ্যান্ড্রয়েড টেমপ্লেট আপডেট করা হয়েছে। টেমপ্লেটে এখন মেটেরিয়াল ডিজাইন স্পেসিফিকেশনের জন্য সমর্থন, সেইসাথে পিছনের সামঞ্জস্যের জন্য
appcompat
সাপোর্ট লাইব্রেরি অন্তর্ভুক্ত রয়েছে।
Android Studio v1.3.2 (August 2015)
সংশোধন এবং বর্ধিতকরণ:
- Added support for Android 6.0 (API level 23), including new icons and AVD Manager support for creating devices with new screen densities.
- Fixed an exception that was occurring during update checks. Issue: 183068
- Fixed problem where unresolved view coordinates could cause the layout editor to crash. Issue: 178690
- Fixed issue with invalid resource type warnings. Issue: 182433
- Fixed lint check that was incorrectly flagging resources as private. Issue: 183120
Android Studio v1.3.1 (August 2015)
সংশোধন এবং বর্ধিতকরণ:
- Fixed support for creating an Android Wear Android Virtual Device (AVD) on Windows.
- Updated the Project Wizard to use the entered project name.
- Added support to allow the Android SDK to be stored in a read-only directory.
- Updated Android plugin for Gradle version to 1.3.0.
- Fixed issues with launching a debug session from the Android Debug Bridge (adb) Unix shell.
- Fixed the Java package renaming message to show the correct package name.
Android Studio v1.3.0 (July 2015)
সংশোধন এবং বর্ধিতকরণ:
- Added options to enable developer services , such as Google AdMob and Analytics , in your app from within Android Studio.
- Added additional annotations , such as
@RequiresPermission
,@CheckResults
, and@MainThread
. - Added the capability to generate Java heap dumps and analyze thread allocations from the Memory Monitor . You can also convert Android-specific HPROF binary format files to standard HPROF format from within Android Studio.
- Integrated the SDK Manager into Android Studio to simplify package and tools access and provide update notifications.
Note: The standalone SDK Manager is still available from the command line, but is recommended for use only with standalone SDK installations.
- Added the
finger
command in the emulator console to simulate fingerprint authentication. - Added a
<public>
resource declaration to designate library resources as public and private resources.Note: Requires Android plugin for Gradle version 1.3 or higher.
- Added data binding support to create declarative layouts that bind your application logic to layout elements.
- Added support for a separate test APK module to build test APKs in Android Studio.
- Updated the AVD Manager with HAXM optimizations and improved notifications.
- Added 64-bit ARM and MIPS emulator support for QEMU 2.1.
- Simplified the resolution of Lint warnings by adding quick fixes, such as the automatic generation of Parcelable implementation.
- Added live template support for quick insertion of code snippets.
অ্যান্ড্রয়েড স্টুডিও v1.2.2 (জুন 2015)
সংশোধন এবং বর্ধিতকরণ:
- স্থির বিল্ড সমস্যা যা বিল্ডগুলিকে সম্পূর্ণ হতে বাধা দিচ্ছিল।
Android Studio v1.2.1 (May 2015)
সংশোধন এবং বর্ধিতকরণ:
- Fixed minor performance and feature issues.
অ্যান্ড্রয়েড স্টুডিও v1.2.0 (এপ্রিল 2015)
সংশোধন এবং বর্ধিতকরণ:
- মেমরি মনিটর টুল অন্তর্ভুক্ত করতে অ্যান্ড্রয়েড রানটাইম উইন্ডো আপডেট করা হয়েছে এবং CPU কর্মক্ষমতা পর্যবেক্ষণের জন্য একটি ট্যাব যোগ করা হয়েছে।
- ক্যাপচার করা মেমরি এবং সিপিইউ পারফরম্যান্স ডেটা ফাইলগুলি যেমন সিপিইউ পদ্ধতি ট্র্যাকিং এবং মেমরি হিপ স্ন্যাপশটগুলি প্রদর্শন করতে বাম মার্জিনে একটি ক্যাপচার ট্যাব যুক্ত করা হয়েছে৷
- অতিরিক্ত মেটাডেটা টীকা এবং অনুমানিত শূন্যতা সহ প্রসারিত টীকা সমর্থন।
- বেস্ট কারেন্ট প্র্যাকটিস (BCP) 47-এর জন্য অতিরিক্ত সমর্থন সহ অনুবাদ সম্পাদককে উন্নত করা হয়েছে, যা 3-অক্ষরের ভাষা এবং অঞ্চল কোড ব্যবহার করে।
- উন্নত কোড বিশ্লেষণ এবং কর্মক্ষমতার জন্য ইন্টিগ্রেটেড IntelliJ 14 এবং 14.1 বৈশিষ্ট্য:
- ভেরিয়েবল এবং রেফারিং অবজেক্টের জন্য ইনলাইন মান দেখানোর জন্য উন্নত ডিবাগিং, সেইসাথে ল্যাম্বডা এবং অপারেটর এক্সপ্রেশনের ইনলাইন মূল্যায়ন সম্পাদন করে।
- ট্যাব এবং ইন্ডেন্ট মাপের জন্য কোড শৈলী সনাক্তকরণ যোগ করা হয়েছে।
- প্রজেক্ট ফাইল ছাড়া কোড পরীক্ষা এবং প্রোটোটাইপিংয়ের জন্য স্ক্র্যাচ ফাইল যোগ করা হয়েছে।
- HTML এবং XML ফাইলগুলিতে খোলা এবং বন্ধ করার ট্যাগগুলির একযোগে সন্নিবেশ যোগ করা হয়েছে৷
- একটি অন্তর্নির্মিত জাভা ক্লাস ডিকম্পাইলার যোগ করা হয়েছে যাতে আপনি একটি লাইব্রেরির ভিতরে কী আছে তা দেখতে পারেন যার জন্য উত্স কোড উপলব্ধ নেই৷
নতুন বৈশিষ্ট্য এবং বর্ধনের সম্পূর্ণ বিবরণের জন্য IntelliJ-এ নতুন কী আছে দেখুন।
- স্ক্র্যাচ , প্রজেক্ট ফাইল , সমস্যা , প্রোডাকশন এবং প্রোজেক্ট ম্যানেজমেন্ট এবং অ্যাক্সেস উন্নত করার জন্য পরীক্ষার জন্য অতিরিক্ত প্রজেক্ট ভিউ যোগ করা হয়েছে।
- উন্নত সেটিংস অ্যাক্সেস এবং পরিচালনার জন্য ফাইল > সেটিংস মেনু এবং ডায়ালগগুলি উন্নত করা হয়েছে৷
- উইন্ডোজ এবং লিনাক্সের জন্য উচ্চ-ঘনত্ব প্রদর্শনের জন্য সমর্থন যোগ করা হয়েছে।
-
res/drawable-280dpi/
ফোল্ডারে 280 dpi সম্পদের জন্য সমর্থন যোগ করা হয়েছে।
অ্যান্ড্রয়েড স্টুডিও v1.1.0 (ফেব্রুয়ারি 2015)
বিভিন্ন সংশোধন এবং বর্ধিতকরণ:
- Android Wear ঘড়ি টেমপ্লেটের জন্য সমর্থন যোগ করা হয়েছে।
- ঘনত্ব-নির্দিষ্ট লঞ্চার আইকনগুলির জন্য
res/mipmap
ফোল্ডারগুলিকে অন্তর্ভুক্ত করতে পরিবর্তিত নতুন প্রকল্প এবং মডিউল তৈরি। এইres/mipmap
ফোল্ডারগুলি লঞ্চার আইকনগুলির জন্যres/drawable
ফোল্ডারগুলিকে প্রতিস্থাপন করে। - মেটেরিয়াল ডিজাইন দেখতে আপডেট করা লঞ্চার আইকন এবং একটি
xxxhdpi
লঞ্চার আইকন যোগ করা হয়েছে। - অঞ্চল এবং ভাষার সংমিশ্রণ, লঞ্চার আইকন, সম্পদের নাম এবং অন্যান্য সাধারণ কোড সমস্যাগুলির জন্য যুক্ত এবং উন্নত লিন্ট পরীক্ষা করে।
- বেস্ট কারেন্ট প্র্যাকটিস (BCP) ভাষা ট্যাগ 47-এর জন্য সমর্থন যোগ করা হয়েছে।
Android Studio v1.0.1 (December 2014)
বিভিন্ন সংশোধন এবং বর্ধিতকরণ:
- Fixed AVD Manager and device.xml file lock issue.
- Fixed the emulator log on Windows systems.
- Fixed issue with creating AVDs with Android Studio and Android SDK installed on different drives on Windows systems.
- Sets the default update channel for new downloads to Stable . If you installed the 1.0.0 version of Android Studio and would like stable, production-ready version updates, use File > Settings > Updates to change to the Stable update channel.
Android Studio v1.0 (December 2014)
Initial release of Android Studio.
অ্যান্ড্রয়েড স্টুডিও v0.8.14 (অক্টোবর 2014)
পরিবর্তনের সম্পূর্ণ তালিকার জন্য tools.android.com দেখুন।
Android Studio v0.8.6 (August 2014)
পরিবর্তনের সম্পূর্ণ তালিকার জন্য tools.android.com দেখুন।
অ্যান্ড্রয়েড স্টুডিও v0.8.0 (জুন 2014)
Android Wear প্রকল্পগুলির জন্য সমর্থন যোগ করা হয়েছে।
পরিবর্তনের সম্পূর্ণ তালিকার জন্য tools.android.com দেখুন।
Android Studio v0.5.2 (May 2014)
- পরিবর্তনের সম্পূর্ণ তালিকার জন্য tools.android.com দেখুন।
Android Studio v0.4.6 (March 2014)
- পরিবর্তনের সম্পূর্ণ তালিকার জন্য tools.android.com দেখুন।
অ্যান্ড্রয়েড স্টুডিও v0.4.2 (জানুয়ারি 2014)
- পরিবর্তনের সম্পূর্ণ তালিকার জন্য tools.android.com দেখুন।
Android Studio v0.3.2 (Oct 2013)
- পরিবর্তনের সম্পূর্ণ তালিকার জন্য tools.android.com দেখুন।
অ্যান্ড্রয়েড স্টুডিও v0.2.x (জুলাই 2013)
- সর্বশেষ ইন্টেলিজে কোডবেস পরিবর্তনে মার্জ করা হয়েছে। স্টুডিও ব্যবহারকারীদের দ্বারা রিপোর্ট করা সমস্যার সমাধানগুলি অন্তর্ভুক্ত করে যেমন লিনাক্স ফন্টের আকারে পরিবর্তন এবং ফন্ট রেন্ডারিং।
- অ্যান্ড্রয়েড গ্রেডল প্লাগ-ইন 0.5.0 এ আপডেট হয়েছে।
সতর্কতা: এই নতুন সংস্করণটি পিছনের দিকে সামঞ্জস্যপূর্ণ নয়। প্লাগ-ইন-এর একটি পুরানো সংস্করণ ব্যবহার করে এমন একটি প্রকল্প খোলার সময়, স্টুডিও গ্র্যাডল <project_name> প্রকল্প রিফ্রেশ ব্যর্থ হয়েছে বলে একটি ত্রুটি দেখাবে।
আপডেট করা গ্রেডল প্লাগ-ইন নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত করে:
- DSL এর মাধ্যমে কাস্টমাইজ করা হলেও আউটপুট ফাইল ধারণ করার জন্য ফিক্সড IDE মডেল। ভেরিয়েন্ট অবজেক্টে আউটপুট ফাইল পেতে/সেট করার জন্য ডিএসএলও ঠিক করেছে যাতে
variant.packageApplication or variant.zipAlign
ব্যবহার করার প্রয়োজন না হয় - স্থির নির্ভরতা রেজোলিউশন যাতে আমরা আলাদাভাবে পরিবর্তে একসাথে (ডিফল্ট কনফিগার, বিল্ড প্রকার, স্বাদ(গুলি)) এর সমন্বয় সমাধান করি।
- লাইব্রেরির সমস্ত নির্ভরতা সঠিকভাবে অন্তর্ভুক্ত করার জন্য লাইব্রেরি প্রকল্পের পরীক্ষার জন্য স্থির নির্ভরতা।
- স্থির ক্ষেত্রে যেখানে দুটি নির্ভরতার একই পাতার নাম রয়েছে।
- স্থির সমস্যা যেখানে প্রোগার্ড নিয়ম ফাইল স্বাদে প্রয়োগ করা যাবে না।
সমস্ত Gradle প্লাগইন রিলিজ নোট এখানে উপলব্ধ: http://tools.android.com/tech-docs/new-build-system ।
- DSL এর মাধ্যমে কাস্টমাইজ করা হলেও আউটপুট ফাইল ধারণ করার জন্য ফিক্সড IDE মডেল। ভেরিয়েন্ট অবজেক্টে আউটপুট ফাইল পেতে/সেট করার জন্য ডিএসএলও ঠিক করেছে যাতে
- aapt থেকে Gradle ত্রুটিগুলি আর বিল্ড/ফোল্ডারে মার্জড আউটপুট ফাইলগুলির দিকে নির্দেশ করে না, তারা আসল উত্স অবস্থানগুলির দিকে নির্দেশ করে৷
- সমান্তরাল বিল্ডস। Gradle এর সমান্তরাল বিল্ডগুলি ব্যবহার করা এখন সম্ভব। অনুগ্রহ করে সচেতন থাকুন যে সমান্তরাল বিল্ডগুলি "ইনকিউবেশন" এ রয়েছে ( গ্র্যাডলের ডকুমেন্টেশন দেখুন।) এই বৈশিষ্ট্যটি ডিফল্টরূপে বন্ধ রয়েছে। এটি সক্ষম করতে, পছন্দগুলি > কম্পাইলার এ যান এবং সমান্তরালে স্বাধীন মডিউল কম্পাইল করুন বাক্সটি চেক করুন।
- লেআউট রেন্ডারিং, এডিটরে রিসোর্স ফোল্ডিং এবং আরও অনেক কিছুর জন্য ব্যবহৃত নতুন রিসোর্স রিপোজিটরিতে আরও কাজ:
- .aar লাইব্রেরি নির্ভরতার জন্য মৌলিক সমর্থন (যেমন উৎসের স্থানীয় কপি ছাড়া একটি লাইব্রেরি ব্যবহার করা)। উত্স সম্পাদকগুলিতে সম্পদ XML বৈধতা এবং নেভিগেশনের জন্য এখনও কাজ করছে না৷
- রিসোর্স রেফারেন্সে চক্র সনাক্তকরণ।
- কুইক ডকুমেন্টেশন (F1), যা ক্যারেটের অধীনে স্ট্রিংয়ের সমস্ত অনুবাদ দেখাতে পারে, এখন বিভিন্ন গ্রেডল ফ্লেভার এবং বিল্ড প্রকারের পাশাপাশি লাইব্রেরি থেকে সমস্ত রিসোর্স ওভারলেও দেখাবে। এগুলি মুখোশযুক্ত স্ট্রিংয়ের সংস্করণগুলিতে স্ট্রাইকথ্রু সহ বিপরীত সম্পদ ওভারলে ক্রমে তালিকাভুক্ত করা হয়েছে।
- যখন মডিউল নির্ভরতার সেট পরিবর্তিত হয় তখন মার্জ করা সংস্থানগুলি আপডেট করা পরিচালনা করার জন্য সংশোধন করা হয়।
- XML রেন্ডারিং সঠিকভাবে অক্ষর সত্তা ঘোষণা এবং XML এবং ইউনিকোড এস্কেপগুলি পরিচালনা করতে সংশোধন করে৷
- লেআউট প্রিভিউ এবং লেআউট এডিটর উইন্ডোজের জন্য স্ক্রিনশট সমর্থন সংরক্ষণ করুন।
- টেমপ্লেট বাগ ফিক্স।
- লিন্ট বাগ ফিক্স।
- ক্র্যাশ রিপোর্টের জন্য বিভিন্ন ফিক্স। আপনাকে ধন্যবাদ, এবং ক্র্যাশ রিপোর্ট ফাইল করতে থাকুন!
অ্যান্ড্রয়েড স্টুডিও v0.1.x (মে 2013)
- একটি সাধারণ উইন্ডোজ ইনস্টলেশন সমস্যার সমাধান সহ বিভিন্ন বাগ ফিক্স।
Older releases of Android Gradle Plugin
3.6.0 (February 2020)
This version of the Android plugin requires the following:
Gradle 5.6.4 . To learn more, read the section about updating Gradle .
SDK Build Tools 28.0.3 or higher.
3.6.4 (July 2020)
This minor update supports compatibility with new default settings and features for package visibility in Android 11 .
See the 4.0.1 release notes for details.
নতুন বৈশিষ্ট্য
This version of the Android Gradle plugin includes the following new features.
View Binding
View binding provides compile-time safety when referencing views in your code. You can now replace findViewById()
with the auto-generated binding class reference. To start using View binding, include the following in each module's build.gradle
file:
android { viewBinding.enabled = true }
android { viewBinding.enabled = true }
To learn more, read the View Binding documentation .
Support for the Maven Publish plugin
The Android Gradle plugin includes support for the Maven Publish Gradle plugin , which allows you to publish build artifacts to an Apache Maven repository. The Android Gradle plugin creates a component for each build variant artifact in your app or library module that you can use to customize a publication to a Maven repository.
To learn more, go to the page about how to use the Maven Publish plugin .
New default packaging tool
When building the debug version of your app, the plugin uses a new packaging tool, called zipflinger , to build your APK. This new tool should provide build speed improvements. If the new packaging tool doesn't work as you expect, please report a bug . You can revert to using the old packaging tool by including the following in your gradle.properties
file:
android.useNewApkCreator=false
Native build attribution
You can now determine the length of time it takes Clang to build and link each C/C++ file in your project. Gradle can output a Chrome trace that contains timestamps for these compiler events so you can better understand the time required to build your project. To output this build attribution file, do the following:
Add the flag
-Pandroid.enableProfileJson=true
when running a Gradle build. যেমন:gradlew assembleDebug -Pandroid.enableProfileJson=true
Open the Chrome browser and type
chrome://tracing
in the search bar.Click the Load button and navigate to
<var>project-root</var>/build/android-profile
to find the file. The file is namedprofile-<var>timestamp</var>.json.gz
.
You can see the native build attribution data near the top of the viewer:
আচরণ পরিবর্তন
When using this version of the plugin, you might encounter the following changes in behavior.
Native libraries packaged uncompressed by default
When you build your app, the plugin now sets extractNativeLibs
to "false"
by default. That is, your native libraries are page aligned and packaged uncompressed. While this results in a larger upload size, your users benefit from the following:
- Smaller app install size because the platform can access the native libraries directly from the installed APK, without creating a copy of the libraries.
- Smaller download size because Play Store compression is typically better when you include uncompressed native libraries in your APK or Android App Bundle.
If you want the Android Gradle plugin to instead package compressed native libraries, include the following in your app's manifest:
<application
android:extractNativeLibs="true"
... >
</application>
Note: The extractNativeLibs
manifest attribute has been replaced by the useLegacyPackaging
DSL option. For more information, see the release note Use the DSL to package compressed native libraries .
Default NDK version
If you download multiple versions of the NDK, the Android Gradle plugin now selects a default version to use in compiling your source code files. Previously, the plugin selected the latest downloaded version of the NDK. Use the android.ndkVersion
property in the module's build.gradle
file to override the plugin-selected default.
Simplified R class generation
The Android Gradle plugin simplifies the compile classpath by generating only one R class for each library module in your project and sharing those R classes with other module dependencies. This optimization should result in faster builds, but it requires that you keep the following in mind:
- Because the compiler shares R classes with upstream module dependencies, it's important that each module in your project uses a unique package name.
- The visibility of a library's R class to other project dependencies is determined by the configuration used to include the library as a dependency. For example, if Library A includes Library B as an 'api' dependency, Library A and other libraries that depend on Library A have access to Library B's R class. However, other libraries might not have access to Library B's R class. If Library A uses the
implementation
dependency configuration. To learn more, read about dependency configurations .
Remove resources missing from default configuration
For Library modules, if you include a resource for a language that you do not include in the default set of resources—for example, if you include hello_world
as a string resource in /values-es/strings.xml
but you don't define that resource in /values/strings.xml
—the Android Gradle plugin no longer includes that resource when compiling your project. This behavior change should result in fewer Resource Not Found
runtime exceptions and improved build speed.
D8 now respects CLASS retention policy for annotations
When compiling your app, D8 now respects when annotations apply a CLASS retention policy, and those annotations are no longer available at runtime. This behavior also exists when setting the app's target SDK to API level 23, which previously allowed access to these annotations during runtime when compiling your app using older versions of the Android Gradle plugin and D8.
Other behavior changes
-
aaptOptions.noCompress
is no longer case sensitive on all platforms (for both APK and bundles) and respects paths that use uppercase characters. Data binding is now incremental by default. To learn more, see issue #110061530 .
All unit tests, including Roboelectric unit tests, are now fully cacheable. To learn more, see issue #115873047 .
বাগ ফিক্স
This version of the Android Gradle plugin includes the following bug fixes:
- Robolectric unit tests are now supported in library modules that use data binding. To learn more, see issue #126775542 .
- You can now run
connectedAndroidTest
tasks across multiple modules while Gradle's parallel execution mode is enabled.
পরিচিত সমস্যা
This section describes known issues that exist in Android Gradle plugin 3.6.0.
Slow performance of Android Lint task
Android Lint can take much longer to complete on some projects due to a regression in its parsing infrastructure, resulting in slower computation of inferred types for lambdas in certain code constructs.
The issue is reported as a bug in IDEA and will be fixed in Android Gradle Plugin 4.0.
Missing Manifest class {:#agp-missing-manifest}
If your app defines custom permissions in its manifest, the Android Gradle plugin typically generates a Manifest.java
class that includes your custom permissions as string constants. The plugin packages this class with your app, so you can more easily reference those permissions at runtime.
Generating the manifest class is broken in Android Gradle plugin 3.6.0. If you build your app with this version of the plugin, and it references the manifest class, you might see a ClassNotFoundException
exception. এই সমস্যাটি সমাধান করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
Reference your custom permissions by their fully-qualified name. For example,
"com.example.myapp.permission.DEADLY_ACTIVITY"
.Define your own constants, as shown below:
public final class CustomPermissions { public static final class permission { public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY"; } }
3.5.0 (August 2019)
Android Gradle plugin 3.5.0, along with Android Studio 3.5 , is a major release and a result of Project Marble, which is a focus on improving three main areas of the Android developer tools: system health, feature polish, and fixing bugs. Notably, improving project build speed was a main focus for this update.
এগুলি এবং অন্যান্য প্রজেক্ট মার্বেল আপডেট সম্পর্কে তথ্যের জন্য, অ্যান্ড্রয়েড ডেভেলপারদের ব্লগ পোস্ট বা নীচের বিভাগগুলি পড়ুন৷
This version of the Android plugin requires the following:
Gradle 5.4.1 . To learn more, read the section about updating Gradle .
SDK Build Tools 28.0.3 or higher.
3.5.4 (July 2020)
This minor update supports compatibility with new default settings and features for package visibility in Android 11 .
See the 4.0.1 release notes for details.
3.5.3 (ডিসেম্বর 2019)
This minor update supports Android Studio 3.5.3 and includes various bug fixes and performance improvements.
3.5.2 (নভেম্বর 2019)
This minor update supports Android Studio 3.5.2 and includes various bug fixes and performance improvements. To see a list of noteable bug fixes, read the related post on the Release Updates blog .
3.5.1 (অক্টোবর 2019)
This minor update supports Android Studio 3.5.1 and includes various bug fixes and performance improvements. To see a list of noteable bug fixes, read the related post on the Release Updates blog .
Incremental annotation processing
The Data Binding annotation processor supports incremental annotation processing if you set android.databinding.incremental=true
in your gradle.properties
file. This optimization results in improved incremental build performance. For a full list of optimized annotation processors, refer to the table of incremental annotation processors .
Additionally, KAPT 1.3.30 and higher also support incremental annotation processors, which you can enable by including kapt.incremental.apt=true
in your gradle.properties
file.
Cacheable unit tests
When you enable unit tests to use Android resources, assets, and manifests by setting includeAndroidResources
to true
, the Android Gradle plugin generates a test config file containing absolute paths, which breaks cache relocatability. You can instruct the plugin to instead generate the test config using relative paths, which allows the AndroidUnitTest
task to be fully cacheable, by including the following in your gradle.properties
file:
android.testConfig.useRelativePath = true
পরিচিত সমস্যা
When using Kotlin Gradle plugin 1.3.31 or earlier, you might see the following warning when building or syncing your project:
WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'.
To resolve this issue , upgrade the plugin to version 1.3.40 or higher.
3.4.0 (April 2019)
This version of the Android plugin requires the following:
Gradle 5.1.1 or higher. To learn more, read the section about updating Gradle .
Note: When using Gradle 5.0 and higher, the default Gradle daemon memory heap size decreases from 1 GB to 512 MB. This might result in a build performance regression. To override this default setting, specify the Gradle daemon heap size in your project's
gradle.properties
file.SDK Build Tools 28.0.3 or higher.
3.4.3 (July 2020)
This minor update supports compatibility with new default settings and features for package visibility in Android 11 .
See the 4.0.1 release notes for details.
3.4.2 (জুলাই 2019)
This minor update supports Android Studio 3.4.2 and includes various bug fixes and performance improvements. To see a list of noteable bug fixes, read the related post on the Release Updates blog .
3.4.1 (মে 2019)
This minor update supports Android Studio 3.4.1 and includes various bug fixes and performance improvements. To see a list of noteable bug fixes, read the related post on the Release Updates blog .
নতুন বৈশিষ্ট্য
New lint check dependency configurations: The behavior of
lintChecks
has changed and a new dependency configuration,lintPublish
, has been introduced to give you more control over which lint checks are packaged in your Android libraries.-
lintChecks
: This is an existing configuration that you should use for lint checks you want to only run when building your project locally. If you were previously using thelintChecks
dependency configuration to include lint checks in the published AAR, you need to migrate those dependencies to instead use the newlintPublish
configuration described below. -
lintPublish
: Use this new configuration in library projects for lint checks you want to include in the published AAR, as shown below. This means that projects that consume your library also apply those lint checks.
The following code sample uses both dependency configurations in a local Android library project.
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks project(':lint') // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish project(':lintpublish') }
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks(project(":lint")) // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish(project(":lintpublish")) }
In general, packaging and signing tasks should see an overall build speed improvement. If you notice a performance regression related to these tasks, please report a bug .
-
আচরণ পরিবর্তন
Android Instant Apps Feature plugin deprecation warning: If you're still using the
com.android.feature
plugin to build your instant app, Android Gradle plugin 3.4.0 will give throw you a deprecation warning. To make sure you can still build you instant app on future versions of the plugin, migrate your instant app to using the dynamic feature plugin , which also allows you to publish both your installed and instant app experiences from a single Android App Bundle.R8 enabled by default: R8 integrates desugaring, shrinking, obfuscating, optimizing, and dexing all in one step—resulting in noticeable build performance improvements . R8 অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.3.0-এ চালু করা হয়েছিল এবং এখন প্লাগইন 3.4.0 এবং উচ্চতর ব্যবহার করে অ্যাপ এবং অ্যান্ড্রয়েড লাইব্রেরি উভয় প্রকল্পের জন্য ডিফল্টরূপে সক্রিয় করা হয়েছে।
নীচের ছবিটি R8 চালু করার আগে কম্পাইল প্রক্রিয়ার একটি উচ্চ-স্তরের ওভারভিউ প্রদান করে।

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

মনে রাখবেন, 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
ফাইল।
-
ndkCompile
is deprecated: You now get a build error if you try to usendkBuild
to compile your native libraries. You should instead use either CMake or ndk-build to Add C and C++ code to your project .
পরিচিত সমস্যা
The correct usage of unique package names are currently not enforced but will become more strict on later versions of the plugin. On Android Gradle plugin version 3.4.0, you can opt-in to check whether your project declares acceptable package names by adding the line below to your
gradle.properties
file.android.uniquePackageNames = true
To learn more about setting a package name through the Android Gradle plugin, see Set the application ID .
3.3.0 (January 2019)
This version of the Android plugin requires the following:
Gradle 4.10.1 or higher. To learn more, read the section about updating Gradle .
Note: When using Gradle 5.0 and higher, the default Gradle daemon memory heap size decreases from 1 GB to 512 MB. This might result in a build performance regression. To override this default setting, specify the Gradle daemon heap size in your project's
gradle.properties
file.SDK Build Tools 28.0.3 or higher.
3.3.3 (July 2020)
This minor update supports compatibility with new default settings and features for package visibility in Android 11 .
See the 4.0.1 release notes for details.
3.3.2 (March 2019)
This minor update supports Android Studio 3.3.2 and includes various bug fixes and performance improvements. To see a list of noteable bug fixes, read the related post on the Release Updates blog .
3.3.1 (February 2019)
This minor update supports Android Studio 3.3.1 and includes various bug fixes and performance improvements.
নতুন বৈশিষ্ট্য
Improved classpath synchronization: When resolving dependencies on your runtime and compile time classpaths, the Android Gradle plugin attempts to fix certain downstream version conflicts for dependencies that appear across multiple classpaths.
For example, if the runtime classpath includes Library A version 2.0 and the compile classpath includes Library A version 1.0, the plugin automatically updates the dependency on the compile classpath to Library A version 2.0 to avoid errors.
However, if the runtime classpath includes Library A version 1.0 and the compile includes Library A version 2.0, the plugin does not downgrade the dependency on the compile classpath to Library A version 1.0, and you will get an error. To learn more, see Fix conflicts between classpaths .
Improved incremental Java compilation when using annotation processors: This update decreases build time by improving support for incremental Java compilation when using annotation processors.
Note: This feature is compatible with Gradle 4.10.1 and higher, except Gradle 5.1 due to Gradle issue 8194 .
For projects using Kapt (most Kotlin-only projects and Kotlin-Java hybrid projects): Incremental Java compilation is enabled, even when you use data binding or the retro-lambda plugin. Annotation processing by the Kapt task is not yet incremental.
For projects not using Kapt (Java-only projects): If the annotation processors you use all support incremental annotation processing , incremental Java compilation is enabled by default. To monitor incremental annotation processor adoption, watch Gradle issue 5277 .
If, however, one or more annotation processors do not support incremental builds, incremental Java compilation is not enabled. Instead, you can include the following flag in your
gradle.properties
file:android.enableSeparateAnnotationProcessing=true
When you include this flag, the Android Gradle plugin executes the annotation processors in a separate task and allows the Java compilation task to run incrementally.
Better debug info when using obsolete API: When the plugin detects that you're using an API that's no longer supported, it can now provide more-detailed information to help you determine where that API is being used. To see the additional info, you need to include the following in your project's
gradle.properties
file:android.debug.obsoleteApi=true
You can also enable the flag by passing
-Pandroid.debug.obsoleteApi=true
from the command line.You can run instrumentation tests on feature modules from the command line.
আচরণ পরিবর্তন
Lazy task configuration: The plugin now uses Gradle's new task creation API to avoid initializing and configuring tasks that are not required to complete the current build (or tasks not on the execution task graph). For example, if you have multiple build variants, such as “release” and “debug” build variants, and you're building the “debug” version of your app, the plugin avoids initializing and configuring tasks for the “release” version of আপনার অ্যাপ।
Calling certain older methods in the Variants API, such as
variant.getJavaCompile()
, might still force task configuration. To make sure that your build is optimized for lazy task configuration, invoke new methods that instead return a TaskProvider object, such asvariant.getJavaCompileProvider()
.If you execute custom build tasks, learn how to adapt to Gradle's new task-creation API .
For a given build type, when setting
useProguard false
, the plugin now uses R8 instead of ProGuard to shrink and obfuscate your app's code and resources. To learn more about R8, read this blog post from the Android Developer's Blog.Faster R class generation for library projects: Previously, the Android Gradle plugin would generate an
R.java
file for each of your project's dependencies and then compile those R classes alongside your app's other classes. The plugin now generates a JAR containing your app's compiled R class directly, without first building intermediateR.java
classes. This optimization may significantly improve build performance for projects that include many library subprojects and dependencies, and improve the indexing speed in Android Studio.When building an Android App Bundle , APKs generated from that app bundle that target Android 6.0 (API level 23) or higher now include uncompressed versions of your native libraries by default. This optimization avoids the need for the device to make a copy of the library and thus reduces the on-disk size of your app. If you'd rather disable this optimization, add the following to your
gradle.properties
file:android.bundle.enableUncompressedNativeLibs = false
The plugin enforces minimum versions of some third-party plugins.
Single-variant project sync : Syncing your project with your build configuration is an important step in letting Android Studio understand how your project is structured. However, this process can be time-consuming for large projects. If your project uses multiple build variants, you can now optimize project syncs by limiting them to only the variant you have currently selected.
You need to use Android Studio 3.3 or higher with Android Gradle Plugin 3.3.0 or higher to enable this optimization. When you meet these requirements, the IDE prompts you to enable this optimization when you sync your project. The optimization is also enabled by default on new projects.
To enable this optimization manually, click File > Settings > Experimental > Gradle ( Android Studio > Preferences > Experimental > Gradle on a Mac) and select the Only sync the active variant checkbox.
Note : This optimization fully supports projects that include Java and C++ languages, and has some support for Kotlin. When enabling the optimization for projects with Kotlin content, Gradle sync falls back to using full variants internally.
Automatic downloading of missing SDK packages : This functionality has been expanded to support NDK. To learn more, read Auto-download missing packages with Gradle .
বাগ ফিক্স
Android Gradle plugin 3.3.0 fixes the following issues:
- The build process calling
android.support.v8.renderscript.RenderScript
instead of the AndroidX version, despite Jetifier being enabled - Clashes due to
androidx-rs.jar
including statically bundledannotation.AnyRes
- When using RenderScript, you no longer have to manually set the Build Tools version in your
build.gradle
files
- The build process calling
3.2.0 (September 2018)
This version of the Android plugin requires the following:
- Gradle 4.6 or higher. To learn more, read the section about updating Gradle .
- SDK Build Tools 28.0.3 or higher.
3.2.1 (October 2018)
With this update, you no longer need to specify a version for the SDK Build Tools. The Android Gradle plugin now uses version 28.0.3 by default.
নতুন বৈশিষ্ট্য
Support for building Android App Bundles: The app bundle is a new upload format that includes all your app's compiled code and resources while deferring APK generation and signing to the Google Play Store. You no longer have to build, sign, and manage multiple APKs, and users get smaller downloads that are optimized for their device. To learn more, read About Android App Bundles .
Support for improved incremental build speeds when using annotation processors: The
AnnotationProcessorOptions
DSL now extendsCommandLineArgumentProvider
, which enables either you or the annotation processor author to annotate arguments for the processor using incremental build property type annotations . Using these annotations improves the correctness and performance of incremental and cached clean builds. To learn more, read Pass arguments to annotation processors .Migration tool for AndroidX: When using Android Gradle plugin 3.2.0 with Android 3.2 and higher, you can migrate your project's local and Maven dependencies to use the new AndroidX libraries by selecting Refactor > Migrate to AndroidX from the menu bar. Using this migration tool also sets the following flags to
true
in yourgradle.properties
file:android.useAndroidX
: When set totrue
, the Android plugin uses the appropriate AndroidX library instead of a Support Library. When this flag is not specified, the plugin sets it tofalse
by default.android.enableJetifier
: When set totrue
, the Android plugin automatically migrates existing third-party libraries to use AndroidX by rewriting their binaries. When this flag is not specified, the plugin sets it tofalse
by default. You can set this flag totrue
only whileandroid.useAndroidX
is also set totrue
, otherwise you get a build error.To learn more, read the AndroidX overview .
New code shrinker, R8: R8 is a new tool for code shrinking and obfuscation that replaces ProGuard. You can start using the preview version of R8 by including the following in your project's
gradle.properties
file:android.enableR8 = true
android.enableR8 = true
আচরণ পরিবর্তন
Desugaring with D8 is now enabled by default.
AAPT2 is now on Google's Maven repo. To use AAPT2, make sure that you have the
google()
dependency in yourbuild.gradle
file, as shown below: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() }
Native multidex is now enabled by default. Previous versions of Android Studio enabled native multidex when deploying the debug version of an app to a device running Android API level 21 or higher. Now, whether you're deploying to a device or building an APK for release, the Android Gradle plugin enables native multidex for all modules that set
minSdkVersion=21
or higher.The plugin now enforces a minimum version of the protobuf plugin (0.8.6), Kotlin plugin (1.2.50), and Crashlytics plugin (1.25.4).
The feature module plugin,
com.android.feature
, now enforces the use of only letters, digits, and underscores when specifying a module name. For example, if your feature module name includes dashes, you get a build error. This behavior matches that of the dynamic feature plugin.
বাগ ফিক্স
- JavaCompile is now cacheable in projects with data binding. ( Issue #69243050 )
- Better compile avoidance for library modules with data binding. ( Issue #77539932 )
- You can now re-enable configure-on-demand if you've disable it in earlier versions due to some unpredictable build errors. ( Issue #77910727 )
3.1.0 (March 2018)
This version of the Android plugin requires the following:
Gradle 4.4 or higher.
To learn more, read the section about updating Gradle .
Build Tools 27.0.3 or higher.
Keep in mind, you no longer need to specify a version for the build tools using the
android.buildToolsVersion
property—the plugin uses the minimum required version by default.
New DEX compiler, D8
By default, Android Studio now uses a new DEX compiler called D8. DEX compilation is the process of transforming .class
bytecode into .dex
bytecode for the Android Runtime (or Dalvik, for older versions of Android). Compared to the previous compiler, called DX, D8 compiles faster and outputs smaller DEX files, all while having the same or better app runtime performance.
D8 shouldn't change your day-to-day app development workflow. However, if you experience any issues related to the new compiler, please report a bug . You can temporarily disable D8 and use DX by including the following in your project's gradle.properties
file:
android.enableD8=false
For projects that use Java 8 language features , incremental desugaring is enabled by default. You can disable it by specifying the following in your project's gradle.properties
file:
android.enableIncrementalDesugaring=false.
Preview users: If you're already using a preview version of D8, note that it now compiles against libraries included in the SDK build tools —not the JDK. So, if you are accessing APIs that exist in the JDK but not in the SDK build tools libraries, you get a compile error.
আচরণ পরিবর্তন
When building multiple APKs that each target a different ABI, the no longer generates APKs for the following ABIs by default:
mips
,mips64
, andarmeabi
.If you want to build APKs that target these ABIs, you must use NDK r16b or lower and specify the ABIs in your
build.gradle
file, as shown below:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
The Android plugin's build cache now evicts cache entries that are older than 30 days.
Passing
"auto"
toresConfig
no longer automatically picks string resources to package into your APK. If you continue to use"auto"
, the plugin packages all string resources your app and its dependencies provide. So, you should instead specify each locale that you want the plugin to package into your APK.Because local modules can't depend on your app's test APK, adding dependencies to your instrumented tests using the
androidTestApi
configuration, instead ofandroidTestImplementation
, causes Gradle to issue the following warning:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
সংশোধন করে
- Fixes an issue where Android Studio doesn't properly recognize dependencies in composite builds.
- Fixes an issue where you get a project sync error when loading the Android plugin multiple times in a single build–for example, when multiple subprojects each include the Android plugin in their buildscript classpath.
3.0.0 (October 2017)
Android Gradle plugin 3.0.0 includes a variety of changes that aim to address performance issues of large projects.
For example, on a sample skeleton project with ~130 modules and a large number of external dependencies (but no code or resources), you can experience performance improvements similar to the following:
Android plugin version + Gradle version | Android plugin 2.2.0 + Gradle 2.14.1 | Android plugin 2.3.0 + Gradle 3.3 | Android plugin 3.0.0 + Gradle 4.1 |
---|---|---|---|
Configuration (eg running ./gradlew --help ) | ~2 মিনিট | ~9 s | ~2.5 s |
1-line Java change (implementation change) | ~2 mins 15 s | ~29 s | ~6.4 s |
Some of these changes break existing builds. So, you should consider the\ effort of migrating your project before using the new plugin.
If you don't experience the performance improvements described above, please file a bug and include a trace of your build using the Gradle Profiler .
This version of the Android plugin requires the following:
- Gradle 4.1 or higher. To learn more, read the section about updating Gradle .
- Build Tools 26.0.2 or higher. With this update, you no longer need to specify a version for the build tools—the plugin uses the minimum required version by default. So, you can now remove the
android.buildToolsVersion
property.
3.0.1 (November 2017)
This is a minor update to support Android Studio 3.0.1, and includes general bug fixes and performance improvements.
অপ্টিমাইজেশন
- Better parallelism for multi-module projects through a fine grained task graph.
- When making changes to dependency, Gradle performs faster builds by not re-compiling modules that do not have access to that dependency's API. You should restrict which dependencies leak their APIs to other modules by using Gradle's new dependency configurations :
implementation
,api
,compileOnly
, andruntimeOnly
. - Faster incremental build speed due to per-class dexing. Each class is now compiled into separate DEX files, and only the classes that are modified are re-dexed. You should also expect improved build speeds for apps that set
minSdkVersion
to 20 or lower, and use legacy multi-dex . - Improved build speeds by optimizing certain tasks to use chached outputs. To benefit from this optimization, you need to first enable the Gradle build cache .
- Improved incremental resource processing using AAPT2, which is now enabled by default. If you are experiencing issues while using AAPT2, please report a bug . You can also disable AAPT2 by setting
android.enableAapt2=false
in yourgradle.properties
file and restarting the Gradle daemon by running./gradlew --stop
from the command line.
নতুন বৈশিষ্ট্য
- Variant-aware dependency management . When building a certain variant of a module, the plugin now automatically matches variants of local library module dependencies to the variant of the module you are building.
- Includes a new Feature module plugin to support Android Instant Apps and the Android Instant Apps SDK (which you can download using the SDK manager ). To learn more about creating Feature modules with the new plugin, read Structure of an instant app with multiple features .
- Built-in support for using certain Java 8 language features and Java 8 libraries. Jack is now deprecated and no longer required , and you should first disable Jack to use the improved Java 8 support built into the default toolchain. For more information, read Use Java 8 language features .
Added support for running tests with Android Test Orchestrator , which allows you to run each of your app's tests within its own invocation of Instrumentation. Because each test runs in its own Instrumentation instance, any shared state between tests doesn't accumulate on your device's CPU or memory. And, even if one test crashes, it takes down only its own instance of Instrumentation, so your other tests still run.
- Added
testOptions.execution
to determine whether to use on-device test orchestration. If you want to use Android Test Orchestrator , you need to specifyANDROID_TEST_ORCHESTRATOR
, as shown below. By default, this property is set toHOST
, which disables on-device orchestration and is the standard method of running tests.
গ্রোভি
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
কোটলিন
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- Added
New
androidTestUtil
dependency configuration allows you to install another test helper APK before running your instrumentation tests, such as Android Test Orchestrator:গ্রোভি
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
কোটলিন
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
Added
testOptions.unitTests.includeAndroidResources
to support unit tests that require Android resources, such as Roboelectric . When you set this property totrue
, the plugin performs resource, asset, and manifest merging before running your unit tests. Your tests can then inspectcom/android/tools/test_config.properties
on the classpath for the following keys:android_merged_assets
: the absolute path to the merged assets directory.Note: For library modules, the merged assets do not contain the assets of dependencies (see issue #65550419 ).
android_merged_manifest
: the absolute path to the merged manifest file.android_merged_resources
: the absolute path to the merged resources directory, which contains all the resources from the module and all its dependencies.android_custom_package
: the package name of the final R class. If you dynamically modify the application ID, this package name may not match thepackage
attribute in the app's manifest.
- Support for fonts as resources (which is a new feature introduced in Android 8.0 (API level 26) ).
- Support for language-specific APKs with Android Instant Apps SDK 1.1 and higher.
You can now change the output directory for your external native build project, as shown below:
গ্রোভি
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
কোটলিন
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- You can now use CMake 3.7 or higher when building native projects from Android Studio.
New
lintChecks
dependency configuration allows you to build a JAR that defines custom lint rules, and package it into your AAR and APK projects.Your custom lint rules must belong to a separate project that outputs a single JAR and includes only
compileOnly
dependencies. Other app and library modules can then depend on your lint project using thelintChecks
configuration:গ্রোভি
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
কোটলিন
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
আচরণ পরিবর্তন
- Android plugin 3.0.0 removes certain APIs, and your build will break if you use them. For example, you can no longer use the Variants API to access
outputFile()
objects or useprocessManifest.manifestOutputFile()
to get the manifest file for each variant. To learn more, read API changes . - You no longer need to specify a version for the build tools (so, you can now remove the
android.buildToolsVersion
property). By default, the plugin automatically uses the minimum required build tools version for the version of Android plugin you're using. - You now enable/disable PNG crunching in the
buildTypes
block, as shown below. PNG crunching is enabled by default for all builds except debug builds because it increases build times for projects that include many PNG files. So, to improve build times for other build types, you should either disable PNG crunching or convert your images to WebP .গ্রোভি
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
কোটলিন
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- The Android plugin now automatically builds executable targets that you configure in your external CMake projects.
- You must now add annotation processors to the processor classpath using the
annotationProcessor
dependency configuration. - Using the deprecated
ndkCompile
is now more restricted. You should instead migrate to using either CMake or ndk-build to compile native code that you want to package into your APK. To learn more, read Migrate from ndkcompile .
3.0.0 (October 2017)
Android Gradle plugin 3.0.0 includes a variety of changes that aim to address performance issues of large projects.
For example, on a sample skeleton project with ~130 modules and a large number of external dependencies (but no code or resources), you can experience performance improvements similar to the following:
Android plugin version + Gradle version | Android plugin 2.2.0 + Gradle 2.14.1 | Android plugin 2.3.0 + Gradle 3.3 | Android plugin 3.0.0 + Gradle 4.1 |
---|---|---|---|
Configuration (eg running ./gradlew --help ) | ~2 মিনিট | ~9 s | ~2.5 s |
1-line Java change (implementation change) | ~2 mins 15 s | ~29 s | ~6.4 s |
Some of these changes break existing builds. So, you should consider the\ effort of migrating your project before using the new plugin.
If you don't experience the performance improvements described above, please file a bug and include a trace of your build using the Gradle Profiler .
This version of the Android plugin requires the following:
- Gradle 4.1 or higher. To learn more, read the section about updating Gradle .
- Build Tools 26.0.2 or higher. With this update, you no longer need to specify a version for the build tools—the plugin uses the minimum required version by default. So, you can now remove the
android.buildToolsVersion
property.
3.0.1 (November 2017)
This is a minor update to support Android Studio 3.0.1, and includes general bug fixes and performance improvements.
অপ্টিমাইজেশন
- Better parallelism for multi-module projects through a fine grained task graph.
- When making changes to dependency, Gradle performs faster builds by not re-compiling modules that do not have access to that dependency's API. You should restrict which dependencies leak their APIs to other modules by using Gradle's new dependency configurations :
implementation
,api
,compileOnly
, andruntimeOnly
. - Faster incremental build speed due to per-class dexing. Each class is now compiled into separate DEX files, and only the classes that are modified are re-dexed. You should also expect improved build speeds for apps that set
minSdkVersion
to 20 or lower, and use legacy multi-dex . - Improved build speeds by optimizing certain tasks to use chached outputs. To benefit from this optimization, you need to first enable the Gradle build cache .
- Improved incremental resource processing using AAPT2, which is now enabled by default. If you are experiencing issues while using AAPT2, please report a bug . You can also disable AAPT2 by setting
android.enableAapt2=false
in yourgradle.properties
file and restarting the Gradle daemon by running./gradlew --stop
from the command line.
নতুন বৈশিষ্ট্য
- Variant-aware dependency management . When building a certain variant of a module, the plugin now automatically matches variants of local library module dependencies to the variant of the module you are building.
- Includes a new Feature module plugin to support Android Instant Apps and the Android Instant Apps SDK (which you can download using the SDK manager ). To learn more about creating Feature modules with the new plugin, read Structure of an instant app with multiple features .
- Built-in support for using certain Java 8 language features and Java 8 libraries. Jack is now deprecated and no longer required , and you should first disable Jack to use the improved Java 8 support built into the default toolchain. For more information, read Use Java 8 language features .
Added support for running tests with Android Test Orchestrator , which allows you to run each of your app's tests within its own invocation of Instrumentation. Because each test runs in its own Instrumentation instance, any shared state between tests doesn't accumulate on your device's CPU or memory. And, even if one test crashes, it takes down only its own instance of Instrumentation, so your other tests still run.
- Added
testOptions.execution
to determine whether to use on-device test orchestration. If you want to use Android Test Orchestrator , you need to specifyANDROID_TEST_ORCHESTRATOR
, as shown below. By default, this property is set toHOST
, which disables on-device orchestration and is the standard method of running tests.
গ্রোভি
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
কোটলিন
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- Added
New
androidTestUtil
dependency configuration allows you to install another test helper APK before running your instrumentation tests, such as Android Test Orchestrator:গ্রোভি
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
কোটলিন
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
Added
testOptions.unitTests.includeAndroidResources
to support unit tests that require Android resources, such as Roboelectric . When you set this property totrue
, the plugin performs resource, asset, and manifest merging before running your unit tests. Your tests can then inspectcom/android/tools/test_config.properties
on the classpath for the following keys:android_merged_assets
: the absolute path to the merged assets directory.Note: For library modules, the merged assets do not contain the assets of dependencies (see issue #65550419 ).
android_merged_manifest
: the absolute path to the merged manifest file.android_merged_resources
: the absolute path to the merged resources directory, which contains all the resources from the module and all its dependencies.android_custom_package
: the package name of the final R class. If you dynamically modify the application ID, this package name may not match thepackage
attribute in the app's manifest.
- Support for fonts as resources (which is a new feature introduced in Android 8.0 (API level 26) ).
- Support for language-specific APKs with Android Instant Apps SDK 1.1 and higher.
You can now change the output directory for your external native build project, as shown below:
গ্রোভি
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
কোটলিন
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- You can now use CMake 3.7 or higher when building native projects from Android Studio.
New
lintChecks
dependency configuration allows you to build a JAR that defines custom lint rules, and package it into your AAR and APK projects.Your custom lint rules must belong to a separate project that outputs a single JAR and includes only
compileOnly
dependencies. Other app and library modules can then depend on your lint project using thelintChecks
configuration:গ্রোভি
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
কোটলিন
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
আচরণ পরিবর্তন
- Android plugin 3.0.0 removes certain APIs, and your build will break if you use them. For example, you can no longer use the Variants API to access
outputFile()
objects or useprocessManifest.manifestOutputFile()
to get the manifest file for each variant. To learn more, read API changes . - You no longer need to specify a version for the build tools (so, you can now remove the
android.buildToolsVersion
property). By default, the plugin automatically uses the minimum required build tools version for the version of Android plugin you're using. - You now enable/disable PNG crunching in the
buildTypes
block, as shown below. PNG crunching is enabled by default for all builds except debug builds because it increases build times for projects that include many PNG files. So, to improve build times for other build types, you should either disable PNG crunching or convert your images to WebP .গ্রোভি
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
কোটলিন
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- The Android plugin now automatically builds executable targets that you configure in your external CMake projects.
- You must now add annotation processors to the processor classpath using the
annotationProcessor
dependency configuration. - Using the deprecated
ndkCompile
is now more restricted. You should instead migrate to using either CMake or ndk-build to compile native code that you want to package into your APK. To learn more, read Migrate from ndkcompile .
2.3.0 (February 2017)
2.3.3 (জুন 2017)
This is a minor update that adds compatibility with Android Studio 2.3.3 .
2.3.2 (May 2017)
This is a minor update that adds compatibility with Android Studio 2.3.2 .
2.3.1 (এপ্রিল 2017)
This is a minor update to Android plugin 2.3.0 that fixes an issue where some physical Android devices did not work properly with Instant Run (see Issue #235879 ).
- নির্ভরতা:
- Gradle 3.3 or higher.
- Build Tools 25.0.0 or higher.
- নতুন:
- Uses Gradle 3.3, which includes performance improvements and new features. For more details, see the Gradle release notes .
- Build cache : stores certain outputs that the Android plugin generates when building your project (such as unpackaged AARs and pre-dexed remote dependencies). Your clean builds are much faster while using the cache because the build system can simply reuse those cached files during subsequent builds, instead of recreating them. Projects using Android plugin 2.3.0 and higher use the build cache by default. To learn more, read Improve Build Speed with Build Cache .
- Includes a
cleanBuildCache
task that clears the build cache . - If you are using the experimental version of build cache (included in earlier versions of the plugin), you should update your plugin to the latest version.
- Includes a
- পরিবর্তন:
- Supports changes to Instant Run included in Android Studio 2.3 .
- Configuration times for very large projects should be significantly faster.
- Fixed issues with auto-downloading for the constraint layout library .
- Plugin now uses ProGuard version 5.3.2 .
- Includes many fixes for reported bugs . Please continue to file bug reports when you encounter issues.
2.2.0 (September 2016)
- নির্ভরতা:
- Gradle 2.14.1 or higher.
- Build Tools 23.0.2 or higher.
- নতুন:
- Uses Gradle 2.14.1, which includes performance improvements and new features, and fixes a security vulnerability that allows local privilege escalation when using the Gradle daemon. For more details, see the Gradle release notes .
- Using the
externalNativeBuild {}
DSL, Gradle now lets you link to your native sources and compile native libraries using CMake or ndk-build. After building your native libraries, Gradle packages them into your APK. To learn more about using CMake and ndk-build with Gradle, read Add C and C++ Code to Your Project . - When you run a build from the command line , Gradle now attempts to auto-download any missing SDK components or updates that your project depends on. To learn more, read Auto-download missing packages with Gradle .
- A new experimental caching feature lets Gradle speed up build times by pre-dexing, storing, and reusing the pre-dexed versions of your libraries. To learn more about using this experimental feature, read the Build Cache guide.
- Improves build performance by adopting a new default packaging pipeline which handles zipping, signing, and zipaligning in one task. You can revert to using the older packaging tools by adding
android.useOldPackaging=true
to yourgradle.properties
file. While using the new packaging tool, thezipalignDebug
task is not available. However, you can create one yourself by calling thecreateZipAlignTask(String taskName, File inputFile, File outputFile)
method. - APK signing now uses APK Signature Scheme v2 in addition to traditional JAR signing. All Android platforms accept the resulting APKs. Any modification to these APKs after signing invalidates their v2 signatures and prevents installation on a device. To disable this feature, add the following to your module-level
build.gradle
file:গ্রোভি
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
কোটলিন
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- For multidex builds, you can now use ProGuard rules to determine which classes Gradle should compile into your app's main DEX file. Because the Android system loads the main DEX file first when starting your app, you can prioritize certain classes at startup by compiling them into the main DEX file. After you create a ProGuard configuration file specifically for your main DEX file, pass the configuration file's path to Gradle using
buildTypes.multiDexKeepProguard
. Using this DSL is different from usingbuildTypes.proguardFiles
, which provides general ProGuard rules for your app and does not specify classes for the main DEX file. - Adds support for the
android:extractNativeLibs
flag, which can reduce the size of your app when you install it on a device. When you set this flag tofalse
in the<application>
element of your app manifest, Gradle packages uncompressed and aligned versions of your native libraries with your APK. This preventsPackageManager
from copying out your native libraries from the APK to the device's file system during installation and has the added benefit of making delta updates of your app smaller. - You can now specify
versionNameSuffix
andapplicationIdSuffix
for product flavors. ( Issue 59614 )
- পরিবর্তন:
-
getDefaultProguardFile
now returns the default ProGuard files that Android plugin for Gradle provides and no longer uses the ones in the Android SDK. - Improved Jack compiler performance and features:
- Jack now supports Jacoco test coverage when setting
testCoverageEnabled
totrue
. - Improved support for annotation processors. Annotation processors on your classpath, such as any
compile
dependencies, are automatically applied to your build. You can also specify an annotation processor in your build and pass arguments by using thejavaCompileOptions.annotationProcessorOptions {}
DSL in your module-levelbuild.gradle
file:গ্রোভি
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
কোটলিন
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
If you want to apply an annotation processor at compile time but not include it in your APK, use the
annotationProcessor
dependency scope:গ্রোভি
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
কোটলিন
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
- By default, if the Gradle daemon's heap size is at least 1.5 GB, Jack now runs in the same process as Gradle. To adjust the daemon heap size, add the following to your
gradle.properties
file:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
For a list of parameters you can set, run the following from the command line:
java -jar /build-tools/jack.jar --help-properties
- Jack now supports Jacoco test coverage when setting
-
2.1.0 (April 2016)
2.1.3 (August 2016)
This update requires Gradle 2.14.1 and higher. Gradle 2.14.1 includes performance improvements, new features, and an important security fix . For more details, see the Gradle release notes .
- নির্ভরতা:
- Gradle 2.10 or higher.
- Build Tools 23.0.2 or higher.
- নতুন:
- Added support for the N Developer Preview, JDK 8, and Java 8 language features using the Jack toolchain. To find out more, read the N Preview guide .
Note: Instant Run does not currently work with Jack and will be disabled while using the new toolchain. You only need to use Jack if you are developing for the N Preview and want to use the supported Java 8 language features.
- Added default support for incremental Java compilation to reduce compilation time during development. It does this by only recompiling portions of the source that have changed or need to be recompiled. To disable this feature, add the following code to your module-level
build.gradle
file:গ্রোভি
android { ... compileOptions { incremental false } }
কোটলিন
android { ... compileOptions { incremental = false } }
Added support for dexing-in-process which performs dexing within the build process rather than in a separate, external VM processes. This not only makes incremental builds faster, but also speeds up full builds. The feature is enabled by default for projects that have set the Gradle daemon's maximum heap size to at least 2048 MB. You can do this by including the following in your project's
```none org.gradle.jvmargs = -Xmx2048m ```gradle.properties
file:If you have defined a value for
```none org.gradle.jvmargs = -Xmx3072m ```javaMaxHeapSize
in your module-levelbuild.gradle
file, you need to setorg.gradle.jvmargs
to the value ofjavaMaxHeapSize
+ 1024 MB. For example, if you have setjavaMaxHeapSize
to "2048m", you need to add the following to your project'sgradle.properties
file:To disable dexing-in-process, add the following code to your module-level
build.gradle
file:গ্রোভি
android { ... dexOptions { dexInProcess false } }
কোটলিন
android { ... dexOptions { dexInProcess = false } }
- Added support for the N Developer Preview, JDK 8, and Java 8 language features using the Jack toolchain. To find out more, read the N Preview guide .
2.0.0 (April 2016)
- নির্ভরতা:
- Gradle 2.10 or higher.
- Build Tools 21.1.1 or higher.
- নতুন:
- Enables Instant Run by supporting bytecode injection, and pushing code and resource updates to a running app on the emulator or a physical device.
- Added support for incremental builds, even when the app isn't running. Full build times are improved by pushing incremental changes through the Android Debug Bridge to the connected device.
- Added
maxProcessCount
to control how many worker dex processes can be spawned concurrently. The following code, in the module-levelbuild.gradle
file, sets the maximum number of concurrent processes to 4:গ্রোভি
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
কোটলিন
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
</li> <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing of dependencies, which are not supported with Proguard. This improves the build speed of your debug build variant. Because the experimental shrinker does not support optimization and obfuscation, you should enable Proguard for your release builds. To enable the experimental shrinker for your debug builds, add the following to your module-level <code>build.gradle</code> file:
গ্রোভি
android { ... buildTypes { debug { minifyEnabled true useProguard false } release { minifyEnabled true useProguard true // this is a default setting } } }
কোটলিন
android { ... buildTypes { getByName("debug") { minifyEnabled = true useProguard = false } getByName("release") { minifyEnabled = true useProguard = true // this is a default setting } } }
</li> <li>Added logging support and improved performance for the resource shrinker. The resource shrinker now logs all of its operations into a <code>resources.txt</code> file located in the same folder as the Proguard log files. </li> </ul>
- Changed behavior:
- When
minSdkVersion
is set to 18 or higher, APK signing uses SHA256.
<li>DSA and ECDSA keys can now sign APK packages. <p class="note"> <strong>Note:</strong> The <a href= "/training/articles/keystore.html">Android keystore</a> provider no longer supports <a href= "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore"> DSA keys on Android 6.0</a> (API level 23) and higher. </p> </li> </ul>
- When
- স্থির সমস্যা:
- Fixed an issue that caused duplicate AAR dependencies in both the test and main build configurations.
Android plugin for Gradle, revision 1.5.0 (November 2015)
- নির্ভরতা:
- Gradle 2.2.1 or higher.
- Build Tools 21.1.1 or higher.
- General Notes:
- Integrated the Data Binding plugin into the Android plugin for Gradle. To enable it, add the following code to each per-project
build.gradle
file that uses the plugin: - Added a new Transform API to allow third-party plugins to manipulate compiled
.class
files before they're converted to.dex
files. The Transform API simplifies injecting custom class manipulations while offering more flexibility regarding what you can manipulate. To insert a transform into a build, create a new class implementing one of theTransform
interfaces, and register it withandroid.registerTransform(theTransform)
orandroid.registerTransform(theTransform, dependencies)
. There's no need to wire tasks together. Note the following about the Transform API: - A transform can apply to one or more of the following: the current project, subprojects, and external libraries.
- A transform must be registered globally, which applies them to all variants.
- Internal code processing, through the Java Code Coverage Library (JaCoCo), ProGuard, and MultiDex, now uses the Transform API. However, the Java Android Compiler Kit (Jack) doesn't use this API: only the
javac/dx
code path does. - Gradle executes the transforms in this order: JaCoCo, third-party plugins, ProGuard. The execution order for third-party plugins matches the order in which the transforms are added by the third party plugins; third-party plugin developers can't control the execution order of the transforms through an API.
- Deprecated the
dex
getter from theApplicationVariant
class. You can't access theDex
task through the variant API anymore because it's now accomplished through a transform. There's currently no replacement for controlling the dex process. - Fixed incremental support for assets.
- Improved MultiDex support by making it available for test projects, and tests now automatically have the
com.android.support:multidex-instrumentation
dependency. - Added the ability to properly fail a Gradle build and report the underlying error cause when the Gradle build invokes asynchronous tasks and there's a failure in the worker process.
- Added support for configuring a specific Application Binary Interface (ABI) in variants that contain multiple ABIs.
- Added support for a comma-separated list of device serial numbers for the
ANDROID_SERIAL
environment variable when installing or running tests. - Fixed an installation failure on devices running Android 5.0 (API level 20) and higher when the APK name contains a space.
- Fixed various issues related to the Android Asset Packaging Tool (AAPT) error output.
- Added JaCoCo incremental instrumentation support for faster incremental builds. The Android plugin for Gradle now invokes the JaCoCo instrumenter directly. To force a newer version of the JaCoCo instrumenter, you need to add it as a build script dependency.
- Fixed JaCoCo support so it ignores files that aren't classes.
- Added vector drawable support for generating PNGs at build time for backward-compatibility. Android plugin for Gradle generates PNGs for every vector drawable found in a resource directory that doesn't specify an API version or specifies an
android:minSdkVersion
attribute of 20 or lower in the<uses-sdk>
element in the app manifest. You can set PNG densities by using thegeneratedDensities
property in thedefaultConfig
orproductFlavor
sections of abuild.gradle
file. - Added sharing of the mockable
android.jar
, which the plugin generates only once and uses for unit testing. Multiple modules, such asapp
andlib
, now share it. Delete$rootDir/build
to regenerate it. - Changed the processing of Java resources to occur before the obfuscation tasks instead of during the packaging of the APK. This change allows the obfuscation tasks to have a chance to adapt the Java resources following packages obfuscation.
- Fixed an issue with using Java Native Interface (JNI) code in the experimental library plugin.
- Added the ability to set the platform version separately from the
android:compileSdkVersion
attribute in the experimental library plugin.
android { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- Integrated the Data Binding plugin into the Android plugin for Gradle. To enable it, add the following code to each per-project
Android plugin for Gradle, revision 1.3.1 (August 2015)
নির্ভরতা:- Gradle 2.2.1 or higher.
- Build Tools 21.1.1 or higher.
- Fixed the ZipAlign task to properly consume the output of the previous task when using a customized filename.
- Fixed Renderscript packaging with the NDK .
- Maintained support for the
createDebugCoverageReport
build task. - Fixed support for customized use of the
archiveBaseName
property in thebuild.gradle
build file. - Fixed the
Invalid ResourceType
lint warning caused by parameter method annotation lookup when running lint outside of Android Studio.
Android plugin for Gradle, revision 1.3.0 (July 2015)
নির্ভরতা:- Gradle 2.2.1 or higher.
- Build Tools 21.1.1 or higher.
Added support for the
com.android.build.threadPoolSize
property to control theAndroid
task thread pool size from thegradle.properties
file or the command line. The following example sets this property to 4.-Pcom.android.build.threadPoolSize=4
- Set the default build behavior to exclude
LICENSE
andLICENSE.txt
files from APKs. To include these files in an APK, remove these files from thepackagingOptions.excludes
property in thebuild.gradle
file. যেমন:android { packagingOptions.excludes = [] }
android { packagingOptions.excludes.clear() }
- Added the
sourceSets
task to inspect the set of all available source sets. - Enhanced unit test support to recognize multi-flavor and build variant source folders. For example, to test an app with multi-flavors
flavor1
andflavorA
with theDebug
build type, the test source sets are:- পরীক্ষা
- testFlavor1
- testFlavorA
- testFlavor1FlavorA
- testFlavor1FlavorADebug
Android tests already recognized multi-flavor source folders.
- Improved unit test support to:
- Run
javac
on main and test sources, even if theuseJack
property is set totrue
in your build file. - Correctly recognize dependencies for each build type.
- Run
- Added support for specifying instrumentation test-runner arguments from the command line. যেমন:
./gradlew connectedCheck \ -Pandroid.testInstrumentationRunnerArguments.size=medium \ -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
Added support for arbitrary additional Android Asset Packaging Tool (AAPT) parameters in the
build.gradle
file. যেমন:android { aaptOptions { additionalParameters "--custom_option", "value" } }
android { aaptOptions { additionalParameters += listOf("--custom_option", "value") } }
- Added support for a test APK module as a separate test module, using the
targetProjectPath
andtargetVariant
properties to set the APK path and target variant.Note: A test APK module does not support product flavors and can only target a single variant. Also, Jacoco is not supported yet.
- Added resource name validation before merging resources.
- When building an AAR (Android ARchive) package for library modules, do not provide an automatic
@{applicationId}
placeholder in the manifest merger settings. Instead, use a different placeholder, such as@{libApplicationId}
and provide a value for it if you want to include application Ids in the archive library.
Android plugin for Gradle, revision 1.2.0 (April 2015)
- নির্ভরতা:
- Gradle 2.2.1 or higher.
- Build Tools 21.1.1 or higher.
- General Notes:
- Enhanced support for running unit tests with Gradle.
- Added support to include Java-style resources in the classpath when running unit tests directly from Gradle.
- Added unit test dependency support for Android Archive (AAR) artifacts.
- Added support for the
unitTestVariants
property so unit test variants can be manipulated using thebuild.gradle
file. - Added the
unitTest.all
code block undertestOptions
to configure customized tasks for unit test. The following sample code shows how to add unit test configuration settings using this new option:android { testOptions { unitTest.all { jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option. } } }
android { testOptions { unitTest.all { jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option. } } }
- Fixed the handling of enums and public instance fields in the packaging of the
mockable-android.jar
file. - Fixed library project task dependencies so test classes recompile after changes.
- Added the
testProguardFile
property to apply ProGuard files when minifying a test APK. - Added the
timeOut
property to theadbOptions
code block for setting the maximum recording time for Android Debug Bridge screen recording. - Added support for 280 dpi resources.
- Improved performance during project evaluation.
- Enhanced support for running unit tests with Gradle.
Android plugin for Gradle, revision 1.1.3 (March 2015)
- নির্ভরতা:
- Gradle 2.2.1 or higher.
- Build Tools 21.1.1 or higher.
- General Notes:
- Fixed issue with duplicated dependencies on a test app that triggered a ProGuard failure.
- Fixed Comparator implementation which did not comply with the JDK Comparator contract and generated a JDK 7 error.
Android plugin for Gradle, revision 1.1.2 (February 2015)
- নির্ভরতা:
- Gradle 2.2.1 or higher.
- Build Tools 21.1.1 or higher.
- General Notes:
- Normalized path when creating a mockable JAR for unit testing.
- Fixed the
archivesBaseName
setting in thebuild.gradle
file. - Fixed the unresolved placeholder failure in manifest merger when building a library test application.
Android plugin for Gradle, revision 1.1.1 (February 2015)
- নির্ভরতা:
- Gradle 2.2.1 or higher.
- Build Tools 21.1.1 or higher.
- General Notes:
- Modified build variants so only variants that package a Wear app trigger Wear-specific build tasks.
- Changed dependency related issues to fail at build time rather than at debug time. This behavior allows you to run diagnostic tasks (such as 'dependencies') to help resolve the conflict.
- Fixed the
android.getBootClasspath()
method to return a value.
Android plugin for Gradle, revision 1.1.0 (February 2015)
- নির্ভরতা:
- Gradle 2.2.1 or higher.
- Build Tools 21.1.1 or higher.
- General Notes:
- Added new unit test support
- Enabled unit tests to run on the local JVM against a special version of the
android.jar
file that is compatible with popular mocking frameworks, for example Mockito. - Added new test tasks
testDebug
,testRelease
, andtestMyFlavorDebug
when using product flavors. - Added new source folders recognized as unit tests:
src/test/java/
,src/testDebug/java/
,src/testMyFlavor/java/
. - Added new configurations in the
build.gradle
file for declaring test-only dependencies, for example,testCompile 'junit:junit:4.11'
,testMyFlavorCompile 'some:library:1.0'
.Note: Test-only dependencies are not currently compatible with Jack (Java Android Compiler Kit).
- Added the
android.testOptions.unitTests.returnDefaultValues
option to control the behaviour of the mockable android.jar. - Replaced
Test
in test task names withAndroidTest
. For example, theassembleDebugTest
task is nowassembleDebugAndroidTest
task. Unit test tasks still haveUnitTest
in the task name, for exampleassembleDebugUnitTest
. - Modified ProGuard configuration files to no longer apply to the test APK. If minification is enabled, ProGuard processes the test APK and applies only the mapping file that is generated when minifying the main APK.
- Updated dependency management
- Fixed issues using
provided
andpackage
scopes.Note: These scopes are incompatible with AAR (Android ARchive) packages and will cause a build with AAR packages to fail.
- Modified dependency resolution to compare the dependencies of an app under test and the test app. If an artifact with the same version is found for both apps, it's not included with the test app and is packaged only with the app under test. If an artifact with a different version is found for both apps, the build fails.
- Fixed issues using
- Added support for
anyDpi
resource qualifier in resource merger. - Improved evaluation and IDE sync speeds for projects with a large number of Android modules .
Android plugin for Gradle, revision 1.0.1 (January 2015)
- নির্ভরতা:
Gradle 2.2.1 up to 2.3.x.
Note: This version of the Android plugin for Gradle is not compatible with Gradle 2.4 and higher.
- Build Tools 21.1.1 or higher.
- General Notes:
- Fixed issue with Gradle build failure when accessing the
extractReleaseAnnotations
module. ( Issue 81638 ). - Fixed issue with
Disable
passing the--no-optimize
setting to the Dalvik Executable (dex) bytecode. ( Issue 82662 ). - Fixed manifest merger issues when importing libraries with a
targetSdkVersion
less than 16. - Fixed density ordering issue when using Android Studio with JDK 8.
- Fixed issue with Gradle build failure when accessing the
Android plugin for Gradle, revision 1.0.0 (December 2014)
- নির্ভরতা:
Gradle 2.2.1 up to 2.3.x.
Note: This version of the Android plugin for Gradle is not compatible with Gradle 2.4 and higher.
- Build Tools 21.1.1 or higher.
- General Notes:
- Initial plugin release.