ন্যূনতম এসডিকে সংস্করণ / লক্ষ্য এসডিকে সংস্করণ বনাম সংকলন এসডিকে সংস্করণটির মধ্যে পার্থক্য কী?


214

"মিনিট এসডিকে সংস্করণ / টার্গেট এসডিকে সংস্করণ" এবং "সংকলন এসডিকে সংস্করণ" এর মধ্যে পার্থক্যগুলি কী? আমি জানি মিনিট এবং টার্গেট এসডিকে কী বোঝায়, তবে এসডিকে সংস্করণ সংকলন বলতে কী বোঝায়?

ইক্লিপসে, আমার ন্যূনতম / সর্বোচ্চ এবং লক্ষ্য এসডিকে আছে তবে অ্যান্ড্রয়েড স্টুডিওতে এই তিনটি সেটিংস রয়েছে।


আমি বর্তমানে এমন একটি অ্যাপে কাজ করছি যেখানে আমি টার্গেটসডভার্সনটি 12 হিসাবে ব্যবহার করেছি এবং আমার সমস্ত লেআউটগুলি অস্বাভাবিকভাবে কাজ করছে তখন আমি এটি আবার 23 এ পরিবর্তন করি এবং এটি একটি কবজির মতো কাজ করে তাই আমি মনে করি টার্গেটসডিকে সংস্করণটি সর্বদা সংকলিত সংস্করণের মতোই হতে পারে
শহীদ সরওয়ার

উত্তর:


232

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

লক্ষ্য SDK সংস্করণ সংস্করণ আপনার আবেদন করা হয়েছিল লক্ষ্যবস্তু চালানোর। আদর্শভাবে, এটি সর্বোত্তম রান শর্তগুলির এক ধরণের কারণে। যদি আপনি "সংস্করণ 19 এর জন্য আপনার অ্যাপ্লিকেশনটি তৈরি করেন" তবে এটি এখানে নির্দিষ্ট করা হবে। এটি আগে বা পরে প্রকাশে চালানো যেতে পারে তবে আপনি এটির জন্য লক্ষ্য রেখেছিলেন। এটি বেশিরভাগ ক্ষেত্রে আপনার অ্যাপ্লিকেশনটি মার্কেটপ্লেস ইত্যাদিতে ব্যবহারের জন্য কতটা বর্তমান তা নির্দেশ করে is

কম্পাইল SDK সংস্করণ অ্যান্ড্রয়েড আপনার আইডিই (অথবা আমি অনুমান কম্পাইল অন্যান্য উপায়ে) যখন আপনি একটি প্রকাশ আপনার অ্যাপ্লিকেশান করতে ব্যবহার এর সংস্করণ .apkফাইল। এটি আপনার অ্যাপ্লিকেশনটি পরীক্ষা করার জন্য দরকারী কারণ আপনার অ্যাপ্লিকেশনটি বিকাশ করার সাথে সাথে এটি সংকলন করা একটি সাধারণ প্রয়োজন। যেহেতু এটি কোনও এপিএকে সংকলনের সংস্করণ হবে, এটি স্বাভাবিকভাবেই আপনার প্রকাশের সংস্করণ হবে। তেমনি, এটি আপনার টার্গেটের এসডিকে সংস্করণটি মেলাতে যুক্তিযুক্ত।


আমার সংকলন sdk সংস্করণ এবং লক্ষ্য sdk সংস্করণ একই। এটি 21 My আমি অ্যান্ড্রয়েডে নতুন, আমার এখন কীভাবে এগিয়ে যাওয়া উচিত?
prgmrDev

2
@prgmrDev যদি আপনার অ্যাপ্লিকেশনটি 21 এর চেয়ে কম সংস্করণে ক্র্যাশ হয়ে থাকে, আপনার সম্ভবত আপনার ন্যূনতম এসডিকে সংস্করণটি 21 এ সেট করা উচিত This এটি আপনার অ্যাপ্লিকেশনটিকে 21-এর চেয়ে কম টার্গেটগুলিতে স্থির করবে না, এটি কেবল লক্ষ্য করবে যে আপনার অ্যাপটি কম সংস্করণগুলিতে অসমর্থিত। আপনার অ্যাপ্লিকেশনটি ঠিক কী ভাঙছে (নির্ধারিত সংস্করণ ২১, -এ কী পরিবর্তন হয়েছে) তা নির্ধারণ করার এবং সেই নির্ভরতার যত্ন নেওয়ার জন্য সমর্থন যোগ করার বিকল্পও আপনার রয়েছে, তবে আমি সন্দেহ করি যে অ্যান্ড্রয়েড শিক্ষানবিশের ক্ষেত্রের মধ্যে না হয়ে অনেক কাজ হবে suspect প্রকল্পের।
ম্যাট

1
আমি আমার minSdkVersion = 14 সেট করলে কী হয়; targetSdkVersion = 23; এবং এসডিকে 19 তে সংকলন করবেন?
থাদিউজলে

