Saya mencoba mengembangkan / port game ke Android, tetapi di C, dan Android mendukung Java, tapi saya yakin pasti ada cara untuk mendapatkan aplikasi C di sana, ada yang tahu cara untuk mencapai ini?
Saya mencoba mengembangkan / port game ke Android, tetapi di C, dan Android mendukung Java, tapi saya yakin pasti ada cara untuk mendapatkan aplikasi C di sana, ada yang tahu cara untuk mencapai ini?
Jawaban:
Bagi siapa pun yang datang ke ini melalui Google, perhatikan bahwa mulai dari SDK 1.6 Android sekarang memiliki SDK asli resmi.
Anda dapat mengunduh Android NDK (Native Development Kit) dari sini: https://developer.android.com/ndk/downloads/index.html
Juga ada posting blog tentang NDK:
http://android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html
The Android NDK adalah toolset yang memungkinkan Anda menerapkan bagian dari aplikasi Anda dalam kode asli, menggunakan bahasa seperti C dan C ++. Untuk jenis aplikasi tertentu, ini dapat membantu Anda menggunakan kembali pustaka kode yang ditulis dalam bahasa tersebut.
Untuk info lebih lanjut tentang cara memulai pengembangan asli, ikuti tautan ini .
Contoh aplikasi dapat ditemukan di sini .
Biasanya, Anda harus:
Jika Anda ingin menjual aplikasi:
Google telah merilis Native Development Kit (NDK) (menurut http://www.youtube.com/watch?v=Z5whfaLH1-E pada 00:07:30).
Semoga informasi ini akan diperbarui di halaman grup google ( http://groups.google.com/group/android-ndk ), karena dikatakan belum dirilis.
Saya tidak yakin dari mana mendapatkan unduhan sederhana untuk itu, tetapi saya dengar Anda bisa mendapatkan salinan NDK dari repositori Google Git di bawah cabang donat.
Posisi resmi tampaknya adalah bahwa ini bukan sesuatu yang Anda "ingin lakukan". Lihat utas ini di daftar Pengembang Android. Google membayangkan android berjalan di berbagai perangkat yang berbeda (CPU, display, dll). Karena itu, cara terbaik untuk mengaktifkan pengembangan adalah dengan menggunakan kode yang dikelola (portabel) yang menargetkan VM Dalvik. Karena alasan ini, Android SDK tidak mendukung C / C ++.
TAPI, lihat halaman ini :
Android mencakup seperangkat pustaka C / C ++ yang digunakan oleh berbagai komponen sistem Android. Kemampuan ini diekspos kepada pengembang melalui kerangka kerja aplikasi Android.
Kerangka kerja aplikasi yang dikelola tampaknya berlapis di atas perpustakaan ini. Halaman berlanjut ke daftar lib C / C ++: perpustakaan C standar, media, 3D, SQL lite, dan lainnya.
Jadi yang Anda butuhkan adalah rantai kompiler yang akan mengkompilasi C / C ++ ke CPU yang sesuai (ARM, dalam kasus G1). Beberapa instruksi singkat tentang cara melakukan ini ada di sini .
Yang tidak saya ketahui adalah di mana menemukan deskripsi API yang disediakan perpustakaan ini. Saya kira mungkin ada file header yang terkubur di SDK di suatu tempat, tetapi dokumentasi mungkin samar / hilang. Tapi saya pikir itu bisa dilakukan!
Semoga bermanfaat. Sebagai catatan, saya belum menulis aplikasi Android asli apa pun - hanya beberapa yang dikelola sederhana.
Andy
Anda dapat menggunakan nestedvm untuk menerjemahkan C (atau bahasa GCC lainnya) ke dalam bytecode Java, dan menggunakannya sebagai dasar port Anda. Sebagai contoh, lihat port Android dari koleksi puzzle portabel Simon Tathams .
Saya berharap metode ini dibuat usang oleh NDK, tetapi mungkin tidak akan ada jika beberapa jaringan atau sesuatu tidak memungkinkan orang untuk memutakhirkan ponsel mereka.
Google telah meluncurkan Google I / O 2011: Membawa Game C dan C ++ ke sesi Android yang tersedia di http://www.youtube.com/watch?v=5yorhsSPFG4
yang bagus untuk memahami penggunaan NDK untuk menulis aplikasi di c dan c ++ untuk android.
Jika Anda hanya ingin melakukan kompilasi silang sembarang game asli berbasis konsol dan menjalankannya di android maka Artikel ini telah menunjukkan 3 metode yang sama.
1: Kompilasi statis menggunakan toolchain mandiri
2: Kompilasi silang menggunakan toolchain Android NDK
3: Kompilasi silang menggunakan kode sumber AOSP
Mungkin Anda mencari ini?
Ini adalah lapisan tengah untuk pengembangan untuk beberapa platform seluler menggunakan c ++.
Melihat hal ini tampaknya mungkin:
"Faktanya hanya bahasa Jawa yang didukung tidak berarti Anda tidak dapat mengembangkan aplikasi dalam bahasa lain. Ini telah dibuktikan oleh banyak pengembang, peretas, dan pakar dalam pengembangan aplikasi untuk seluler. Orang-orang di Elements Interactive BV, perusahaan di belakang Edgelib perpustakaan, berhasil menjalankan aplikasi C ++ asli pada platform Android, bahkan saat ini masih ada banyak masalah pada tampilan dan suara ... dll. Ini termasuk permainan S-Tris2 dan demo animasi 3D dari Edgelib. "
Sejak 2009 ada perkembangan dalam hal ini.
Necessitas - Qt (C ++ framework) untuk Android
Memulai video .
Lihatlah google ndk group yang terlihat menjanjikan, NDK versi pertama akan tersedia pada 1H2009
Pembaruan: Dan dirilis http://android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html
Saya tidak yakin NDK menyediakan cakupan penuh API Java resmi.
Dari http://developer.android.com/sdk/ndk/index.html#overview :
Harap dicatat bahwa NDK tidak memungkinkan Anda untuk mengembangkan aplikasi yang hanya asli. Runtime utama Android tetap menjadi mesin virtual Dalvik.
Google baru saja merilis NDK yang memungkinkan hal itu terjadi.
Itu dapat ditemukan di sini: http://developer.android.com/sdk/ndk/1.5_r1/index.html
Posting blog ini mungkin awal yang baik: http://benno.id.au/blog/2007/11/13/android-native-apps Sayangnya, banyak hal penting yang "dibiarkan sebagai latihan bagi pembaca".
Saya tidak tahu tutorial tetapi alat pengembangan yang bagus: Airplay SDK dari Ideaworks Labs. (Baru-baru ini berganti nama menjadi " Marmelade ") Dengan menggunakan C / C ++ Anda dapat membangun aplikasi untuk Windows Mobile, iPhone, Android. Satu-satunya komponen yang saya tidak suka adalah komposer GUI - yang buggy, tetapi Anda selalu dapat menggantinya dengan Notepad.
Anda dapat mengunduh c4droid dan menginstal plugin GCC dan menginstal ke SD Anda. Dari shell saya hanya melintasi ke direktori di mana GCC biner berada dan kemudian memanggilnya untuk membuat on board executable.
/mnt/sdcard/Android/data/com.n0n3m4.droidc/files/gcc/bin/arm-linux-androideabi-gcc
#include<stdio.h>
int main(){
printf("hello arm!\n");
return 0;
}
halo lengan!
Tiga langkah ini bagus untuk dimiliki dan disimpan di pos ini.
1) Cara port kode c asli di android
3) http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/
File asli C / c ++ libstdc ++. * Dari Ubuntu Anda adalah binari x86 (atau x86_64) tetapi perangkat Android dan emulator adalah ARM. Tentu saja, ini tidak akan berhasil, bahkan jika Anda akan menetapkan soname yang benar. Ini adalah cara yang sangat naif yang tidak mengarah ke mana pun. Android memiliki dukungan C ++ yang sangat terbatas artinya tidak ada pengecualian, pustaka C ++ standar (termasuk STL) dan RTTI. Jika Anda memerlukan fungsionalitas seperti itu, gunakan distribusi NDK khusus saya dari
http://crystax.net/android/ndk.php - ini mendukung fitur C ++ lengkap yang tercantum di atas.
Mengapa ada kesalahan: referensi yang tidak ditentukan untuk kesalahan tautan '__cxa_end_cleanup'. Android stlport
waktu. Karena tidak ada tautan ke libstdc + +. A. sangat salah.
Karena menggunakan pustaka statis, perlu untuk menautkan libstdc penuh + +. Sebuah kaleng
http://crystax.net/android/ndk.php di sini untuk mengunduh paket
sumber \ cxx-stl \ gnu-libstdc + + \ libs \ armeabi direktori.
Dukungan Android pada libstdc ++ sendiri terbatas, ia harus ditautkan ke libstdc ++ lengkap. Sebuah pekerjaan.
Tambahkan file di Android.mk LOCAL_LDFLAGS = $ (LOCAL_PATH) / libs / libcurl.a \
$ (LOCAL_PATH) / libs / liblua.a \
`$ (LOCAL_PATH) / libs / libstdc + +. A`
Dan LOCAL_CPPFLAGS + =-lstdc + +-fexceptions
bisa dikompilasi
Ada rencana untuk mengizinkan pustaka C / C ++ di versi SDK Android berikutnya (Codename Eclair?) Sampai saat ini, tidak mungkin melalui Android Java SDK. Namun, Anda dapat mengambil proyek open source HUGE, memutar pustaka Anda sendiri, dan kemudian mem-flash perangkat Anda sendiri ... tetapi siapa pun yang ingin menggunakan pustaka Anda harus mem-flash custom build Anda juga.
Jawaban singkat: Anda tidak bisa.
@ Backslash17: Melihat melalui artikel dan tautan berikut dengan instruksi instalasi, semua yang perusahaan kerjakan adalah meluncurkan executable yang dikompilasi sendiri pada emulator, melewati kerangka android. Setelah Anda memiliki emulator, Anda dapat melakukan telnet dan memiliki shell linux. Menjalankan program linux ada yang sepele tentunya. Tapi itu tidak berfungsi untuk ponsel tanpa jailbreak (alias akses root) dan tidak dapat dikirim di pasar.
Kecuali Google membuka peluang lain atau seseorang menulis kompiler khusus yang mengkompilasi Bahasa X ke dalam bytecode Dalvik (Dalvik adalah VM yang menjalankan program Android) Anda tidak akan dapat menulis kode asli.