Bangun dan jalankan aplikasi asli Android (dapat dieksekusi) di Ubuntu



Saya memiliki basis kode yang ditulis dalam C++. Sistem build menggunakan skrip ndk-build Android dengan makefile yang ditentukan untuk lib bersama dan dapat dieksekusi. Biner berjalan di perangkat Android.

Pertanyaan saya adalah: apakah ada kemungkinan untuk menggunakan konfigurasi build saat ini dan membuat executable ini untuk dijalankan di host lokal saya, mis. Ubuntu?
Saya mencoba (dengan contoh sederhana seperti "hello world") dengan perubahan ABI ke x86_64 tetapi tidak berhasil. File yang dapat dieksekusi menggunakan tautan dinamis dari lingkungan Android.

Apakah Anda tahu cara mengaturnya?


person radeks-l    schedule 13.10.2016    source sumber
comment
Kemungkinan duplikat Bagaimana caranya membuat executable asli (baris perintah) untuk dijalankan di Android?   -  person    schedule 13.10.2016
comment
masalah yang akan Anda hadapi adalah dengan tautan dinamis terhadap lib Android. IIRC lingkungan Android tidak mendukung lib standar penuh dan bagaimanapun versinya akan berbeda. Taruhan terbaik Anda adalah menambahkan langkah build kedua yang menargetkan linux. Anda juga perlu melakukan beberapa googling untuk melihat fitur c/c++ mana yang tersedia pada versi Android tertentu. Saya telah ketahuan oleh hal itu. Kode saya berjalan pada 4.1, 4.3, 5, dan 6. tetapi macet pada 4.0.   -  person jhbh    schedule 13.10.2016


Jawaban (1)


Tidak dengan sistem build yang sama. ndk-build hanya dapat membuat biner Android.

Jika Anda memigrasikan build Anda ke sistem lain (make, cmake, apa pun) maka kode Anda mungkin berfungsi. Jika satu-satunya bagian NDK yang Anda gunakan adalah libc/libm/libdl, maka NDK tersebut akan berfungsi (walaupun ada beberapa ekstensi Android di libc dan libdl). Jika Anda mengandalkan salah satu pustaka kerangka Android maka itu tidak akan berfungsi karena pustaka tersebut tidak ada di sistem Ubuntu.

person Dan Albert    schedule 13.10.2016