5
@ দাঁদেউজলে আপনার প্রশ্নটি অপ্রাসঙ্গিক কারণ আপনার কিছুটা চিন্তা করা উচিত যে আপনি যদি ২৩ সংস্করণে চালানোর লক্ষ্য রাখেন তবে এটি কীভাবে 19 দিয়ে সংকলন করা সম্ভব! দয়া করে minSdkVersion <= targetSdkVersion <= compileSdkVersion সূত্রটি অনুসরণ করুন
আসাদ

@ ম্যাট এটি কি ঘটতে পারে যে উদাহরণস্বরূপ কম্পাইল ভার্সন 26 ব্যবহার করার সময়, আমি ঘটনাক্রমে কোনও বৈশিষ্ট্য বা জাভা এপিআই ব্যবহার করি যা 21 সংস্করণে সমর্থিত নয়, যা মিনিট এসডিকে? দুঃখিত, সত্যিই এখানে কিছু মৌলিক ধারণা পাওয়া যাচ্ছে না
হার্ট

83

সূত্রটি হ'ল

minSdkVersion <= targetSdkVersion <= compileSdkVersion

minSdkVersion - এমন একটি মার্কার যা একটি ন্যূনতম অ্যান্ড্রয়েড সংস্করণ সংজ্ঞায়িত করে যেখানে অ্যাপ্লিকেশনটি ইনস্টল করতে সক্ষম হবে। এছাড়াও এটি লিঙ্ক দ্বারা ব্যবহৃত কলিং এপিআই প্রতিরোধ করতে ব্যবহার করা হয় যা বিদ্যমান নেই। এছাড়াও এটি বিল্ড টাইমের উপর প্রভাব ফেলে। সুতরাং আপনি বিকাশের সময় সর্বাধিক থেকে মিনিএসডিকি ভার্সনকে ওভাররাইড করতে বিল্ড স্বাদগুলি ব্যবহার করতে পারেন। এটি অ্যান্ড্রয়েড দল আমাদের সরবরাহ করে এমন সমস্ত উন্নতি ব্যবহার করে দ্রুত তৈরি করতে সহায়তা করবে। উদাহরণস্বরূপ জাভা 8 এর কয়েকটি বৈশিষ্ট্য কেবল মিনিএসডিকি ভার্সনের নির্দিষ্ট সংস্করণ থেকে পাওয়া যায়।

টার্গেটএসডিভি ভার্সন - নির্দিষ্ট আচরণ পরিবর্তনগুলি চালু করতে অ্যান্ড্রয়েড সিস্টেম বলে।

উদাহরণ স্বরূপ:

  • অ্যান্ড্রয়েড 6.০ (এপিআই স্তরের ২৩) Runtime Permissionsপ্রবর্তন করা হয়েছিল। আপনি যদি targetSdkVersion22 এ সেট করেন বা আপনার অ্যাপ্লিকেশনটি কম করে দেয় কোনও রান ব্যবহারকারীকে কোনও অনুমতি দেওয়ার জন্য জিজ্ঞাসা করে না।

  • অ্যান্ড্রয়েড 8.0 (এপিআই স্তর 26) থেকে শুরু করে, সমস্ত notificationsঅবশ্যই একটি চ্যানেলে বরাদ্দ করা উচিত বা এটি প্রদর্শিত হবে না। অ্যানড্রয়েড .1.১ (এপিআই স্তর 25) এবং এর চেয়ে কম চলমান ডিভাইসগুলিতে, ব্যবহারকারীরা কেবলমাত্র প্রতিটি অ্যাপ-অ্যাপ্লিকেশন ভিত্তিতে বিজ্ঞপ্তিগুলি পরিচালনা করতে পারেন (কার্যকরভাবে প্রতিটি অ্যাপ্লিকেশনটিতে অ্যান্ড্রয়েড .1.১ এবং তার চেয়ে কমের উপর একটি চ্যানেল রয়েছে)।

  • অ্যান্ড্রয়েড 9 (এপিআই স্তর 28) থেকে শুরু হচ্ছে Web-based data directories separated by process,। যদি targetSdkVersion28+ হয় এবং আপনি WebViewবিভিন্ন প্রক্রিয়াতে বেশ কয়েকটি তৈরি করেন তবে আপনি পাবেনjava.lang.RuntimeException

