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

- অ্যাপ সোর্স ফাইল
- কোটলিন, জাভা এবং এক্সএমএল ফাইল, আইকন এবং প্রোগার্ড কনফিগারেশন ফাইল সহ আপনার অ্যান্ড্রয়েড প্রোজেক্ট তৈরি করে এমন ফাইলগুলি নিয়ে সোর্স ফাইলগুলি রয়েছে৷
-
lint.xml
ফাইল - একটি কনফিগারেশন ফাইল যা আপনি যে কোনো লিন্ট চেক নির্দিষ্ট করতে ব্যবহার করতে পারেন যা আপনি বাদ দিতে চান এবং সমস্যার তীব্রতা মাত্রা কাস্টমাইজ করতে পারেন।
- লিন্ট টুল
- একটি স্ট্যাটিক কোড স্ক্যানিং টুল যা আপনি আপনার অ্যান্ড্রয়েড প্রোজেক্টে কমান্ড লাইন থেকে বা অ্যান্ড্রয়েড স্টুডিওতে চালাতে পারেন। লিন্ট টুল স্ট্রাকচারাল কোড সমস্যাগুলির জন্য পরীক্ষা করে যা আপনার Android অ্যাপের গুণমান এবং কর্মক্ষমতা প্রভাবিত করতে পারে।
- লিন্ট চেকিং এর ফলাফল
- আপনি কনসোলে বা অ্যান্ড্রয়েড স্টুডিওতে পরিদর্শন ফলাফল উইন্ডোতে লিন্ট থেকে ফলাফল দেখতে পারেন। আপনি যদি কমান্ড লাইন থেকে
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
দিয়ে এটির উপসর্গ দিতে হবে।
./gradlew lintRelease
দ্রষ্টব্য: লিন্ট স্বয়ংক্রিয়ভাবে আপনার বিল্ডের অংশ হিসাবে চালানো হয় না। আমরা দৃঢ়ভাবে সুপারিশ করছি যে আপনি একটি অবিচ্ছিন্ন ইন্টিগ্রেশন বিল্ডের অংশ হিসাবে স্পষ্টভাবে লিন্ট চালান যাতে আপনার বিদ্যমান সোর্স কোড তৈরি করার সময় আপনি সর্বশেষ লিন্ট পরীক্ষাগুলি দেখতে পান।
কমান্ড লাইন থেকে গ্রেডল কাজ চালানোর বিষয়ে আরও জানতে, কমান্ড লাইন থেকে আপনার অ্যাপ তৈরি করুন পড়ুন।
স্বতন্ত্র টুল ব্যবহার করে লিন্ট চালান
আপনি যদি অ্যান্ড্রয়েড স্টুডিও বা গ্রেডল ব্যবহার না করে থাকেন, তাহলে স্বতন্ত্র লিন্ট টুল ব্যবহার করতে Android SDK কমান্ড-লাইন টুল ইনস্টল করুন। android_sdk /cmdline-tools/ version /bin/lint
এ লিন্ট টুলটি সনাক্ত করুন।
দ্রষ্টব্য: আপনি যদি একটি গ্রেডল প্রকল্পে স্বতন্ত্র টুল চালানোর চেষ্টা করেন, এটি একটি ত্রুটি দেয়। একটি Gradle প্রজেক্টে লিন্ট চালানোর জন্য আপনার সর্বদা gradle lint
(উইন্ডোজে) বা ./gradlew lint
(macOS বা Linux-এ) ব্যবহার করা উচিত।
একটি প্রকল্প ডিরেক্টরিতে ফাইলগুলির একটি তালিকার বিরুদ্ধে লিন্ট চালানোর জন্য, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
lint [flags] <project directory>
উদাহরণস্বরূপ, আপনি myproject
ডিরেক্টরি এবং এর সাবডিরেক্টরিগুলির অধীনে ফাইলগুলি স্ক্যান করতে নিম্নলিখিত কমান্ডটি ইস্যু করতে পারেন। ইস্যু আইডি MissingPrefix
লিন্টকে শুধুমাত্র সেই XML অ্যাট্রিবিউটগুলির জন্য স্ক্যান করতে বলে যেগুলিতে Android নেমস্পেস প্রিফিক্স নেই।
lint --check MissingPrefix myproject
টুল দ্বারা সমর্থিত পতাকা এবং কমান্ড-লাইন আর্গুমেন্টের সম্পূর্ণ তালিকা দেখতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
lint --help
নিম্নোক্ত উদাহরণটি কনসোল আউটপুট দেখায় যখন ভূমিকম্প নামক একটি প্রকল্পের বিরুদ্ধে লিন্ট কমান্ড চালানো হয়:
$ 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
ফাইলে আপনার লিন্ট চেকিং পছন্দগুলি নির্দিষ্ট করতে পারেন। আপনি যদি ম্যানুয়ালি এই ফাইলটি তৈরি করেন, তাহলে এটিকে আপনার Android প্রকল্পের রুট ডিরেক্টরিতে রাখুন।
lint.xml
ফাইলে একটি ঘেরা <lint>
প্যারেন্ট ট্যাগ থাকে যাতে এক বা একাধিক শিশু <issue>
উপাদান থাকে। লিন্ট প্রতিটি <issue>
এর জন্য একটি অনন্য id
বৈশিষ্ট্য মান সংজ্ঞায়িত করে:
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- list of issues to configure --> </lint>
একটি সমস্যার তীব্রতা স্তর পরিবর্তন করতে বা সমস্যার জন্য লিন্ট চেকিং অক্ষম করতে, <issue>
ট্যাগে তীব্রতা বৈশিষ্ট্য সেট করুন।
টিপ: লিন্ট-সমর্থিত সমস্যাগুলির একটি সম্পূর্ণ তালিকা এবং তাদের সংশ্লিষ্ট সমস্যা আইডিগুলির জন্য, lint --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 ... />
ঘোষণাগুলিতে নির্দিষ্ট করা ফাইলগুলিতে নিষ্ক্রিয় করা হয়েছে।
Kotlin, Java, এবং XML সোর্স ফাইলের জন্য লিন্ট চেকিং কনফিগার করুন
আপনি পছন্দ ডায়ালগে আপনার Kotlin, Java, এবং XML সোর্স ফাইলগুলির জন্য লিন্ট চেকিং বন্ধ করতে পারেন:
- ফাইল > সেটিংস (উইন্ডোজে) বা অ্যান্ড্রয়েড স্টুডিও > পছন্দসমূহ (ম্যাকওএস বা লিনাক্সে) নির্বাচন করুন।
- সম্পাদক > পরিদর্শন নির্বাচন করুন।
- নিষ্ক্রিয় করতে, উপযুক্ত উত্স ফাইলটি নির্বাচন মুক্ত করুন৷
আপনি উপযুক্ত প্রোফাইল নির্বাচন করে 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);
যেকোন কম্পোজেবলেও একই কাজ করা যেতে পারে। নিম্নলিখিত কোড স্নিপেটটি দেখায় যে আপনি কীভাবে যেকোন কম্পোজেবলে 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 xmlns:tools="http://schemas.android.com/tools"
নিচের উদাহরণটি দেখায় যে কিভাবে আপনি একটি XML লেআউট ফাইলের একটি <LinearLayout>
উপাদানে UnusedResources
সমস্যার জন্য লিন্ট চেকিং বন্ধ করতে পারেন। ignore
বৈশিষ্ট্যটি প্যারেন্ট এলিমেন্টের শিশু উপাদানগুলির দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত হয় যেখানে বৈশিষ্ট্যটি ঘোষণা করা হয়৷ এই উদাহরণে, লিন্ট চেক শিশু <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"
Gradle দিয়ে লিন্ট অপশন কনফিগার করুন
অ্যান্ড্রয়েড গ্রেডল প্লাগইন আপনাকে নির্দিষ্ট লিন্ট বিকল্পগুলি কনফিগার করতে দেয়, যেমন আপনার মডিউল-স্তরের 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
ফাইলটি আপনার বেসলাইন স্থাপনের জন্য তৈরি করা হয়। তারপর থেকে, টুলগুলি শুধুমাত্র বেসলাইন নির্ধারণ করতে ফাইলটি পড়ে। আপনি যদি একটি নতুন বেসলাইন তৈরি করতে চান, ম্যানুয়ালি ফাইলটি মুছুন এবং এটি পুনরায় তৈরি করতে আবার লিন্ট চালান।
তারপর, কোড > ইনস্পেক্ট কোড বা কমান্ড লাইন থেকে নিম্নরূপ নির্বাচন করে IDE থেকে লিন্ট চালান। আউটপুট 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
ফাইলে সমস্ত বর্তমান সমস্যা রেকর্ড করে। বর্তমান সমস্যাগুলির সেটটিকে বেসলাইন বলা হয়। আপনি যদি অন্যদের সাথে ভাগ করতে চান তবে 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 পরিদর্শন চালানোর জন্য, কোড > পরিদর্শন কোড নির্বাচন করুন। পরিদর্শনের ফলাফল পরিদর্শন ফলাফল উইন্ডোতে প্রদর্শিত হবে।
পরিদর্শনের সুযোগ এবং প্রোফাইল সেট করুন
আপনি যে ফাইলগুলি বিশ্লেষণ করতে চান তা নির্বাচন করুন (পরিদর্শনের সুযোগ ) এবং আপনি যে পরিদর্শনগুলি চালাতে চান (পরিদর্শন প্রোফাইল ) নিম্নরূপ:
- অ্যান্ড্রয়েড ভিউতে, আপনার প্রকল্পটি খুলুন এবং আপনি যে প্রকল্প, ফোল্ডার বা ফাইলটি বিশ্লেষণ করতে চান সেটি নির্বাচন করুন।
- মেনু বার থেকে, কোড > পরিদর্শন কোড নির্বাচন করুন।
পরিদর্শন স্কোপ নির্দিষ্ট করুন ডায়ালগে, সেটিংস পর্যালোচনা করুন।
চিত্র 3. পরিদর্শন সুযোগ সেটিংস পর্যালোচনা করুন। আপনি একটি প্রকল্প, ফোল্ডার বা ফাইল নির্বাচন করেছেন কিনা তার উপর নির্ভর করে নির্দিষ্ট পরিদর্শন স্কোপ ডায়ালগে উপস্থিত বিকল্পগুলি পরিবর্তিত হয়:
- আপনি যখন একটি প্রকল্প, ফাইল বা ডিরেক্টরি নির্বাচন করেন, তখন নির্দিষ্ট পরিদর্শন স্কোপ ডায়ালগ আপনার নির্বাচিত প্রকল্প, ফাইল বা ডিরেক্টরির পথ প্রদর্শন করে।
- আপনি যখন একাধিক প্রকল্প, ফাইল বা ডিরেক্টরি নির্বাচন করেন, তখন নির্দিষ্ট পরিদর্শন স্কোপ ডায়ালগ নির্বাচিত ফাইলগুলির জন্য একটি নির্বাচিত রেডিও বোতাম প্রদর্শন করে।
কী পরিদর্শন করতে হবে তা পরিবর্তন করতে, অন্যান্য রেডিও বোতামগুলির মধ্যে একটি নির্বাচন করুন৷ নির্দিষ্ট পরিদর্শন স্কোপ ডায়ালগে সম্ভাব্য সমস্ত ক্ষেত্রের বর্ণনার জন্য পরিদর্শন স্কোপ নির্দিষ্ট করুন ডায়ালগ দেখুন।
- পরিদর্শন প্রোফাইলের অধীনে, আপনি যে প্রোফাইলটি ব্যবহার করতে চান তা নির্বাচন করুন।
পরিদর্শন চালানোর জন্য ঠিক আছে ক্লিক করুন.
চিত্র 4 পরিদর্শন কোড রান থেকে লিন্ট এবং অন্যান্য IDE পরিদর্শন ফলাফল দেখায়:
চিত্র 4. পরিদর্শন থেকে ফলাফল. সমাধান দেখতে একটি সমস্যা নির্বাচন করুন। পরিদর্শন ফলাফল ফলকে, ত্রুটি বিভাগ, প্রকার বা সমস্যাগুলি প্রসারিত এবং নির্বাচন করে পরিদর্শনের ফলাফলগুলি দেখুন।
পরিদর্শন প্রতিবেদন ফলক পরিদর্শন ফলাফল ফলকে নির্বাচিত ত্রুটি বিভাগ, প্রকার বা সমস্যার জন্য পরিদর্শন প্রতিবেদন প্রদর্শন করে এবং ত্রুটির নাম এবং অবস্থান প্রদর্শন করে। যেখানে প্রযোজ্য, পরিদর্শন প্রতিবেদন অন্যান্য তথ্য প্রদর্শন করে, যেমন একটি সমস্যার সংক্ষিপ্তসার, আপনাকে সমস্যাটি সংশোধন করতে সহায়তা করতে।
পরিদর্শন ফলাফল ফলক ট্রি ভিউতে, প্রসঙ্গ মেনু প্রদর্শন করতে একটি বিভাগ, টাইপ বা সমস্যাটিতে ডান-ক্লিক করুন।
প্রসঙ্গের উপর নির্ভর করে, আপনি করতে পারেন:
- উৎসে ঝাঁপ দাও।
- বাদ এবং নির্বাচিত আইটেম অন্তর্ভুক্ত.
- সমস্যাগুলি দমন করুন।
- সেটিংস সম্পাদনা করুন।
- পরিদর্শন সতর্কতা পরিচালনা করুন।
- একটি পরিদর্শন পুনরায় চালান।
টুলবার বোতাম, প্রসঙ্গ মেনু আইটেম এবং পরিদর্শন রিপোর্ট ক্ষেত্রগুলির বর্ণনার জন্য, পরিদর্শন ফলাফল টুল উইন্ডো দেখুন।
একটি কাস্টম সুযোগ ব্যবহার করুন
অ্যান্ড্রয়েড স্টুডিওতে প্রদত্ত কাস্টম স্কোপগুলির একটি ব্যবহার করুন নিম্নরূপ:
- পরিদর্শন স্কোপ নির্দিষ্ট করুন ডায়ালগে, কাস্টম স্কোপ নির্বাচন করুন।
আপনার বিকল্পগুলি প্রদর্শন করতে কাস্টম সুযোগ তালিকাতে ক্লিক করুন:
চিত্র 5. আপনি কোন কাস্টম সুযোগ ব্যবহার করতে চান তা নির্বাচন করুন। - সমস্ত স্থান: সমস্ত ফাইল।
- প্রকল্প ফাইল: বর্তমান প্রকল্পের সমস্ত ফাইল।
- প্রজেক্ট সোর্স ফাইল: বর্তমান প্রোজেক্টে শুধুমাত্র সোর্স ফাইল।
- প্রজেক্ট প্রোডাকশন ফাইল: বর্তমান প্রোজেক্টে শুধুমাত্র প্রোডাকশন ফাইল।
- প্রজেক্ট টেস্ট ফাইল: বর্তমান প্রজেক্টে শুধুমাত্র টেস্ট ফাইল।
- স্ক্র্যাচ এবং কনসোল: শুধুমাত্র স্ক্র্যাচ ফাইল এবং কনসোল আপনি বর্তমান প্রকল্পে খোলা আছে।
- সম্প্রতি দেখা ফাইল: বর্তমান প্রকল্পে শুধুমাত্র সম্প্রতি দেখা ফাইল।
- বর্তমান ফাইল: আপনার বর্তমান প্রকল্পে শুধুমাত্র বর্তমান ফাইল। আপনি একটি ফাইল বা ফোল্ডার নির্বাচন করা হলে প্রদর্শিত হবে.
- নির্বাচিত ডিরেক্টরি: আপনার বর্তমান প্রকল্পে শুধুমাত্র বর্তমান ফোল্ডার। আপনি একটি ফোল্ডার নির্বাচন করা হলে প্রদর্শিত হবে.
- ক্লাস হায়ারার্কি: আপনি যখন এই বিকল্পটি নির্বাচন করেন এবং ঠিক আছে ক্লিক করেন, তখন বর্তমান প্রকল্পের সমস্ত ক্লাসের সাথে একটি ডায়ালগ উপস্থিত হয়। ডায়ালগে, ফিল্টার করতে এবং পরিদর্শনের জন্য ক্লাস নির্বাচন করতে নামের ক্ষেত্রটি ব্যবহার করুন। আপনি যদি ক্লাসের তালিকা ফিল্টার না করেন, কোড পরিদর্শন সমস্ত ক্লাস পরিদর্শন করে।
- ওকে ক্লিক করুন।
আপনার যদি প্রোজেক্টের জন্য একটি VCS কনফিগার করা থাকে, তবে শুধুমাত্র পরিবর্তন করা ফাইলগুলিতে অনুসন্ধান সীমাবদ্ধ করার বিকল্পও রয়েছে।
একটি কাস্টম সুযোগ তৈরি করুন
যখন আপনি ফাইল এবং ডিরেক্টরিগুলির একটি নির্বাচন পরিদর্শন করতে চান যা উপলব্ধ কাস্টম স্কোপের কোনটি দ্বারা আচ্ছাদিত নয়, আপনি একটি কাস্টম সুযোগ তৈরি করতে পারেন:
- পরিদর্শন স্কোপ নির্দিষ্ট করুন ডায়ালগে, কাস্টম স্কোপ নির্বাচন করুন।
কাস্টম স্কোপ তালিকার পরে তিনটি বিন্দুতে ক্লিক করুন।
চিত্র 6. পরিদর্শন স্কোপ ডায়ালগ নির্দিষ্ট করুন। স্কোপ ডায়ালগ প্রদর্শিত হবে।
চিত্র 7. একটি কাস্টম সুযোগ তৈরি করুন। - ক্লিক করুন
একটি নতুন সুযোগ সংজ্ঞায়িত করতে ডায়ালগের উপরের-বাম কোণে বোতাম।
- প্রদর্শিত স্কোপ তালিকায়, স্থানীয় নির্বাচন করুন।
পরিদর্শন কোড বৈশিষ্ট্যের জন্য প্রকল্পের মধ্যে স্থানীয় এবং ভাগ করা উভয় স্কোপ ব্যবহার করা হয়। একটি শেয়ার্ড স্কোপ অন্যান্য প্রকল্প বৈশিষ্ট্যগুলির সাথেও ব্যবহার করা যেতে পারে যার একটি সুযোগ ক্ষেত্র রয়েছে। উদাহরণস্বরূপ, যখন আপনি সেটিংস সম্পাদনা করুন ক্লিক করুন
Find Usages-এর জন্য সেটিংস পরিবর্তন করতে, ফলস্বরূপ ডায়ালগে একটি স্কোপ ক্ষেত্র রয়েছে যেখানে আপনি একটি ভাগ করা সুযোগ নির্বাচন করতে পারেন।
চিত্র 8. সন্ধান করুন ব্যবহার ডায়ালগ থেকে একটি ভাগ করা সুযোগ নির্বাচন করুন। - সুযোগের একটি নাম দিন এবং ঠিক আছে ক্লিক করুন।
স্কোপস ডায়ালগের ডান ফলকটি এমন বিকল্পগুলির সাথে পপুলেট করে যা আপনাকে কাস্টম সুযোগ নির্ধারণ করতে দেয়।
- তালিকা থেকে, প্রকল্প নির্বাচন করুন।
উপলব্ধ প্রকল্পগুলির একটি তালিকা প্রদর্শিত হবে।
দ্রষ্টব্য: আপনি প্রকল্প বা প্যাকেজগুলির জন্য কাস্টম সুযোগ তৈরি করতে পারেন। ধাপগুলো একই।
প্রজেক্ট ফোল্ডারগুলি প্রসারিত করুন, আপনি কাস্টম স্কোপে কী যোগ করতে চান তা নির্বাচন করুন এবং এটি অন্তর্ভুক্ত বা বাদ দেবেন কিনা তা নির্বাচন করুন।
চিত্র 9. একটি কাস্টম সুযোগ সংজ্ঞায়িত করুন। - অন্তর্ভুক্ত করুন : এই ফোল্ডার এবং এর ফাইলগুলি অন্তর্ভুক্ত করুন, তবে এর কোনো সাবফোল্ডার অন্তর্ভুক্ত করবেন না।
- পুনরাবৃত্তভাবে অন্তর্ভুক্ত করুন : এই ফোল্ডারটি এবং এর ফাইলগুলির পাশাপাশি এর সাবফোল্ডার এবং তাদের ফাইলগুলি অন্তর্ভুক্ত করুন।
- বাদ দিন : এই ফোল্ডার এবং এর ফাইলগুলি বাদ দিন, তবে এর কোনও সাবফোল্ডার বাদ দেবেন না।
- পুনরাবৃত্তভাবে বাদ দিন : এই ফোল্ডার এবং এর ফাইলগুলির পাশাপাশি এর সাবফোল্ডার এবং তাদের ফাইলগুলি বাদ দিন।
চিত্র 10 দেখায় যে প্রধান ফোল্ডার অন্তর্ভুক্ত করা হয়েছে, এবং জাভা এবং রেস ফোল্ডারগুলি পুনরাবৃত্তিমূলকভাবে অন্তর্ভুক্ত করা হয়েছে। নীল একটি আংশিকভাবে অন্তর্ভুক্ত ফোল্ডার নির্দেশ করে, এবং সবুজ পুনরাবৃত্তভাবে অন্তর্ভুক্ত ফোল্ডার এবং ফাইল নির্দেশ করে।
চিত্র 10. একটি কাস্টম সুযোগের জন্য উদাহরণ প্যাটার্ন। - আপনি যদি java ফোল্ডার নির্বাচন করেন এবং Recursively Exclude-এ ক্লিক করেন, তাহলে জাভা ফোল্ডার এবং এর অধীনে থাকা সমস্ত ফোল্ডার এবং ফাইলে সবুজ হাইলাইটিং চলে যাবে।
- আপনি যদি সবুজ-হাইলাইট করা MainActivity.kt ফাইলটি নির্বাচন করেন এবং Exclude এ ক্লিক করেন, MainActivity.kt আর সবুজ হাইলাইট করা হবে না, তবে জাভা ফোল্ডারের নীচে বাকি সবকিছু সবুজ থাকবে।
- ওকে ক্লিক করুন। কাস্টম সুযোগ তালিকার নীচে প্রদর্শিত হবে।
পরিদর্শন প্রোফাইল পর্যালোচনা এবং সম্পাদনা করুন
অ্যান্ড্রয়েড স্টুডিওতে লিন্ট এবং অন্যান্য পরিদর্শন প্রোফাইলের একটি নির্বাচন রয়েছে যা অ্যান্ড্রয়েড আপডেটের মাধ্যমে আপডেট করা হয়। আপনি এই প্রোফাইলগুলিকে সেগুলির মতো ব্যবহার করতে পারেন বা তাদের নাম, বিবরণ, তীব্রতা এবং সুযোগগুলি সম্পাদনা করতে পারেন৷ আপনি একটি গ্রুপের মধ্যে প্রোফাইলের সম্পূর্ণ গ্রুপ বা পৃথক প্রোফাইল সক্রিয় এবং নিষ্ক্রিয় করতে পারেন।
পরিদর্শন সেটিংস অ্যাক্সেস করতে:
- ফাইল > সেটিংস নির্বাচন করুন। (উইন্ডোজে) বা অ্যান্ড্রয়েড স্টুডিও > পছন্দ (ম্যাকওএস বা লিনাক্সে)।
- সম্পাদক > পরিদর্শন নির্বাচন করুন।
পরিদর্শন ফলক সমর্থিত পরিদর্শনগুলির একটি তালিকা এবং তাদের বিবরণ দেখায়।
চিত্র 11. সমর্থিত পরিদর্শন এবং তাদের বিবরণ। ডিফল্ট (অ্যান্ড্রয়েড স্টুডিও) এবং প্রজেক্ট ডিফল্ট (সক্রিয় প্রকল্প) পরিদর্শনের মধ্যে টগল করতে প্রোফাইল তালিকা নির্বাচন করুন।
আরও তথ্যের জন্য, IntelliJ ম্যানেজ প্রোফাইল পৃষ্ঠাটি দেখুন।
বাম ফলকে পরিদর্শন তালিকায়, একটি শীর্ষ-স্তরের প্রোফাইল বিভাগ নির্বাচন করুন বা একটি গ্রুপ প্রসারিত করুন এবং একটি নির্দিষ্ট প্রোফাইল নির্বাচন করুন।
আপনি যখন একটি প্রোফাইল বিভাগ নির্বাচন করেন, তখন আপনি একটি একক পরিদর্শন হিসাবে সেই বিভাগের সমস্ত পরিদর্শন সম্পাদনা করতে পারেন৷
- শো স্কিমা অ্যাকশন নির্বাচন করুন
অনুলিপি, নাম পরিবর্তন, বিবরণ যোগ, রপ্তানি, এবং আমদানি পরিদর্শন তালিকা.
- আপনি সম্পন্ন হলে, ঠিক আছে ক্লিক করুন.
আপনার অ্যাপটি তার কার্যকরী প্রয়োজনীয়তাগুলি পূরণ করে তা নিশ্চিত করার জন্য পরীক্ষাগুলি তৈরি করার পাশাপাশি, আপনার কোডটিতে কোনও কাঠামোগত সমস্যা নেই তা নিশ্চিত করতে লিন্ট টুলের মাধ্যমে কোডটি চালানোও গুরুত্বপূর্ণ। লিন্ট টুলটি খারাপভাবে স্ট্রাকচার্ড কোড খুঁজে পেতে সাহায্য করে যা আপনার অ্যান্ড্রয়েড অ্যাপের নির্ভরযোগ্যতা এবং দক্ষতাকে প্রভাবিত করতে পারে এবং আপনার কোড বজায় রাখা কঠিন করে তোলে। এটি দৃঢ়ভাবে সুপারিশ করা হয় যে আপনি আপনার অ্যাপ প্রকাশ করার আগে লিন্ট শনাক্ত করে এমন কোনো ত্রুটি সংশোধন করুন।
উদাহরণস্বরূপ, যদি আপনার XML রিসোর্স ফাইলগুলিতে অব্যবহৃত নামস্থান থাকে তবে এটি স্থান নেয় এবং অপ্রয়োজনীয় প্রক্রিয়াকরণের প্রয়োজন হয়। অন্যান্য কাঠামোগত সমস্যা, যেমন অবহেলিত উপাদানের ব্যবহার বা API কল যা লক্ষ্য API সংস্করণ দ্বারা সমর্থিত নয়, কোড সঠিকভাবে চালানোর ব্যর্থতার দিকে নিয়ে যেতে পারে। লিন্ট আপনাকে এই সমস্যাগুলি পরিষ্কার করতে সহায়তা করতে পারে।
লিন্টিং কর্মক্ষমতা উন্নত করতে, আপনি আপনার কোডে টীকা যোগ করতে পারেন।
ওভারভিউ
অ্যান্ড্রয়েড স্টুডিও লিন্ট নামক একটি কোড স্ক্যানিং টুল প্রদান করে যা আপনাকে অ্যাপটি এক্সিকিউট না করেই বা টেস্ট কেস না লিখে আপনার কোডের স্ট্রাকচারাল কোয়ালিটির সমস্যা শনাক্ত করতে এবং সংশোধন করতে সাহায্য করতে পারে। টুল দ্বারা শনাক্ত প্রতিটি সমস্যা একটি বর্ণনা বার্তা এবং একটি তীব্রতা স্তরের সাথে রিপোর্ট করা হয় যাতে আপনি গুরুত্বপূর্ণ উন্নতিগুলিকে অগ্রাধিকার দিতে পারেন যা করা দরকার৷ আপনার প্রকল্পের সাথে প্রাসঙ্গিক নয় এমন সমস্যাগুলিকে উপেক্ষা করতে বা নির্দিষ্ট সমস্যাগুলিকে হাইলাইট করার জন্য তীব্রতার মাত্রা বাড়াতে আপনি সমস্যার তীব্রতার মাত্রা কমাতে পারেন।
লিন্ট টুলটি আপনার অ্যান্ড্রয়েড প্রোজেক্ট সোর্স ফাইলগুলিকে সম্ভাব্য বাগ এবং সঠিকতা, নিরাপত্তা, কর্মক্ষমতা, ব্যবহারযোগ্যতা, অ্যাক্সেসযোগ্যতা এবং আন্তর্জাতিকীকরণের জন্য অপ্টিমাইজেশন উন্নতির জন্য পরীক্ষা করে। অ্যান্ড্রয়েড স্টুডিও ব্যবহার করার সময়, আপনি যখন আপনার অ্যাপ তৈরি করেন তখন কনফিগার করা লিন্ট এবং IDE পরিদর্শনগুলি চলে। যাইহোক, আপনি ম্যানুয়ালি পরিদর্শন চালাতে পারেন বা কমান্ড লাইন থেকে লিন্ট চালাতে পারেন, যেমন এই পৃষ্ঠায় বর্ণনা করা হয়েছে।
আপনি যখন অ্যান্ড্রয়েড স্টুডিও ব্যবহার করছেন তখন অন্তর্নির্মিত লিন্ট টুল আপনার কোড চেক করে। আপনি সতর্কতা এবং ত্রুটি দুটি উপায়ে দেখতে পারেন:
- সম্পাদক উইন্ডোতে পপ-আপ পাঠ্য হিসাবে। যখন লিন্ট একটি সমস্যা খুঁজে পায়, এটি হলুদ রঙে সমস্যাযুক্ত কোড হাইলাইট করে। আরও গুরুতর সমস্যার জন্য, এটি লাল রঙে কোডটি আন্ডারলাইন করে।
- লিন্ট পরিদর্শন ফলাফল উইন্ডোতে যখন আপনি কোড > পরিদর্শন কোড ক্লিক করেন।
দ্রষ্টব্য: যখন আপনার কোড Android স্টুডিওতে কম্পাইল করা হয়, তখন অতিরিক্ত IntelliJ কোড পরিদর্শনগুলি কোড পর্যালোচনাকে স্ট্রীমলাইন করতে চালিত হয়। সর্বশেষ লিন্ট নিয়ম এবং পরিদর্শন উপলব্ধ রয়েছে তা নিশ্চিত করতে Android স্টুডিওকে যতটা সম্ভব আপ-টু-ডেট রাখুন।
চিত্র 1 দেখায় কিভাবে লিন্ট টুল অ্যাপ সোর্স ফাইলগুলিকে প্রক্রিয়া করে।

