Apakah aplikasi Android dapat berjalan di Ubuntu sentuh secara asli?

28

Saya bertanya-tanya mengapa aplikasi Android tidak akan dapat berjalan secara native di Ubuntu Touch . Maksudku, bukankah itu semua hanya Linux?

pengguna287536
sumber
1
Lingkungan desktop adalah faktor besar dalam aplikasi yang kompatibel dengan apa.
Patrick C. James
8
Ini sebenarnya pertanyaan yang cukup bagus. Memang benar, tapi sangat sah. Dapatkan upvote.
don.joey
Saya setuju dengan @ don.joey karena ini bukan sesuatu yang mudah diteliti di luar jenis kesimpulan "ya" atau "tidak".
MGodby
Ada beberapa diskusi menarik tentang live ubuntu terbaru, yang membahas sebagian besar topik ini: youtube.com/watch?feature=player_embedded&v=etMduYRRwDc 25:00 27:10 52:45 54:47 55:20 <stempel waktu pada beberapa yang relevan poin
Mateo
Bukankah ini juga masalah bahwa mereka mungkin memiliki CPU yang berbeda?
Kevin Fegan

Jawaban:

24

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.

MGodby
sumber
3
Benar - menjalankan satu set perpustakaan telepon pada desktop yang 10 kali lebih kuat sangat tidak efisien ? Kami telah menjalankan emulator ponsel di desktop selama satu dekade sekarang.
MSalters
3
Saya menjawab dengan premis bahwa si penanya memiliki arti asli, yaitu tanpa emulator atau virtualisasi.
MGodby
5
@MSalters Sebuah emulator akan menggunakan lebih banyak sumber daya untuk menghasilkan output yang sama dibandingkan dengan program asli. Cukup banyak definisi dari inefisiensi. Dan Emulator Android sangat lambat dalam pengalaman saya.
jmathew
1
@jmathew Dari sudut pandang pengembang (setidaknya milik saya) satu manfaatnya adalah jika aplikasi berjalan cukup baik di emulator pada mesin yang lambat maka itu akan berkinerja cukup baik di tumpukan ponsel murah di luar sana.
zxq9
2
@ jmathew Saya pikir apa yang coba dikatakan MSalters adalah bahwa ketika sudah praktis selama beberapa tahun untuk menggunakan emulator, maka tidak mungkin menjalankan hal yang sama secara asli bisa menjadi tidak efisien.
kasperd
1

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 '

patrick
sumber
1

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.

Faizan Akram Dar
sumber