Skip to content
Back to Blog
informational

APK फ़ाइल क्या है? एंड्रॉइड पैकेज की पूरी जानकारी

2026-05-17 8 min read

संक्षेप में: APK एंड्रॉइड का ऐप कंटेनर है

एक APK फ़ाइल, या एंड्रॉइड पैकेज किट, वह फ़ाइल प्रारूप है जिसका उपयोग एंड्रॉइड ऐप्स को वितरित और इंस्टॉल करने के लिए करता है। यह विंडोज के .exe या macOS के .dmg का एंड्रॉइड संस्करण है, लेकिन यह एक ऐप के लिए आवश्यक सब कुछ एक कंप्रेस्ड फ़ाइल में पैक करता है। इसके अंदर, आपको कंपाइल्ड कोड, रिसोर्स, एसेट्स, सर्टिफिकेट और एक मैनिफ़ेस्ट फ़ाइल मिलेगी जो ऑपरेटिंग सिस्टम को बताती है कि ऐप को क्या करने की अनुमति है। यह प्रारूप सिर्फ एक विशेष ZIP फ़ाइल है। सच में। किसी भी .apk का नाम बदलकर .zip कर दें और आप इसे 7-Zip जैसे मानक आर्काइव टूल से खोल सकते हैं। अंदर, आपको एक मानक लेआउट दिखाई देगा: AndroidManifest.xml ऐप के पहचान पत्र के रूप में काम करता है, classes.dex में कंपाइल्ड कोड होता है, एक res/ फ़ोल्डर में लेआउट और इमेज होते हैं, और META-INF/ डायरेक्टरी में क्रिप्टोग्राफ़िक हस्ताक्षर होते हैं जो साबित करते हैं कि पैकेज प्रामाणिक है। Google Play Store से मिलने वाला हर एक ऐप APK के रूप में ही दिया जाता है। बस आप उस फ़ाइल को कभी नहीं देख पाते क्योंकि Play Store पर्दे के पीछे डाउनलोड और इंस्टॉलेशन का प्रबंधन करता है। जब आप किसी और जगह से कोई ऐप लेते हैं - इस प्रक्रिया को साइडलोडिंग कहा जाता है - तो आप APK फ़ाइल को खुद संभाल रहे होते हैं। साइडलोडिंग एक पूरी तरह से कानूनी और समर्थित एंड्रॉइड सुविधा है, लेकिन इसके लिए आपको एक स्विच चालू करना होगा: एंड्रॉइड 8+ पर Settings > Apps > Special app access में 'Install unknown apps' को सक्षम करें, या एंड्रॉइड 7 और उससे पहले के संस्करणों में Settings > Security में पुराने 'Unknown sources' टॉगल को चालू करें।

एक APK के अंदर वास्तव में क्या होता है

आइए एक असली APK को खोलकर देखें कि एक एंड्रॉइड ऐप कैसे बनता है। उदाहरण के लिए, एक सामान्य मौसम ऐप 18-25 MB की फ़ाइल हो सकती है जिसमें सैकड़ों अलग-अलग फाइलें होती हैं, जो सभी विशिष्ट डायरेक्टरी में व्यवस्थित होती हैं। सबसे पहले आता है AndroidManifest.xml। APK के अंदर, यह वह मानव-पठनीय टेक्स्ट फ़ाइल नहीं है जिसे एक डेवलपर लिखता है; यह एक कंप्रेस्ड बाइनरी XML (AXML) है। यह फ़ाइल ऐप की आत्मा है। यह पैकेज का नाम (जैसे com.example.weatherapp), न्यूनतम और लक्ष्य एंड्रॉइड SDK संस्करण, ऐप द्वारा उपयोग की जाने वाली हर स्क्रीन (Activity) और बैकग्राउंड टास्क (Service), और इंटरनेट (INTERNET) से लेकर सटीक लोकेशन (ACCESS_FINE_LOCATION) तक के लिए आवश्यक सभी अनुमतियों की घोषणा करता है। इसके बाद, आपके पास classes.dex है। यह फ़ाइल - और कभी-कभी बड़े ऐप्स के लिए classes2.dex या classes3.dex - में कंपाइल्ड एप्लिकेशन लॉजिक होता है। DEX का मतलब डाल्विक एक्जीक्यूटेबल (Dalvik Executable) है। भले ही आधुनिक डिवाइस पुराने डाल्विक वीएम के बजाय एंड्रॉइड रनटाइम (ART) का उपयोग करते हैं, लेकिन यह नाम बना हुआ है। res/ डायरेक्टरी वह जगह है जहाँ सभी गैर-कोड एसेट्स रहते हैं। यह XML लेआउट फ़ाइलों, स्ट्रिंग अनुवादों, रंगों और एनिमेशन से भरा होता है। एंड्रॉइड के लिए विकसित करने वाले किसी भी व्यक्ति को यह फ़ोल्डर अच्छी तरह से पता है; यह कई घनत्व बकेट (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi) में व्यवस्थित ड्रॉएबल इमेज का भी घर है। एक सिंगल बटन आइकन पांच अलग-अलग रिज़ॉल्यूशन में मौजूद हो सकता है ताकि एंड्रॉइड किसी भी स्क्रीन के लिए एकदम सही वाला चुन सके। एक सहयोगी फ़ाइल, resources.arsc, एक कंपाइल्ड टेबल है जो रिसोर्स आईडी को इन फ़ाइलों से मैप करती है, जिससे कोड को रनटाइम पर R.drawable.ic_launcher मिल जाता है। lib/ डायरेक्टरी में नेटिव कंपाइल्ड लाइब्रेरी (.so फाइलें) होती हैं, जो CPU आर्किटेक्चर के अनुसार क्रमबद्ध होती हैं: armeabi-v7a, arm64-v8a, x86, और x86_64। हालांकि हर ऐप को इनकी आवश्यकता नहीं होती है, लेकिन आप इन्हें लगभग हमेशा गेम्स और अन्य प्रदर्शन-महत्वपूर्ण एप्लिकेशन में पाएंगे।

