আপনার অ্যাপটি তার কার্যকরী প্রয়োজনীয়তা পূরণ করছে কিনা তা নিশ্চিত করার জন্য পরীক্ষা তৈরি করার পাশাপাশি, আপনার কোডে কোনও কাঠামোগত সমস্যা নেই তা নিশ্চিত করতে লিন্ট টুলের মাধ্যমে কোডটি চালানোও গুরুত্বপূর্ণ। লিন্ট টুলটি দুর্বল কাঠামোগত কোড খুঁজে পেতে সাহায্য করে যা আপনার অ্যান্ড্রয়েড অ্যাপের নির্ভরযোগ্যতা এবং দক্ষতার উপর প্রভাব ফেলতে পারে এবং আপনার কোড বজায় রাখা কঠিন করে তুলতে পারে। আপনার অ্যাপ প্রকাশ করার আগে লিন্ট যে কোনও ত্রুটি সনাক্ত করে তা সংশোধন করার জন্য দৃঢ়ভাবে সুপারিশ করা হচ্ছে।
উদাহরণস্বরূপ, যদি আপনার XML রিসোর্স ফাইলগুলিতে অব্যবহৃত নেমস্পেস থাকে, তাহলে এটি স্থান দখল করে এবং অপ্রয়োজনীয় প্রক্রিয়াকরণের প্রয়োজন হয়। অন্যান্য কাঠামোগত সমস্যা, যেমন অবচিত উপাদানের ব্যবহার বা লক্ষ্য API সংস্করণ দ্বারা সমর্থিত নয় এমন API কল, কোড সঠিকভাবে চালানোর ব্যর্থতার কারণ হতে পারে। লিন্ট আপনাকে এই সমস্যাগুলি পরিষ্কার করতে সাহায্য করতে পারে।
লিন্টিং কর্মক্ষমতা উন্নত করতে, আপনি আপনার কোডে টীকাও যোগ করতে পারেন।
সংক্ষিপ্ত বিবরণ
অ্যান্ড্রয়েড স্টুডিও লিন্ট নামে একটি কোড স্ক্যানিং টুল প্রদান করে যা আপনাকে অ্যাপটি চালানো বা টেস্ট কেস লেখা ছাড়াই আপনার কোডের কাঠামোগত মানের সমস্যাগুলি সনাক্ত করতে এবং সংশোধন করতে সাহায্য করতে পারে। টুল দ্বারা সনাক্ত করা প্রতিটি সমস্যা একটি বর্ণনা বার্তা এবং তীব্রতার স্তরের সাথে রিপোর্ট করা হয় যাতে আপনি যে গুরুত্বপূর্ণ উন্নতিগুলি করা প্রয়োজন তা অগ্রাধিকার দিতে পারেন। আপনি আপনার প্রকল্পের সাথে প্রাসঙ্গিক নয় এমন সমস্যাগুলি উপেক্ষা করার জন্য সমস্যার তীব্রতার স্তর কমাতে পারেন অথবা নির্দিষ্ট সমস্যাগুলি হাইলাইট করার জন্য তীব্রতার স্তর বাড়াতে পারেন।
লিন্ট টুলটি আপনার অ্যান্ড্রয়েড প্রোজেক্ট সোর্স ফাইলগুলিতে সম্ভাব্য বাগ এবং সঠিকতা, নিরাপত্তা, কর্মক্ষমতা, ব্যবহারযোগ্যতা, অ্যাক্সেসিবিলিটি এবং আন্তর্জাতিকীকরণের জন্য অপ্টিমাইজেশন উন্নতি পরীক্ষা করে। অ্যান্ড্রয়েড স্টুডিও ব্যবহার করার সময়, আপনার অ্যাপ তৈরি করার সময় কনফিগার করা লিন্ট এবং IDE পরিদর্শনগুলি সঞ্চালিত হয়। তবে, আপনি ম্যানুয়ালি পরিদর্শন চালাতে পারেন অথবা কমান্ড লাইন থেকে লিন্ট চালাতে পারেন , যেমনটি এই পৃষ্ঠায় বর্ণিত হয়েছে।
অ্যান্ড্রয়েড স্টুডিও ব্যবহার করার সময় বিল্ট-ইন লিন্ট টুলটি আপনার কোড পরীক্ষা করে। আপনি দুটি উপায়ে সতর্কতা এবং ত্রুটি দেখতে পারেন:
- এডিটর উইন্ডোতে পপ-আপ টেক্সট হিসেবে। যখন লিন্ট কোন সমস্যা খুঁজে পায়, তখন এটি সমস্যাযুক্ত কোডটি হলুদ রঙে হাইলাইট করে। আরও গুরুতর সমস্যার জন্য, এটি কোডটি লাল রঙে আন্ডারলাইন করে।
- লিন্ট ইন্সপেকশন ফলাফল উইন্ডোতে যখন আপনি কোড > ইনস্পেক্ট কোড ক্লিক করেন।
দ্রষ্টব্য: যখন আপনার কোডটি অ্যান্ড্রয়েড স্টুডিওতে কম্পাইল করা হয়, তখন কোড পর্যালোচনাকে সহজতর করার জন্য অতিরিক্ত IntelliJ কোড পরিদর্শন চালানো হয়। সর্বশেষ লিন্ট নিয়ম এবং পরিদর্শনগুলি উপলব্ধ রয়েছে তা নিশ্চিত করার জন্য অ্যান্ড্রয়েড স্টুডিওকে যতটা সম্ভব আপ-টু-ডেট রাখুন।
চিত্র ১-এ দেখানো হয়েছে কিভাবে লিন্ট টুল অ্যাপ সোর্স ফাইলগুলি প্রক্রিয়া করে।

