আরমেবি কোডের উপরে আরমেবি-ভি 7a কোড কেন ব্যবহার করবেন?


141

আমার বর্তমান প্রকল্পে আমি একাধিক .so ফাইল ব্যবহার করি। এগুলি আরমেবি এবং আরমেবি-ভি 7a ফোল্ডারে অবস্থিত। দুর্ভাগ্যক্রমে .so ফাইলগুলির মধ্যে একটি 6MB এবং আমার ফাইলের আকার হ্রাস করতে হবে। ফ্যাটযুক্ত এপিএইচ ফাইলের পরিবর্তে আমি কেবল আরমেবি ফাইল ব্যবহার করতে এবং আরমেবি-ভি 7a ফোল্ডারটি সরিয়ে ফেলতে চাই।

এনডিকে ডকুমেন্টেশন অনুসারে, আরমেবি-ভি 7a কোডটি বাড়ানো হয়েছে আরমেবি কোড যা অতিরিক্ত সিপিইউ নির্দেশাবলী ধারণ করতে পারে। এটি আমার দক্ষতার বাইরে চলে গেছে তবে আমি প্রশ্ন করি কেন একজনকে আরমেবি-ভি 7 এ এবং আরমেবি কোড উভয়ই থাকতে চান। দুটোই থাকার একটা ভাল কারণ থাকতে হবে, তাই না?

আমার পরীক্ষার ডিভাইসে এগুলি ঠিকঠাক কাজ করছে বলে মনে হচ্ছে। এগুলিতে এআরএম ভি 7 সিপিইউ রয়েছে। এখনই সবকিছু কাজ করে তা ধরে নেওয়া কি নিরাপদ?


2
আপনি এই ব্লগপোস্টটি এখনই পড়তে চান। : এটা পুঙ্খানুপুঙ্খ এবং আপ-টু-ডেট হয় androidbycode.wordpress.com/tag/armeabi-v7a
IgorGanapolsky

2
এবং এখন ডকটি বলেছেন:armeabi is deprecated in NDK r16. Removed in NDK r17. No hard float.
আমির রেজাজ্জাদে

1
পরে যারা আসছেন তাদের জন্য এখানে একবার দেখুন ।
আমির রেজাজ্জাদে

উত্তর:


163

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


1
উভয় এবিআইয়ের মধ্যে আমি কোথায় পার্থক্য পেতে পারি? আমি খুব বাস্তব পার্থক্য বুঝতে instersted করছি ...
webshaker


1
গুগল প্লে পাওয়ার জন্য কোনও ইজেডেন্ট সমাধান সম্পর্কে কোনও ধারণা আপনাকে এই দুটি পৃথক এপিএস আপলোড করতে দেয়? ম্যানিফেস্টে পার্থক্য করার কোনও উপায় নেই যে এগুলি আলাদা Google গুগল প্লে কেবল একটির সাথে অন্যটির প্রতিস্থাপন করতে চায় (তাদের বিভিন্ন সংস্করণ কোড রয়েছে)
ডিন ওয়াইল্ড

11
@ ডিনওয়াইল্ড গুগল এখন একাধিক এপিএল বৈশিষ্ট্য প্লে স্টোরটিতে বিভিন্ন সিপিইউ আর্কিটেকচারকে টার্গেট করার জন্য সমর্থন যোগ করেছে: ডেভেলপার.অ্যান্ড্রয়েড.
চার্লস হারলে

1
@ ইগরগানাপলস্কি, এটি দেখানোর জন্য ধন্যবাদ। এটি এখন সঠিক লিঙ্ক: ডেভেলপার.অ্যান্ড্রয়েড.
চার্লস হারলে

60

