Các ứng dụng Android có thể chạy trong Ubuntu touch không?


28

Tôi đang tự hỏi tại sao các ứng dụng Android sẽ không thể chạy được trên Ubuntu Touch . Ý tôi là, không phải tất cả chỉ là Linux sao?


1
Môi trường máy tính để bàn là một yếu tố lớn trong những gì một ứng dụng tương thích.
Patrick C. James

8
Đây thực sự là một câu hỏi hay. Nooby thực sự, nhưng rất hợp lệ. Có một upvote.
don.joey

Tôi đồng tình với @ don.joey vì đây không phải là thứ dễ dàng nghiên cứu ngoài loại kết luận "có" hoặc "không".
MGodby

Có một số cuộc thảo luận thú vị trên Ubuntu mới nhất, bao gồm phần lớn chủ đề này: youtube.com/watch?feature=player_embedded&v=etMduYRRwDc 25:00 27:10 52:45 54:47 55:20 <dấu thời gian trên một số có liên quan điểm
Mateo

Có phải đó cũng là một vấn đề mà họ có thể có các CPU khác nhau không?
Kevin Fegan

Câu trả lời:


24

Câu trả lời ngắn gọn là không."

Nói một cách chính xác, nhân Linux cung cấp ít hơn một giao diện trực tiếp cho phần cứng mà nó đang chạy. Có toàn bộ các API, chương trình, ứng dụng dành riêng cho điện thoại Android, v.v., phụ thuộc vào ứng dụng Android nào. Ngoài ra, Android không chạy trên nhân Linux chung mà thay vào đó chạy trên nhân đã được Google tùy chỉnh cao với mục đích cụ thể là chạy HĐH của họ.

Ngay cả khi về mặt kỹ thuật có thể tái tạo toàn bộ ngăn xếp cần thiết cho các ứng dụng Android để chạy trên một hệ thống khác, nó sẽ bị cồng kềnh và cực kỳ kém hiệu quả.


3
Phải - chạy một bộ thư viện điện thoại trên máy tính để bàn mạnh hơn 10 lần là cực kỳ kém hiệu quả ? Chúng tôi đã chạy trình giả lập điện thoại di động trên máy tính để bàn trong một thập kỷ nay.
MSalters

3
Tôi đã trả lời với tiền đề rằng người hỏi có nghĩa là nguyên bản, tức là không có trình giả lập hoặc ảo hóa.
MGodby

5
@MSalters Trình giả lập sẽ sử dụng nhiều tài nguyên hơn để tạo ra cùng một đầu ra so với chương trình gốc. Đó là khá nhiều định nghĩa về sự kém hiệu quả. Và Trình giả lập Android đặc biệt chậm trong trải nghiệm của tôi.
jmathew

1
@jmathew Từ quan điểm của một nhà phát triển (ít nhất là của tôi), một lợi ích cho điều đó là nếu một ứng dụng chạy hợp lý trong trình giả lập trên một máy chậm thì nó sẽ hoạt động khá tốt trên hàng đống điện thoại giá rẻ ngoài kia.
zxq9

2
@jmathew Tôi nghĩ rằng những gì MSalters đã cố gắng nói là khi nó đã thực tế trong nhiều năm để sử dụng một trình giả lập, thì không có cách nào để chạy cùng một thứ có thể không hiệu quả.
kasperd

1

Nokia n900 chạy maemo witch là một hệ điều hành linux và tuy nhiên, nó có thể chạy ứng dụng của Android thông qua hệ thống môi trường dalvik đã bị phá hủy cho nó nhưng không bao giờ được đưa ra thị trường hoặc các bản sửa lỗi. Tại sao? Chỉ có xã hội đã phát triển dalvik cho n900 biết. Bây giờ đã có một sáng kiến ​​gọi apkenv. Có vẻ như không có quá nhiều thứ để thêm vào để làm cho n900 chạy một số trò chơi Android và bất kể về sức mạnh của gpu hay cpu hay máy tính để bàn của maemo, các ứng dụng chạy ở đó giống như trong bất kỳ mô phỏng nào nhưng một số thì chạy hoàn toàn không. Vì vậy, về ubfox touch không phải là vấn đề về kỹ thuật (có thể tôi sai nhưng một điện thoại cảm ứng chính thức của Ubuntu là một điện thoại thông minh được sử dụng cho Android vì vậy phần cứng cũng không phải là vấn đề trong trường hợp này) nhưng sẽ và luật pháp sẽ thắng


1

Câu trả lời cho câu hỏi của bạn là KHÔNG CÓ LỚN.

Android hoàn toàn khác với Ubuntu Touch mặc dù Android dựa trên kernel linux nhưng điều đó không có nghĩa là các ứng dụng gốc của Android có thể chạy trên linux và ngược lại.

Sự giống nhau về kernel giữa các HĐH khác nhau không làm cho các ứng dụng của chúng có thể thực thi được trên các HĐH khác nhau này. Kernel là lớp phần mềm thấp nhất của một hệ thống. Trên kernel nằm ở không gian người dùng bao gồm phần mềm hệ thống và giao diện ứng dụng .

Hệ điều hành có cùng kernel có thể có không gian người dùng hoàn toàn khác nhau và các ứng dụng gốc thực thi trong một không gian người dùng cụ thể.

Hơn nữa, các ứng dụng Android được phát triển thường sử dụng các ứng dụng java và Android thực thi trong môi trường thời gian chạy ( Dalvik hoặc ART ), lấy mã byte từ JVM làm đầu vào, trong khi các ứng dụng linux được chuyển đổi trực tiếp thành mã máy khi biên dịch.

Các ứng dụng được phát triển cho Android bằng C ++ không thể được thực thi trực tiếp trong môi trường linux thay vì chúng phải được biên dịch trước cho các hệ thống linux.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.