Saya bertanya-tanya mengapa aplikasi Android tidak akan dapat berjalan secara native di Ubuntu Touch . Maksudku, bukankah itu semua hanya Linux?
ubuntu-touch
android
programming
pengguna287536
sumber
sumber
Jawaban:
Jawaban singkatnya adalah "tidak."
Sebenarnya, kernel Linux menyediakan sedikit lebih dari antarmuka langsung ke perangkat keras yang dijalankannya. Ada seluruh tumpukan tambahan API, program, aplikasi spesifik Android-ponsel, dan lain-lain yang menjadi sandaran aplikasi Android. Selain itu, Android tidak berjalan pada kernel Linux generik, melainkan berjalan pada kernel yang telah sangat disesuaikan oleh Google dengan tujuan spesifik menjalankan OS mereka.
Sekalipun secara teknis dimungkinkan untuk mereproduksi seluruh tumpukan yang diperlukan agar aplikasi Android berjalan di sistem lain, itu akan membengkak dan sangat tidak efisien.
sumber
Nokia n900 menjalankan maemo penyihir adalah os linux dan dapat menjalankan aplikasi android melalui lingkungan dalvik yang dikembangkan untuk itu tetapi tidak pernah dipasarkan atau di repisitories. Mengapa? Hanya masyarakat yang mengembangkan dalvik untuk n900 yang tahu. Sekarang ada panggilan inisiatif lain apkenv. Sepertinya tidak ada banyak hal untuk ditambahkan untuk membuat n900 menjalankan beberapa game android dan tidak peduli tentang kekuatan CPU atau CPU atau desktop maemo aplikasi menjalankan beberapa danau seperti dalam emulasi apa pun tetapi beberapa berjalan dengan sempurna beberapa tidak. Jadi tentang ubuntu touch itu bukan masalah teknis (mungkin saya salah tetapi satu ponsel sentuh ubuntu resmi adalah xiaomi yang digunakan untuk android juga jadi perangkat keras juga bukan masalah dalam kasus ini) tetapi akan dan hukum apakah Google menang '
sumber
Jawaban atas pertanyaan Anda adalah TIDAK BESAR.
Android sama sekali berbeda dari Ubuntu Touch walaupun android didasarkan pada kernel linux tetapi itu tidak berarti bahwa aplikasi asli android dapat berjalan di linux dan sebaliknya.
Kesamaan dalam kernel antara OS yang berbeda tidak membuat aplikasi mereka dapat dieksekusi pada OS yang berbeda ini. Kernel adalah lapisan perangkat lunak terendah dari suatu sistem. Kernel di atas terdapat ruang pengguna yang terdiri dari perangkat lunak sistem dan antarmuka aplikasi .
OS dengan kernel yang sama mungkin memiliki ruang pengguna yang sepenuhnya berbeda dan aplikasi asli dijalankan dalam ruang pengguna tertentu.
Selain itu, aplikasi Android dikembangkan biasanya menggunakan aplikasi java dan android yang dijalankan dalam lingkungan runtime ( Dalvik atau ART ) yang mengambil bytecode dari JVM sebagai input, sedangkan aplikasi linux secara langsung dikonversi menjadi kode mesin setelah dikompilasi.
Aplikasi yang dikembangkan untuk android menggunakan C ++ tidak dapat dieksekusi di lingkungan linux secara langsung daripada harus dikompilasi terlebih dahulu untuk sistem linux.
sumber