2012-08-24 13 views
12

मैं एंड्रॉइड के लिए एक बड़ी सी ++ परियोजना (कुछ प्रकार की लाइब्रेरी प्रोजेक्ट, इसमें बिल्कुल कोई जीयूआई नहीं है) पोर्ट करने जा रहा हूं। यह वास्तव में एक दृश्य सी ++ प्रोजेक्ट है, लेकिन इसे लिनक्स को इंटरमीडिएट चरण के रूप में पोर्ट किया जाएगा। मुझे पता है कि एंड्रॉइड एक "पूर्ण" लिनक्स नहीं है और सभी POSIX फ़ंक्शंस प्रदान करने का दावा नहीं करता है, लेकिन मुझे यह भी पता है कि एनडीके का उपयोग करके एंड्रॉइड पर बहुत सारे "POSIXish फ़ंक्शंस" हैं।Android में सबसे महत्वपूर्ण POSIX फ़ंक्शन उपलब्ध नहीं हैं?

अब मेरी वास्तविक सवाल यह है:

कौन सा सबसे बड़ी/सबसे महत्वपूर्ण कार्यों कि पूर्ण POSIX सेट के साथ तुलना में एंड्रॉयड पर उपलब्ध नहीं हैं कर रहे हैं? इसलिए जब मैं विज़ुअल सी ++ से लिनक्स जीसीसी में पोर्टिंग कर रहा हूं तो मैं इसे ध्यान में रख सकता हूं।

मैं गूगल पर कुछ खोजने के लिए कोशिश की, लेकिन कुछ भी नहीं है वास्तव में उपयोगी पाया, बस यहाँ और वहाँ कुछ सामान है कि उल्लेख किया है वहाँ एंड्रॉयड पर कुछ POSIX कार्य हैं कि ...

+2

शायद यह आपकी मदद कर सकता है - http://mobilepearls.com/labs/native-android-api/ और यहां कुछ और अंतर्दृष्टि -http: //stackoverflow.com/questions/10235403/porting-embedded-visual-c -कोड-टू-एंड्रॉइड और यहां https://groups.google.com/forum/?fromgroups=#!topic/android-ndk/xZES51OYakY –

+0

http://stackoverflow.com/questions/4610086/pthread-cancel- विकल्प -इन-एंड्रॉइड-एनडीके – crossle

उत्तर

3

बायोनिक गूगल द्वारा एक recode

इस ब्लॉग में कुछ अतिरिक्त विवरण है। यह छोटा है लेकिन एंड्रॉइड के लिए अनुकूलित है।

मुझे पता है कि इसकी कमी की एकमात्र बड़ी बात वास्तव में pthread_cancel() फ़ंक्शन है।

मेरा अनुभव यह है कि यदि आप pthread_cancel() कॉल के बिना सफलतापूर्वक जीएनयू/लिनक्स को पोर्ट करते हैं, तो आपको अधिकतर ठीक होना चाहिए।

बीटीडब्ल्यू, आप किस प्रकार की लाइब्रेरी बनाने की कोशिश कर रहे हैं? इसका क्या उपयोग करता है? नेटवर्क, धागे ...

पीएस: यहां तक ​​कि लिनक्स पूरी तरह से पॉज़िक्स नहीं है।

1
2

साझा स्मृति भी कुछ है जो आपको एंड्रॉइड में अलग-अलग लागू हो सकती है। एंड्रॉइड कर्नेल पर shm_open और shm_unlink के साथ काम करने की कोशिश करते समय कड़ी टक्कर लगी थी। एंड्रॉइड एसिंक्रोनस साझा मेमोरी (ashmem) लागू करता है।

+0

हां, किसी को ashmem_create_region को कॉल करना है और इसे फाइल करने के लिए बाइंडर के माध्यम से प्रक्रियाओं के बीच लौटाए गए फ़ाइल डिस्क्रिप्टर को साझा करना है। – olegst