লিন্ট চেক দিয়ে আপনার কোড উন্নত করুন

আপনার অ্যাপটি তার কার্যকরী প্রয়োজনীয়তাগুলি পূরণ করে তা নিশ্চিত করার জন্য পরীক্ষাগুলি তৈরি করার পাশাপাশি, আপনার কোডটিতে কোনও কাঠামোগত সমস্যা নেই তা নিশ্চিত করতে লিন্ট টুলের মাধ্যমে কোডটি চালানোও গুরুত্বপূর্ণ। লিন্ট টুলটি খারাপভাবে স্ট্রাকচার্ড কোড খুঁজে পেতে সাহায্য করে যা আপনার অ্যান্ড্রয়েড অ্যাপের নির্ভরযোগ্যতা এবং দক্ষতাকে প্রভাবিত করতে পারে এবং আপনার কোড বজায় রাখা কঠিন করে তোলে। এটি দৃঢ়ভাবে সুপারিশ করা হয় যে আপনি আপনার অ্যাপ প্রকাশ করার আগে লিন্ট শনাক্ত করে এমন কোনো ত্রুটি সংশোধন করুন।

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

লিন্টিং কর্মক্ষমতা উন্নত করতে, আপনি আপনার কোডে টীকা যোগ করতে পারেন।

ওভারভিউ

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

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

আপনি যখন অ্যান্ড্রয়েড স্টুডিও ব্যবহার করছেন তখন অন্তর্নির্মিত লিন্ট টুল আপনার কোড চেক করে। আপনি সতর্কতা এবং ত্রুটি দুটি উপায়ে দেখতে পারেন:

  • সম্পাদক উইন্ডোতে পপ-আপ পাঠ্য হিসাবে। যখন লিন্ট একটি সমস্যা খুঁজে পায়, এটি হলুদ রঙে সমস্যাযুক্ত কোড হাইলাইট করে। আরও গুরুতর সমস্যার জন্য, এটি লাল রঙে কোডটি আন্ডারলাইন করে।
  • লিন্ট পরিদর্শন ফলাফল উইন্ডোতে যখন আপনি কোড > পরিদর্শন কোড ক্লিক করেন।

দ্রষ্টব্য: যখন আপনার কোড Android স্টুডিওতে কম্পাইল করা হয়, তখন অতিরিক্ত IntelliJ কোড পরিদর্শনগুলি কোড পর্যালোচনাকে স্ট্রীমলাইন করতে চালিত হয়।

চিত্র 1 দেখায় কিভাবে লিন্ট টুল অ্যাপ সোর্স ফাইলগুলিকে প্রক্রিয়া করে।

লিন্ট টুল দিয়ে কোড স্ক্যানিং ওয়ার্কফ্লো।
চিত্র 1. লিন্ট টুল দিয়ে কোড স্ক্যানিং ওয়ার্কফ্লো।
অ্যাপ সোর্স ফাইল
কোটলিন, জাভা এবং এক্সএমএল ফাইল, আইকন এবং প্রোগার্ড কনফিগারেশন ফাইল সহ আপনার অ্যান্ড্রয়েড প্রোজেক্ট তৈরি করে এমন ফাইলগুলি নিয়ে সোর্স ফাইলগুলি রয়েছে৷
lint.xml ফাইল
একটি কনফিগারেশন ফাইল যা আপনি যে কোনো লিন্ট চেক নির্দিষ্ট করতে ব্যবহার করতে পারেন যা আপনি বাদ দিতে চান এবং সমস্যার তীব্রতা মাত্রা কাস্টমাইজ করতে পারেন।
লিন্ট টুল
একটি স্ট্যাটিক কোড স্ক্যানিং টুল যা আপনি আপনার অ্যান্ড্রয়েড প্রোজেক্টে কমান্ড লাইন থেকে বা অ্যান্ড্রয়েড স্টুডিওতে চালাতে পারেন। লিন্ট টুল স্ট্রাকচারাল কোড সমস্যাগুলির জন্য পরীক্ষা করে যা আপনার Android অ্যাপের গুণমান এবং কর্মক্ষমতা প্রভাবিত করতে পারে।
লিন্ট চেকিং এর ফলাফল
আপনি কনসোলে বা অ্যান্ড্রয়েড স্টুডিওতে পরিদর্শন ফলাফল উইন্ডোতে লিন্ট থেকে ফলাফল দেখতে পারেন। আপনি যদি কমান্ড লাইন থেকে lint চালান, ফলাফলগুলি build/ ফোল্ডারে লেখা হয়। আরও বিশদ বিবরণের জন্য, ম্যানুয়ালি পরিদর্শন চালানোর বিষয়ে বিভাগটি দেখুন।