- অ্যাপ সোর্স ফাইল
- কোটলিন, জাভা এবং এক্সএমএল ফাইল, আইকন এবং প্রোগার্ড কনফিগারেশন ফাইল সহ আপনার অ্যান্ড্রয়েড প্রোজেক্ট তৈরি করে এমন ফাইলগুলি নিয়ে সোর্স ফাইলগুলি রয়েছে৷
-
lint.xml
ফাইল - একটি কনফিগারেশন ফাইল যা আপনি যে কোনো লিন্ট চেক নির্দিষ্ট করতে ব্যবহার করতে পারেন যা আপনি বাদ দিতে চান এবং সমস্যার তীব্রতা মাত্রা কাস্টমাইজ করতে পারেন।
- লিন্ট টুল
- একটি স্ট্যাটিক কোড স্ক্যানিং টুল যা আপনি আপনার অ্যান্ড্রয়েড প্রোজেক্টে কমান্ড লাইন থেকে বা অ্যান্ড্রয়েড স্টুডিওতে চালাতে পারেন। লিন্ট টুল স্ট্রাকচারাল কোড সমস্যাগুলির জন্য পরীক্ষা করে যা আপনার Android অ্যাপের গুণমান এবং কর্মক্ষমতা প্রভাবিত করতে পারে।
- লিন্ট চেকিং এর ফলাফল
- আপনি কনসোলে বা অ্যান্ড্রয়েড স্টুডিওতে পরিদর্শন ফলাফল উইন্ডোতে লিন্ট থেকে ফলাফল দেখতে পারেন। আপনি যদি কমান্ড লাইন থেকে
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
দিয়ে এটির উপসর্গ দিতে হবে।
./gradlew lintRelease
দ্রষ্টব্য: লিন্ট স্বয়ংক্রিয়ভাবে আপনার বিল্ডের অংশ হিসাবে চালানো হয় না। আমরা দৃঢ়ভাবে সুপারিশ করছি যে আপনি একটি অবিচ্ছিন্ন ইন্টিগ্রেশন বিল্ডের অংশ হিসাবে স্পষ্টভাবে লিন্ট চালান যাতে আপনার বিদ্যমান সোর্স কোড তৈরি করার সময় আপনি সর্বশেষ লিন্ট পরীক্ষাগুলি দেখতে পান।
কমান্ড লাইন থেকে গ্রেডল কাজ চালানোর বিষয়ে আরও জানতে, কমান্ড লাইন থেকে আপনার অ্যাপ তৈরি করুন পড়ুন।
স্বতন্ত্র টুল ব্যবহার করে লিন্ট চালান
আপনি যদি অ্যান্ড্রয়েড স্টুডিও বা গ্রেডল ব্যবহার না করে থাকেন, তাহলে স্বতন্ত্র লিন্ট টুল ব্যবহার করতে Android SDK কমান্ড-লাইন টুল ইনস্টল করুন। android_sdk /cmdline-tools/ version /bin/lint
এ লিন্ট টুলটি সনাক্ত করুন।
দ্রষ্টব্য: আপনি যদি একটি গ্রেডল প্রকল্পে স্বতন্ত্র টুল চালানোর চেষ্টা করেন, এটি একটি ত্রুটি দেয়। একটি Gradle প্রজেক্টে লিন্ট চালানোর জন্য আপনার সর্বদা gradle lint
(উইন্ডোজে) বা ./gradlew lint
(macOS বা Linux-এ) ব্যবহার করা উচিত।
একটি প্রকল্প ডিরেক্টরিতে ফাইলগুলির একটি তালিকার বিরুদ্ধে লিন্ট চালানোর জন্য, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
lint [flags] <project directory>
উদাহরণস্বরূপ, আপনি myproject
ডিরেক্টরি এবং এর সাবডিরেক্টরিগুলির অধীনে ফাইলগুলি স্ক্যান করতে নিম্নলিখিত কমান্ডটি ইস্যু করতে পারেন। ইস্যু আইডি MissingPrefix
লিন্টকে শুধুমাত্র সেই XML অ্যাট্রিবিউটগুলির জন্য স্ক্যান করতে বলে যেগুলিতে Android নেমস্পেস প্রিফিক্স নেই।
lint --check MissingPrefix myproject
টুল দ্বারা সমর্থিত পতাকা এবং কমান্ড-লাইন আর্গুমেন্টের সম্পূর্ণ তালিকা দেখতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
lint --help
নিম্নোক্ত উদাহরণটি কনসোল আউটপুট দেখায় যখন ভূমিকম্প নামক একটি প্রকল্পের বিরুদ্ধে লিন্ট কমান্ড চালানো হয়:
$ 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
ফাইলে আপনার লিন্ট চেকিং পছন্দগুলি নির্দিষ্ট করতে পারেন। আপনি যদি ম্যানুয়ালি এই ফাইলটি তৈরি করেন, তাহলে এটিকে আপনার Android প্রকল্পের রুট ডিরেক্টরিতে রাখুন।
lint.xml
ফাইলে একটি ঘেরা <lint>
প্যারেন্ট ট্যাগ থাকে যাতে এক বা একাধিক শিশু <issue>
উপাদান থাকে। লিন্ট প্রতিটি <issue>
এর জন্য একটি অনন্য id
বৈশিষ্ট্য মান সংজ্ঞায়িত করে:
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- list of issues to configure --> </lint>
একটি সমস্যার তীব্রতা স্তর পরিবর্তন করতে বা সমস্যার জন্য লিন্ট চেকিং অক্ষম করতে, <issue>
ট্যাগে তীব্রতা বৈশিষ্ট্য সেট করুন।
টিপ: লিন্ট-সমর্থিত সমস্যাগুলির একটি সম্পূর্ণ তালিকা এবং তাদের সংশ্লিষ্ট সমস্যা আইডিগুলির জন্য, lint --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 ... />
ঘোষণাগুলিতে নির্দিষ্ট করা ফাইলগুলিতে নিষ্ক্রিয় করা হয়েছে।
Kotlin, Java, এবং XML সোর্স ফাইলের জন্য লিন্ট চেকিং কনফিগার করুন
আপনি পছন্দ ডায়ালগে আপনার Kotlin, Java, এবং XML সোর্স ফাইলগুলির জন্য লিন্ট চেকিং বন্ধ করতে পারেন:
- ফাইল > সেটিংস (উইন্ডোজে) বা অ্যান্ড্রয়েড স্টুডিও > পছন্দসমূহ (ম্যাকওএস বা লিনাক্সে) নির্বাচন করুন।
- সম্পাদক > পরিদর্শন নির্বাচন করুন।
- নিষ্ক্রিয় করতে, উপযুক্ত উত্স ফাইলটি নির্বাচন মুক্ত করুন৷
আপনি উপযুক্ত প্রোফাইল নির্বাচন করে 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);
যেকোন কম্পোজেবলেও একই কাজ করা যেতে পারে। নিম্নলিখিত কোড স্নিপেটটি দেখায় যে আপনি কীভাবে যেকোন কম্পোজেবলে 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 xmlns:tools="http://schemas.android.com/tools"
নিচের উদাহরণটি দেখায় যে কিভাবে আপনি একটি XML লেআউট ফাইলের একটি <LinearLayout>
উপাদানে UnusedResources
সমস্যার জন্য লিন্ট চেকিং বন্ধ করতে পারেন। ignore
বৈশিষ্ট্যটি প্যারেন্ট এলিমেন্টের শিশু উপাদানগুলির দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত হয় যেখানে বৈশিষ্ট্যটি ঘোষণা করা হয়৷ এই উদাহরণে, লিন্ট চেক শিশু <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"
Gradle দিয়ে লিন্ট অপশন কনফিগার করুন
অ্যান্ড্রয়েড গ্রেডল প্লাগইন আপনাকে নির্দিষ্ট লিন্ট বিকল্পগুলি কনফিগার করতে দেয়, যেমন আপনার মডিউল-স্তরের 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
ফাইলটি আপনার বেসলাইন স্থাপনের জন্য তৈরি করা হয়। তারপর থেকে, টুলগুলি শুধুমাত্র বেসলাইন নির্ধারণ করতে ফাইলটি পড়ে। আপনি যদি একটি নতুন বেসলাইন তৈরি করতে চান, ম্যানুয়ালি ফাইলটি মুছুন এবং এটি পুনরায় তৈরি করতে আবার লিন্ট চালান।
তারপর, কোড > ইনস্পেক্ট কোড বা কমান্ড লাইন থেকে নিম্নরূপ নির্বাচন করে IDE থেকে লিন্ট চালান। আউটপুট 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
ফাইলে সমস্ত বর্তমান সমস্যা রেকর্ড করে। বর্তমান সমস্যাগুলির সেটটিকে বেসলাইন বলা হয়। আপনি যদি অন্যদের সাথে ভাগ করতে চান তবে 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 পরিদর্শন চালানোর জন্য, কোড > পরিদর্শন কোড নির্বাচন করুন। পরিদর্শনের ফলাফল পরিদর্শন ফলাফল উইন্ডোতে প্রদর্শিত হবে।
পরিদর্শন স্কোপ এবং প্রোফাইল সেট করুন
আপনি যে ফাইলগুলি বিশ্লেষণ করতে চান তা (পরিদর্শন করার সুযোগ ) এবং আপনি যে পরিদর্শনগুলি চালাতে চান তা (পরিদর্শন প্রোফাইল ) নিম্নরূপ নির্বাচন করুন:
- অ্যান্ড্রয়েড ভিউতে, আপনার প্রকল্পটি খুলুন এবং আপনি বিশ্লেষণ করতে চান এমন প্রকল্প, ফোল্ডার বা ফাইল নির্বাচন করুন।
- মেনু বার থেকে, কোড> পরীক্ষা কোড নির্বাচন করুন।
পরিদর্শন স্কোপ ডায়ালগ নির্দিষ্ট করুন , সেটিংস পর্যালোচনা করুন।
চিত্র 3। পরিদর্শন স্কোপ সেটিংস পর্যালোচনা করুন। আপনি কোনও প্রকল্প, ফোল্ডার বা ফাইল নির্বাচন করেছেন কিনা তার উপর নির্ভর করে পরিদর্শন স্কোপ ডায়ালগটিতে প্রদর্শিত বিকল্পগুলি পরিবর্তিত হয়:
- আপনি যখন একটি প্রকল্প, ফাইল বা ডিরেক্টরি নির্বাচন করেন, তখন নির্দিষ্ট পরিদর্শন স্কোপ ডায়ালগটি আপনি নির্বাচিত প্রকল্প, ফাইল বা ডিরেক্টরিগুলির পথ প্রদর্শন করে।
- আপনি যখন একাধিক প্রকল্প, ফাইল বা ডিরেক্টরি নির্বাচন করেন, নির্দিষ্ট পরিদর্শন স্কোপ ডায়ালগটি নির্বাচিত ফাইলগুলির জন্য একটি নির্বাচিত রেডিও বোতাম প্রদর্শন করে।
কী পরিদর্শন করবেন তা পরিবর্তন করতে, অন্যান্য রেডিও বোতামগুলির মধ্যে একটি নির্বাচন করুন। পরিদর্শন স্কোপ ডায়ালগটিতে নির্দিষ্ট সমস্ত ক্ষেত্রের বিবরণের জন্য ইন্সপেকশন স্কোপ ডায়ালগ নির্দিষ্ট করুন দেখুন।
- পরিদর্শন প্রোফাইলের অধীনে, আপনি যে প্রোফাইলটি ব্যবহার করতে চান তা নির্বাচন করুন।
পরিদর্শন চালাতে ওকে ক্লিক করুন।
চিত্র 4 পরিদর্শন কোড রান থেকে লিন্ট এবং অন্যান্য আইডিই পরিদর্শন ফলাফল দেখায়:
চিত্র 4। পরিদর্শন থেকে ফলাফল। রেজোলিউশনটি দেখতে একটি সমস্যা নির্বাচন করুন। পরিদর্শন ফলাফলের ফলকে, ত্রুটি বিভাগ, প্রকার বা সমস্যাগুলি প্রসারিত এবং নির্বাচন করে পরিদর্শন ফলাফলগুলি দেখুন।
পরিদর্শন প্রতিবেদন ফলকটি পরিদর্শন ফলাফলের ফলকে ত্রুটি বিভাগ, টাইপ বা ইস্যুর জন্য পরিদর্শন প্রতিবেদনটি প্রদর্শন করে এবং ত্রুটির নাম এবং অবস্থান প্রদর্শন করে। যেখানে প্রযোজ্য, সেখানে পরিদর্শন প্রতিবেদনে সমস্যাটি সংশোধন করতে সহায়তা করার জন্য অন্যান্য তথ্য যেমন সমস্যা সংক্ষেপে প্রদর্শিত হয়।
পরিদর্শন ফলাফলের ফলক গাছের দৃশ্যে, প্রসঙ্গ মেনুটি প্রদর্শন করতে কোনও বিভাগ, টাইপ বা ইস্যুতে ডান ক্লিক করুন।
প্রসঙ্গে নির্ভর করে, আপনি পারেন:
- উত্সে ঝাঁপ দাও।
- নির্বাচিত আইটেমগুলি বাদ দিন এবং অন্তর্ভুক্ত করুন।
- সমস্যা দমন।
- সেটিংস সম্পাদনা করুন।
- পরিদর্শন সতর্কতা পরিচালনা করুন।
- একটি পরিদর্শন পুনরায়।
সরঞ্জামদণ্ডের বোতাম, প্রসঙ্গ মেনু আইটেম এবং পরিদর্শন প্রতিবেদন ক্ষেত্রগুলির বর্ণনার জন্য, পরিদর্শন ফলাফল সরঞ্জাম উইন্ডোটি দেখুন।
একটি কাস্টম স্কোপ ব্যবহার করুন
নিম্নলিখিত হিসাবে অ্যান্ড্রয়েড স্টুডিওতে প্রদত্ত কাস্টম স্কোপগুলির একটি ব্যবহার করুন:
- পরিদর্শন স্কোপ ডায়ালগ নির্দিষ্ট করে , কাস্টম স্কোপ নির্বাচন করুন।
আপনার বিকল্পগুলি প্রদর্শন করতে কাস্টম স্কোপ তালিকায় ক্লিক করুন:
চিত্র 5। আপনি কোন কাস্টম স্কোপ ব্যবহার করতে চান তা নির্বাচন করুন। - সমস্ত জায়গা: সমস্ত ফাইল।
- প্রকল্প ফাইল: বর্তমান প্রকল্পের সমস্ত ফাইল।
- প্রকল্প উত্স ফাইল: বর্তমান প্রকল্পে কেবলমাত্র উত্স ফাইল।
- প্রকল্প উত্পাদন ফাইল: বর্তমান প্রকল্পে কেবলমাত্র উত্পাদন ফাইল।
- প্রকল্প পরীক্ষার ফাইলগুলি: বর্তমান প্রকল্পে কেবল পরীক্ষার ফাইলগুলি।
- স্ক্র্যাচ এবং কনসোলস: বর্তমান প্রকল্পে আপনার খোলা স্ক্র্যাচ ফাইল এবং কনসোলগুলি কেবল।
- সম্প্রতি ফাইলগুলি দেখেছেন: কেবলমাত্র বর্তমান প্রকল্পে ফাইলগুলি দেখেছে।
- বর্তমান ফাইল: আপনার বর্তমান প্রকল্পে কেবলমাত্র বর্তমান ফাইল। আপনার যখন কোনও ফাইল বা ফোল্ডার নির্বাচন করা হয় তখন উপস্থিত হয়।
- নির্বাচিত ডিরেক্টরি: আপনার বর্তমান প্রকল্পের কেবলমাত্র বর্তমান ফোল্ডার। আপনি যখন একটি ফোল্ডার নির্বাচন করা হয় তখন উপস্থিত হয়।
- ক্লাস হায়ারার্কি: আপনি যখন এই বিকল্পটি নির্বাচন করেন এবং ওকে ক্লিক করেন, বর্তমান প্রকল্পের সমস্ত ক্লাসের সাথে একটি ডায়ালগ উপস্থিত হয়। কথোপকথনে, ফিল্টার করতে নামের ক্ষেত্রটি ব্যবহার করুন এবং পরিদর্শন করতে ক্লাসগুলি নির্বাচন করুন। আপনি যদি ক্লাস তালিকা ফিল্টার না করেন তবে কোড পরিদর্শন সমস্ত ক্লাস পরিদর্শন করে।
- ওকে ক্লিক করুন।
আপনার যদি প্রকল্পের জন্য কনফিগার করা কোনও ভিসিএস থাকে তবে কেবল পরিবর্তন করা ফাইলগুলিতে অনুসন্ধানকে সীমাবদ্ধ করার বিকল্পগুলিও রয়েছে।
একটি কাস্টম স্কোপ তৈরি করুন
আপনি যখন ফাইল এবং ডিরেক্টরিগুলির একটি নির্বাচন পরিদর্শন করতে চান যা উপলভ্য কাস্টম স্কোপগুলির কোনও দ্বারা আচ্ছাদিত নয়, আপনি একটি কাস্টম স্কোপ তৈরি করতে পারেন:
- পরিদর্শন স্কোপ ডায়ালগ নির্দিষ্ট করে , কাস্টম স্কোপ নির্বাচন করুন।
কাস্টম স্কোপ তালিকার পরে তিনটি বিন্দুতে ক্লিক করুন।
চিত্র 6। পরিদর্শন স্কোপ ডায়ালগ নির্দিষ্ট করুন। স্কোপস ডায়ালগ উপস্থিত হয়।
চিত্র 7। একটি কাস্টম স্কোপ তৈরি করুন। - ক্লিক করুন
একটি নতুন সুযোগ সংজ্ঞায়িত করতে ডায়ালগের শীর্ষ-বাম কোণে বোতাম।
- প্রদর্শিত অ্যাড স্কোপ তালিকায়, স্থানীয় নির্বাচন করুন।
স্থানীয় এবং ভাগ করা স্কোপ উভয়ই পরিদর্শন কোড বৈশিষ্ট্যের জন্য প্রকল্পের মধ্যে ব্যবহৃত হয়। একটি ভাগ করা স্কোপ অন্যান্য প্রকল্পের বৈশিষ্ট্যগুলির সাথেও ব্যবহার করা যেতে পারে যার স্কোপ ক্ষেত্র রয়েছে। উদাহরণস্বরূপ, আপনি যখন সেটিংস সম্পাদনা ক্লিক করেন
ব্যবহারের জন্য সেটিংস পরিবর্তন করতে, ফলাফলের ডায়ালগের একটি স্কোপ ক্ষেত্র রয়েছে যেখানে আপনি একটি ভাগ করা সুযোগ নির্বাচন করতে পারেন।
চিত্র 8। ফাইন্ড ব্যবহারের ডায়ালগ থেকে একটি ভাগ করা সুযোগ নির্বাচন করুন। - সুযোগটি একটি নাম দিন এবং ঠিক আছে ক্লিক করুন।
স্কোপস ডায়ালগের ডান ফলকটি এমন বিকল্পগুলির সাথে পপুলেট করে যা আপনাকে কাস্টম স্কোপটি সংজ্ঞায়িত করতে দেয়।
- তালিকা থেকে, প্রকল্প নির্বাচন করুন।
উপলব্ধ প্রকল্পগুলির একটি তালিকা উপস্থিত হয়।
দ্রষ্টব্য: আপনি প্রকল্প বা প্যাকেজগুলির জন্য কাস্টম স্কোপ তৈরি করতে পারেন। ধাপগুলো একই।
প্রকল্প ফোল্ডারগুলি প্রসারিত করুন, আপনি কাস্টম স্কোপে কী যুক্ত করতে চান তা নির্বাচন করুন এবং এটি অন্তর্ভুক্ত বা বাদ দিতে হবে কিনা তা নির্বাচন করুন।
চিত্র 9। একটি কাস্টম স্কোপ সংজ্ঞায়িত করুন। - অন্তর্ভুক্ত করুন : এই ফোল্ডার এবং এর ফাইলগুলি অন্তর্ভুক্ত করুন তবে এর কোনও সাবফোল্ডার অন্তর্ভুক্ত করবেন না।
- পুনরাবৃত্তভাবে অন্তর্ভুক্ত করুন : এই ফোল্ডার এবং এর ফাইলগুলির পাশাপাশি এর সাবফোল্ডার এবং তাদের ফাইলগুলি অন্তর্ভুক্ত করুন।
- বাদ দিন : এই ফোল্ডার এবং এর ফাইলগুলি বাদ দিন, তবে এর কোনও সাবফোল্ডার বাদ দিন না।
- পুনরাবৃত্তভাবে বাদ দিন : এই ফোল্ডারটি এবং এর ফাইলগুলির পাশাপাশি এর সাবফোল্ডার এবং তাদের ফাইলগুলি বাদ দিন।
চিত্র 10 দেখায় যে মূল ফোল্ডারটি অন্তর্ভুক্ত রয়েছে এবং জাভা এবং আরইএস ফোল্ডারগুলি পুনরাবৃত্তভাবে অন্তর্ভুক্ত করা হয়েছে। নীল একটি আংশিকভাবে অন্তর্ভুক্ত ফোল্ডার নির্দেশ করে এবং সবুজ পুনরাবৃত্তভাবে অন্তর্ভুক্ত ফোল্ডার এবং ফাইলগুলি নির্দেশ করে।
চিত্র 10। কাস্টম স্কোপের জন্য উদাহরণ প্যাটার্ন। - আপনি যদি জাভা ফোল্ডারটি নির্বাচন করেন এবং পুনরাবৃত্তভাবে বাদ দিন ক্লিক করেন তবে সবুজ হাইলাইটটি জাভা ফোল্ডারে এবং এর অধীনে সমস্ত ফোল্ডার এবং ফাইলগুলিতে চলে যায়।
- আপনি যদি গ্রিন-হাইটলাইটেড মেইনএ্যাকটিভিটি.কেটি ফাইলটি নির্বাচন করেন এবং বাদ দিন ক্লিক করুন, মেইনঅ্যাক্টিভিটি.কেটি আর সবুজ হাইলাইট করা হয় না, তবে জাভা ফোল্ডারের নীচে থাকা সমস্ত কিছু সবুজ রয়েছে।
- ওকে ক্লিক করুন। কাস্টম স্কোপ তালিকার নীচে উপস্থিত হয়।
পরিদর্শন প্রোফাইল পর্যালোচনা এবং সম্পাদনা করুন
অ্যান্ড্রয়েড স্টুডিওতে লিঙ্ক এবং অন্যান্য পরিদর্শন প্রোফাইলগুলির একটি নির্বাচন রয়েছে যা অ্যান্ড্রয়েড আপডেটের মাধ্যমে আপডেট করা হয়। আপনি এই প্রোফাইলগুলি যেমন ব্যবহার করতে পারেন বা তাদের নাম, বিবরণ, তীব্রতা এবং স্কোপগুলি সম্পাদনা করতে পারেন। আপনি কোনও গোষ্ঠীর মধ্যে প্রোফাইল বা স্বতন্ত্র প্রোফাইলগুলির পুরো গোষ্ঠীগুলি সক্রিয় এবং নিষ্ক্রিয় করতে পারেন।
পরিদর্শন সেটিংস অ্যাক্সেস করতে:
- ফাইল> সেটিংস নির্বাচন করুন। (উইন্ডোজে) বা অ্যান্ড্রয়েড স্টুডিও> পছন্দসমূহ (ম্যাকোস বা লিনাক্সে)।
- সম্পাদক> পরিদর্শন নির্বাচন করুন।
পরিদর্শন ফলকটি সমর্থিত পরিদর্শন এবং তাদের বর্ণনার একটি তালিকা দেখায়।
চিত্র 11। সমর্থিত পরিদর্শন এবং তাদের বিবরণ। ডিফল্ট (অ্যান্ড্রয়েড স্টুডিও) এবং প্রকল্প ডিফল্ট (সক্রিয় প্রকল্প) পরিদর্শনগুলির মধ্যে টগল করতে প্রোফাইল তালিকাটি নির্বাচন করুন।
আরও তথ্যের জন্য, ইন্টেলিজ ম্যানেজ প্রোফাইল পৃষ্ঠা দেখুন।
বাম ফলকের পরিদর্শন তালিকায়, একটি শীর্ষ-স্তরের প্রোফাইল বিভাগ নির্বাচন করুন বা একটি গোষ্ঠী প্রসারিত করুন এবং একটি নির্দিষ্ট প্রোফাইল নির্বাচন করুন।
আপনি যখন কোনও প্রোফাইল বিভাগ নির্বাচন করেন, আপনি একক পরিদর্শন হিসাবে সেই বিভাগে সমস্ত পরিদর্শন সম্পাদনা করতে পারেন।
- শো স্কিমা ক্রিয়াগুলি নির্বাচন করুন
অনুলিপি, নামকরণ, বিবরণ যুক্ত করতে, রফতানি করতে এবং আমদানি পরিদর্শন করতে তালিকা।
- আপনার কাজ শেষ হয়ে গেলে ঠিক আছে ক্লিক করুন।
আপনার অ্যাপ্লিকেশনটির কার্যকরী প্রয়োজনীয়তাগুলি পূরণ করে তা নিশ্চিত করার জন্য বিল্ডিং টেস্টগুলি ছাড়াও, আপনার কোডটি কোনও কাঠামোগত সমস্যা নেই তা নিশ্চিত করতে সহায়তা করার জন্য আপনি লিন্ট সরঞ্জামের মাধ্যমে কোডটি চালানোও গুরুত্বপূর্ণ। লিন্ট সরঞ্জামটি দুর্বল কাঠামোগত কোড সন্ধান করতে সহায়তা করে যা আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির নির্ভরযোগ্যতা এবং দক্ষতার উপর প্রভাব ফেলতে পারে এবং আপনার কোডটি বজায় রাখতে আরও শক্ত করে তুলতে পারে। এটি দৃ strongly ়ভাবে সুপারিশ করা হয় যে আপনার অ্যাপ্লিকেশন প্রকাশের আগে লিন্ট সনাক্ত করে এমন কোনও ত্রুটিগুলি আপনি সংশোধন করুন।
উদাহরণস্বরূপ, যদি আপনার এক্সএমএল রিসোর্স ফাইলগুলিতে অব্যবহৃত নেমস্পেস থাকে তবে এটি স্থান নেয় এবং অপ্রয়োজনীয় প্রক্রিয়াজাতকরণ প্রয়োজন। অন্যান্য কাঠামোগত সমস্যাগুলি যেমন অবমূল্যায়িত উপাদান বা এপিআই কলগুলির ব্যবহার যা লক্ষ্য এপিআই সংস্করণ দ্বারা সমর্থিত নয়, কোডটি সঠিকভাবে চালাতে ব্যর্থ হতে পারে। লিন্ট আপনাকে এই সমস্যাগুলি পরিষ্কার করতে সহায়তা করতে পারে।
লিন্টিং পারফরম্যান্স উন্নত করতে, আপনি আপনার কোডে টীকাগুলিও যুক্ত করতে পারেন।
ওভারভিউ
অ্যান্ড্রয়েড স্টুডিও লিন্ট নামে একটি কোড স্ক্যানিং সরঞ্জাম সরবরাহ করে যা আপনাকে অ্যাপ্লিকেশনটি কার্যকর না করে বা পরীক্ষার কেসগুলি না লিখে আপনার কোডের কাঠামোগত মানের সাথে সমস্যাগুলি সনাক্ত করতে এবং সংশোধন করতে সহায়তা করতে পারে। সরঞ্জাম দ্বারা সনাক্ত করা প্রতিটি সমস্যা একটি বিবরণ বার্তা এবং একটি তীব্র স্তরের সাথে রিপোর্ট করা হয় যাতে আপনি যে সমালোচনামূলক উন্নতিগুলি করা দরকার তা অগ্রাধিকার দিতে পারেন। আপনার প্রকল্পের সাথে প্রাসঙ্গিক নয় এমন সমস্যাগুলি উপেক্ষা করতে বা নির্দিষ্ট সমস্যাগুলি হাইলাইট করার জন্য তীব্রতার স্তর বাড়াতে আপনি কোনও সমস্যার তীব্রতা স্তরকেও কম করতে পারেন।
লিন্ট টুলটি আপনার অ্যান্ড্রয়েড প্রোজেক্ট সোর্স ফাইলগুলিকে সম্ভাব্য বাগ এবং সঠিকতা, নিরাপত্তা, কর্মক্ষমতা, ব্যবহারযোগ্যতা, অ্যাক্সেসযোগ্যতা এবং আন্তর্জাতিকীকরণের জন্য অপ্টিমাইজেশন উন্নতির জন্য পরীক্ষা করে। অ্যান্ড্রয়েড স্টুডিও ব্যবহার করার সময়, আপনি যখন আপনার অ্যাপ তৈরি করেন তখন কনফিগার করা লিন্ট এবং IDE পরিদর্শনগুলি চলে। যাইহোক, আপনি ম্যানুয়ালি পরিদর্শন চালাতে পারেন বা কমান্ড লাইন থেকে লিন্ট চালাতে পারেন , যেমন এই পৃষ্ঠায় বর্ণিত হয়েছে।
আপনি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করার সময় অন্তর্নির্মিত লিন্ট সরঞ্জামটি আপনার কোডটি পরীক্ষা করে। আপনি দুটি উপায়ে সতর্কতা এবং ত্রুটিগুলি দেখতে পারেন:
- সম্পাদক উইন্ডোতে পপ-আপ পাঠ্য হিসাবে। যখন লিন্ট কোনও সমস্যা খুঁজে পায়, তখন এটি হলুদে সমস্যাযুক্ত কোডটি হাইলাইট করে। আরও গুরুতর সমস্যার জন্য, এটি কোডটি লাল রঙের উপর নজর রাখে।
- লিন্ট পরিদর্শন ফলাফল উইন্ডোতে আপনি যখন কোড> পরিদর্শন কোডটি ক্লিক করেন।
দ্রষ্টব্য: যখন আপনার কোডটি অ্যান্ড্রয়েড স্টুডিওতে সংকলিত হয়, তখন অতিরিক্ত ইন্টেলিজ কোড পরিদর্শন কোড পর্যালোচনা প্রবাহিত করতে চলে। সর্বশেষতম লিন্ট বিধি এবং পরিদর্শনগুলি উপলব্ধ রয়েছে তা নিশ্চিত করতে অ্যান্ড্রয়েড স্টুডিওটিকে যথাসম্ভব আপ-টু-ডেট রাখুন।
চিত্র 1 দেখায় যে লিন্ট সরঞ্জামটি অ্যাপ্লিকেশন উত্স ফাইলগুলি কীভাবে প্রক্রিয়াজাত করে।

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