- অ্যাপ সোর্স ফাইল
- সোর্স ফাইলগুলিতে এমন ফাইল থাকে যা আপনার অ্যান্ড্রয়েড প্রোজেক্ট তৈরি করে, যার মধ্যে রয়েছে কোটলিন, জাভা এবং এক্সএমএল ফাইল, আইকন এবং প্রোগার্ড কনফিগারেশন ফাইল।
-
lint.xmlফাইল - একটি কনফিগারেশন ফাইল যা আপনি বাদ দিতে চান এমন যেকোনো লিন্ট চেক নির্দিষ্ট করতে এবং সমস্যার তীব্রতার স্তর কাস্টমাইজ করতে ব্যবহার করতে পারেন।
- লিন্ট টুল
- একটি স্ট্যাটিক কোড স্ক্যানিং টুল যা আপনি আপনার অ্যান্ড্রয়েড প্রোজেক্টে কমান্ড লাইন থেকে অথবা অ্যান্ড্রয়েড স্টুডিওতে চালাতে পারেন। লিন্ট টুলটি স্ট্রাকচারাল কোড সমস্যাগুলি পরীক্ষা করে যা আপনার অ্যান্ড্রয়েড অ্যাপের গুণমান এবং কর্মক্ষমতাকে প্রভাবিত করতে পারে।
- লিন্ট চেকিংয়ের ফলাফল
- আপনি লিন্ট থেকে ফলাফলগুলি কনসোল অথবা অ্যান্ড্রয়েড স্টুডিওতে পরিদর্শন ফলাফল উইন্ডোতে দেখতে পারেন। যদি আপনি কমান্ড লাইন থেকে
lintচালান, তাহলে ফলাফলগুলিbuild/ফোল্ডারে লেখা হবে। আরও বিস্তারিত জানার জন্য, ম্যানুয়ালি পরিদর্শন চালানো সম্পর্কে বিভাগটি দেখুন।
কমান্ড লাইন থেকে লিন্ট চালান
যদি আপনি অ্যান্ড্রয়েড স্টুডিও বা গ্র্যাডেল ব্যবহার করেন, তাহলে আপনার প্রোজেক্টের রুট ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডগুলির মধ্যে একটি প্রবেশ করে আপনার প্রোজেক্টের জন্য lint টাস্কটি চালু করতে গ্র্যাডেল র্যাপার ব্যবহার করুন:
দ্রষ্টব্য: সর্বশেষ লিন্ট নিয়ম ব্যবহার করার জন্য Android Gradle প্লাগইনটি যতটা সম্ভব আপ-টু-ডেট রাখুন।
- উইন্ডোজে:
gradlew lint
- লিনাক্স বা ম্যাকোসে:
./gradlew lint
আপনি নিম্নলিখিতগুলির মতো আউটপুট দেখতে পাবেন:
> Task :app:lintDebug Wrote HTML report to file:<path-to-project>/app/build/reports/lint-results-debug.html
যখন লিন্ট টুলটি তার পরীক্ষা সম্পন্ন করে, তখন এটি লিন্ট রিপোর্টের XML এবং HTML সংস্করণের পাথ প্রদান করে। এরপর আপনি HTML রিপোর্টে নেভিগেট করতে পারেন এবং এটি আপনার ব্রাউজারে খুলতে পারেন, যেমন চিত্র 2-এ দেখানো হয়েছে।