কমান্ড লাইন থেকে লিন্ট চালান

আপনি যদি অ্যান্ড্রয়েড স্টুডিও বা গ্রেডল ব্যবহার করেন, আপনার প্রোজেক্টের রুট ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডগুলির মধ্যে একটি প্রবেশ করে আপনার প্রোজেক্টের জন্য lint টাস্ক শুরু করতে গ্রেডল র‌্যাপার ব্যবহার করুন:

  • উইন্ডোজে:
    gradlew lint
    
  • Linux বা macOS-এ:
    ./gradlew lint
    

আপনি নিম্নলিখিত অনুরূপ আউটপুট দেখতে হবে:

> Task :app:lintDebug
Wrote HTML report to file:<path-to-project>/app/build/reports/lint-results-debug.html

যখন লিন্ট টুলটি তার পরীক্ষাগুলি সম্পূর্ণ করে, তখন এটি লিন্ট রিপোর্টের XML এবং HTML সংস্করণগুলির পাথ প্রদান করে। তারপরে আপনি HTML রিপোর্টে নেভিগেট করতে পারেন এবং আপনার ব্রাউজারে এটি খুলতে পারেন, যেমন চিত্র 2 এ দেখানো হয়েছে।

নমুনা HTML লিন্ট রিপোর্ট
চিত্র 2. নমুনা HTML লিন্ট রিপোর্ট।

আপনার প্রোজেক্টে বিল্ড ভেরিয়েন্ট থাকলে, লিন্ট শুধুমাত্র ডিফল্ট ভেরিয়েন্ট চেক করে। আপনি যদি একটি ভিন্ন ভেরিয়েন্টে লিন্ট চালাতে চান, তাহলে আপনাকে অবশ্যই ভেরিয়েন্টের নামটি বড় করে লিখতে হবে এবং 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 সোর্স ফাইলগুলির জন্য লিন্ট চেকিং বন্ধ করতে পারেন:

  1. ফাইল > সেটিংস (উইন্ডোজে) বা অ্যান্ড্রয়েড স্টুডিও > পছন্দসমূহ (ম্যাকওএস বা লিনাক্সে) নির্বাচন করুন।
  2. সম্পাদক > পরিদর্শন নির্বাচন করুন।
  3. নিষ্ক্রিয় করতে, উপযুক্ত উত্স ফাইলটি নির্বাচন মুক্ত করুন৷

আপনি উপযুক্ত প্রোফাইল নির্বাচন করে 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 পরিদর্শন চালানোর জন্য, কোড > পরিদর্শন কোড নির্বাচন করুন। পরিদর্শনের ফলাফল পরিদর্শন ফলাফল উইন্ডোতে প্রদর্শিত হবে।

পরিদর্শনের সুযোগ এবং প্রোফাইল সেট করুন