APK बनाम AAB: गूगल ने वितरण प्रारूप क्यों बदला

अगस्त 2021 में, गूगल ने डेवलपर्स के लिए खेल बदल दिया, जब उसने नए Play Store ऐप्स को APK के बजाय एंड्रॉइड ऐप बंडल (.aab) के रूप में सबमिट करना आवश्यक कर दिया। यह अंतर महत्वपूर्ण है यदि आप मैन्युअल रूप से एक ऐप इंस्टॉल करने की कोशिश कर रहे हैं और यह नहीं समझ पा रहे हैं कि GitHub से वह .aab फ़ाइल क्यों काम नहीं कर रही है। यहाँ समझने वाली सबसे महत्वपूर्ण बात यह है: AAB एक *प्रकाशन* प्रारूप है, न कि एक *इंस्टॉलेशन* प्रारूप। एक डेवलपर AAB में सब कुछ बंडल करता है - सभी स्क्रीन घनत्व, CPU आर्किटेक्चर और भाषाओं के लिए कोड और रिसोर्स। जब वह AAB Google Play पर पहुंचता है, तो गूगल के सर्वर इसे एक ब्लूप्रिंट के रूप में उपयोग करते हैं ताकि सिर्फ आपके विशिष्ट डिवाइस के लिए एक अत्यधिक अनुकूलित APK (या स्प्लिट APK का एक सेट) बनाया और परोसा जा सके। यदि आपके पास फ्रेंच-भाषा का Pixel 7 है, तो आपको केवल arm64-v8a लाइब्रेरी, xxhdpi रिसोर्स और फ्रेंच स्ट्रिंग्स वाला एक APK मिलता है। इससे डाउनलोड एक-साइज़-फिट-ऑल APK की तुलना में 15-40% छोटा हो जाता है। ठीक यही कारण है कि आप बस एक AAB डाउनलोड करके उसे इंस्टॉल नहीं कर सकते। आपका फ़ोन यह नहीं जानता कि बंडल को कैसे पार्स किया जाए और उसे क्या चाहिए, यह कैसे निकाला जाए। GitHub जैसी साइट पर, आपको या तो एक यूनिवर्सल APK (एक बड़ी फ़ाइल जो हर जगह काम करती है) या स्प्लिट APK का एक संग्रह मिलेगा, जिसे एक साथ जोड़ने के लिए SAI (स्प्लिट APK इंस्टॉलर) जैसे एक विशेष टूल की आवश्यकता होती है। जब साइडलोडिंग की बात आती है, तो क्लासिक APK अभी भी राजा है। यह वह प्रारूप है जिसके साथ आप वास्तव में काम करेंगे। मैनुअल इंस्टॉलेशन के लिए APK होस्ट करने वाली प्रतिष्ठित साइटें, जैसे APKMirror, इन यूनिवर्सल APK वेरिएंट को प्रदान करती हैं क्योंकि वे अंतिम-उपयोगकर्ता द्वारा सीधे इंस्टॉल करने योग्य होती हैं, कोई अतिरिक्त कदम आवश्यक नहीं है।

