linuxandroid
⑴ 如何在ubuntu等linux電腦上安裝android應用
在Ubuntu等Linux電腦上安裝Android應用,當前主要通過幾種方法實現。第一種方法是使用ARChon Runtime for Chrome。然而,由於兼容性問題,能用的apk數量有限,特別是對於QQ和微信等應用。第二種方法是使用ARC+。相比ARChon,ARC+的兼容性有所提升,但只能在Google製作的ChromeOS上運行,無法在普通的GNU/Linux系統上運行。原因在於ARC+做了大量改動,本質上是在Linux內核上同時運行一個GNU/Linux、Chrome以及一個修改版的Android,因此無法在普通的Linux系統中的Chrome中運行。還存在一些Android虛擬機模擬器開發環境的選擇,這些工具為在Linux上運行Android應用提供了便利。最後,還有Shashlik | Android Simulated Environment這個項目,雖然已經趨於死亡,但仍然為部分用戶提供了一種解決方案。總體而言,這些方法各有優劣,用戶需根據自身需求和系統環境選擇合適的方案。
⑵ android和Linux的區別
有以下三點區別:
1、Android沒有本地窗口系統,而Linux是有X窗口系統。
2、Android沒有glibc支持,而Linux是有glibc支持的。
3、Android是有自己專有的驅動程序。
雖然Android基於Linux內核,但是它與Linux之間還是有很大的差別。
(2)linuxandroid擴展閱讀
Android專有的驅動程序
1、Android Binder 基於OpenBinder框架的一個驅動,用於提供 Android平台的進程間通信(InterProcess Communication,IPC)功能。源代碼位於drivers/staging/android/binder.c。
2、Android電源管理(PM) 一個基於標准Linux電源管理系統的輕量級Android電源管理驅動,針對嵌入式設備做了很多優化。源代碼位於:
kernel/power/earlysuspend.c
kernel/power/consoleearlysuspend.c
kernel/power/fbearlysuspend.c
kernel/power/wakelock.c
kernel/power/userwakelock.c
3、低內存管理器(Low Memory Killer) 比Linux的標準的OOM(Out Of Memory)機制更加靈活,它可以根據需要殺死進程以釋放需要的內存。源代碼位於 drivers/staging/ android/lowmemorykiller.c。
4、匿名共享內存(Ashmem) 為進程間提供大塊共享內存,同時為內核提供回收和管理這個內存的機制。源代碼位於mm/ashmem.c。
5、Android PMEM(Physical) PMEM用於向用戶空間提供連續的物理內存區域,DSP和某些設備只能工作在連續的物理內存上。源代碼位於drivers/misc/pmem.c。
6、Android Logger 一個輕量級的日誌設備,用於抓取Android系統的各種日誌。源代碼位於drivers/staging/android/logger.c。
7、Android Alarm 提供了一個定時器,用於把設備從睡眠狀態喚醒,同時它還提供了一個即使在設備睡眠時也會運行的時鍾基準。源代碼位於drivers/rtc/alarm.c。
8、USB Gadget驅動 一個基於標准 Linux USB gadget驅動框架的設備驅動,Android的USB驅動是基於gaeget框架的。源代碼位於drivers/usb/gadget/。
9、Android Ram Console 為了提供調試功能,Android允許將調試日誌信息寫入一個被稱為RAM Console的設備里,它是一個基於RAM的Buffer。源代碼位於drivers/staging/android / ram_console.c。
10、Android timed device 提供了對設備進行定時控制的功能,目前支持vibrator和LED設備。源代碼位於drivers/staging/android /timed_output.c(timed_gpio.c)。
參考資料:網路——Android
網路——linux
⑶ linux系統 和安卓有什麼區別
1、支持軟體格式不同
Android系統支持的是APK後綴文件格式,而linux系統若要運行APK軟體則需要一個java虛擬機環境來運行。
2、運行平台不同
Android是一種基於Linux的自由及開放源代碼的操作系統。主要使用於移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟領導及開發。
linux系統在移動設備和電腦上都可以運行,Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。
伴隨著互聯網的發展,Linux得到了來自全世界軟體愛好者、組織、公司的支持。它除了在伺服器操作系統方面保持著強勁的發展勢頭以外,在個人電腦、嵌入式系統上都有著長足的進步。
3、linux系統包含Android系統,Android系統不linux系統
Android是一種基於Linux內核開發的操作系統。所以 Android 也可以算是 Linux 系統的一種。因為他是基於 Linux 內核上面運行的一個java虛擬機環境。
⑷ android為什麼不直接執行linux的程序而是自己搞一套
安卓系統可以執行Linux程序,其基於Linux內核,底層實現依靠Linux ELF可執行文件。然而,安卓系統並不直接運行傳統的基於glibc的Linux軟體。
谷歌為了實現商業目的,移除了包括glibc在內的遵守(L)GPL許可的組件,自行開發了名為bionic的運行庫。實際上,bionic庫本質上是libc的一種實現,適用於手機等小型設備,且Android NDK亦使用bionic庫進行編譯。
此外,安卓系統本身的文件系統存在限制,同樣限制了Linux軟體的安裝與使用。盡管如此,運行Linux軟體仍有替代方案,例如Linux容器。通過Termux等軟體,可以實現Linux軟體的運行,其自帶常見Linux軟體,通過apt/pkg命令進行安裝。
盡管Termux自帶軟體不夠豐富,但chroot和proot等容器構建方案提供了更多可能性。利用這些方案,可以在安卓系統上運行Linux發行版,實現更豐富的功能,甚至運行Windows軟體。
Linux容器存在一些局限性,如無法使用systemd(因無法確保init的PID為1)以及無法調用某些硬體。然而,可以通過曲線救國的方式解決這些問題,如通過x11轉發實現畫面輸出,聲音輸入輸出藉助pulseaudio,GPU渲染藉助virglrenderer(需掛載/tmp目錄到termux的tmp目錄)等。
理論上,靜態編譯的程序可在安卓平台直接使用,因為靜態編譯不依賴動態庫,可獨立運行。例如,qemu經過靜態編譯後,可在安卓平台藉助終端模擬器直接運行,但功能上會有所缺失。