অ্যান্ড্রয়েড .dex ফাইল কি?


193

ডেক্স ফাইল সম্পর্কিত আমার কিছু প্রশ্ন আছে

  • dexঅ্যান্ড্রয়েডে একটি ফাইল কী ?
  • ডেক্স অ্যান্ড্রয়েডের জন্য কীভাবে কাজ করে?
  • কীভাবে তারা কোনও অ্যান্ড্রয়েড অ্যাপ ডিবাগ করতে ব্যবহৃত হয়?
  • এগুলি কি জাভা ক্লাসের ফাইলগুলির মতো?

আমার নির্দিষ্ট তথ্য প্রয়োজন দয়া করে এটিতে সহায়তা করুন এবং সত্যিকারের উদাহরণগুলি স্বাগত!


Plz এই লিঙ্কে দেখেছি stackoverflow.com/questions/1249973/...
Gensheriff

কিভাবে তাদের ডিভাইসে চালানোর জন্য: stackoverflow.com/questions/10199863/...
সিরো Santilli郝海东冠状病六四事件法轮功

উত্তর:


226

.Dex ফাইল সম্পর্কে:

Dalvik Virtual Machine(অ্যান্ড্রয়েড সিস্টেমের অধীনে ওয়ার্কহর্স) এর অন্যতম উল্লেখযোগ্য বৈশিষ্ট্য এটি জাভা বাইটকোড ব্যবহার করে না। পরিবর্তে, ডেক্স নামে একটি হোমগ্রাউন ফর্ম্যাট চালু করা হয়েছিল এবং এমনকি বাইটকোড নির্দেশাবলী জাভা বাইটকোড নির্দেশের মতো নয়।

Compiled Android application code file.

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

ডেক্স ফাইল ফর্ম্যাট:

 1. File Header
 2. String Table
 3. Class List
 4. Field Table
 5. Method Table
 6. Class Definition Table
 7. Field List
 8. Method List
 9. Code Header
10. Local Variable List

অ্যান্ড্রয়েডের Dalvik Executable Format( .dex ফাইলগুলি) নথি রয়েছে । আপনি অফিসিয়াল ডক্সে আরও জানতে পারবেন: ডেক্স ফাইল ফর্ম্যাট

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

আপনি android- decompilesdk এ সরবরাহ করা সরঞ্জামটি ব্যবহার করে .dex করতে পারেন dexdump

এছাড়া কিছু রিভার্স ইঞ্জিনিয়ারিং প্রযুক্তি একটি করতে jar fileবা java class fileA থেকে .dexফাইল।


আমার জার ফাইলটিতে সম্পত্তির ফোল্ডারে কিছু এক্সএমএল রয়েছে। আমি এটি .dex এর একটি অংশ হতে চাই কোনও ধারণা কীভাবে এটি বাস্তবায়ন করতে পারে?
অ্যান্ড্রয়েডগুই

@ অ্যান্ড্রয়েডগুই - জার ফাইলটিতে আপনার জন্য অ্যান্ড্রয়েড লাইব্রেরি প্যাকেজটি ব্যবহার করতে হবে এমন কোনও অ্যান্ড্রয়েড রিসোর্স প্যাকেজ (/ সম্পদ) নেই।
ব্যবহারকারী370305

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

একটি গুরুত্বপূর্ণ বিষয় লক্ষণীয় তা dexdumpহ'ল একটি
সংক্রামক

90
.dex file

সংকলিত অ্যান্ড্রয়েড অ্যাপ্লিকেশন কোড ফাইল।

অ্যান্ড্রয়েড প্রোগ্রামগুলি .dex (ডালভিক এক্সিকিউটেবল) ফাইলগুলিতে সংকলিত হয়, যা ঘুরে ফিরে ডিভাইসে একক .apk ফাইলে জিপ করা হয়। জাভা প্রোগ্রামিং ভাষায় লিখিত সংকলিত অ্যাপ্লিকেশনগুলি অনুবাদ করে অ্যান্ড্রয়েড দ্বারা .dex ফাইলগুলি স্বয়ংক্রিয়ভাবে তৈরি করা যেতে পারে।