যদি আপনার প্রোজেক্টে বিল্ড ভেরিয়েন্ট থাকে, তাহলে lint শুধুমাত্র ডিফল্ট ভেরিয়েন্টটি পরীক্ষা করে। যদি আপনি অন্য ভেরিয়েন্টে lint চালাতে চান, তাহলে আপনাকে ভেরিয়েন্টের নামটি বড় হাতের অক্ষরে লিখতে হবে এবং lint দিয়ে এর আগে লিখতে হবে।
./gradlew lintRelease
দ্রষ্টব্য: আপনার বিল্ডের অংশ হিসেবে লিন্ট স্বয়ংক্রিয়ভাবে চালানো হয় না। আমরা দৃঢ়ভাবে সুপারিশ করছি যে আপনি একটি অবিচ্ছিন্ন ইন্টিগ্রেশন বিল্ডের অংশ হিসেবে লিন্ট স্পষ্টভাবে চালান যাতে আপনার বিদ্যমান সোর্স কোড তৈরি করার সময় আপনি সর্বশেষ লিন্ট চেকগুলি দেখতে পান।
কমান্ড লাইন থেকে গ্রেডল টাস্ক চালানো সম্পর্কে আরও জানতে, কমান্ড লাইন থেকে আপনার অ্যাপ তৈরি করুন পড়ুন।
স্বতন্ত্র টুল ব্যবহার করে লিন্ট চালান
যদি আপনি Android Studio বা Gradle ব্যবহার না করেন, তাহলে স্বতন্ত্র লিন্ট টুল ব্যবহার করার জন্য Android SDK কমান্ড-লাইন টুল ইনস্টল করুন। android_sdk /cmdline-tools/ version /bin/lint এ লিন্ট টুলটি খুঁজুন।
দ্রষ্টব্য: যদি আপনি একটি Gradle প্রকল্পে স্বতন্ত্র টুলটি চালানোর চেষ্টা করেন, তাহলে এটি একটি ত্রুটি দেয়। Gradle প্রকল্পে lint চালানোর জন্য আপনার সর্বদা gradle lint (উইন্ডোজে) অথবা ./gradlew lint (macOS বা Linux এ) ব্যবহার করা উচিত।
একটি প্রজেক্ট ডিরেক্টরিতে থাকা ফাইলের তালিকার বিপরীতে লিন্ট চালানোর জন্য, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
lint [flags] <project directory>
উদাহরণস্বরূপ, আপনি myproject ডিরেক্টরি এবং এর সাবডিরেক্টরিগুলির অধীনে থাকা ফাইলগুলি স্ক্যান করার জন্য নিম্নলিখিত কমান্ডটি জারি করতে পারেন। সমস্যা ID MissingPrefix লিন্টকে শুধুমাত্র এমন XML বৈশিষ্ট্যগুলি স্ক্যান করতে বলে যেগুলিতে Android নেমস্পেস প্রিফিক্স অনুপস্থিত।
lint --check MissingPrefix myproject
টুলটি দ্বারা সমর্থিত ফ্ল্যাগ এবং কমান্ড-লাইন আর্গুমেন্টের সম্পূর্ণ তালিকা দেখতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
lint --help
নিচের উদাহরণটি কনসোল আউটপুট দেখায় যখন লিন্ট কমান্ডটি Earthquake নামক একটি প্রকল্পের বিরুদ্ধে চালানো হয়:
$ lint Earthquake Scanning Earthquake: ............................................................................................................................... Scanning Earthquake (Phase 2): ....... AndroidManifest.xml:23: Warning: <uses-sdk> tag appears after <application> tag [ManifestOrder] <uses-sdk android:minSdkVersion="7" /> ^ AndroidManifest.xml:23: Warning: <uses-sdk> tag should specify a target API level (the highest verified version; when running on later versions, compatibility behaviors may be enabled) with android:targetSdkVersion="?" [UsesMinSdkAttributes] <uses-sdk android:minSdkVersion="7" /> ^ res/layout/preferences.xml: Warning: The resource R.layout.preferences appears to be unused [UnusedResources] res: Warning: Missing density variation folders in res: drawable-xhdpi [IconMissingDensityFolder] 0 errors, 4 warnings
উদাহরণ আউটপুটটিতে চারটি সতর্কতা তালিকাভুক্ত করা হয়েছে এবং কোনও ত্রুটি নেই।
প্রকল্পের AndroidManifest.xml ফাইলের সাথে দুটি সতর্কতা সম্পর্কিত:
-
ManifestOrder -
UsesMinSdkAttributes
Preferences.xml লেআউট ফাইলের সাথে সম্পর্কিত একটি সতর্কতা: UnusedResources । একটি সতর্কতা res ডিরেক্টরির সাথে সম্পর্কিত: IconMissingDensityFolder ।
সতর্কতা দমন করার জন্য লিন্ট কনফিগার করুন
ডিফল্টরূপে, যখন আপনি একটি লিন্ট স্ক্যান চালান, তখন টুলটি লিন্ট সমর্থন করে এমন সমস্ত সমস্যার জন্য পরীক্ষা করে। আপনি লিন্টের জন্য সমস্যাগুলি পরীক্ষা করার জন্য সীমাবদ্ধ করতে পারেন এবং আপনি সমস্যার তীব্রতার স্তর নির্ধারণ করতে পারেন। উদাহরণস্বরূপ, আপনি আপনার প্রকল্পের সাথে প্রাসঙ্গিক নয় এমন নির্দিষ্ট সমস্যাগুলির জন্য লিন্ট চেকিং দমন করতে পারেন এবং আপনি কম তীব্রতার স্তরে অ-গুরুত্বপূর্ণ সমস্যাগুলি রিপোর্ট করার জন্য লিন্ট কনফিগার করতে পারেন।
তীব্রতার মাত্রাগুলি হল:
-
enable -
disableবাignore -
informational -
warning -
error -
fatal
আপনি বিভিন্ন স্তরের জন্য লিন্ট চেকিং কনফিগার করতে পারেন:
- বিশ্বব্যাপী (পুরো প্রকল্প)
- প্রকল্প মডিউল
- উৎপাদন মডিউল
- পরীক্ষা মডিউল
- ফাইল খুলুন
- শ্রেণী শ্রেণিবিন্যাস
- সংস্করণ নিয়ন্ত্রণ ব্যবস্থা (VCS) স্কোপ
লিন্ট ফাইলটি কনফিগার করুন
আপনি lint.xml ফাইলে আপনার লিন্ট চেকিং পছন্দগুলি নির্দিষ্ট করতে পারেন। যদি আপনি এই ফাইলটি ম্যানুয়ালি তৈরি করেন, তাহলে এটি আপনার অ্যান্ড্রয়েড প্রোজেক্টের রুট ডিরেক্টরিতে রাখুন।
lint.xml ফাইলটিতে একটি <lint> প্যারেন্ট ট্যাগ থাকে যার মধ্যে এক বা একাধিক শিশু <issue> উপাদান থাকে। Lint প্রতিটি <issue> এর জন্য একটি অনন্য id অ্যাট্রিবিউট মান সংজ্ঞায়িত করে:
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- list of issues to configure --> </lint>
কোনও সমস্যার তীব্রতার স্তর পরিবর্তন করতে অথবা সমস্যার জন্য লিন্ট চেকিং অক্ষম করতে, <issue> ট্যাগে তীব্রতা বৈশিষ্ট্য সেট করুন।
টিপস: লিন্ট-সমর্থিত সমস্যাগুলির সম্পূর্ণ তালিকা এবং তাদের সংশ্লিষ্ট সমস্যা আইডিগুলির জন্য, lint --list কমান্ডটি চালান। --list বিকল্পটি অবশ্যই স্বতন্ত্র লিন্ট টুল থেকে চালানো উচিত।
নমুনা lint.xml ফাইল
নিম্নলিখিত উদাহরণটি একটি lint.xml ফাইলের বিষয়বস্তু দেখায়:
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- Disable the IconMissingDensityFolder check in this project --> <issue id="IconMissingDensityFolder" severity="ignore" /> <!-- Ignore the ObsoleteLayoutParam issue in the specified files --> <issue id="ObsoleteLayoutParam"> <ignore path="res/layout/activation.xml" /> <ignore path="res/layout-xlarge/activation.xml" /> </issue> <!-- Ignore the UselessLeaf issue in the specified file --> <issue id="UselessLeaf"> <ignore path="res/layout/main.xml" /> </issue> <!-- Change the severity of hardcoded strings to "error" --> <issue id="HardcodedText" severity="error" /> </lint>
এই উদাহরণটি দেখায় যে বিভিন্ন ধরণের সমস্যা কীভাবে রিপোর্ট করা হয়। IconMissingDensityFolder চেক সম্পূর্ণরূপে অক্ষম করা হয়েছে, এবং ObsoleteLayoutParam চেক শুধুমাত্র <ignore ... /> ঘোষণায় নির্দিষ্ট করা ফাইলগুলিতে অক্ষম করা হয়েছে।
কোটলিন, জাভা এবং এক্সএমএল সোর্স ফাইলের জন্য লিন্ট চেকিং কনফিগার করুন
আপনি পছন্দসই ডায়ালগে আপনার কোটলিন, জাভা এবং এক্সএমএল সোর্স ফাইলের জন্য লিন্ট চেকিং বন্ধ করতে পারেন:
- ফাইল > সেটিংস (উইন্ডোজে) অথবা অ্যান্ড্রয়েড স্টুডিও > পছন্দ (ম্যাকওএস বা লিনাক্সে) নির্বাচন করুন।
- সম্পাদক > পরিদর্শন নির্বাচন করুন।
- নিষ্ক্রিয় করতে, উপযুক্ত উৎস ফাইলটি অনির্বাচন করুন।
আপনি উপযুক্ত প্রোফাইল নির্বাচন করে IDE অথবা পৃথক প্রকল্পের জন্য এগুলি সেট করতে পারেন।
জাভা বা কোটলিনে লিন্ট চেকিং কনফিগার করুন
আপনার অ্যান্ড্রয়েড প্রজেক্টে বিশেষভাবে কোনও ক্লাস বা পদ্ধতির জন্য লিন্ট চেকিং অক্ষম করতে, সেই কোডে @SuppressLint অ্যানোটেশন যোগ করুন।
নিচের উদাহরণটি দেখায় কিভাবে onCreate পদ্ধতিতে NewApi সমস্যার জন্য লিন্ট চেকিং বন্ধ করা যায়। এই শ্রেণীর অন্যান্য পদ্ধতিতে লিন্ট টুলটি NewApi সমস্যার জন্য পরীক্ষা চালিয়ে যায়।
কোটলিন
@SuppressLint("NewApi") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main)
জাভা
@SuppressLint("NewApi") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
যেকোনো Composable-এ একই কাজ করা যেতে পারে। নিচের কোড স্নিপেটটি দেখায় কিভাবে আপনি যেকোনো Composable-এ NewApi চেক বন্ধ করতে পারেন।
কোটলিন
@SuppressLint("NewApi") @Composable fun MyComposable{ ... }
নিম্নলিখিত উদাহরণে FeedProvider ক্লাসে ParserError সমস্যার জন্য লিন্ট চেকিং কীভাবে বন্ধ করতে হয় তা দেখানো হয়েছে:
কোটলিন
@SuppressLint("ParserError") class FeedProvider : ContentProvider() {
জাভা
@SuppressLint("ParserError") public class FeedProvider extends ContentProvider {
ফাইলের সকল লিন্ট সমস্যা পরীক্ষা করা বন্ধ করতে, all কীওয়ার্ডটি ব্যবহার করুন:
কোটলিন
@SuppressLint("all")
জাভা
@SuppressLint("all")
যেকোনো কম্পোজেবল ফাংশনে লিন্ট চেক দমন করতে আপনি একই অ্যানোটেশন ব্যবহার করতে পারেন।
XML-এ লিন্ট চেকিং কনফিগার করুন
আপনার XML ফাইলের নির্দিষ্ট অংশের জন্য লিন্ট চেকিং বন্ধ করতে tools:ignore অ্যাট্রিবিউট ব্যবহার করুন। lint.xml ফাইলে নিম্নলিখিত namespace মানটি রাখুন যাতে লিন্ট টুলটি অ্যাট্রিবিউটটি চিনতে পারে:
namespace xmlns:tools="http://schemas.android.com/tools"নিচের উদাহরণটি দেখায় কিভাবে আপনি একটি XML লেআউট ফাইলের <LinearLayout> এলিমেন্টে UnusedResources সমস্যার জন্য লিন্ট চেকিং বন্ধ করতে পারেন। ignore অ্যাট্রিবিউটটি প্যারেন্ট এলিমেন্টের children এলিমেন্ট দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত হয় যেখানে অ্যাট্রিবিউটটি ঘোষণা করা হয়। এই উদাহরণে, চাইল্ড <TextView> এলিমেন্টের জন্যও লিন্ট চেক অক্ষম করা আছে:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:ignore="UnusedResources" > <TextView android:text="@string/auto_update_prompt" /> </LinearLayout>
একাধিক সমস্যা নিষ্ক্রিয় করতে, কমা দ্বারা পৃথক করা স্ট্রিংয়ে অক্ষম করার জন্য সমস্যাগুলি তালিকাভুক্ত করুন। উদাহরণস্বরূপ:
tools:ignore="NewApi,StringFormatInvalid"
XML এলিমেন্টে সকল লিন্ট সমস্যা পরীক্ষা করা বন্ধ করতে, all কীওয়ার্ডটি ব্যবহার করুন:
tools:ignore="all"
গ্র্যাডেল দিয়ে লিন্ট বিকল্পগুলি কনফিগার করুন
অ্যান্ড্রয়েড গ্রেডল প্লাগইন আপনাকে আপনার মডিউল-লেভেল build.gradle ফাইলের lint{} ব্লক ব্যবহার করে নির্দিষ্ট লিন্ট বিকল্পগুলি কনফিগার করতে দেয়, যেমন কোন চেকগুলি চালানো হবে বা উপেক্ষা করা হবে।
নিম্নলিখিত কোড স্নিপেটটি আপনার কনফিগার করা কিছু বৈশিষ্ট্য দেখায়:
কোটলিন
android { ... lint { // Turns off checks for the issue IDs you specify. disable += "TypographyFractions" + "TypographyQuotes" // Turns on checks for the issue IDs you specify. These checks are in // addition to the default lint checks. enable += "RtlHardcoded" + "RtlCompat" + "RtlEnabled" // To enable checks for only a subset of issue IDs and ignore all others, // list the issue IDs with the 'check' property instead. This property overrides // any issue IDs you enable or disable using the properties above. checkOnly += "NewApi" + "InlinedApi" // If set to true, turns off analysis progress reporting by lint. quiet = true // If set to true (default), stops the build if errors are found. abortOnError = false // If set to true, lint only reports errors. ignoreWarnings = true // If set to true, lint also checks all dependencies as part of its analysis. // Recommended for projects consisting of an app with library dependencies. checkDependencies = true } } ...
খাঁজকাটা
android { ... lint { // Turns off checks for the issue IDs you specify. disable 'TypographyFractions','TypographyQuotes' // Turns on checks for the issue IDs you specify. These checks are in // addition to the default lint checks. enable 'RtlHardcoded','RtlCompat', 'RtlEnabled' // To enable checks for only a subset of issue IDs and ignore all others, // list the issue IDs with the 'check' property instead. This property overrides // any issue IDs you enable or disable using the properties above. checkOnly 'NewApi', 'InlinedApi' // If set to true, turns off analysis progress reporting by lint. quiet true // If set to true (default), stops the build if errors are found. abortOnError false // If set to true, lint only reports errors. ignoreWarnings true // If set to true, lint also checks all dependencies as part of its analysis. // Recommended for projects consisting of an app with library dependencies. checkDependencies true } } ...
কোনও সমস্যার তীব্রতার মাত্রাকে ওভাররাইড করে এমন সমস্ত লিন্ট পদ্ধতি কনফিগারেশনের ক্রম মেনে চলে। উদাহরণস্বরূপ, finalizeDsl() তে কোনও সমস্যাকে মারাত্মক হিসাবে সেট করা মূল DSL তে এটিকে অক্ষম করার পরিবর্তে ওভাররাইড করে।
একটি সতর্কতা বেসলাইন তৈরি করুন
আপনি আপনার প্রকল্পের বর্তমান সতর্কতার সেটের একটি স্ন্যাপশট নিতে পারেন, তারপর ভবিষ্যতের পরিদর্শনের জন্য স্ন্যাপশটটিকে বেসলাইন হিসেবে ব্যবহার করতে পারেন যাতে শুধুমাত্র নতুন সমস্যাগুলি রিপোর্ট করা যায়। বেসলাইন স্ন্যাপশট আপনাকে বিল্ডটি ব্যর্থ করার জন্য লিন্ট ব্যবহার শুরু করতে দেয়, প্রথমে ফিরে গিয়ে সমস্ত বিদ্যমান সমস্যাগুলি সমাধান না করে।
একটি বেসলাইন স্ন্যাপশট তৈরি করতে, আপনার প্রকল্পের build.gradle ফাইলটি নিম্নরূপ পরিবর্তন করুন:
কোটলিন
android { lint { baseline = file("lint-baseline.xml") } }
খাঁজকাটা
android { lintOptions { baseline file("lint-baseline.xml") } }
যখন আপনি প্রথম এই লাইনটি যোগ করেন, তখন আপনার বেসলাইন স্থাপনের জন্য lint-baseline.xml ফাইলটি তৈরি করা হয়। এরপর থেকে, টুলগুলি কেবল বেসলাইন নির্ধারণের জন্য ফাইলটি পড়ে। আপনি যদি একটি নতুন বেসলাইন তৈরি করতে চান, তাহলে ফাইলটি ম্যানুয়ালি মুছে ফেলুন এবং পুনরায় তৈরি করার জন্য আবার lint চালান।
তারপর, IDE থেকে Code > Inspect Code নির্বাচন করে অথবা নিম্নোক্ত কমান্ড লাইন থেকে lint চালান। আউটপুট lint-baseline.xml ফাইলের অবস্থান প্রিন্ট করে। আপনার সেটআপের জন্য ফাইলের অবস্থান এখানে দেখানো থেকে ভিন্ন হতে পারে:
$ ./gradlew lintDebug -Dlint.baselines.continue=true ... Wrote XML report to file:///app/lint-baseline.xml Created baseline file /app/lint-baseline.xml
lint চালানো lint-baseline.xml ফাইলের সমস্ত বর্তমান সমস্যা রেকর্ড করে। বর্তমান সমস্যাগুলির সেটকে baseline বলা হয়। আপনি যদি অন্যদের সাথে শেয়ার করতে চান তবে lint-baseline.xml ফাইলটি সংস্করণ নিয়ন্ত্রণে পরীক্ষা করতে পারেন।
বেসলাইন কাস্টমাইজ করুন
যদি আপনি বেসলাইনে শুধুমাত্র নির্দিষ্ট কিছু ধরণের সমস্যা যোগ করতে চান, তাহলে আপনার প্রকল্পের build.gradle ফাইলটি নিম্নরূপ সম্পাদনা করে কোন সমস্যাগুলি যোগ করতে হবে তা নির্দিষ্ট করুন:
কোটলিন
android { lint { checkOnly += "NewApi" + "HandlerLeak" baseline = file("lint-baseline.xml") } }
খাঁজকাটা
android { lintOptions { checkOnly 'NewApi', 'HandlerLeak' baseline file("lint-baseline.xml") } }
বেসলাইন তৈরি করার পর যদি আপনি কোডবেসে কোনও নতুন সতর্কতা যোগ করেন, তাহলে লিন্ট শুধুমাত্র নতুন প্রবর্তিত বাগগুলি তালিকাভুক্ত করবে।
বেসলাইন সতর্কতা
যখন একটি বেসলাইন কার্যকর থাকে, তখন আপনি একটি তথ্যমূলক সতর্কতা পাবেন যা আপনাকে বলে যে এক বা একাধিক সমস্যা ফিল্টার করা হয়েছে কারণ সেগুলি বেসলাইনে তালিকাভুক্ত। এই সতর্কতা আপনাকে মনে রাখতে সাহায্য করে যে আপনি একটি বেসলাইন কনফিগার করেছেন এবং আপনাকে কোনও এক সময়ে সমস্ত সমস্যা সমাধান করতে হবে।
এই তথ্যবহুল সতর্কতাটি এমন সমস্যাগুলিরও ট্র্যাক রাখে যা আর রিপোর্ট করা হয় না। এই তথ্য আপনাকে জানাবে যে আপনার আসলেই সমস্যাগুলি সমাধান করা হয়েছে কিনা, যাতে আপনি ঐচ্ছিকভাবে বেসলাইনটি পুনরায় তৈরি করতে পারেন যাতে কোনও ত্রুটি সনাক্ত না হয়ে ফিরে না আসে।
দ্রষ্টব্য: IDE-তে ব্যাচ মোডে পরিদর্শন চালানোর সময় বেসলাইনগুলি সক্রিয় থাকে, কিন্তু ফাইল সম্পাদনা করার সময় ব্যাকগ্রাউন্ডে চলমান ইন-এডিটর চেকগুলির জন্য সেগুলি উপেক্ষা করা হয়। এর কারণ হল বেসলাইনগুলি সেই ক্ষেত্রের জন্য তৈরি করা হয় যেখানে একটি কোডবেসে প্রচুর সংখ্যক বিদ্যমান সতর্কতা থাকে, কিন্তু আপনি কোডটি স্পর্শ করার সময় স্থানীয়ভাবে সমস্যাগুলি সমাধান করতে চান।
ম্যানুয়ালি পরিদর্শন চালান
কনফিগার করা লিন্ট এবং অন্যান্য IDE পরিদর্শন ম্যানুয়ালি চালানোর জন্য, কোড > পরিদর্শন কোড নির্বাচন করুন। পরিদর্শনের ফলাফল পরিদর্শন ফলাফল উইন্ডোতে প্রদর্শিত হবে।
পরিদর্শনের সুযোগ এবং প্রোফাইল সেট করুন
আপনি যে ফাইলগুলি বিশ্লেষণ করতে চান (পরিদর্শন সুযোগ ) এবং যে পরিদর্শনগুলি চালাতে চান (পরিদর্শন প্রোফাইল ) তা নিম্নরূপ নির্বাচন করুন:
- অ্যান্ড্রয়েড ভিউতে, আপনার প্রকল্পটি খুলুন এবং আপনি যে প্রকল্প, ফোল্ডার বা ফাইলটি বিশ্লেষণ করতে চান তা নির্বাচন করুন।
- মেনু বার থেকে, কোড > কোড পরিদর্শন করুন নির্বাচন করুন।
"পরিদর্শন সুযোগ নির্দিষ্ট করুন" ডায়ালগে, সেটিংস পর্যালোচনা করুন।

চিত্র ৩. পরিদর্শন সুযোগের সেটিংস পর্যালোচনা করুন। স্পেসিফিক ইন্সপেকশন স্কোপ ডায়ালগে প্রদর্শিত বিকল্পগুলি আপনি একটি প্রকল্প, ফোল্ডার, অথবা ফাইল নির্বাচন করেছেন কিনা তার উপর নির্ভর করে পরিবর্তিত হয়:
- যখন আপনি একটি প্রকল্প, ফাইল, অথবা ডিরেক্টরি নির্বাচন করেন, তখন "পরিদর্শন সুযোগ নির্দিষ্ট করুন" ডায়ালগ আপনার নির্বাচিত প্রকল্প, ফাইল, অথবা ডিরেক্টরির পথ প্রদর্শন করে।
- যখন আপনি একাধিক প্রকল্প, ফাইল, বা ডিরেক্টরি নির্বাচন করেন, তখন Specify Inspection Scope ডায়ালগটি Selected files এর জন্য একটি নির্বাচিত রেডিও বোতাম প্রদর্শন করে।
কী পরিদর্শন করবেন তা পরিবর্তন করতে, অন্য রেডিও বোতামগুলির মধ্যে একটি নির্বাচন করুন। পরিদর্শন সুযোগ নির্দিষ্ট করুন ডায়ালগে সমস্ত সম্ভাব্য ক্ষেত্রের বিবরণের জন্য পরিদর্শন সুযোগ নির্দিষ্ট করুন ডায়ালগটি দেখুন।
- পরিদর্শন প্রোফাইলের অধীনে, আপনি যে প্রোফাইলটি ব্যবহার করতে চান তা নির্বাচন করুন।
পরিদর্শন চালানোর জন্য ঠিক আছে ক্লিক করুন।
চিত্র ৪-এ ইন্সপেক্ট কোড রান থেকে লিন্ট এবং অন্যান্য IDE পরিদর্শনের ফলাফল দেখানো হয়েছে:

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

চিত্র ৫। আপনি কোন কাস্টম স্কোপ ব্যবহার করতে চান তা নির্বাচন করুন। - সকল স্থান: সকল ফাইল।
- প্রকল্প ফাইল: বর্তমান প্রকল্পের সমস্ত ফাইল।
- প্রকল্পের উৎস ফাইল: শুধুমাত্র বর্তমান প্রকল্পের উৎস ফাইলগুলি।
- প্রকল্প উৎপাদন ফাইল: শুধুমাত্র বর্তমান প্রকল্পের উৎপাদন ফাইলগুলি।
- প্রকল্প পরীক্ষার ফাইল: শুধুমাত্র বর্তমান প্রকল্পের পরীক্ষার ফাইলগুলি।
- স্ক্র্যাচ এবং কনসোল: বর্তমান প্রকল্পে আপনার খোলা শুধুমাত্র স্ক্র্যাচ ফাইল এবং কনসোলগুলি।
- সম্প্রতি দেখা ফাইল: বর্তমান প্রকল্পে শুধুমাত্র সম্প্রতি দেখা ফাইল।
- বর্তমান ফাইল: আপনার বর্তমান প্রকল্পের শুধুমাত্র বর্তমান ফাইলটি। যখন আপনার কোন ফাইল বা ফোল্ডার নির্বাচন করা হয় তখন এটি প্রদর্শিত হয়।
- নির্বাচিত ডিরেক্টরি: আপনার বর্তমান প্রকল্পের শুধুমাত্র বর্তমান ফোল্ডারটি। যখন আপনি একটি ফোল্ডার নির্বাচন করেন তখন প্রদর্শিত হয়।
- ক্লাস হায়ারার্কি: যখন আপনি এই বিকল্পটি নির্বাচন করেন এবং OK ক্লিক করেন, তখন বর্তমান প্রকল্পের সমস্ত ক্লাস সহ একটি ডায়ালগ প্রদর্শিত হয়। ডায়ালগে, ফিল্টার করতে Search by Name ক্ষেত্রটি ব্যবহার করুন এবং পরিদর্শন করার জন্য ক্লাসগুলি নির্বাচন করুন। যদি আপনি ক্লাস তালিকা ফিল্টার না করেন, তাহলে কোড পরিদর্শন সমস্ত ক্লাস পরিদর্শন করবে।
- ঠিক আছে ক্লিক করুন।
যদি আপনার প্রকল্পের জন্য একটি VCS কনফিগার করা থাকে, তাহলে শুধুমাত্র পরিবর্তিত ফাইলগুলিতে অনুসন্ধান সীমাবদ্ধ করার বিকল্পও রয়েছে।
একটি কাস্টম স্কোপ তৈরি করুন
যখন আপনি এমন কিছু ফাইল এবং ডিরেক্টরি পরিদর্শন করতে চান যা উপলব্ধ কাস্টম স্কোপগুলির দ্বারা আচ্ছাদিত নয়, তখন আপনি একটি কাস্টম স্কোপ তৈরি করতে পারেন:
- "পরিদর্শন সুযোগ নির্দিষ্ট করুন " ডায়ালগে, "কাস্টম সুযোগ" নির্বাচন করুন।
কাস্টম স্কোপ তালিকার পরে তিনটি বিন্দুতে ক্লিক করুন।

চিত্র ৬। পরিদর্শন সুযোগ ডায়ালগ নির্দিষ্ট করুন। স্কোপস ডায়ালগটি প্রদর্শিত হবে।

চিত্র ৭। একটি কাস্টম স্কোপ তৈরি করুন। - ক্লিক করুন
একটি নতুন সুযোগ সংজ্ঞায়িত করতে ডায়ালগের উপরের-বাম কোণে বোতাম। - প্রদর্শিত Add Scope তালিকায়, Local নির্বাচন করুন।
প্রকল্পের মধ্যে " ইনস্পেক্ট কোড" বৈশিষ্ট্যের জন্য স্থানীয় এবং ভাগ করা স্কোপ উভয়ই ব্যবহার করা হয়। একটি ভাগ করা স্কোপ অন্যান্য প্রকল্প বৈশিষ্ট্যগুলির সাথেও ব্যবহার করা যেতে পারে যার একটি স্কোপ ক্ষেত্র রয়েছে। উদাহরণস্বরূপ, যখন আপনি "সেটিংস সম্পাদনা করুন" এ ক্লিক করেন
Find Usages এর সেটিংস পরিবর্তন করতে, ফলস্বরূপ ডায়ালগে একটি Scope ক্ষেত্র থাকবে যেখানে আপনি একটি ভাগ করা স্কোপ নির্বাচন করতে পারবেন। 
চিত্র ৮। ব্যবহার খুঁজুন ডায়ালগ থেকে একটি ভাগ করা সুযোগ নির্বাচন করুন। - স্কোপের একটি নাম দিন এবং ঠিক আছে ক্লিক করুন।
স্কোপস ডায়ালগের ডান ফলকে এমন বিকল্প রয়েছে যা আপনাকে কাস্টম স্কোপ নির্ধারণ করতে দেয়।
- তালিকা থেকে, প্রকল্প নির্বাচন করুন।
উপলব্ধ প্রকল্পগুলির একটি তালিকা প্রদর্শিত হবে।
দ্রষ্টব্য: আপনি প্রকল্প বা প্যাকেজের জন্য কাস্টম স্কোপ তৈরি করতে পারেন। ধাপগুলি একই।
প্রজেক্ট ফোল্ডারগুলি প্রসারিত করুন, কাস্টম স্কোপে আপনি কী যোগ করতে চান তা নির্বাচন করুন এবং এটি অন্তর্ভুক্ত করবেন নাকি বাদ দেবেন তা নির্বাচন করুন।

চিত্র ৯। একটি কাস্টম স্কোপ সংজ্ঞায়িত করুন। - অন্তর্ভুক্ত করুন : এই ফোল্ডার এবং এর ফাইলগুলি অন্তর্ভুক্ত করুন, কিন্তু এর কোনও সাবফোল্ডার অন্তর্ভুক্ত করবেন না।
- Recursively অন্তর্ভুক্ত করুন : এই ফোল্ডার এবং এর ফাইলগুলির পাশাপাশি এর সাবফোল্ডার এবং তাদের ফাইলগুলি অন্তর্ভুক্ত করুন।
- বাদ দিন : এই ফোল্ডার এবং এর ফাইলগুলি বাদ দিন, কিন্তু এর কোনও সাবফোল্ডার বাদ দেবেন না।
- Exclude Recursively : এই ফোল্ডার এবং এর ফাইলগুলি, এর সাবফোল্ডারগুলি এবং তাদের ফাইলগুলি বাদ দিন।
চিত্র ১০ দেখায় যে মূল ফোল্ডারটি অন্তর্ভুক্ত করা হয়েছে, এবং জাভা এবং রেস ফোল্ডারগুলি পুনরাবৃত্তভাবে অন্তর্ভুক্ত করা হয়েছে। নীল রঙ আংশিকভাবে অন্তর্ভুক্ত একটি ফোল্ডার নির্দেশ করে, এবং সবুজ রঙ পুনরাবৃত্তভাবে অন্তর্ভুক্ত ফোল্ডার এবং ফাইল নির্দেশ করে।

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

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