PC पर APK फ़ाइलों को कैसे खोलें, जांचें और कन्वर्ट करें

आप अपने आप को पूरी तरह से जायज कारणों से अपने डेस्कटॉप पर एक APK फ़ाइल के साथ काम करते हुए पा सकते हैं। हो सकता है कि आप किसी ऐप के आइकन को पूर्ण रिज़ॉल्यूशन पर निकालना चाहते हों, इंस्टॉल करने से पहले उसकी अनुमतियों की जांच करना चाहते हों, अनुवाद स्ट्रिंग्स को बाहर निकालना चाहते हों, या उसके कुछ आंतरिक एसेट्स को अधिक प्रयोग करने योग्य प्रारूप में बदलना चाहते हों। सरल एसेट निकालने के लिए, बस APK का नाम बदलकर .zip कर देना आपको आश्चर्यजनक रूप से बहुत आगे ले जाएगा। लेकिन एक वास्तविक निरीक्षण के लिए, विशेष रूप से बाइनरी XML फ़ाइलों को पढ़ने के लिए, आपको एक उचित टूल की आवश्यकता है। मैं हमेशा apktool की सलाह देता हूँ। यह बाइनरी मैनिफ़ेस्ट और रिसोर्स फ़ाइलों को वापस मानव-पठनीय टेक्स्ट में डीकोड करता है। अपने टर्मिनल में `apktool d myapp.apk` चलाने से सब कुछ एक फ़ोल्डर में अनपैक हो जाता है, जिससे आप अनुरोधित हर अनुमति को आसानी से पढ़ सकते हैं या देख सकते हैं कि ऐप किस एंड्रॉइड API स्तर के लिए बनाया गया था। जब आपका लक्ष्य विशेष रूप से इमेज एसेट्स को निकालना और कन्वर्ट करना है, तो CocoConvert जैसा टूल बहुत तेज़ वर्कफ़्लो प्रदान करता है। मैन्युअल रूप से अनज़िप करने और नेस्टेड `res/` फ़ोल्डरों में खोदने के बजाय, आप सीधे APK अपलोड कर सकते हैं। CocoConvert आपको PNG आइकन, स्प्लैश स्क्रीन और UI ग्राफ़िक्स निकालने देता है, फिर उन्हें अपने इच्छित रिज़ॉल्यूशन पर SVG, WebP, या JPEG जैसे प्रारूपों में कन्वर्ट करने देता है। यह इस विशिष्ट कार्य के लिए एक बहुत बड़ा समय बचाने वाला है। हालांकि, इसके दायरे के बारे में स्पष्ट रहें। CocoConvert फ़ाइल प्रारूप रूपांतरण के लिए बनाया गया है, न कि गहरे कोड विश्लेषण के लिए। यदि आपका लक्ष्य डाल्विक बाइटकोड को वापस जावा स्रोत में रिवर्स-इंजीनियर करना है, तो आपको jadx या क्लासिक dex2jar/JD-GUI कॉम्बो जैसे एक समर्पित डीकंपाइलर की आवश्यकता होगी। वे शक्तिशाली डेवलपर टूल हैं। इसी तरह, CocoConvert एक संशोधित APK को फिर से पैकेज या फिर से साइन नहीं करेगा; यह एक जटिल प्रक्रिया है जिसके लिए एंड्रॉइड SDK बिल्ड टूल और आपकी अपनी साइनिंग कुंजियों की आवश्यकता होती है।

APK फ़ाइलों के सुरक्षा जोखिम (और उनका मूल्यांकन कैसे करें)