আপনি যে ফাইলগুলি বিশ্লেষণ করতে চান তা নির্বাচন করুন (পরিদর্শনের সুযোগ ) এবং আপনি যে পরিদর্শনগুলি চালাতে চান (পরিদর্শন প্রোফাইল ) নিম্নরূপ:

  1. অ্যান্ড্রয়েড ভিউতে, আপনার প্রকল্পটি খুলুন এবং আপনি যে প্রকল্প, ফোল্ডার বা ফাইলটি বিশ্লেষণ করতে চান সেটি নির্বাচন করুন।
  2. মেনু বার থেকে, কোড > পরিদর্শন কোড নির্বাচন করুন।
  3. পরিদর্শন স্কোপ নির্দিষ্ট করুন ডায়ালগে, সেটিংস পর্যালোচনা করুন।

    পরিদর্শন সুযোগ নির্দিষ্ট করুন
    চিত্র 3. পরিদর্শন সুযোগ সেটিংস পর্যালোচনা করুন।

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

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

    কী পরিদর্শন করতে হবে তা পরিবর্তন করতে, অন্যান্য রেডিও বোতামগুলির মধ্যে একটি নির্বাচন করুন৷ নির্দিষ্ট পরিদর্শন স্কোপ ডায়ালগে সম্ভাব্য সমস্ত ক্ষেত্রের বর্ণনার জন্য পরিদর্শন স্কোপ নির্দিষ্ট করুন ডায়ালগ দেখুন।

  4. পরিদর্শন প্রোফাইলের অধীনে, আপনি যে প্রোফাইলটি ব্যবহার করতে চান তা নির্বাচন করুন।
  5. পরিদর্শন চালানোর জন্য ঠিক আছে ক্লিক করুন.

    চিত্র 4 পরিদর্শন কোড রান থেকে লিন্ট এবং অন্যান্য IDE পরিদর্শন ফলাফল দেখায়:

    সমাধান দেখতে একটি সমস্যা নির্বাচন করুন।
    চিত্র 4. পরিদর্শন থেকে ফলাফল. সমাধান দেখতে একটি সমস্যা নির্বাচন করুন।
  6. পরিদর্শন ফলাফল ফলকে, ত্রুটি বিভাগ, প্রকার বা সমস্যাগুলি প্রসারিত এবং নির্বাচন করে পরিদর্শনের ফলাফলগুলি দেখুন।

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

  7. পরিদর্শন ফলাফল ফলক ট্রি ভিউতে, প্রসঙ্গ মেনু প্রদর্শন করতে একটি বিভাগ, টাইপ বা সমস্যাটিতে ডান-ক্লিক করুন।

    প্রসঙ্গের উপর নির্ভর করে, আপনি করতে পারেন:

    • উৎসে ঝাঁপ দাও।
    • বাদ এবং নির্বাচিত আইটেম অন্তর্ভুক্ত.
    • সমস্যাগুলি দমন করুন।
    • সেটিংস সম্পাদনা।
    • পরিদর্শন সতর্কতা পরিচালনা করুন।
    • একটি পরিদর্শন পুনরায় চালান।

টুলবার বোতাম, প্রসঙ্গ মেনু আইটেম এবং পরিদর্শন রিপোর্ট ক্ষেত্রগুলির বর্ণনার জন্য, পরিদর্শন ফলাফল টুল উইন্ডো দেখুন।

একটি কাস্টম সুযোগ ব্যবহার করুন

অ্যান্ড্রয়েড স্টুডিওতে প্রদত্ত কাস্টম স্কোপগুলির একটি ব্যবহার করুন নিম্নরূপ:

  1. পরিদর্শন স্কোপ নির্দিষ্ট করুন ডায়ালগে, কাস্টম স্কোপ নির্বাচন করুন।
  2. আপনার বিকল্পগুলি প্রদর্শন করতে কাস্টম সুযোগ তালিকাতে ক্লিক করুন:

    পরিদর্শন সুযোগ নির্বাচন করুন
    চিত্র 5. আপনি কোন কাস্টম সুযোগ ব্যবহার করতে চান তা নির্বাচন করুন।
    • সমস্ত স্থান: সমস্ত ফাইল।
    • প্রকল্প ফাইল: বর্তমান প্রকল্পের সমস্ত ফাইল।
    • প্রজেক্ট সোর্স ফাইল: বর্তমান প্রোজেক্টে শুধুমাত্র সোর্স ফাইল।
    • প্রজেক্ট প্রোডাকশন ফাইল: বর্তমান প্রোজেক্টে শুধুমাত্র প্রোডাকশন ফাইল।
    • প্রজেক্ট টেস্ট ফাইল: বর্তমান প্রজেক্টে শুধুমাত্র টেস্ট ফাইল।
    • স্ক্র্যাচ এবং কনসোল: শুধুমাত্র স্ক্র্যাচ ফাইল এবং কনসোল আপনি বর্তমান প্রকল্পে খোলা আছে।
    • সম্প্রতি দেখা ফাইল: বর্তমান প্রকল্পে শুধুমাত্র সম্প্রতি দেখা ফাইল।
    • বর্তমান ফাইল: আপনার বর্তমান প্রকল্পে শুধুমাত্র বর্তমান ফাইল। আপনি একটি ফাইল বা ফোল্ডার নির্বাচন করা হলে প্রদর্শিত হবে.
    • নির্বাচিত ডিরেক্টরি: আপনার বর্তমান প্রকল্পে শুধুমাত্র বর্তমান ফোল্ডার। আপনি একটি ফোল্ডার নির্বাচন করা হলে প্রদর্শিত হবে.
    • ক্লাস হায়ারার্কি: আপনি যখন এই বিকল্পটি নির্বাচন করেন এবং ঠিক আছে ক্লিক করেন, তখন বর্তমান প্রকল্পের সমস্ত ক্লাসের সাথে একটি ডায়ালগ উপস্থিত হয়। ডায়ালগে, ফিল্টার করতে এবং পরিদর্শনের জন্য ক্লাস নির্বাচন করতে নামের ক্ষেত্রটি ব্যবহার করুন। আপনি যদি ক্লাসের তালিকা ফিল্টার না করেন, কোড পরিদর্শন সমস্ত ক্লাস পরিদর্শন করে।

    আপনার যদি প্রোজেক্টের জন্য একটি VCS কনফিগার করা থাকে, তবে শুধুমাত্র পরিবর্তন করা ফাইলগুলিতে অনুসন্ধান সীমাবদ্ধ করার বিকল্পও রয়েছে।

  3. ওকে ক্লিক করুন।