যদি আপনার প্রকল্পে বিল্ড ভেরিয়েন্টগুলি অন্তর্ভুক্ত থাকে তবে লিন্টটি কেবল ডিফল্ট বৈকল্পিক পরীক্ষা করে। আপনি যদি অন্য কোনও রূপে লিন্ট চালাতে চান তবে আপনাকে অবশ্যই বৈকল্পিক নামটি মূলধন করতে হবে এবং এটি lint
দিয়ে উপসর্গ করতে হবে।
./gradlew lintRelease
দ্রষ্টব্য: লিন্ট আপনার বিল্ডের অংশ হিসাবে স্বয়ংক্রিয়ভাবে চালিত হয় না। আমরা দৃ strongly ়ভাবে সুপারিশ করি যে আপনি অবিচ্ছিন্ন ইন্টিগ্রেশন বিল্ডের অংশ হিসাবে স্পষ্টভাবে লিন্টটি চালান যাতে আপনি আপনার বিদ্যমান উত্স কোডটি তৈরি করার সময় সর্বশেষতম লিন্ট চেকগুলি দেখতে পান।
কমান্ড লাইন থেকে গ্রেডল টাস্কগুলি চালানোর বিষয়ে আরও জানতে, কমান্ড লাইন থেকে আপনার অ্যাপটি তৈরি করুন পড়ুন।
স্ট্যান্ডেলোন সরঞ্জাম ব্যবহার করে লিন্ট চালান
আপনি যদি অ্যান্ড্রয়েড স্টুডিও বা গ্রেড ব্যবহার না করে থাকেন তবে স্ট্যান্ডেলোন লিন্ট সরঞ্জামটি ব্যবহার করতে অ্যান্ড্রয়েড এসডিকে কমান্ড-লাইন সরঞ্জামগুলি ইনস্টল করুন। android_sdk /cmdline-tools/ version /bin/lint
লিন্ট সরঞ্জামটি সন্ধান করুন।
দ্রষ্টব্য: আপনি যদি কোনও গ্রেডল প্রকল্পে স্ট্যান্ডেলোন সরঞ্জাম চালানোর চেষ্টা করেন তবে এটি একটি ত্রুটি দেয়। গ্রেড প্রকল্পে লিন্ট চালানোর জন্য আপনার সর্বদা gradle lint
(উইন্ডোজে) বা ./gradlew lint
(ম্যাকোস বা লিনাক্সে) ব্যবহার করা উচিত।
কোনও প্রকল্প ডিরেক্টরিতে ফাইলগুলির তালিকার বিরুদ্ধে লিন্ট চালানোর জন্য, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
lint [flags] <project directory>
উদাহরণস্বরূপ, আপনি myproject
ডিরেক্টরি এবং এর সাব -ডিরেক্টরিগুলির অধীনে ফাইলগুলি স্ক্যান করতে নিম্নলিখিত কমান্ডটি জারি করতে পারেন। ইস্যু আইডি MissingPrefix
লিন্টকে কেবল এক্সএমএল বৈশিষ্ট্যগুলির জন্য স্ক্যান করতে বলে যা অ্যান্ড্রয়েড নেমস্পেস উপসর্গটি অনুপস্থিত।
lint --check MissingPrefix myproject
সরঞ্জাম দ্বারা সমর্থিত পতাকা এবং কমান্ড-লাইন যুক্তিগুলির সম্পূর্ণ তালিকা দেখতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
lint --help
নিম্নলিখিত উদাহরণটি কনসোল আউটপুট দেখায় যখন লিন্ট কমান্ডটি ভূমিকম্প নামে একটি প্রকল্পের বিপরীতে পরিচালিত হয়:
$ 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
আপনি বিভিন্ন স্তরের জন্য লিন্ট চেকিং কনফিগার করতে পারেন:
- বিশ্বব্যাপী (পুরো প্রকল্প)
- প্রকল্প মডিউল
- উত্পাদন মডিউল
- টেস্ট মডিউল
- ফাইল খুলুন
- শ্রেণী অনুক্রম
- সংস্করণ নিয়ন্ত্রণ সিস্টেম (ভিসিএস) স্কোপস
লিন্ট ফাইলটি কনফিগার করুন
আপনি আপনার লিন্ট চেকিং পছন্দগুলি lint.xml
ফাইলে নির্দিষ্ট করতে পারেন। আপনি যদি এই ফাইলটি ম্যানুয়ালি তৈরি করে থাকেন তবে এটি আপনার অ্যান্ড্রয়েড প্রকল্পের মূল ডিরেক্টরিতে রাখুন।
lint.xml
ফাইলটিতে একটি আবদ্ধ <lint>
প্যারেন্ট ট্যাগ রয়েছে যাতে এক বা একাধিক শিশু <issue>
উপাদান রয়েছে। লিন্ট প্রতিটি <issue>
এর জন্য একটি অনন্য id
অ্যাট্রিবিউট মান সংজ্ঞায়িত করে:
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- list of issues to configure --> </lint>
কোনও ইস্যুর তীব্রতা স্তর পরিবর্তন করতে বা ইস্যুটির জন্য লিন্ট চেকিং অক্ষম করতে, <issue>
ট্যাগে তীব্রতার বৈশিষ্ট্যটি সেট করুন।
টিপ: লিন্ট-সমর্থিত ইস্যু এবং তাদের সম্পর্কিত ইস্যু আইডিগুলির সম্পূর্ণ তালিকার জন্য, lint --list
কমান্ডটি চালান।
নমুনা লিন্ট.এক্সএমএল ফাইল
নিম্নলিখিত উদাহরণটি একটি 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
চেকটি সম্পূর্ণরূপে অক্ষম করা হয়েছে, এবং অব্যবহৃত <ignore ... />
ঘোষণায় নির্দিষ্ট করা ফাইলগুলিতে কেবল ObsoleteLayoutParam
চেকটি অক্ষম করা আছে।
কোটলিন, জাভা এবং এক্সএমএল উত্স ফাইলগুলির জন্য লিন্ট চেকিং কনফিগার করুন
আপনি পছন্দসই সংলাপে আপনার কোটলিন, জাভা এবং এক্সএমএল উত্স ফাইলগুলির জন্য লিন্ট চেকিং বন্ধ করতে পারেন:
- ফাইল> সেটিংস (উইন্ডোজে) বা অ্যান্ড্রয়েড স্টুডিও> পছন্দগুলি (ম্যাকোস বা লিনাক্সে) নির্বাচন করুন।
- সম্পাদক> পরিদর্শন নির্বাচন করুন।
- অক্ষম করতে, উপযুক্ত উত্স ফাইলটি অনির্বাচিত করুন।
আপনি উপযুক্ত প্রোফাইল নির্বাচন করে আইডিই বা পৃথক প্রকল্পের জন্য সেট করতে পারেন।
জাভা বা কোটলিনে লিন্ট চেকিং কনফিগার করুন
আপনার অ্যান্ড্রয়েড প্রকল্পে কোনও শ্রেণি বা পদ্ধতির জন্য বিশেষভাবে লিন্ট চেকিং অক্ষম করতে, সেই কোডটিতে @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);
এটি কোনও কমপোজেবলের উপর একইভাবে সম্পন্ন করা যেতে পারে। নিম্নলিখিত কোড স্নিপেটটি দেখায় যে আপনি কীভাবে কোনও কম্পোজেবলের উপর 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")
আপনি যে কোনও কমপোজেবল ফাংশনে লিন্ট চেকগুলি দমন করতে একই টীকাটি ব্যবহার করতে পারেন।
এক্সএমএলে লিন্ট চেকিং কনফিগার করুন
tools:ignore
। নিম্নলিখিত নেমস্পেস মানটি lint.xml
ফাইলে রাখুন যাতে লিন্ট সরঞ্জামটি বৈশিষ্ট্যটিকে স্বীকৃতি দেয়:
namespace xmlns:tools="http://schemas.android.com/tools"
নিম্নলিখিত উদাহরণটি দেখায় যে কীভাবে আপনি একটি এক্সএমএল লেআউট ফাইলের <LinearLayout>
উপাদানটিতে UnusedResources
ইস্যুগুলির জন্য লিন্ট চেকিং বন্ধ করতে পারেন। ignore
বৈশিষ্ট্যটি পিতামাতার উপাদানগুলির দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয় যেখানে বৈশিষ্ট্যটি ঘোষণা করা হয়। এই উদাহরণে, লিন্ট চেকটি শিশু <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"
এক্সএমএল উপাদানটিতে সমস্ত লিন্ট ইস্যুগুলির জন্য চেকিং দমন করতে, 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()
এ মারাত্মক হিসাবে কোনও সমস্যা সেট করা মূল ডিএসএলে এটি অক্ষম করে ওভাররাইড করে।
একটি সতর্কতা বেসলাইন তৈরি করুন
আপনি আপনার প্রকল্পের বর্তমান সতর্কতার সেটটির একটি স্ন্যাপশট নিতে পারেন, তারপরে স্ন্যাপশটটি ভবিষ্যতের পরিদর্শন চালানোর জন্য বেসলাইন হিসাবে ব্যবহার করুন যাতে কেবলমাত্র নতুন সমস্যাগুলি রিপোর্ট করা হয়। বেসলাইন স্ন্যাপশটটি আপনাকে ফিরে না গিয়ে প্রথমে সমস্ত বিদ্যমান সমস্যাগুলিকে সম্বোধন না করে বিল্ডটি ব্যর্থ করতে লিন্ট ব্যবহার শুরু করতে দেয়।
একটি বেসলাইন স্ন্যাপশট তৈরি করতে, আপনার প্রকল্পের বিল্ডটি সংশোধন করুন build.gradle
ফাইলটি নিম্নরূপ:
কোটলিন
android { lint { baseline = file("lint-baseline.xml") } }
গ্রোভি
android { lintOptions { baseline file("lint-baseline.xml") } }
আপনি যখন এই লাইনটি প্রথম যুক্ত করেন, আপনার বেসলাইনটি স্থাপনের জন্য lint-baseline.xml
ফাইলটি তৈরি করা হয়। তারপরে, সরঞ্জামগুলি কেবল বেসলাইনটি নির্ধারণ করতে ফাইলটি পড়ে। আপনি যদি একটি নতুন বেসলাইন তৈরি করতে চান তবে ফাইলটি ম্যানুয়ালি মুছুন এবং এটি পুনরায় তৈরি করতে আবার লিন্ট চালান।
তারপরে, কোড> পরিদর্শন কোড বা নিম্নলিখিত হিসাবে কমান্ড লাইন থেকে আইডিই থেকে লিন্ট চালান। আউটপুট 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
ফাইলে বর্তমান সমস্ত সমস্যা রেকর্ড করে। বর্তমান ইস্যুগুলির সেটটিকে বেসলাইন বলা হয়। আপনি যদি অন্যদের সাথে ভাগ করে নিতে চান তবে আপনি 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") } }
আপনি যদি বেসলাইন তৈরি করার পরে কোডবেসে কোনও নতুন সতর্কতা যুক্ত করেন তবে লিন্টটি কেবলমাত্র নতুন প্রবর্তিত বাগগুলি তালিকাভুক্ত করে।
বেসলাইন সতর্কতা
যখন একটি বেসলাইন কার্যকর হয়, আপনি একটি তথ্যমূলক সতর্কতা পাবেন যা আপনাকে বলে যে এক বা একাধিক সমস্যা ফিল্টার করা হয়েছিল কারণ সেগুলি বেসলাইনে তালিকাভুক্ত রয়েছে। এই সতর্কতা আপনাকে মনে রাখতে সহায়তা করে যে আপনি একটি বেসলাইন কনফিগার করেছেন এবং আপনাকে কোনও সময়ে সমস্ত সমস্যা সমাধান করতে হবে।
এই তথ্যমূলক সতর্কতাটি আর রিপোর্ট করা হয়নি এমন বিষয়গুলির উপর নজর রাখে। এই তথ্যটি আপনাকে জানতে দেয় যে আপনার যদি আসলে সমস্যাগুলি স্থির থাকে তবে আপনি কোনও ত্রুটিটিকে সনাক্ত না করা থেকে রোধ করতে option চ্ছিকভাবে বেসলাইনটি পুনরায় তৈরি করতে পারেন।
দ্রষ্টব্য: আপনি যখন আইডিইতে ব্যাচ মোডে পরিদর্শন চালান তখন বেসলাইনগুলি সক্ষম করা হয় তবে আপনি কোনও ফাইল সম্পাদনা করার সময় পটভূমিতে চালিত ইন-এডিটর চেকগুলির জন্য এগুলি উপেক্ষা করা হয়। এটি কারণ বেসলাইনগুলি এমন ক্ষেত্রে তৈরি করা হয়েছে যেখানে কোনও কোডবেসে প্রচুর পরিমাণে বিদ্যমান সতর্কতা রয়েছে তবে আপনি কোডটি স্পর্শ করার সময় স্থানীয়ভাবে সমস্যাগুলি ঠিক করতে চান না।
ম্যানুয়ালি পরিদর্শন চালান
ম্যানুয়ালি কনফিগার করা লিন্ট এবং অন্যান্য আইডিই পরিদর্শনগুলি চালানোর জন্য কোড> পরিদর্শন কোড নির্বাচন করুন। পরিদর্শন ফলাফল উইন্ডোতে পরিদর্শন ফলাফল প্রদর্শিত হবে।
পরিদর্শন স্কোপ এবং প্রোফাইল সেট করুন
আপনি যে ফাইলগুলি বিশ্লেষণ করতে চান তা (পরিদর্শন করার সুযোগ ) এবং আপনি যে পরিদর্শনগুলি চালাতে চান তা (পরিদর্শন প্রোফাইল ) নিম্নরূপ নির্বাচন করুন:
- অ্যান্ড্রয়েড ভিউতে, আপনার প্রকল্পটি খুলুন এবং আপনি বিশ্লেষণ করতে চান এমন প্রকল্প, ফোল্ডার বা ফাইল নির্বাচন করুন।
- মেনু বার থেকে, কোড> পরীক্ষা কোড নির্বাচন করুন।
পরিদর্শন স্কোপ ডায়ালগ নির্দিষ্ট করুন , সেটিংস পর্যালোচনা করুন।
চিত্র 3। পরিদর্শন স্কোপ সেটিংস পর্যালোচনা করুন। আপনি কোনও প্রকল্প, ফোল্ডার বা ফাইল নির্বাচন করেছেন কিনা তার উপর নির্ভর করে পরিদর্শন স্কোপ ডায়ালগটিতে প্রদর্শিত বিকল্পগুলি পরিবর্তিত হয়:
- আপনি যখন একটি প্রকল্প, ফাইল বা ডিরেক্টরি নির্বাচন করেন, তখন নির্দিষ্ট পরিদর্শন স্কোপ ডায়ালগটি আপনি নির্বাচিত প্রকল্প, ফাইল বা ডিরেক্টরিগুলির পথ প্রদর্শন করে।
- আপনি যখন একাধিক প্রকল্প, ফাইল বা ডিরেক্টরি নির্বাচন করেন, নির্দিষ্ট পরিদর্শন স্কোপ ডায়ালগটি নির্বাচিত ফাইলগুলির জন্য একটি নির্বাচিত রেডিও বোতাম প্রদর্শন করে।
কী পরিদর্শন করবেন তা পরিবর্তন করতে, অন্যান্য রেডিও বোতামগুলির মধ্যে একটি নির্বাচন করুন। পরিদর্শন স্কোপ ডায়ালগটিতে নির্দিষ্ট সমস্ত ক্ষেত্রের বিবরণের জন্য ইন্সপেকশন স্কোপ ডায়ালগ নির্দিষ্ট করুন দেখুন।
- পরিদর্শন প্রোফাইলের অধীনে, আপনি যে প্রোফাইলটি ব্যবহার করতে চান তা নির্বাচন করুন।
পরিদর্শন চালাতে ওকে ক্লিক করুন।
চিত্র 4 পরিদর্শন কোড রান থেকে লিন্ট এবং অন্যান্য আইডিই পরিদর্শন ফলাফল দেখায়:
চিত্র 4। পরিদর্শন থেকে ফলাফল। রেজোলিউশনটি দেখতে একটি সমস্যা নির্বাচন করুন। পরিদর্শন ফলাফলের ফলকে, ত্রুটি বিভাগ, প্রকার বা সমস্যাগুলি প্রসারিত এবং নির্বাচন করে পরিদর্শন ফলাফলগুলি দেখুন।
পরিদর্শন প্রতিবেদন ফলকটি পরিদর্শন ফলাফলের ফলকে ত্রুটি বিভাগ, টাইপ বা ইস্যুর জন্য পরিদর্শন প্রতিবেদনটি প্রদর্শন করে এবং ত্রুটির নাম এবং অবস্থান প্রদর্শন করে। যেখানে প্রযোজ্য, সেখানে পরিদর্শন প্রতিবেদনে সমস্যাটি সংশোধন করতে সহায়তা করার জন্য অন্যান্য তথ্য যেমন সমস্যা সংক্ষেপে প্রদর্শিত হয়।
পরিদর্শন ফলাফলের ফলক গাছের দৃশ্যে, প্রসঙ্গ মেনুটি প্রদর্শন করতে কোনও বিভাগ, টাইপ বা ইস্যুতে ডান ক্লিক করুন।
প্রসঙ্গে নির্ভর করে, আপনি পারেন:
- উত্সে ঝাঁপ দাও।
- নির্বাচিত আইটেমগুলি বাদ দিন এবং অন্তর্ভুক্ত করুন।
- সমস্যা দমন।
- সেটিংস সম্পাদনা করুন।
- পরিদর্শন সতর্কতা পরিচালনা করুন।
- একটি পরিদর্শন পুনরায়।
সরঞ্জামদণ্ডের বোতাম, প্রসঙ্গ মেনু আইটেম এবং পরিদর্শন প্রতিবেদন ক্ষেত্রগুলির বর্ণনার জন্য, পরিদর্শন ফলাফল সরঞ্জাম উইন্ডোটি দেখুন।
একটি কাস্টম স্কোপ ব্যবহার করুন
নিম্নলিখিত হিসাবে অ্যান্ড্রয়েড স্টুডিওতে প্রদত্ত কাস্টম স্কোপগুলির একটি ব্যবহার করুন:
- পরিদর্শন স্কোপ ডায়ালগ নির্দিষ্ট করে , কাস্টম স্কোপ নির্বাচন করুন।
আপনার বিকল্পগুলি প্রদর্শন করতে কাস্টম স্কোপ তালিকায় ক্লিক করুন:
চিত্র 5। আপনি কোন কাস্টম স্কোপ ব্যবহার করতে চান তা নির্বাচন করুন। - সমস্ত জায়গা: সমস্ত ফাইল।
- প্রকল্প ফাইল: বর্তমান প্রকল্পের সমস্ত ফাইল।
- প্রকল্প উত্স ফাইল: বর্তমান প্রকল্পে কেবলমাত্র উত্স ফাইল।
- প্রকল্প উত্পাদন ফাইল: বর্তমান প্রকল্পে কেবলমাত্র উত্পাদন ফাইল।
- প্রকল্প পরীক্ষার ফাইলগুলি: বর্তমান প্রকল্পে কেবল পরীক্ষার ফাইলগুলি।
- স্ক্র্যাচ এবং কনসোলস: বর্তমান প্রকল্পে আপনার খোলা স্ক্র্যাচ ফাইল এবং কনসোলগুলি কেবল।
- সম্প্রতি ফাইলগুলি দেখেছেন: কেবলমাত্র বর্তমান প্রকল্পে ফাইলগুলি দেখেছে।
- বর্তমান ফাইল: আপনার বর্তমান প্রকল্পে কেবলমাত্র বর্তমান ফাইল। আপনার যখন কোনও ফাইল বা ফোল্ডার নির্বাচন করা হয় তখন উপস্থিত হয়।
- নির্বাচিত ডিরেক্টরি: আপনার বর্তমান প্রকল্পের কেবলমাত্র বর্তমান ফোল্ডার। আপনি যখন একটি ফোল্ডার নির্বাচন করা হয় তখন উপস্থিত হয়।
- ক্লাস হায়ারার্কি: আপনি যখন এই বিকল্পটি নির্বাচন করেন এবং ওকে ক্লিক করেন, বর্তমান প্রকল্পের সমস্ত ক্লাসের সাথে একটি ডায়ালগ উপস্থিত হয়। কথোপকথনে, ফিল্টার করতে নামের ক্ষেত্রটি ব্যবহার করুন এবং পরিদর্শন করতে ক্লাসগুলি নির্বাচন করুন। আপনি যদি ক্লাস তালিকা ফিল্টার না করেন তবে কোড পরিদর্শন সমস্ত ক্লাস পরিদর্শন করে।
- ওকে ক্লিক করুন।
আপনার যদি প্রকল্পের জন্য কনফিগার করা কোনও ভিসিএস থাকে তবে কেবল পরিবর্তন করা ফাইলগুলিতে অনুসন্ধানকে সীমাবদ্ধ করার বিকল্পগুলিও রয়েছে।
একটি কাস্টম স্কোপ তৈরি করুন
আপনি যখন ফাইল এবং ডিরেক্টরিগুলির একটি নির্বাচন পরিদর্শন করতে চান যা উপলভ্য কাস্টম স্কোপগুলির কোনও দ্বারা আচ্ছাদিত নয়, আপনি একটি কাস্টম স্কোপ তৈরি করতে পারেন:
- পরিদর্শন স্কোপ ডায়ালগ নির্দিষ্ট করে , কাস্টম স্কোপ নির্বাচন করুন।
কাস্টম স্কোপ তালিকার পরে তিনটি বিন্দুতে ক্লিক করুন।
চিত্র 6। পরিদর্শন স্কোপ ডায়ালগ নির্দিষ্ট করুন। স্কোপস ডায়ালগ উপস্থিত হয়।
চিত্র 7। একটি কাস্টম স্কোপ তৈরি করুন। - ক্লিক করুন
একটি নতুন সুযোগ সংজ্ঞায়িত করতে ডায়ালগের শীর্ষ-বাম কোণে বোতাম।
- প্রদর্শিত অ্যাড স্কোপ তালিকায়, স্থানীয় নির্বাচন করুন।
স্থানীয় এবং ভাগ করা স্কোপ উভয়ই পরিদর্শন কোড বৈশিষ্ট্যের জন্য প্রকল্পের মধ্যে ব্যবহৃত হয়। একটি ভাগ করা স্কোপ অন্যান্য প্রকল্পের বৈশিষ্ট্যগুলির সাথেও ব্যবহার করা যেতে পারে যার স্কোপ ক্ষেত্র রয়েছে। উদাহরণস্বরূপ, আপনি যখন সেটিংস সম্পাদনা ক্লিক করেন
ব্যবহারের জন্য সেটিংস পরিবর্তন করতে, ফলাফলের ডায়ালগটিতে একটি স্কোপ ক্ষেত্র রয়েছে যেখানে আপনি একটি ভাগ করা স্কোপ নির্বাচন করতে পারেন।
চিত্র 8। ফাইন্ড ব্যবহারের ডায়ালগ থেকে একটি ভাগ করা সুযোগ নির্বাচন করুন। - সুযোগটি একটি নাম দিন এবং ঠিক আছে ক্লিক করুন।
স্কোপস ডায়ালগের ডান ফলকটি এমন বিকল্পগুলির সাথে পপুলেট করে যা আপনাকে কাস্টম স্কোপটি সংজ্ঞায়িত করতে দেয়।
- তালিকা থেকে, প্রকল্প নির্বাচন করুন।
উপলব্ধ প্রকল্পগুলির একটি তালিকা উপস্থিত হয়।
দ্রষ্টব্য: আপনি প্রকল্প বা প্যাকেজগুলির জন্য কাস্টম স্কোপ তৈরি করতে পারেন। ধাপগুলো একই।
প্রকল্প ফোল্ডারগুলি প্রসারিত করুন, আপনি কাস্টম স্কোপে কী যুক্ত করতে চান তা নির্বাচন করুন এবং এটি অন্তর্ভুক্ত বা বাদ দিতে হবে কিনা তা নির্বাচন করুন।
চিত্র 9। একটি কাস্টম স্কোপ সংজ্ঞায়িত করুন। - অন্তর্ভুক্ত করুন : এই ফোল্ডার এবং এর ফাইলগুলি অন্তর্ভুক্ত করুন তবে এর কোনও সাবফোল্ডার অন্তর্ভুক্ত করবেন না।
- পুনরাবৃত্তভাবে অন্তর্ভুক্ত করুন : এই ফোল্ডার এবং এর ফাইলগুলির পাশাপাশি এর সাবফোল্ডার এবং তাদের ফাইলগুলি অন্তর্ভুক্ত করুন।
- বাদ দিন : এই ফোল্ডার এবং এর ফাইলগুলি বাদ দিন, তবে এর কোনও সাবফোল্ডার বাদ দিন না।
- পুনরাবৃত্তভাবে বাদ দিন : এই ফোল্ডারটি এবং এর ফাইলগুলির পাশাপাশি এর সাবফোল্ডার এবং তাদের ফাইলগুলি বাদ দিন।
চিত্র 10 দেখায় যে মূল ফোল্ডারটি অন্তর্ভুক্ত রয়েছে এবং জাভা এবং আরইএস ফোল্ডারগুলি পুনরাবৃত্তভাবে অন্তর্ভুক্ত করা হয়েছে। নীল একটি আংশিকভাবে অন্তর্ভুক্ত ফোল্ডার নির্দেশ করে এবং সবুজ পুনরাবৃত্তভাবে অন্তর্ভুক্ত ফোল্ডার এবং ফাইলগুলি নির্দেশ করে।
চিত্র 10। কাস্টম স্কোপের জন্য উদাহরণ প্যাটার্ন। - আপনি যদি জাভা ফোল্ডারটি নির্বাচন করেন এবং পুনরাবৃত্তভাবে বাদ দিন ক্লিক করেন তবে সবুজ হাইলাইটটি জাভা ফোল্ডারে এবং এর অধীনে সমস্ত ফোল্ডার এবং ফাইলগুলিতে চলে যায়।
- আপনি যদি গ্রিন-হাইটলাইটেড মেইনএ্যাকটিভিটি.কেটি ফাইলটি নির্বাচন করেন এবং বাদ দিন ক্লিক করুন, মেইনঅ্যাক্টিভিটি.কেটি আর সবুজ হাইলাইট করা হয় না, তবে জাভা ফোল্ডারের নীচে থাকা সমস্ত কিছু সবুজ রয়েছে।
- ওকে ক্লিক করুন। কাস্টম স্কোপ তালিকার নীচে উপস্থিত হয়।
পরিদর্শন প্রোফাইল পর্যালোচনা এবং সম্পাদনা করুন
অ্যান্ড্রয়েড স্টুডিওতে লিঙ্ক এবং অন্যান্য পরিদর্শন প্রোফাইলগুলির একটি নির্বাচন রয়েছে যা অ্যান্ড্রয়েড আপডেটের মাধ্যমে আপডেট করা হয়। আপনি এই প্রোফাইলগুলি যেমন ব্যবহার করতে পারেন বা তাদের নাম, বিবরণ, তীব্রতা এবং স্কোপগুলি সম্পাদনা করতে পারেন। আপনি কোনও গোষ্ঠীর মধ্যে প্রোফাইল বা স্বতন্ত্র প্রোফাইলগুলির পুরো গোষ্ঠীগুলি সক্রিয় এবং নিষ্ক্রিয় করতে পারেন।
পরিদর্শন সেটিংস অ্যাক্সেস করতে:
- ফাইল> সেটিংস নির্বাচন করুন। (উইন্ডোজে) বা অ্যান্ড্রয়েড স্টুডিও> পছন্দসমূহ (ম্যাকোস বা লিনাক্সে)।
- সম্পাদক> পরিদর্শন নির্বাচন করুন।
পরিদর্শন ফলকটি সমর্থিত পরিদর্শন এবং তাদের বর্ণনার একটি তালিকা দেখায়।
চিত্র 11। সমর্থিত পরিদর্শন এবং তাদের বিবরণ। ডিফল্ট (অ্যান্ড্রয়েড স্টুডিও) এবং প্রকল্প ডিফল্ট (সক্রিয় প্রকল্প) পরিদর্শনগুলির মধ্যে টগল করতে প্রোফাইল তালিকাটি নির্বাচন করুন।
আরও তথ্যের জন্য, ইন্টেলিজ ম্যানেজ প্রোফাইল পৃষ্ঠা দেখুন।
বাম ফলকের পরিদর্শন তালিকায়, একটি শীর্ষ-স্তরের প্রোফাইল বিভাগ নির্বাচন করুন বা একটি গোষ্ঠী প্রসারিত করুন এবং একটি নির্দিষ্ট প্রোফাইল নির্বাচন করুন।
আপনি যখন কোনও প্রোফাইল বিভাগ নির্বাচন করেন, আপনি একক পরিদর্শন হিসাবে সেই বিভাগে সমস্ত পরিদর্শন সম্পাদনা করতে পারেন।
- শো স্কিমা ক্রিয়াগুলি নির্বাচন করুন
অনুলিপি, নামকরণ, বিবরণ যুক্ত করতে, রফতানি করতে এবং আমদানি পরিদর্শন করতে তালিকা।
- আপনার কাজ শেষ হয়ে গেলে ঠিক আছে ক্লিক করুন।
আপনার অ্যাপ্লিকেশনটির কার্যকরী প্রয়োজনীয়তাগুলি পূরণ করে তা নিশ্চিত করার জন্য বিল্ডিং টেস্টগুলি ছাড়াও, আপনার কোডটি কোনও কাঠামোগত সমস্যা নেই তা নিশ্চিত করতে সহায়তা করার জন্য আপনি লিন্ট সরঞ্জামের মাধ্যমে কোডটি চালানোও গুরুত্বপূর্ণ। লিন্ট সরঞ্জামটি দুর্বল কাঠামোগত কোড সন্ধান করতে সহায়তা করে যা আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির নির্ভরযোগ্যতা এবং দক্ষতার উপর প্রভাব ফেলতে পারে এবং আপনার কোডটি বজায় রাখতে আরও শক্ত করে তুলতে পারে। এটি দৃ strongly ়ভাবে সুপারিশ করা হয় যে আপনার অ্যাপ্লিকেশন প্রকাশের আগে লিন্ট সনাক্ত করে এমন কোনও ত্রুটিগুলি আপনি সংশোধন করুন।
উদাহরণস্বরূপ, যদি আপনার এক্সএমএল রিসোর্স ফাইলগুলিতে অব্যবহৃত নেমস্পেস থাকে তবে এটি স্থান নেয় এবং অপ্রয়োজনীয় প্রক্রিয়াজাতকরণ প্রয়োজন। অন্যান্য কাঠামোগত সমস্যাগুলি যেমন অবমূল্যায়িত উপাদান বা এপিআই কলগুলির ব্যবহার যা লক্ষ্য এপিআই সংস্করণ দ্বারা সমর্থিত নয়, কোডটি সঠিকভাবে চালাতে ব্যর্থ হতে পারে। লিন্ট আপনাকে এই সমস্যাগুলি পরিষ্কার করতে সহায়তা করতে পারে।
লিন্টিং পারফরম্যান্স উন্নত করতে, আপনি আপনার কোডে টীকাগুলিও যুক্ত করতে পারেন।
ওভারভিউ
অ্যান্ড্রয়েড স্টুডিও লিন্ট নামে একটি কোড স্ক্যানিং সরঞ্জাম সরবরাহ করে যা আপনাকে অ্যাপ্লিকেশনটি কার্যকর না করে বা পরীক্ষার কেসগুলি না লিখে আপনার কোডের কাঠামোগত মানের সাথে সমস্যাগুলি সনাক্ত করতে এবং সংশোধন করতে সহায়তা করতে পারে। সরঞ্জাম দ্বারা সনাক্ত করা প্রতিটি সমস্যা একটি বিবরণ বার্তা এবং একটি তীব্র স্তরের সাথে রিপোর্ট করা হয় যাতে আপনি যে সমালোচনামূলক উন্নতিগুলি করা দরকার তা অগ্রাধিকার দিতে পারেন। আপনার প্রকল্পের সাথে প্রাসঙ্গিক নয় এমন সমস্যাগুলি উপেক্ষা করতে বা নির্দিষ্ট সমস্যাগুলি হাইলাইট করার জন্য তীব্রতার স্তর বাড়াতে আপনি কোনও সমস্যার তীব্রতা স্তরকেও কম করতে পারেন।
লিন্ট টুলটি আপনার অ্যান্ড্রয়েড প্রোজেক্ট সোর্স ফাইলগুলিকে সম্ভাব্য বাগ এবং সঠিকতা, নিরাপত্তা, কর্মক্ষমতা, ব্যবহারযোগ্যতা, অ্যাক্সেসযোগ্যতা এবং আন্তর্জাতিকীকরণের জন্য অপ্টিমাইজেশন উন্নতির জন্য পরীক্ষা করে। অ্যান্ড্রয়েড স্টুডিও ব্যবহার করার সময়, আপনি যখন আপনার অ্যাপ তৈরি করেন তখন কনফিগার করা লিন্ট এবং IDE পরিদর্শনগুলি চলে। যাইহোক, আপনি ম্যানুয়ালি পরিদর্শন চালাতে পারেন বা কমান্ড লাইন থেকে লিন্ট চালাতে পারেন , যেমন এই পৃষ্ঠায় বর্ণিত হয়েছে।
আপনি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করার সময় অন্তর্নির্মিত লিন্ট সরঞ্জামটি আপনার কোডটি পরীক্ষা করে। আপনি দুটি উপায়ে সতর্কতা এবং ত্রুটিগুলি দেখতে পারেন:
- সম্পাদক উইন্ডোতে পপ-আপ পাঠ্য হিসাবে। যখন লিন্ট কোনও সমস্যা খুঁজে পায়, তখন এটি হলুদে সমস্যাযুক্ত কোডটি হাইলাইট করে। আরও গুরুতর সমস্যার জন্য, এটি কোডটি লাল রঙের উপর নজর রাখে।
- লিন্ট পরিদর্শন ফলাফল উইন্ডোতে আপনি যখন কোড> পরিদর্শন কোডটি ক্লিক করেন।
দ্রষ্টব্য: যখন আপনার কোডটি অ্যান্ড্রয়েড স্টুডিওতে সংকলিত হয়, তখন অতিরিক্ত ইন্টেলিজ কোড পরিদর্শন কোড পর্যালোচনা প্রবাহিত করতে চলে। সর্বশেষতম লিন্ট বিধি এবং পরিদর্শনগুলি উপলব্ধ রয়েছে তা নিশ্চিত করতে অ্যান্ড্রয়েড স্টুডিওটিকে যথাসম্ভব আপ-টু-ডেট রাখুন।
চিত্র 1 দেখায় যে লিন্ট সরঞ্জামটি অ্যাপ্লিকেশন উত্স ফাইলগুলি কীভাবে প্রক্রিয়াজাত করে।

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