EABI = এম্বেডেড অ্যাপ্লিকেশন বাইনারি ইন্টারফেস। এটি এমন নির্দিষ্টকরণ যা একটি নির্দিষ্ট কার্যকর পরিবেশে কার্যকর করতে কার্যকর করতে অবশ্যই কার্যকর করতে হবে form এটি এআরএম আর্কিটেকচারের জন্য ব্যবহৃত সরঞ্জামচইনের মধ্যে আন্তঃসংযোগের জন্য প্রয়োজনীয় সংকলন এবং সংযোগের বিভিন্ন দিকও নির্দিষ্ট করে। এই প্রসঙ্গে আমরা যখন আরমেবি সম্পর্কে কথা বলি তখন আমরা এআরএম আর্কিটেকচার এবং জিএনইউ / লিনাক্স ওএস সম্পর্কে বলি। অ্যান্ড্রয়েড লিটল এন্ডিয়ান এআরএম জিএনইউ / লিনাক্স এবিআই অনুসরণ করে।

আরমেবি অ্যাপ্লিকেশনটি এআরএমভি 5 (উদাঃ এআরএম 9) এবং এআরএমভি 6 (উদাঃ এআরএম 11) এ চলবে। আপনি যদি উপযুক্ত অ্যাপ্লিকেশন যেমন -mfpu = vfpv3 -mfloat-abi = softfp ব্যবহার করে অ্যাপ্লিকেশন তৈরি করেন তবে আপনি ফ্লোটিং পয়েন্ট হার্ডওয়্যার ব্যবহার করতে পারেন যা ভিএফপি হার্ডওয়্যারের জন্য ভাসমান পয়েন্ট নির্দেশিকা তৈরি করতে কম্পাইলারকে বলে এবং সফট-ফ্লোট কলিং কনভেনশনগুলিকে সক্ষম করে। আরমেবি হার্ড-ফ্লোট কলিং কনভেনশনগুলিকে সমর্থন করে না (এর অর্থ এফপি রেজিস্টারগুলিতে কোনও ফাংশনের জন্য যুক্তি ধারণ করতে ব্যবহৃত হয় না), তবে এইচডাব্লুতে এফপি অপারেশনগুলি এখনও সমর্থিত।

আরমেবি-ভি 7 এ অ্যাপ্লিকেশন কর্টেক্স এ # ডিভাইসে কর্টেক্স এ 8, এ 9, এবং এ 15 এর মতো চলবে। এটি মাল্টি-কোর প্রসেসরগুলিকে সমর্থন করে এবং এটি -mfloat-abi = শক্ত সমর্থন করে । সুতরাং, আপনি যদি -mfloat-abi = হার্ড ব্যবহার করে আপনার অ্যাপ্লিকেশন তৈরি করেন তবে আপনার অনেক ফাংশন কল দ্রুত হবে faster


1
বিকাশকারী.অ্যান্ড্রয়েডThe armeabi-v7a ABI uses the -mfloat-abi=softfp switch . com / ndk / guides / abis.html অনুসারে :। সুতরাং -Mfloat-abi = শক্ত সমর্থন করে আপনি কী বোঝাতে চাইছেন ?
ইগোরগানাপলস্কি

8

ফ্যাটযুক্ত এপিএইচ ফাইলের পরিবর্তে আমি কেবল আরমেবি ফাইল ব্যবহার করতে এবং আরমেবি-ভি 7a ফোল্ডারটি সরিয়ে ফেলতে চাই।

বিপরীত একটি আরও ভাল কৌশল। আপনার যদি minSdkVersion14 টি করতে হয় এবং প্লে স্টোরটিতে আপনার এপিকে আপলোড করেন তবে আপনি লক্ষ্য করবেন যে আপনি সমর্থন করেন armeabiবা না করেন সেই একই সংখ্যক ডিভাইসকে সমর্থন করবেন । অতএব, অ্যান্ড্রয়েড 4 বা উচ্চতর কোনও ডিভাইস নেই যা মোটামুটিভাবে উপকৃত armeabiহবে।

এ কারণেই সম্ভবত অ্যান্ড্রয়েড armeabiএনডিকে পুনর্বিবেচনা r17b অনুযায়ী আর সমর্থন করে না । [ উত্স ]

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