APK বিশ্লেষকের কমান্ড-লাইন সংস্করণটি বিল্ড প্রক্রিয়া সম্পূর্ণ হওয়ার পরে আপনার APK-এর সংমিশ্রণে অবিলম্বে অন্তর্দৃষ্টি প্রদান করে এবং আপনাকে দুটি APK-এর মধ্যে পার্থক্য তুলনা করতে দেয়। APK বিশ্লেষক ব্যবহার করা আপনার অ্যাপের মধ্যে DEX ফাইল এবং সংস্থানগুলির সাথে ডিবাগিং সমস্যাগুলি ব্যয় করার সময়কে হ্রাস করে এবং আপনার APK এর আকার হ্রাস করে৷
apkanalyzer
android_sdk /cmdline-tools/ version /bin/apkanalyzer
এ Android SDK কমান্ড-লাইন টুলস প্যাকেজে অন্তর্ভুক্ত রয়েছে। বিকল্পভাবে, আপনি APK বিশ্লেষকের সাথে আপনার বিল্ড বিশ্লেষণে বর্ণিত Android স্টুডিওর মধ্যে APK বিশ্লেষক টুল অ্যাক্সেস করতে পারেন।
সিনট্যাক্স
apkanalyzer
সিনট্যাক্স হল:
apkanalyzer [global-options] subject verb [options] apk-file [apk-file2]
subject
হল আপনি যা জিজ্ঞাসা করতে চান এবং এটি সম্পূর্ণ APK বা APK এর একটি অংশ হতে পারে৷ একটি বিষয় নিম্নলিখিত যে কোনো হতে পারে:
-
apk
: অ্যাপ্লিকেশান আইডি, সংস্করণ কোড এবং সংস্করণের নাম হিসাবে APK ফাইলের বৈশিষ্ট্যগুলি বিশ্লেষণ করুন। -
files
: APK ফাইলের ভিতরে থাকা ফাইলগুলি বিশ্লেষণ করুন। -
manifest
: APK ফাইলের ভিতরে ম্যানিফেস্টের বিষয়বস্তু বিশ্লেষণ করুন। -
dex
: APK ফাইলের ভিতরে DEX ফাইলগুলি বিশ্লেষণ করুন। -
resources
: পাঠ্য, চিত্র এবং স্ট্রিং সংস্থান দেখুন।
আপনি বিষয় সম্পর্কে জানতে চান তা হল verb
। বিষয়, ক্রিয়াপদ এবং তাদের বিকল্পগুলি কমান্ড সম্পর্কে নিম্নলিখিত বিভাগে বর্ণিত হয়েছে।
প্রতিটি কমান্ডের জন্য আপনাকে একটি APK ফাইল নির্দিষ্ট করতে হবে। শুধুমাত্র apk compare
কমান্ডের জন্য আপনাকে একটি দ্বিতীয় APK নির্দিষ্ট করতে হবে।
যতক্ষণ পর্যন্ত বিকল্পটি দ্ব্যর্থহীন হয় ততক্ষণ আপনি প্রতিটি বিকল্পকে ছোট করতে পারেন। উদাহরণস্বরূপ, --human-readable
বৈশ্বিক বিকল্পটিকে ছোট করে -h
করা যেতে পারে।
নিম্নলিখিত উদাহরণটি apk
(বিষয়) এর file-size
(ক্রিয়া) পেতে বিশ্লেষণ করে এবং তারপরে মানব-পঠনযোগ্য বিন্যাসে ফাইলের আকার প্রিন্ট করে ( -h
বিকল্প):
apkanalyzer -h apk file-size myapk.apk
কমান্ড
নিম্নলিখিত কমান্ডের বিবরণগুলি বিষয় অনুসারে সংগঠিত হয় এবং প্রতিটি বিষয়ের জন্য উপলব্ধ ক্রিয়া এবং বিকল্প সংমিশ্রণ তালিকাভুক্ত করে:
| বর্ণনা |
---|---|
apk summary apk-file | অ্যাপ্লিকেশন আইডি, সংস্করণ কোড এবং সংস্করণের নাম প্রিন্ট করে। উদাহরণ আউটপুট: com.myapp 5 1.1-beta |
apk file-size apk-file | APK এর মোট ফাইলের আকার প্রিন্ট করে। |
apk download-size apk-file | APK-এর ডাউনলোড আকারের একটি অনুমান প্রিন্ট করে। |
apk features [--not-required] apk-file | APK দ্বারা ব্যবহৃত বৈশিষ্ট্যগুলি প্রিন্ট করে যা প্লে স্টোর ফিল্টারিং ট্রিগার করে৷ আউটপুটে প্রয়োজনীয় নয় হিসাবে চিহ্নিত বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করতে --not-required বিকল্প যোগ করুন।উদাহরণ আউটপুট: android.hardware.type.watch android.hardware.microphone implied: requested android.permission.RECORD_AUDIO permission |
apk compare [ options ] apk-file apk-file2 | apk-file এবং apk-file2 এর আকারের তুলনা করে। আপনি নিম্নলিখিত বিকল্পগুলি অন্তর্ভুক্ত করতে পারেন:
উদাহরণ আউটপুট (পুরানো আকার / নতুন আকার / আকার পার্থক্য / পথ): 39086736 48855615 9768879 / 10678448 11039232 360784 /classes.dex 18968956 18968956 0 /lib/ 110576 110100 -476 /AndroidManifest.xml ... |
APK ফাইল সিস্টেম দেখুন | বর্ণনা |
files list apk-file | APK-এ সমস্ত ফাইল তালিকাভুক্ত করে। উদাহরণ আউটপুট: / /classes2.dex /classes.dex /assets/ /assets/asset.data /AndroidManifest.xml /resources.arsc /res/ ... |
files cat --file path apk-file | ফাইলের বিষয়বস্তু প্রিন্ট করে। আপনাকে অবশ্যই --file path বিকল্পটি ব্যবহার করে APK এর ভিতরে একটি পাথ নির্দিষ্ট করতে হবে, যেমন --file /AndroidManifest.xml |
ম্যানিফেস্টে তথ্য দেখুন | বর্ণনা |
manifest print apk-file | XML ফর্ম্যাটে APK ম্যানিফেস্ট প্রিন্ট করে। |
manifest application-id apk-file | অ্যাপ্লিকেশন আইডি মান প্রিন্ট করে। |
manifest version-name apk-file | সংস্করণ নামের মান প্রিন্ট করে। |
manifest version-code apk-file | সংস্করণ কোড মান প্রিন্ট করে। |
manifest min-sdk apk-file | ন্যূনতম SDK সংস্করণ প্রিন্ট করে। |
manifest target-sdk apk-file | টার্গেট SDK সংস্করণ প্রিন্ট করে। |
manifest permissions apk-file | অনুমতির তালিকা প্রিন্ট করে। |
manifest debuggable apk-file | অ্যাপটি ডিবাগযোগ্য কিনা তা প্রিন্ট করে। |
DEX ফাইলের তথ্য অ্যাক্সেস করুন | বর্ণনা |
dex list apk-file | APK-এ DEX ফাইলগুলির একটি তালিকা প্রিন্ট করে। |
dex references [--files path ] [--files path2 ] apk-file | নির্দিষ্ট DEX ফাইলে পদ্ধতির রেফারেন্সের সংখ্যা প্রিন্ট করে। ডিফল্ট সব DEX ফাইল. আপনি অন্তর্ভুক্ত করতে চান এমন নির্দিষ্ট ফাইলগুলি নির্দেশ করতে --files বিকল্প যোগ করুন।উদাহরণ আউটপুট: classes.dex 59598 classes2.dex 8042 |
dex packages [ option1 option2 ... ] apk-file | DEX থেকে ক্লাস ট্রি প্রিন্ট করে। আউটপুটে, P , C , M , এবং F যথাক্রমে প্যাকেজ, ক্লাস, পদ্ধতি এবং ক্ষেত্র নির্দেশ করে। এবং x , k , r , এবং d যথাক্রমে সরানো, রাখা, রেফারেন্স এবং সংজ্ঞায়িত নোড নির্দেশ করে।আউটপুট পরিমার্জিত করতে নিম্নলিখিত বিকল্পগুলি যোগ করুন:
উদাহরণ আউটপুট (টাইপ/স্টেট/সংজ্ঞায়িত পদ্ধতি/উল্লেখিত পদ্ধতি/বাইটের আকার/নাম): P d 1 1 85 g P d 1 1 85 g.a C d 1 1 85 g.a.a M d 1 1 45 g.a.a java.lang.Object get() C r 0 1 40 byte[] M r 0 1 40 byte[] java.lang.Object clone() |
dex code --class class [--method method ] | smali বিন্যাসে একটি ক্লাস বা পদ্ধতির বাইটকোড প্রিন্ট করে। ক্লাসের নাম প্রয়োজন এবং ডিকম্পাইল করার জন্য সম্পূর্ণ যোগ্য শ্রেণীর নাম প্রিন্ট করে। ডিকম্পাইল করার পদ্ধতি নির্দিষ্ট করতে --method বিকল্প যোগ করুন। ডিকম্পাইল পদ্ধতির ফরম্যাট হল |
res/ এবং resources.arsc-এ সংরক্ষিত সম্পদ দেখুন | বর্ণনা |
resources packages | সম্পদ টেবিলে সংজ্ঞায়িত প্যাকেজগুলির একটি তালিকা প্রিন্ট করে। |
resources configs --type type [--package package ] apk-file | নির্দিষ্ট type জন্য কনফিগারেশনের একটি তালিকা প্রিন্ট করে। type হল একটি রিসোর্স টাইপ যেমন string । রিসোর্স টেবিল প্যাকেজের নাম উল্লেখ করতে চাইলে --package বিকল্পটি অন্তর্ভুক্ত করুন, অন্যথায় প্রথম সংজ্ঞায়িত প্যাকেজটি ব্যবহার করা হবে। | resources value --config config --name name --type type [--package package ] apk-file | config , name , এবং type দ্বারা নির্দিষ্ট করা সম্পদের মান প্রিন্ট করে। type বিকল্প হল রিসোর্সের ধরন, যেমন string । রিসোর্স টেবিল প্যাকেজের নাম উল্লেখ করতে চাইলে |
resources names --config config --type type [--package package ] apk-file | একটি কনফিগারেশন এবং প্রকারের জন্য সম্পদ নামের একটি তালিকা প্রিন্ট করে। type বিকল্প হল রিসোর্সের ধরন, যেমন string । রিসোর্স টেবিল প্যাকেজের নাম উল্লেখ করতে চাইলে --package বিকল্পটি অন্তর্ভুক্ত করুন, অন্যথায় প্রথম সংজ্ঞায়িত প্যাকেজটি ব্যবহার করা হবে। |
resources xml --file path apk-file | একটি বাইনারি XML ফাইলের মানব-পাঠযোগ্য ফর্ম প্রিন্ট করে। ফাইলের পথ নির্দিষ্ট করতে file বিকল্পটি অন্তর্ভুক্ত করুন। |