API ของ Android คือ Java ตั้งแต่ปี 2010 Google ให้บริการ NDK (SDK) สำหรับนักพัฒนา C / C ++
NDK เสนอสองวิธี:
- สำหรับอุปกรณ์ android 1.5 คุณสามารถโหลดเอลฟ์ไลบรารีและใช้จากแอปพลิเคชัน java ผ่าน JNI บริดจ์
- สำหรับอุปกรณ์ android 2.3 คุณสามารถใช้ NativeActivity เพื่อข้ามรหัสกิจกรรม Java สำหรับแอปพลิเคชันแบบเต็มหน้าจอ
NDK เสนอ C / C ++ API ไม่กี่:
- libc หลอกที่เรียกว่าไบโอนิก: ฟังก์ชั่นจำนวนมากไม่สามารถใช้ได้
- ไลบรารี pthread
- OpenGL ES 1.x (> Android 1.5) และ OpenGL ES 2.x (Android 2.0)
- OpenSL (รองรับอย่าง จำกัด บน Android 2.3)
แต่ API จำนวนมากเป็น Java เท่านั้น (มีให้ใน JNI ด้วย)
รุ่น NDK 5 เป็นรุ่นแรกที่ใช้งานได้สำหรับนักพัฒนา C ++ เพราะมี:
- RTTI
- สนับสนุนข้อยกเว้น
- STLport
- gdb รองรับโปรแกรมแบบมัลติเธรด
การดำเนินการที่เจ็บปวดที่สุดคือการแก้ไขข้อบกพร่องบนอุปกรณ์ Android ดังนั้นฉันจึงพัฒนาเฟรมเวิร์กหลายแพลตฟอร์มของตัวเอง (OS X, Windows, Linux, iOS และ Android) เพื่อดีบักครั้งแรกบนแพลตฟอร์มเดสก์ท็อปแพลตฟอร์ม iOS ถัดไป (บนตัวจำลอง) และสุดท้าย (Android)
android Emulator (ไม่ใช่ตัวจำลอง) มีประสิทธิภาพต่ำและไม่สามารถจำลอง OpenGL ES 2.x ฉันแนะนำอุปกรณ์จริงเพื่อการพัฒนา
คุณสามารถหาข้อมูลที่เป็นประโยชน์มากมาย: