สร้างและรันแอปพลิเคชันเนทิฟ Android (ปฏิบัติการ) บน Ubuntu



ฉันมีฐานโค้ดที่เขียนด้วยภาษา C++ ระบบบิลด์ใช้สคริปต์ ndk-build ของ Android พร้อม makefiles ที่กำหนดไว้สำหรับ lib ที่ใช้ร่วมกันและปฏิบัติการได้ ไบนารีทำงานบนอุปกรณ์ Android

คำถามของฉันคือ มีความเป็นไปได้ที่จะใช้การกำหนดค่าบิลด์ปัจจุบันและสร้างไฟล์ปฏิบัติการนี้เพื่อทำงานบนโฮสต์ในพื้นที่ของฉันเช่น อูบุนตู?
ฉันลองแล้ว (ด้วยตัวอย่างง่ายๆ เช่น "สวัสดีชาวโลก") โดยที่ ABI เปลี่ยนเป็น x86_64 แต่วิธีนี้ไม่ได้ผล ไฟล์ปฏิบัติการใช้ตัวเชื่อมโยงแบบไดนามิกจากสภาพแวดล้อมของ Android

คุณมีความคิดวิธีการตั้งค่านี้หรือไม่?


person radeks-l    schedule 13.10.2016    source แหล่งที่มา
comment
ปัญหาที่คุณจะต้องเจอคือลิงก์ไดนามิกกับ android libs IIRC สภาพแวดล้อม Android ไม่รองรับ libs มาตรฐานเต็มรูปแบบ และไม่ว่าในกรณีใด จะเป็นเวอร์ชันอื่น ทางออกที่ดีที่สุดของคุณคือเพิ่มขั้นตอนการสร้างที่สองโดยกำหนดเป้าหมายไปที่ Linux คุณจะต้องทำ googling เพื่อดูว่าฟีเจอร์ c/c++ ใดบ้างที่มีใน Android เวอร์ชันที่กำหนด ฉันถูกจับได้ว่า รหัสของฉันรันบน 4.1, 4.3, 5 และ 6 แต่ล้มเหลวใน 4.0   -  person jhbh    schedule 13.10.2016


คำตอบ (1)


ไม่ใช่ด้วยระบบการสร้างเดียวกัน ndk-build สามารถสร้างได้เฉพาะไบนารีของ Android เท่านั้น

หากคุณย้ายบิลด์ของคุณไปยังระบบอื่น (make, cmake หรืออะไรก็ตาม) โค้ดของคุณอาจใช้งานได้ หาก NDK ชิ้นเดียวที่คุณใช้คือ libc/libm/libdl ก็ควรจะใช้งานได้ (แม้ว่าจะมีส่วนขยาย Android บางตัวใน libc และ libdl) หากคุณใช้ไลบรารีเฟรมเวิร์ก Android ใด ๆ มันจะไม่ทำงานเนื่องจากไลบรารีเหล่านั้นไม่มีอยู่ในระบบ Ubuntu

person Dan Albert    schedule 13.10.2016