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?
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?
Câu trả lời:
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ả.
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
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.