যদি আপনার প্রকল্পে বিল্ড ভেরিয়েন্টগুলি অন্তর্ভুক্ত থাকে তবে লিন্টটি কেবল ডিফল্ট বৈকল্পিক পরীক্ষা করে। আপনি যদি অন্য কোনও রূপে লিন্ট চালাতে চান তবে আপনাকে অবশ্যই বৈকল্পিক নামটি মূলধন করতে হবে এবং এটি lint
দিয়ে উপসর্গ করতে হবে।
./gradlew lintRelease
দ্রষ্টব্য: লিন্ট আপনার বিল্ডের অংশ হিসাবে স্বয়ংক্রিয়ভাবে চালিত হয় না। আমরা দৃ strongly ়ভাবে সুপারিশ করি যে আপনি অবিচ্ছিন্ন ইন্টিগ্রেশন বিল্ডের অংশ হিসাবে স্পষ্টভাবে লিন্টটি চালান যাতে আপনি আপনার বিদ্যমান উত্স কোডটি তৈরি করার সময় সর্বশেষতম লিন্ট চেকগুলি দেখতে পান।
কমান্ড লাইন থেকে গ্রেডল টাস্কগুলি চালানোর বিষয়ে আরও জানতে, কমান্ড লাইন থেকে আপনার অ্যাপটি তৈরি করুন পড়ুন।
স্ট্যান্ডেলোন সরঞ্জাম ব্যবহার করে লিন্ট চালান
আপনি যদি অ্যান্ড্রয়েড স্টুডিও বা গ্রেড ব্যবহার না করে থাকেন তবে স্ট্যান্ডেলোন লিন্ট সরঞ্জামটি ব্যবহার করতে অ্যান্ড্রয়েড এসডিকে কমান্ড-লাইন সরঞ্জামগুলি ইনস্টল করুন। android_sdk /cmdline-tools/ version /bin/lint
লিন্ট সরঞ্জামটি সন্ধান করুন।
Note: If you attempt to run the standalone tool on a Gradle project, it gives an error. You should always use gradle lint
(on Windows) or ./gradlew lint
(on macOS or Linux) to run lint on a Gradle project.
To run lint against a list of files in a project directory, use the following command:
lint [flags] <project directory>
For example, you can issue the following command to scan the files under the myproject
directory and its subdirectories. The issue ID MissingPrefix
tells lint to only scan for XML attributes that are missing the Android namespace prefix.
lint --check MissingPrefix myproject
To see the full list of flags and command-line arguments supported by the tool, use the following command:
lint --help
The following example shows the console output when the lint command is run against a project called 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
The example output lists four warnings and no errors.
Two warnings relate to the project's AndroidManifest.xml
file:
-
ManifestOrder
-
UsesMinSdkAttributes
Preferences.xml
layout file: UnusedResources
. One warning relates to the res
directory: IconMissingDensityFolder
.
Configure lint to suppress warnings
By default, when you run a lint scan the tool checks for all issues that lint supports. You can also restrict the issues for lint to check, and you can assign severity levels for issues. For example, you can suppress lint checking for specific issues that are not relevant to your project, and you can configure lint to report non-critical issues at a lower severity level.
তীব্রতার মাত্রা হল:
-
enable
-
disable
orignore
-
informational
-
warning
-
error
-
fatal
You can configure lint checking for different levels:
- Globally (entire project)
- প্রকল্প মডিউল
- উত্পাদন মডিউল
- Test module
- ফাইল খুলুন
- শ্রেণী অনুক্রম
- Version Control System (VCS) scopes
Configure the lint file
You can specify your lint checking preferences in the lint.xml
file. If you are creating this file manually, place it in the root directory of your Android project.
The lint.xml
file consists of an enclosing <lint>
parent tag that contains one or more children <issue>
elements. Lint defines a unique id
attribute value for each <issue>
:
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- list of issues to configure --> </lint>
To change an issue's severity level or disable lint checking for the issue, set the severity attribute in the <issue>
tag.
Tip: For a full list of lint-supported issues and their corresponding issue IDs, run the lint --list
command.
Sample lint.xml file
The following example shows the contents of a lint.xml
file:
<?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>
This example shows how different issue types are reported. The IconMissingDensityFolder
check is disabled completely, and the ObsoleteLayoutParam
check is disabled only in the files specified in the enclosed <ignore ... />
declarations.
Configure lint checking for Kotlin, Java, and XML source files
You can turn off lint checking for your Kotlin, Java, and XML source files in the Preferences dialog:
- Select File > Settings (on Windows) or Android Studio > Preferences (on macOS or Linux).
- Select Editor > Inspections .
- To disable, deselect the appropriate source file.
You can set these either for the IDE or for individual projects by selecting the appropriate profile.
Configure lint checking in Java or Kotlin
To disable lint checking specifically for a class or method in your Android project, add the @SuppressLint
annotation to that code.
The following example shows how you can turn off lint checking for the NewApi
issue in the onCreate
method. The lint tool continues to check for the NewApi
issue in other methods of this class.
কোটলিন
@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);
The same can be accomplished on any Composable. The following code snippet shows how you can turn off NewApi
checks on any Composable.
কোটলিন
@SuppressLint("NewApi") @Composable fun MyComposable{ ... }
The following example shows how to turn off lint checking for the ParserError
issue in the FeedProvider
class:
কোটলিন
@SuppressLint("ParserError") class FeedProvider : ContentProvider() {
জাভা
@SuppressLint("ParserError") public class FeedProvider extends ContentProvider {
To suppress checking for all lint issues in the file, use the all
keyword:
কোটলিন
@SuppressLint("all")
জাভা
@SuppressLint("all")
You can use the same annotation to suppress lint checks on any Composable function.
Configure lint checking in XML
Use the tools:ignore
attribute to turn off lint checking for specific sections of your XML files. Put the following namespace value in the lint.xml
file so the lint tool recognizes the attribute:
namespace xmlns:tools="http://schemas.android.com/tools"
The following example shows how you can turn off lint checking for the UnusedResources
issue in a <LinearLayout>
element of an XML layout file. The ignore
attribute is inherited by the children elements of the parent element where the attribute is declared. In this example, the lint check is also disabled for the child <TextView>
element:
<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>
To disable more than one issue, list the issues to disable in a comma-separated string. যেমন:
tools:ignore="NewApi,StringFormatInvalid"
To suppress checking for all lint issues in the XML element, use the all
keyword:
tools:ignore="all"
Configure lint options with Gradle
The Android Gradle plugin lets you configure certain lint options, such as which checks to run or ignore, using the lint{}
block in your module-level build.gradle
file.
The following code snippet shows some of the properties you can configure:
কোটলিন
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 } } ...
All lint methods that override the given severity level of an issue respect the order of configuration. For example, setting an issue as fatal in finalizeDsl()
overrides disabling it in the main DSL.
Create a warnings baseline
You can take a snapshot of your project's current set of warnings, then use the snapshot as a baseline for future inspection runs so that only new issues are reported. The baseline snapshot lets you start using lint to fail the build without having to go back and address all existing issues first.
To create a baseline snapshot, modify your project's build.gradle
file as follows:
কোটলিন
android { lint { baseline = file("lint-baseline.xml") } }
গ্রোভি
android { lintOptions { baseline file("lint-baseline.xml") } }
When you first add this line, the lint-baseline.xml
file is created to establish your baseline. From then on, the tools only read the file to determine the baseline. If you want to create a new baseline, manually delete the file and run lint again to re-create it.
Then, run lint from the IDE by selecting Code > Inspect Code or from the command line as follows. The output prints the location of the lint-baseline.xml
file. The file location for your setup might be different from what is shown here:
$ ./gradlew lintDebug -Dlint.baselines.continue=true ... Wrote XML report to file:///app/lint-baseline.xml Created baseline file /app/lint-baseline.xml
Running lint
records all the current issues in the lint-baseline.xml
file. The set of current issues is called the baseline . You can check the lint-baseline.xml
file into version control if you want to share it with others.
Customize the baseline
If you want to add only certain issue types to the baseline, specify the issues to add by editing your project's build.gradle
file as follows:
কোটলিন
android { lint { checkOnly += "NewApi" + "HandlerLeak" baseline = file("lint-baseline.xml") } }
গ্রোভি
android { lintOptions { checkOnly 'NewApi', 'HandlerLeak' baseline file("lint-baseline.xml") } }
If you add any new warnings to the codebase after you create the baseline, lint lists only the newly introduced bugs.
Baseline warning
When a baseline is in effect, you get an informational warning that tells you that one or more issues were filtered out because they are listed in the baseline. This warning helps you remember that you have configured a baseline and that you need to fix all of the issues at some point.
This informational warning also keeps track of issues that are no longer reported. This information lets you know if you have actually fixed issues, so you can optionally re-create the baseline to prevent an error from coming back undetected.
Note: Baselines are enabled when you run inspections in batch mode in the IDE, but they are ignored for the in-editor checks that run in the background when you are editing a file. This is because baselines are intended for the case where a codebase has a large number of existing warnings, but you do want to fix issues locally while you touch the code.
ম্যানুয়ালি পরিদর্শন চালান
To manually run configured lint and other IDE inspections, select Code > Inspect Code . The results of the inspection appear in the Inspection Results window.
Set the inspection scope and profile
Select the files you want to analyze (the inspection scope ) and the inspections you want to run (the inspection profile ) as follows:
- In the Android view, open your project and select the project, folder, or file that you want to analyze.
- From the menu bar, select Code > Inspect Code .
In the Specify Inspection Scope dialog, review the settings.
Figure 3. Review the inspection scope settings. The options that appear in the Specify Inspection Scope dialog varies depending on whether you selected a project, folder, or file:
- When you select one project, file, or directory, the Specify Inspection Scope dialog displays the path to the project, file, or directory you selected.
- When you select more than one project, file, or directory, the Specify Inspection Scope dialog displays a selected radio button for Selected files .
To change what to inspect, select one of the other radio buttons. See Specify Inspection Scope dialog for a description of all possible fields on the Specify Inspection Scope dialog.
- Under Inspection profile , select the profile you want to use.
Click OK to run the inspection.
Figure 4 shows lint and other IDE inspection results from the Inspect Code run:
Figure 4. Results from the inspection. Select an issue to see the resolution. In the Inspection Results pane, view the inspection results by expanding and selecting error categories, types, or issues.
The Inspection Report pane displays the inspection report for the error category, type, or issue selected in the Inspection Results pane and displays the name and location of the error. Where applicable, the inspection report displays other information, such as a problem synopsis, to help you correct the problem.
In the Inspection Results pane tree view, right-click a category, type, or issue to display the context menu.
Depending on the context, you can:
- Jump to source.
- Exclude and include selected items.
- Suppress problems.
- Edit settings.
- Manage inspection alerts.
- Rerun an inspection.
For descriptions of the toolbar buttons, context menu items, and inspection report fields, see Inspection Results tool window .
Use a custom scope
Use one of the custom scopes provided in Android Studio as follows:
- In the Specify Inspection Scope dialog, select Custom scope .
Click the Custom scope list to display your options:
Figure 5. Select which custom scope you want to use. - All Places: All files.
- Project Files: All the files in the current project.
- Project Source Files: Only the source files in the current project.
- Project Production Files: Only the production files in the current project.
- Project Test Files: Only the test files in the current project.
- Scratches and Consoles: Only the scratch files and consoles you have open in the current project.
- Recently Viewed Files: Only recently viewed files in the current project.
- Current File: Only the current file in your current project. Appears when you have a file or folder selected.
- Selected Directory: Only the current folder in your current project. Appears when you have a folder selected.
- Class Hierarchy: When you select this option and click OK , a dialog appears with all of the classes in the current project. In the dialog, use the Search by Name field to filter and select the classes to inspect. If you don't filter the classes list, code inspection inspects all of the classes.
- ওকে ক্লিক করুন।
If you have a VCS configured for the project, there are also options to restrict the search to only files that have been modified.
Create a custom scope
When you want to inspect a selection of files and directories that isn't covered by any of the available custom scopes, you can create a custom scope:
- In the Specify Inspection Scope dialog, select Custom scope .
Click the three dots after the Custom Scope list.
Figure 6. Specify Inspection Scope dialog. The Scopes dialog appears.
Figure 7. Create a custom scope. - ক্লিক করুন
button in the top-left corner of the dialog to define a new scope.
- In the Add Scope list that appears, select Local .
Both the local and shared scopes are used within the project for the Inspect Code feature. A Shared scope can also be used with other project features that have a scope field. For example, when you click Edit Settings
to change the settings for Find Usages , the resulting dialog has a Scope field where you can select a shared scope.
Figure 8. Select a shared scope from the Find Usages dialog. - Give the scope a name and click OK .
The right pane of the Scopes dialog populates with options that let you define the custom scope.
- From the list, select Project .
A list of available projects appears.
Note: You can create the custom scope for projects or packages. ধাপগুলো একই।
Expand the project folders, select what you want to add to the custom scope, and select whether to include or exclude it.
Figure 9. Define a custom scope. - Include : Include this folder and its files, but don't include any of its subfolders.
- Include Recursively : Include this folder and its files as well as its subfolders and their files.
- Exclude : Exclude this folder and its files, but don't exclude any of its subfolders.
- Exclude Recursively : Exclude this folder and its files as well as its subfolders and their files.
Figure 10 shows that the main folder is included, and that the java and res folders are included recursively. Blue indicates a partially included folder, and green indicates recursively included folders and files.
Figure 10. Example pattern for a custom scope. - If you select the java folder and click Exclude Recursively , the green highlighting goes away on the java folder and all the folders and files under it.
- If you select the green-highlighted MainActivity.kt file and click Exclude , MainActivity.kt is no longer highlighted green, but everything else under the java folder remains green.
- ওকে ক্লিক করুন। The custom scope appears at the bottom of the list.
Review and edit inspection profiles
Android Studio has a selection of lint and other inspection profiles that are updated through Android updates. You can use these profiles as they are or edit their names, descriptions, severities, and scopes. You can also activate and deactivate entire groups of profiles or individual profiles within a group.
To access the Inspections settings:
- Select File > Settings. (on Windows) or Android Studio > Preferences (on macOS or Linux).
- Select Editor > Inspections .
The Inspections pane shows a list of the supported inspections and their descriptions.
Figure 11. Supported inspections and their descriptions. Select the Profile list to toggle between Default (Android Studio) and Project Default (the active project) inspections.
For more information, see the IntelliJ Manage profiles page.
In the Inspections list in the left pane, select a top-level profile category or expand a group and select a specific profile.
When you select a profile category, you can edit all the inspections in that category as a single inspection.
- Select the Show Schema Actions
list to copy, rename, add descriptions to, export, and import inspections.
- When you're done, click OK .