2
আমার জার ফাইলটিতে সম্পত্তির ফোল্ডারে কিছু এক্সএমএল রয়েছে। আমি এটি .dex এর একটি অংশ হতে চাই কোনও ধারণা কীভাবে এটি বাস্তবায়ন করতে পারে?
অ্যান্ড্রয়েডগুই

87

dex ফাইল ডালভিক ভিএম-তে চালিত একটি ফাইল on

ডালভিক ভিএম পারফরম্যান্স অপটিমাইজেশন, যাচাইকরণ এবং পর্যবেক্ষণের জন্য বেশ কয়েকটি বৈশিষ্ট্য অন্তর্ভুক্ত করেছে যার মধ্যে একটি ডালভিক এক্সিকিউটেবল (ডিএক্স)

জাভা উত্স কোড .classফাইলগুলি জাভা সংকলক দ্বারা সংকলিত হয় । তারপরে dx(ডেক্সার) সরঞ্জাম, অ্যান্ড্রয়েড এসডিকে-র অংশটি ডালভিক বাইট কোড ধারণ করে এমন .classএকটি ফাইল ফর্ম্যাটে ফাইলগুলি প্রক্রিয়া করে DEXdxটুল সব ঘটিয়েছে অপ্রয়োজনীয় তথ্য ক্লাসের উপস্থিত। ইন DEXসব আবেদন শ্রেণীর এক ফাইলে বস্তাবন্দী হয়। নিম্নলিখিত টেবিলটি JVM জার ফাইলগুলির জন্য কোড মাপের এবং dexসরঞ্জামটি দ্বারা প্রক্রিয়া করা ফাইলগুলির মধ্যে তুলনা সরবরাহ করে ।

সারণী সিস্টেম লাইব্রেরি, ওয়েব ব্রাউজার অ্যাপ্লিকেশন এবং একটি সাধারণ উদ্দেশ্য অ্যাপ্লিকেশন (অ্যালার্ম ক্লক অ্যাপ্লিকেশন) এর জন্য কোড আকারের সাথে তুলনা করে। সব ক্ষেত্রে ডেক্স সরঞ্জামটি কোডের আকার 50% এরও বেশি হ্রাস করে।

এখানে চিত্র বর্ণনা লিখুন

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

সংকলন পদক্ষেপ অ্যান্ড্রয়েড প্ল্যাটফর্মে একই, সুতরাং একাধিক .classফাইলের ফলে । তবে .classফাইলগুলি তৈরি হওয়ার পরে , "dx" সরঞ্জামটি সমস্ত .classফাইলকে একক .dex, বা ডালভিক এক্সিকিউটেবল, ফাইলে রূপান্তর করতে ব্যবহৃত হয় । এটি সেই .dexফাইল যা ডালভিক ভিএম-তে কার্যকর করা হয়। .dexফাইল মেমরির ব্যবহারের জন্য অপ্টিমাইজ করা হয়েছে এবং নকশা প্রাথমিকভাবে তথ্য ভাগ দ্বারা চালিত হয়।


18
ভাল তথ্য। শুধু একটি বিষয় উল্লেখ করা। কখনও কখনও একাধিক ডেক্স ফাইল থাকতে পারে কারণ পদ্ধতি আহ্বান নির্দেশের নম্বর সীমা। এই সীমাটি 65k পদ্ধতি। সেক্ষেত্রে আপনার কোডটি কোনও একক ফাইলের মধ্যে না হয়ে 2 বা তার বেশি হবে তবে অন্য সব কিছুই এখনও প্রয়োগ হয়। ডায়নামিক ক্লাস লোডিংও যেহেতু উপলভ্য তাই আপনি ফাইলগুলি থেকে কোডটি (আবার ডেক্সড আকারে) লোড করতে পারেন এবং এইভাবে একাধিক ডেক্স ফাইলের মধ্যে কোডটি থাকবে।
ইগর Čordaš
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.