2013-10-07 1 views
22

मैं एंड्रॉयड की चींटी स्क्रिप्ट संदेश है कि यह "पूर्व Dexing" है देखते हैं। हालांकि डेक्स और प्री-डेक्स एक ही विकल्प का उपयोग करता है, सिवाय इसके कि एक समय में एक जार एक समय में, अन्य मामले में एक समय में कई जार।एंड्रॉइड प्री-डेक्सिंग क्या है और यह प्रदर्शन को कैसे बढ़ाता है?

वास्तविक आवश्यकता क्या है? प्री-डेक्स अनिवार्य है?

, उदा,

The ' characters around the executable and arguments are 
not part of the command. 
     [dex] Pre-Dexing F:\users\tejasoft\work\fnd\cmn\tools\social\sz\demo\libs\pinit-sdk-1.0.jar -> pinit-sdk-1.0-e3bebafa2727504605edf3d8d85b5d46.jar 
     [dx] Current OS is Windows 7 
     [dx] Executing 'D:\Apps\java\embd\cmn\android\oems\google\adt\4.x\4.3.x\4.3\sdk\build-tools\18.1.0\dx.bat' with arguments: 
     [dx] '--dex' 
     [dx] '--output' 
     [dx] 'F:\users\tejasoft\work\fnd\cmn\tools\social\sz\demo\bin\dexedLibs\pinit-sdk-1.0-e3bebafa2727504605edf3d8d85b5d46.jar' 
     [dx] 'F:\users\tejasoft\work\fnd\cmn\tools\social\sz\demo\libs\pinit-sdk-1.0.jar' 
     [dx] 
     [dx] The ' characters around the executable and arguments are 
     [dx] not part of the command. 
Execute:Java13CommandLauncher: Executing 'D:\Apps\java\embd\cmn\android\oems\google\adt\4.x\4.3.x\4.3\sdk\build-tools\18.1.0\dx.bat' with arguments: 
'--dex' 
'--output' 
'F:\users\tejasoft\work\fnd\cmn\tools\social\sz\demo\bin\dexedLibs\pinit-sdk-1.0-e3bebafa2727504605edf3d8d85b5d46.jar' 
'F:\users\tejasoft\work\fnd\cmn\tools\social\sz\demo\libs\pinit-sdk-1.0.jar' 

The ' characters around the executable and arguments are 
not part of the command. 
     [dex] Converting compiled files and external libraries into F:\users\tejasoft\work\fnd\cmn\tools\social\sz\demo\bin\classes.dex... 
     [dx] Current OS is Windows 7 
     [dx] Executing 'D:\Apps\java\embd\cmn\android\oems\google\adt\4.x\4.3.x\4.3\sdk\build-tools\18.1.0\dx.bat' with arguments: 
     [dx] '--dex' 
     [dx] '--output' 
     [dx] 'F:\users\tejasoft\work\fnd\cmn\tools\social\sz\demo\bin\classes.dex' 
     [dx] 'F:\users\tejasoft\work\fnd\cmn\tools\social\sz\demo\bin\classes' 
     [dx] 'F:\users\tejasoft\work\fnd\cmn\tools\social\sz\demo\bin\dexedLibs\classes-144740ee5cf8b90b747300d19fb8201e.jar' 
     [dx] 'F:\users\tejasoft\work\fnd\cmn\tools\social\sz\demo\bin\dexedLibs\classes-1593da1bb60c5ec741aca494963e04a3.jar' 
     [dx] 'F:\users\tejasoft\work\fnd\cmn\tools\social\sz\demo\bin\dexedLibs\classes-37bb5269e4fbd6dda9900fea95c0c29b.jar' 
+1

इससे इस बीमारी के Dexing प्रक्रिया बाहरी पुस्तकालयों है कि आप अपने परियोजना में शामिल हो सकता है के लिए किया जाता है। दूसरा Dexing प्रक्रिया अपने अनुप्रयोग के लिए (.class .dex करने के लिए [DEX सिस्टम स्मृति और गति में विवश के लिए अधिक उपयुक्त है]) है। प्रत्येक बार जब आप ऐप बनाते हैं तो प्री-डेक्सिंग की आवश्यकता होती है क्योंकि: 1) ऐप में कुछ कोड (बाहरी लाइब्रेरी से लिया गया) ठीक से नहीं चल सकता है। 2) पुस्तकालय (जो आप एक बाहरी साइट से डाउनलोड कर दिए हैं) (एसडीके उपकरण इस के लिए एक चेतावनी जारी करता है) एक पुराने जावा संकलक के साथ संकलित किया गया है हो सकता है। – 10101010

उत्तर

19

यह इस मामले कि आप जावा, जो वास्तव में Dalvik क्रम के रूप में एक ही बात नहीं है में काम कर रहे हैं में याद करने के लिए उपयोगी है। ओरेकल से जावा, पूरी तरह से अलग वर्चुअल मशीन का उपयोग करता है, जबकि डाल्विक विशेष रूप से मोबाइल उपकरणों के लिए ठीक-ठीक है।

DEX प्रक्रियाओं अपने जावा संकलित जार फ़ाइलों लेते हैं और उन्हें लगता है कि एंड्रॉयड पर चलेगा Dalvik निष्पादन योग्य फ़ाइलें (.dex) फ़ाइलों में कनवर्ट करता है। ओरेकल जेवीएम दल्विक रनटाइम की तुलना में अलग बाइटकोड का उपयोग करता है, जिससे इस कदम को एक आवश्यकता होती है।

आप अपने परियोजना में शामिल हो सकता है के रूप में वे भी और उसके बाद अपने वास्तविक परियोजना के लिए किसी अन्य प्रक्रिया एक मानक जावा के साथ संकलित किया गया है, पुस्तकालयों के लिए एक प्रक्रिया है।

यह अंतिम प्रक्रिया के रूप में दो कदम, अपने आवेदन में किया है, पहले से ही पुस्तकालय फ़ाइलें dexed करने के लिए कोड परिवर्तन के लिए संदर्भ करते हुए प्रक्रिया में व्यस्त है से बचने के लिए उपयोग की आवश्यकता है।

आप http://source.android.com/devices/tech/dalvik/index.html में और अधिक जानकारी प्राप्त कर सकते हैं - जहां आप भी देखेंगे कि Dalvik कुछ एआरटी कहा जाता है के साथ बदलने के लिए निर्धारित है।

संबंधित मुद्दे