APK को साइडलोड करने की स्वतंत्रता एक वास्तविक लाभ है जो एंड्रॉइड को iOS पर मिलता है। लेकिन उस स्वतंत्रता के साथ वास्तविक सुरक्षा जोखिम आते हैं, और हमें अस्पष्ट चेतावनियों के बिना, सीधे उनके बारे में बात करने की आवश्यकता है। दुर्भावनापूर्ण APK कोई मिथक नहीं हैं; वे एक अच्छी तरह से प्रलेखित समस्या हैं। स्कैमर एक लोकप्रिय ऐप ले सकते हैं, उसमें स्पाइवेयर, बैंकिंग ट्रोजन, या एडवेयर डाल सकते हैं, और फिर उसे एक नकली अपडेट या क्रैक किए गए गेम के रूप में फिर से पैकेज कर सकते हैं। ESET मोबाइल थ्रेट रिपोर्ट लगातार दिखाती है कि अधिकांश एंड्रॉइड मैलवेयर तीसरे पक्ष के APK स्रोतों से आता है, न कि आधिकारिक Play Store से। तो, किसी भी अनौपचारिक स्रोत से कोई भी APK इंस्टॉल करने से पहले, आपको अपना होमवर्क करना होगा। क्रिप्टोग्राफ़िक हस्ताक्षर को सत्यापित करके शुरू करें। हर वैध APK उसके डेवलपर द्वारा हस्ताक्षरित होता है। आप इसे एंड्रॉइड SDK बिल्ड-टूल्स से `apksigner verify --print-certs myapp.apk` का उपयोग करके जांच सकते हैं। यदि प्रमाणपत्र विवरण डेवलपर की सार्वजनिक कुंजी से मेल नहीं खाते हैं, तो यह एक बहुत बड़ा रेड फ्लैग है। इसके बाद, मैनिफ़ेस्ट में अनुमतियों का निरीक्षण करें। एक साधारण टॉर्च ऐप को आपके टेक्स्ट संदेशों को पढ़ने (READ_SMS) या ऑडियो रिकॉर्ड करने (RECORD_AUDIO) के लिए नहीं पूछना चाहिए। अंत में, हमेशा पैकेज के नाम और संस्करण संख्या को डेवलपर की आधिकारिक वेबसाइट पर सूचीबद्ध जानकारी से क्रॉस-रेफरेंस करें। यदि आप केवल अपने डेस्कटॉप पर एक APK से एसेट्स निकाल रहे हैं, तो जोखिम कम है क्योंकि आप ऐप के कोड को निष्पादित नहीं कर रहे हैं। फिर भी, फ़ाइल को पहले VirusTotal के माध्यम से चलाना एक अच्छी आदत है। यह फ़ाइल को एक मिनट से भी कम समय में 70 से अधिक एंटीवायरस इंजनों के खिलाफ स्कैन करता है। हालांकि 0/72 का स्कोर सुरक्षा की 100% गारंटी नहीं है, लेकिन 15/72 का स्कोर फ़ाइल को तुरंत हटाने का एक स्पष्ट संकेत है।

सामान्य APK कार्य और प्रत्येक के लिए सही टूल

लोग सभी प्रकार के कारणों से APK फ़ाइलों के साथ काम करते हैं, और काम के लिए सही टूल का उपयोग करने से आपका बहुत समय बच सकता है। यहाँ कार्य को टूल से मिलाने के लिए एक त्वरित गाइड है। यदि आप किसी ऐप का पुराना संस्करण इंस्टॉल करना चाहते हैं, तो आपका सबसे अच्छा दांव यह है कि इसे APKMirror जैसे विश्वसनीय स्रोत से डाउनलोड करें, जो यह सत्यापित करता है कि APK हस्ताक्षर Play Store के मूल हस्ताक्षरों से मेल खाते हैं। अपने फ़ाइल मैनेजर के लिए 'Install unknown apps' सक्षम करें, डाउनलोड किए गए APK पर टैप करें, अनुमतियों की समीक्षा करें, और इंस्टॉलेशन की पुष्टि करें। ऐप आइकन या इमेज एसेट्स निकालने के लिए, सबसे आसान तरीका एक फ़ाइल रूपांतरण टूल का उपयोग करना है। APK को CocoConvert पर अपलोड करें, जहाँ आप `res/drawable` या `res/mipmap` की सामग्री को ब्राउज़ कर सकते हैं, अपनी ज़रूरत के PNGs ले सकते हैं, और उन्हें अपने लक्ष्य प्रारूप में बदल सकते हैं। यह मॉकअप बनाने वाले डिजाइनरों या एसेट्स की दोबारा जांच करने वाले डेवलपर्स के लिए एकदम सही है। यदि आप इंस्टॉल किए बिना मैनिफ़ेस्ट पढ़ना या अनुमतियों की जांच करना चाहते हैं, तो apktool का उपयोग करें। यह मुफ़्त, ओपन-सोर्स और क्रॉस-प्लेटफ़ॉर्म है। कमांड `apktool d -s myapp.apk` एक बढ़िया शॉर्टकट है जो केवल रिसोर्स को डीकोड करता है, सोर्स कोड को छोड़ देता है, इसलिए यदि आपको केवल मैनिफ़ेस्ट की आवश्यकता है तो यह बहुत तेज़ है। ऐप को जावा सोर्स कोड में डीकंपाइल करने के लिए, jadx का उपयोग करें। यह आधुनिक मानक है और पुराने टूल जैसे dex2jar की तुलना में नए DEX प्रारूपों को बहुत बेहतर तरीके से संभालता है। इसका GUI (`jadx-gui`) भी कोड को नेविगेट करने के लिए उत्कृष्ट है। बस सावधान रहें: यदि ऐप ऑबफस्केशन (जैसे ProGuard या R8) का उपयोग करता है, तो आप a.b.c.d जैसे अर्थहीन क्लास नामों को घूर रहे होंगे, जिन्हें समझना एक दुःस्वप्न हो सकता है। एक APK को संशोधित करने और फिर से पैक करने के लिए, आपको डीकोड करने के लिए `apktool`, अपने परिवर्तन करने, फिर से बनाने के लिए फिर से `apktool` की आवश्यकता होगी, और फिर पैकेज को तैयार करने और फिर से साइन करने के लिए एंड्रॉइड SDK से `zipalign` और `apksigner` की आवश्यकता होगी। यह एक जटिल वर्कफ़्लो है जिसे CocoConvert सहित कोई भी ऑनलाइन कनवर्टर आपके लिए नहीं संभाल सकता है।

