Winscope চালান

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

স্থানীয়ভাবে Winscope তৈরি করুন

Winscope ট্রেসার চালানোর জন্য আপনার পিসি সেট আপ করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যান্ড্রয়েড সোর্স ডাউনলোড করুন
  2. Winscope ফোল্ডারে নেভিগেট করুন:

    cd development/tools/winscope
    
  3. ব্যবহার করে নির্ভরতা ইনস্টল করুন:

    npm install
    

    উপলব্ধ কমান্ডের একটি তালিকা দেখতে, চালান: npm run

  4. ব্যবহার করে সমস্ত পণ্য এবং পরীক্ষার লক্ষ্যগুলি তৈরি করুন:

    npm run build:prod
    
  5. ব্যবহার করে Winscope চালান:

    npm run start
    

আলাদা অংশ তৈরি করুন

আপনি নিম্নলিখিত কমান্ডগুলি ব্যবহার করে আলাদাভাবে Winscope এর পৃথক অংশগুলি তৈরি করতে পারেন:

আদেশ বর্ণনা
build:trace_processor চেক আউট এবং এর সর্বশেষ সংস্করণ পুনর্নির্মাণ
পারফেটোর trace_processor
build:protos প্রোটো সংজ্ঞা পুনরায় কম্পাইল করে।

পরীক্ষা চালান

উইনস্কোপে ইউনিট এবং এন্ড-টু-এন্ড পরীক্ষা রয়েছে। তাদের চালানোর জন্য npm run <command> ব্যবহার করুন:

আদেশ বর্ণনা
test:unit:ci CI-এর জন্য কম ভার্বোস বিন্যাসে ইউনিট পরীক্ষা চালায়
অথবা হুক জমা দিন।
test:unit:dev এর জন্য আরও ভার্বস ফরম্যাটে ইউনিট পরীক্ষা চালায়
স্থানীয় উন্নয়ন। এই মোড পরিবর্তনের জন্য ঘড়ি এবং
স্বয়ংক্রিয়ভাবে সঠিক পরীক্ষা পুনরায় চালায়।
test:e2e এন্ড-টু-এন্ড পরীক্ষা চালায়, যেমন এর জন্য
ক্রস-টুল প্রোটোকল।
test:presubmit:quiet সমস্ত প্রি-সাবমিট ইউনিট পরীক্ষা, লিন্টার এবং গ্রাফ তৈরি করে
CI বা প্রিসবমিটের জন্য একটি কম ভার্বোস বিন্যাসে বিশ্লেষণ
হুক
test:presubmit সমস্ত প্রি-সাবমিট ইউনিট পরীক্ষা, লিন্টার এবং গ্রাফ তৈরি করে
স্থানীয় জন্য একটি আরো ভার্বস বিন্যাসে বিশ্লেষণ
উন্নয়ন
test:all সমস্ত পরীক্ষা চালায় (ইউনিট এবং এন্ড-টু-এন্ড), লিন্টার এবং
স্থানীয় জন্য আরো ভার্বস বিন্যাসে গ্রাফ বিশ্লেষণ
উন্নয়ন

@IntDef ম্যাপিং আপডেট করুন

@IntDef হল একটি পূর্ণসংখ্যার সম্ভাব্য মানগুলিকে সীমাবদ্ধ করতে অ্যান্ড্রয়েডে ব্যবহৃত একটি টীকা। Winscope পূর্ণসংখ্যার পরিবর্তে মানের নাম প্রদর্শন করতে এই টীকাগুলির একটি ম্যাপিং ব্যবহার করে।

@IntDef ম্যাপিং আপডেট করতে, নিম্নলিখিতগুলি করুন:

  1. টীকা প্রিপ্রসেসর চালানোর জন্য :framework-minus-apex-intdefs তৈরি করুন:

    mp :framework-minus-apex-intdefs
    
  2. তৈরি করা intDefMapping.json ফাইলটিকে প্রিবিল্ট রিপোজিটরিতে কপি করুন:

    $ python3 -c 'import sys,json,collections; print(json.dumps(collections.OrderedDict(sorted(collections.ChainMap(*map(lambda x:json.load(open(x)), sys.argv[1:])).items())), indent=2))' $(find out/soong/.intermediates/frameworks/base -iname intDefMapping.json) > ./development/tools/winscope/src/common/intDefMapping.json
    
  3. repo upload ব্যবহার করে Winscope এ পরিবর্তনগুলি আপলোড করুন।

অন্যান্য কমান্ড

নির্মাণ এবং পরীক্ষা ছাড়াও, উইনস্কোপ স্ক্রিপ্টে অন্যান্য ক্ষমতা রয়েছে, যেমনটি টেবিলে দেখানো হয়েছে। তাদের চালানোর জন্য npm run command ব্যবহার করুন:

আদেশ বর্ণনা
format:check prettier ব্যবহার করে কোড ফরম্যাটিং সমস্যার জন্য পরীক্ষা করে।
format:fix prettier ব্যবহার করে কোড ফরম্যাটিং সমস্যা চেক এবং স্বয়ংক্রিয়ভাবে ঠিক করে।
eslint:check eslint ব্যবহার করে কোড ফরম্যাটিং সমস্যার জন্য পরীক্ষা করে।
eslint:fix eslint ব্যবহার করে কোড ফরম্যাটিং সমস্যা চেক এবং স্বয়ংক্রিয়ভাবে ঠিক করে।
tslint:check tslint ব্যবহার করে কোড ফরম্যাটিং সমস্যার জন্য পরীক্ষা করে।
tslint:fix tslint ব্যবহার করে কোড ফরম্যাটিং সমস্যা চেক করে এবং স্বয়ংক্রিয়ভাবে ঠিক করে।
deps_graph:check_cycles চক্রীয় নির্ভরতার জন্য কোড বিশ্লেষণ করে।

সমস্যা সমাধান

সমস্যা সমাধানের জন্য নিম্নলিখিত টিপস ব্যবহার করুন:

  • ত্রুটি ProtocolError: missing required '<FIELD>' বা TypeError: Cannot read property '<PROP>' of null

    • এটি ঘটে যখন ট্রেস ফাইলটি একটি নতুন প্রোটো সংজ্ঞা দিয়ে তৈরি করা হয়, যাতে নতুন প্রয়োজনীয় ক্ষেত্র থাকে।

      1. নিশ্চিত করুন যে আপনি সঠিক Winscope সংস্করণে ট্রেস খুলছেন (মাস্টার, এস, বা আর)।
      2. আপনি যদি প্রোটোতে নতুন ক্ষেত্র তৈরি করেন, npm run build:protos ব্যবহার করে Winscope-এ প্রোটোগুলি পুনরায় কম্পাইল করুন।

  • কিছু ইনস্টল করা নির্ভরতা সংস্করণ ভুল (বিল্ড ব্যর্থ হয়)

    • package.json এবং package-lock.json এ পরিবর্তনগুলি প্রত্যাবর্তন করুন। node_modules সরান। আবার npm install চালান।
  • আমি প্রোটো ফাইলগুলির একটিতে একটি নতুন ক্ষেত্র যোগ করেছি। আমি এটা কিভাবে প্রদর্শন করব?

    • Winscope প্রোটো সংজ্ঞা ব্যবহার করে যখন এটি সংকলিত হয়েছিল, তাই নতুন ক্ষেত্রগুলি ডিফল্টরূপে প্রদর্শিত হবে না। নতুন ক্ষেত্রগুলি দেখানোর জন্য, npm run build:protos ব্যবহার করে প্রোটো পুনর্নির্মাণ করুন।