আমি দীর্ঘ সময় ধরে কোড সম্পাদন এবং টিউনিংয়ের পরামিতিগুলি সম্পর্কে পড়ছি nd তবে, অ্যান্ড্রয়েড প্রোগ্রামগুলি আমার অন্যতম ফোকাস।
আসুন প্রথমে প্রাথমিক বা সর্বাধিক গুরুত্বপূর্ণ ধারণাগুলি অন্তর্ভুক্ত করা যাক যা আমাদের একটি সমাধানে পৌঁছাতে সহায়তা করে।
যেমন অ্যান্ড্রয়েড বিকাশকারী জানিয়েছেন
মডিউলটি স্বাধীনভাবে নির্মিত, পরীক্ষা এবং ডিবাগ করা যায়
অতএব, মডিউলগুলির নিজস্ব গ্রেডল এবং নির্ভরতা রয়েছে nd এবং আপনি প্রকল্পে এটি অন্বেষণ করতে পারেন Hierarchy Viewer
।
প্রকৃতপক্ষে, রক্ষণাবেক্ষণ সম্পর্কিত বিষয়গুলিতে Modulariization জোর । পারফরম্যান্স ম্যাটারগুলির থেকে ভিন্ন ec কারণ, মডুলারাইজেশনের এই গুরুত্বপূর্ণ প্রভাব রয়েছে:
- উত্তরাধিকারের গভীরতা বৃদ্ধি করুন
এটি এখানে একটি চিত্র রয়েছে যা আমি এটি পরিষ্কার করার জন্য এটি প্লট করেছি। যেমন আপনি দেখতে পাচ্ছেন.বিযুক্ত মডিউলটি ব্যবহার করে, পদ্ধতি এটিকে অনুরোধ করার জন্য আলাদা মডিউল ছাড়া 2N micro secs
তুলনা করা হয় N micro secs
।
এই প্রশ্নটি আমার মনে আপনার মনে আসে যে রেফারেন্সযুক্ত পদ্ধতিগুলি উত্তরাধিকারের গভীরতার সাথে কী সম্পর্কিত?
উত্তরটি হ'ল: যদিও মডুলারাইজেশন ব্যবহার করা রেফারেন্সযুক্ত পদ্ধতিগুলি বাড়ায় তবে এটি অ্যাপ্লিকেশনটির কার্য সম্পাদনকে প্রভাবিত করে না এবং মূল সম্ভাব্য সমস্যা হ'ল উত্তরাধিকারের গভীরতা যেখানে বেশিরভাগ ক্ষেত্রে উপেক্ষা করা যায় ।
আমি জোর দিয়েছি যে মডুলারাইজেশনে রেফারেন্স পদ্ধতিগুলি প্রতিটি মডিউল গ্রেডল এবং নির্ভরশীলতার কারণে বৃদ্ধি পেয়েছে
অ্যাপ্লিকেশন মডুলারাইজেশন কীভাবে রেফারেন্স পদ্ধতিটির পরিমাণ এত বেশি বাড়িয়ে দিতে পারে?
এমন পরিস্থিতিতে যেগুলি এপিএকে বিশ্লেষককে উল্লেখযোগ্যভাবে উল্লেখযোগ্য পদ্ধতিগুলি প্রভাবিত করে
এছাড়াও নোট করুন এবং কোড সঙ্কুচিত প্রতিটি উত্স কোড সংকলনের পরে একটি DEX ফাইলের বিষয়বস্তুগুলিকে যথেষ্ট পরিমাণে পরিবর্তন করতে পারে note
উপরের সরকারী বিবৃতি ছাড়াও, আমি আরেকটি শর্ত যুক্ত করতে চাই যার মধ্যে APK বিশ্লেষক প্রভাব ফেলবে:
বিকাশকারী কতগুলি মডুলারাইজেশনে অভিজ্ঞ?
মডুলারাইজেশন হল এমন একটি বাড়ির মতো যা আর্কিটেকচার (বিকাশকারী) নির্ধারণ করে যে কোথায় রান্নাঘর হওয়া উচিত এবং কোথায় রেস্ট রুম হওয়া উচিত এবং কোথায় ডব্লিউসি হওয়া উচিত।
যদি আর্কিটেকচার ডব্লিউসি এবং কিচেনকে একত্রিত করার সিদ্ধান্ত নেয়? হ্যাঁ এটি একটি বিপর্যয়।
বিকাশকারী খুব বেশি অভিজ্ঞ না হলে মডুলারাইজেশনের সময় এটি ঘটতে পারে।
অতিরিক্ত তথ্যের পাশাপাশি ওপি প্রশ্নের উত্তর দেওয়া
এখানে আমি মন্তব্যে অপ জিজ্ঞাসিত প্রশ্নের উত্তর
কেন গ্রেডল পৃথক রেফারেন্স পদ্ধতি পদ্ধতিতে যোগ করবে? এবং পৃথক নির্ভরতার জন্য, যদি চূড়ান্ত ফলাফলটি একক APK হয় তবে আমি মনে করি না যে অ্যাপ্লিকেশানে এবং বৈশিষ্ট্য মডিউলে সদৃশ নির্ভরতা রেফারেন্স পদ্ধতিতে গণনা যুক্ত করবে।
কারণ মডিউলগুলি তৈরি, পরীক্ষা এবং ডিবাগ করা যেতে পারে তারপরে তাদের নিজস্ব গ্রেডল এবং নির্ভরতা থাকতে হবে।
মাল্টি-মডিউল প্রকল্পটি মেনে চলার সময়, সংকলক বেশ কয়েকটি .dex
ফাইল উত্পন্ন করে :
.dex
মোট একীভূত নির্ভরতা জন্য একটি ফাইল
- মডিউল
.dex
গুলি
নির্ভরতা .dex
ফাইলটি সমস্ত মডিউল গ্রেডের একীভূত
আসুন দেখুন মডিউল গ্রেডাল কীভাবে চূড়ান্ত রেফারেন্সযুক্ত মথডস গণনাকে প্রভাবিত করে ?!
আছে 2 APK
একই ফলাফল কিন্তু রেফারেন্সড পদ্ধতি গন্য পার্থক্য সঙ্গে গুলি।
এগুলি উভয়ই খালি ক্রিয়াকলাপ যা 1.7k
রেফারেন্সযুক্ত পদ্ধতি গণনায় পার্থক্য রাখে যা তাদের কার্যকারিতার উপর নির্ভর করে খুব বেশি। তাদের মূল পার্থক্যটি তাদের মডিউলের গ্রেডলে রয়েছে যার মধ্যে একটি কনফিগার করা হয়েছিল
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
}
অন্য একটিতে কনফিগার করা হয়েছে
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.2.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4'
}
যদিও তারা কেবল খালি ক্রিয়াকলাপ তবে গ্রেডলে ন্যূনতম পার্থক্যের কারণে 1.7k
রেফারেন্সযুক্ত পদ্ধতি গণনায় পার্থক্য রয়েছে।
এবং অ্যাপ গ্রেডল হ'ল
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation project(path: ':module')
}
বড় উদ্বেগ হ'ল কেন পৃথকভাবে রেফারেন্স পদ্ধতির গণনাটি এপিকে বিশ্লেষকটিতে মোট রেফারেন্স পদ্ধতির গণনার চেয়ে আলাদা?
এটি কেবল আইডিই ফিল্টার অন্য কিছু নয়। নিশ্চিতভাবে, আপনি যদি কেবল একটি .dex
ফাইল নির্বাচন করেন তবে রেফারেন্স মেথড কাউন্টগুলি প্রতিটি সারির রেফারেন্সড মেথড কাউন্টের সমান সমান হয় তবে আপনি যদি .dex
ফাইলগুলি মাল্টি-সিলেক্ট করেন তবে আপনি SUM এবং প্রকৃত গণনার মধ্যে পার্থক্য দেখতে পাবেন কারণ বিশ্লেষকরা যে রেফারেন্সগুলিকে পছন্দ করেছেন তাদের ফিল্টার।
আপনার স্ক্রিনশটগুলিতে আপনি একাধিক .dex
ফাইল নির্বাচন করেছেন তারপরে বিশ্লেষক ফিল্টার সমতা।
আমাদের প্রকল্পে আমরা কেন্দ্রীভূত নির্ভরতা.gradle ফাইল ব্যবহার করছি যাতে বিভিন্ন সংস্করণের সুযোগ নেই। সুতরাং, আপনি কি ভাবেন আমাদের বৈশিষ্ট্য মডিউলগুলিতে নির্ভরতা এবং তাদের সংস্করণগুলির একই / সঠিক সেট থাকা সত্ত্বেও, এটি রেফারেন্সযুক্ত পদ্ধতির গণনা বাড়িয়ে দেবে?
তাত্ত্বিকভাবে এটি উল্লেখযোগ্য পদ্ধতির সংখ্যা বাড়ানো উচিত নয় । কিন্তু আমি যেমন এটি ব্যাখ্যা করেছি বিকাশকারী অভিজ্ঞতা চূড়ান্ত ফলাফলকে অত্যন্ত প্রভাবিত করে।
টিম অ্যানালাইজারের প্রকাশের আগে পারফরম্যান্সের সমস্যাগুলি যাচাই করা এবং ঠিক করা উচিত
- অগ্রগতি বিধি
- সঙ্কুচিত ও নিখুঁত সংস্থানসমূহ
- AndroidManifest.xml
- গ্রেড সেটিংস
এখন আমি এটি স্পষ্ট করে বলতে চাই যে বিকাশকারী অভিজ্ঞতা এবং কোড রক্ষণাবেক্ষণ চূড়ান্ত ফলাফলকে কীভাবে প্রভাবিত করে। আপনার APK যদি কেন্দ্রীভূত নির্ভরতা ব্যবহার করে
উপরের উদাহরণে, আমি যদি কেন্দ্রীয়ভাবে নির্ভরতা থাকি তবে আমি 5.1k
রেফারেন্স পদ্ধতিগুলি গণনা বাড়িয়েছি !!!!!
এটা কিভাবে সম্ভব?
উত্তরটি হ'ল: আমি প্রকল্পের ডিরেক্টরিতে কেবল একটি অকেজো এবং গোপন .jar
ফাইল যুক্ত করেছি libs
। আপনি চূড়ান্ত ফলাফলকে আমি প্রভাবিত করেছি ঠিক তেমন সহজ।
আপনি দেখতে পাচ্ছেন বিকাশকারী অভিজ্ঞতা চূড়ান্ত ফলাফলকে প্রভাবিত করে as ফলাফল হিসাবে, ব্যবহারিকভাবে এটি সম্ভবত সম্ভব যে তাত্ত্বিকভাবে হওয়া উচিত নয় যদিও রেফারেন্স পদ্ধতিগুলি বৃদ্ধি করা যেতে পারে ।
এবং কেন আমি সমান্তরাল সংকলন অক্ষম করে কেবলমাত্র 'অ্যাপ' মডিউলটি সংকলন করি কেন রেফারেন্স পদ্ধতি পদ্ধতিতে কোনও পার্থক্য নেই? এটি কেবলমাত্র 'অ্যাপ' মডিউলের নির্ভরতা ব্যবহার করা উচিত হ'ল তাই না?
সংকলনটির রেফারেন্স পদ্ধতিগুলির সাথে কোনও সম্পর্ক নেই it এটি বিকাশকারী যা মেনে চলেন তা মেনে চলে।
উপসংহার
আমি ইস্যুটির চারপাশে সমস্ত সম্ভাবনা কভার করেছি। প্রকৃতপক্ষে, এটি বিভিন্ন পরিস্থিতি থেকে উদ্ভূত হতে পারে এবং এই নির্দেশিকাটি ব্যবহার করে কোনও বিকাশকারী বিষয়টি সমাধান করতে পারে।
- আমি আশা করব যে আপনি কেন রেফারেন্স পদ্ধতিগুলি বৃদ্ধি পেয়েছিলেন এবং কেন কিছু ক্ষেত্রে এটি মারাত্মকভাবে বাড়ানো যেতে পারে।
- মডিউলগুলির গ্রেড এবং নির্ভরতা এবং মডুলারাইজেশন বৃদ্ধি মডিউল রয়েছে। অতএব, এই পদ্ধতি রেফারেন্স।
- সংশোধন আসলে অ্যাপ্লিকেশন কর্মক্ষমতা প্রভাবিত করে কিন্তু আপনার অ্যাপ্লিকেশন রক্ষণাবেক্ষণকে আরও উন্নত করে।
- মডুলারাইজেশনে বিকাশকারীদের অভিজ্ঞতাও চূড়ান্ত ফলাফলকে অত্যন্ত প্রভাবিত করে।
গুরুত্বপূর্ণ দ্রষ্টব্য: প্রায় সমস্ত বিবৃতি আমার তদন্ত এবং গবেষণা। প্রকৃতপক্ষে, ত্রুটি এবং ত্রুটি থাকতে পারে এবং ভবিষ্যতে আরও অনেক তথ্য যুক্ত করার জন্য আপডেট করা হবে।