compileSdkVersion - আসলে এটি এসডিকে প্ল্যাটফর্ম সংস্করণ এবং গ্রেডল কে বলে যে অ্যান্ড্রয়েড এসডিকে সংকলন করতে ব্যবহার করে। আপনি যখন .javaঅ্যানড্রয়েড এসডিকে থেকে নতুন বৈশিষ্ট্যগুলি বা ডিবাগ ফাইলগুলি ব্যবহার করতে চান আপনার কমপাইল এসডকে ভার্সনের যত্ন নেওয়া উচিত। আরও একটি উদাহরণ ব্যবহার করছে AndroidX যে বাহিনী ব্যবহার করতে compileSdkVersion- স্তর 28. compileSdkVersion আপনার APK এ অন্তর্ভুক্ত নেই : এটি বিশুদ্ধরূপে এ ব্যবহার করা হয় compile time। আপনার কম্পাইলএসডিকি ভার্সন পরিবর্তন করা রানটাইম আচরণ পরিবর্তন করে না। এটি উদাহরণস্বরূপ নতুন সংকলক সতর্কতা / ত্রুটি উত্পন্ন করতে পারে। সুতরাং আপনি সর্বদা সর্বশেষতম এসডিকে সংকলন করার জন্য দৃ that়ভাবে সুপারিশ করা হয়। আপনি বিদ্যমান কোডে নতুন সংকলন চেকের সমস্ত সুবিধা পাবেন, সদ্য প্রত্যাখ্যানিত API গুলি এড়িয়ে চলুন এবং নতুন API গুলি ব্যবহারের জন্য প্রস্তুত থাকবেন। আরও একটি ঘটনা হ'লcompileSdkVersion >= Support Library version

আপনি এটি সম্পর্কে এখানে আরও পড়তে পারেন । এছাড়াও আমি আপনাকে অ্যান্ড্রয়েড 8.0 তে মাইগ্রেশনের উদাহরণটি একবার দেখার পরামর্শ দিচ্ছি ।


9
সেরা উত্তর এখানে কারণ এটি আসলে টার্গেটএসডিকি ভার্সন এবং সংকলন এসডেক ভার্সনের মধ্যে ব্যবহারিক পার্থক্য ব্যাখ্যা করে
ডিন ওয়াইল্ড

@ yoAlex5 আপনার উত্তরের জন্য ধন্যবাদ। আমি দেখতে পাই অনেকগুলি কেস টার্গেটএসডিকি ভার্সন এবং কমপাইল এসডেক ভার্সন একই রকম। অ্যান্ড্রয়েড দুটি পৃথক পৃথক করে কেন একটি পরিচালনা করার পক্ষে পর্যাপ্ত হতে পারে না বা দুটি পৃথক ক্ষেত্র তৈরি করার পিছনে কোনও নির্দিষ্ট কারণ আছে?
মঞ্জু

@Manju আপনি এখন থ্রেড আরো জানতে পারেন stackoverflow.com/questions/26694108/...
yoAlex5

@ yoAlex5 আপনার অর্থ 'নির্দিষ্ট আচরণের পরিবর্তনগুলি চালু করতে অ্যান্ড্রয়েড সিস্টেম' বলতে কী বোঝাতে পারেন?
কে_কুমার

@atishr 'নির্দিষ্ট আচরণের পরিবর্তনগুলি' 'উদাহরণস্বরূপ' ব্লক
yoAlex5

74

সর্বনিম্ন SDK সংস্করণ অ্যান্ড্রয়েড অপারেটিং সিস্টেম আপনার অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় ন্যূনতম সংস্করণ।

লক্ষ্য SDK সংস্করণ Android এর সংস্করণ যে আপনার অ্যাপ চালানোর তৈরি করা হয়েছে।

কম্পাইল SDK সংস্করণ যে Android এর সংস্করণ বিল্ড সরঞ্জাম ব্যবহার কম্পাইল এবং রিলিজ, চালান, বা ডিবাগ করার জন্য আবেদন নির্মান করে।

সাধারণত সংকলন এসডিকে সংস্করণ এবং লক্ষ্য এসডিকে সংস্করণ একই থাকে।


23
এবং যখন তারা একই উপকারিতা না হয়?
পাউডার366

4

compileSdkVersion : compileSdkVersion অ্যাপ্লিকেশনটির বিপরীতে সংকলিত করা API এর সংস্করণ। এর অর্থ আপনি এপিআইয়ের সেই সংস্করণে অন্তর্ভুক্ত অ্যান্ড্রয়েড এপিআই বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন (পাশাপাশি সমস্ত পূর্ববর্তী সংস্করণও স্পষ্টতই)। আপনি যদি এপিআই 16 বৈশিষ্ট্যগুলি ব্যবহার করে ব্যবহার করেন তবে 15 টি সংকলন এসডকে ভার্সন সেট করেন তবে আপনি একটি সংকলন ত্রুটি পাবেন। আপনি যদি 16 এ সংকলনড্ডক ভার্সন সেট করেন তবে আপনি এখনও একটি এপিআই 15 ডিভাইসে অ্যাপ চালাতে পারেন।

minSdkVersion : আপনার অ্যাপ্লিকেশনটি চালানোর জন্য ন্যূনতম এসডিকে সংস্করণটি অ্যান্ড্রয়েড অপারেটিং সিস্টেমের সর্বনিম্ন সংস্করণ।

টার্গেটএসডিকি ভার্সন : টার্গেট এসডিকে সংস্করণ হ'ল আপনার সংস্করণটি চালানোর জন্য লক্ষ্যযুক্ত সংস্করণ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.