একটি কাস্টম সুযোগ তৈরি করুন

যখন আপনি ফাইল এবং ডিরেক্টরিগুলির একটি নির্বাচন পরিদর্শন করতে চান যা বর্তমানে উপলব্ধ কাস্টম স্কোপের কোনটি দ্বারা আচ্ছাদিত নয়, আপনি একটি কাস্টম সুযোগ তৈরি করতে পারেন:

  1. পরিদর্শন স্কোপ নির্দিষ্ট করুন ডায়ালগে, কাস্টম স্কোপ নির্বাচন করুন।
  2. কাস্টম স্কোপ তালিকার পরে তিনটি বিন্দুতে ক্লিক করুন।

    পরিদর্শন স্কোপ ডায়ালগ নির্দিষ্ট করুন
    চিত্র 6. পরিদর্শন স্কোপ ডায়ালগ নির্দিষ্ট করুন।

    স্কোপ ডায়ালগ প্রদর্শিত হবে।

    একটি কাস্টম সুযোগ তৈরি করুন
    চিত্র 7. একটি কাস্টম সুযোগ তৈরি করুন।
  3. ক্লিক করুন একটি নতুন সুযোগ সংজ্ঞায়িত করতে ডায়ালগের উপরের-বাম কোণে বোতাম।
  4. প্রদর্শিত স্কোপ তালিকায়, স্থানীয় নির্বাচন করুন।

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

    ব্যবহার খুঁজুন ডায়ালগ থেকে একটি ভাগ করা সুযোগ নির্বাচন করুন
    চিত্র 8. সন্ধান করুন ব্যবহার ডায়ালগ থেকে একটি ভাগ করা সুযোগ নির্বাচন করুন।
  5. সুযোগের একটি নাম দিন এবং ঠিক আছে ক্লিক করুন।

    স্কোপস ডায়ালগের ডান ফলকটি এমন বিকল্পগুলির সাথে পপুলেট করে যা আপনাকে কাস্টম সুযোগ নির্ধারণ করতে দেয়।

  6. তালিকা থেকে, প্রকল্প নির্বাচন করুন।

    উপলব্ধ প্রকল্পগুলির একটি তালিকা প্রদর্শিত হবে।

    দ্রষ্টব্য: আপনি প্রকল্প বা প্যাকেজগুলির জন্য কাস্টম সুযোগ তৈরি করতে পারেন। ধাপগুলো একই।

  7. প্রজেক্ট ফোল্ডারগুলি প্রসারিত করুন, আপনি কাস্টম স্কোপে কী যোগ করতে চান তা নির্বাচন করুন এবং এটি অন্তর্ভুক্ত বা বাদ দেবেন কিনা তা নির্বাচন করুন।

    একটি কাস্টম সুযোগ সংজ্ঞায়িত করুন
    চিত্র 9. একটি কাস্টম সুযোগ সংজ্ঞায়িত করুন।
    • অন্তর্ভুক্ত করুন : এই ফোল্ডার এবং এর ফাইলগুলি অন্তর্ভুক্ত করুন, তবে এর কোনো সাবফোল্ডার অন্তর্ভুক্ত করবেন না।
    • পুনরাবৃত্তভাবে অন্তর্ভুক্ত করুন : এই ফোল্ডারটি এবং এর ফাইলগুলির পাশাপাশি এর সাবফোল্ডার এবং তাদের ফাইলগুলি অন্তর্ভুক্ত করুন।
    • বাদ দিন : এই ফোল্ডার এবং এর ফাইলগুলি বাদ দিন, তবে এর কোনও সাবফোল্ডার বাদ দেবেন না।
    • পুনরাবৃত্তভাবে বাদ দিন : এই ফোল্ডার এবং এর ফাইলগুলির পাশাপাশি এর সাবফোল্ডার এবং তাদের ফাইলগুলি বাদ দিন।

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

    একটি কাস্টম সুযোগ জন্য উদাহরণ প্যাটার্ন
    চিত্র 10. একটি কাস্টম সুযোগের জন্য উদাহরণ প্যাটার্ন।
    • আপনি যদি java ফোল্ডার নির্বাচন করেন এবং Recursively Exclude-এ ক্লিক করেন, তাহলে জাভা ফোল্ডার এবং এর অধীনে থাকা সমস্ত ফোল্ডার এবং ফাইলে সবুজ হাইলাইটিং চলে যাবে।
    • আপনি যদি সবুজ-হাইলাইট করা MainActivity.kt ফাইলটি নির্বাচন করেন এবং Exclude এ ক্লিক করেন, MainActivity.kt আর সবুজ হাইলাইট করা হবে না, তবে জাভা ফোল্ডারের নীচে বাকি সবকিছু সবুজ থাকবে।
  8. ওকে ক্লিক করুন। কাস্টম সুযোগ তালিকার নীচে প্রদর্শিত হবে।