आपको वास्तव में एक APK फ़ाइल को कन्वर्ट करने की आवश्यकता कब होगी

'APK रूपांतरण' शब्द का अर्थ बहुत अलग चीजें हो सकता है, इसलिए यह स्पष्ट होना महत्वपूर्ण है कि वास्तव में क्या संभव है और क्या सिर्फ इच्छाधारी सोच है। रूपांतरण का सबसे आम और उपयोगी प्रकार एसेट निकालना है। उदाहरण के लिए, एक डिजाइनर को एक प्रस्तुति के लिए APK से लॉन्चर आइकन लेने और उन्हें PNG से SVG में बदलने की आवश्यकता हो सकती है। या एक QA इंजीनियर आंतरिक XML फ़ाइलों से सभी स्ट्रिंग रिसोर्स को खींच सकता है और उन्हें अनुवाद समीक्षा के लिए CSV में बदल सकता है। यह एक सीधा-सादा फ़ाइल-प्रारूप रूपांतरण है, और यह ठीक वही है जिसके लिए CocoConvert जैसे टूल डिज़ाइन किए गए हैं। एक और व्यावहारिक उपयोग मामला किसी ऐप के मौजूदा इमेज एसेट्स को WebP जैसे अधिक कुशल प्रारूप में बदलना है। गूगल ने API स्तर 17 (एंड्रॉइड 4.2) से एंड्रॉइड पर WebP के लिए जोर दिया है क्योंकि यह तुलनीय गुणवत्ता के साथ PNG की तुलना में 25-34% छोटे फ़ाइल आकार प्रदान करता है। एक पुराने ऐप के PNGs को निकालना और उन्हें बैच-कन्वर्ट करके WebP में बदलना एक स्मार्ट ऑप्टिमाइज़ेशन है। अब उसके लिए जो आप *नहीं* कर सकते। आप एक एंड्रॉइड APK को iOS IPA फ़ाइल में नहीं बदल सकते। यह असंभव है। प्लेटफ़ॉर्म मौलिक रूप से भिन्न हैं, उनके कंपाइल्ड कोड और UI फ्रेमवर्क से लेकर उनके सुरक्षा मॉडल और रनटाइम वातावरण तक। एक APK में डाल्विक बाइटकोड होता है जो एंड्रॉइड पर चलता है; इसमें से कुछ भी iOS पर निष्पादित नहीं होगा। एक-क्लिक APK-से-IPA रूपांतरण की पेशकश करने का दावा करने वाली कोई भी सेवा झांसा दे रही है। सबसे अच्छा, वे एप्लिकेशन को पूरी तरह से, स्क्रैच से फिर से लिखने का वर्णन कर रहे हैं, जो बिल्कुल भी 'रूपांतरण' नहीं है। इसी तरह, एक APK को विंडोज EXE फ़ाइल में बदलना कोई वास्तविक चीज़ नहीं है। BlueStacks या विंडोज सबसिस्टम फॉर एंड्रॉइड जैसे एंड्रॉइड एमुलेटर विंडोज पर APK को *चलाने* के लिए एक पूर्ण एंड्रॉइड वातावरण बनाते हैं। वे जादुई रूप से ऐप के कोड को एक नेटिव विंडोज एक्जीक्यूटेबल में नहीं बदलते हैं। जब आप बड़े वादे करने वाले टूल देखते हैं तो इस अंतर को समझना महत्वपूर्ण है।