পরিদর্শন প্রোফাইল পর্যালোচনা এবং সম্পাদনা করুন

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

পরিদর্শন সেটিংস অ্যাক্সেস করতে:

  1. ফাইল > সেটিংস নির্বাচন করুন। (উইন্ডোজে) বা অ্যান্ড্রয়েড স্টুডিও > পছন্দ (ম্যাকওএস বা লিনাক্সে)।
  2. সম্পাদক > পরিদর্শন নির্বাচন করুন।
  3. পরিদর্শন ফলক সমর্থিত পরিদর্শনগুলির একটি তালিকা এবং তাদের বিবরণ দেখায়।

    সমর্থিত পরিদর্শন এবং তাদের বিবরণ
    চিত্র 11. সমর্থিত পরিদর্শন এবং তাদের বিবরণ।
  4. ডিফল্ট (অ্যান্ড্রয়েড স্টুডিও) এবং প্রজেক্ট ডিফল্ট (সক্রিয় প্রকল্প) পরিদর্শনের মধ্যে টগল করতে প্রোফাইল তালিকা নির্বাচন করুন।

    আরও তথ্যের জন্য, IntelliJ ম্যানেজ প্রোফাইল পৃষ্ঠাটি দেখুন।

  5. বাম ফলকে পরিদর্শন তালিকায়, একটি শীর্ষ-স্তরের প্রোফাইল বিভাগ নির্বাচন করুন বা একটি গ্রুপ প্রসারিত করুন এবং একটি নির্দিষ্ট প্রোফাইল নির্বাচন করুন।

    আপনি যখন একটি প্রোফাইল বিভাগ নির্বাচন করেন, তখন আপনি একটি একক পরিদর্শন হিসাবে সেই বিভাগের সমস্ত পরিদর্শন সম্পাদনা করতে পারেন৷

  6. শো স্কিমা অ্যাকশন নির্বাচন করুন স্কিমা অ্যাকশন আইকন দেখান অনুলিপি, নাম পরিবর্তন, বিবরণ যোগ, রপ্তানি, এবং আমদানি পরিদর্শন তালিকা.
  7. আপনি সম্পন্ন হলে, ঠিক আছে ক্লিক করুন.