2012-08-24 40 views
12

Tôi sắp chuyển sang một dự án C++ lớn (một số loại Dự án Thư viện, nó hoàn toàn không có GUI) cho Android. Nó thực sự là một dự án Visual C++, nhưng nó sẽ được chuyển sang Linux như là bước trung gian. Tôi biết rằng Android không phải là một Linux "đầy đủ" và không yêu cầu cung cấp tất cả các chức năng POSIX, nhưng tôi cũng biết có rất nhiều "chức năng POSIX" trên Android bằng cách sử dụng NDK.Chức năng POSIX quan trọng nhất không có sẵn trong Android là gì?

Bây giờ câu hỏi thực tế của tôi là:

Đó là những/các chức năng quan trọng nhất lớn nhất mà không có sẵn trên Android so với các thiết lập POSIX đầy đủ? Vì vậy, tôi có thể ghi nhớ điều đó khi thực hiện chuyển từ Visual C++ sang Linux GCC.

tôi đã cố gắng để tìm một cái gì đó trên Google, nhưng thấy không có gì thực sự hữu ích, chỉ cần ở đây và có một số nội dung mà đề cập rằng có một số chức năng POSIX trên Android ...

+2

có lẽ điều này có thể giúp bạn - http://mobilepearls.com/labs/native-android-api/ và tại đây một số thông tin chi tiết hơn - http://stackoverflow.com/questions/10235403/porting-embedded-visual-c -code-to-android và tại đây https://groups.google.com/forum/?fromgroups=#!topic/android-ndk/xZES51OYakY –

+0

http://stackoverflow.com/questions/4610086/pthread-cancel-alternatives -in-android-ndk – crossle

Trả lời

3

Bionic một recode bởi Google. Nó nhỏ nhưng được tối ưu hóa cho Android.

Điều lớn duy nhất tôi biết là thiếu thực tế là hàm pthread_cancel().

Trải nghiệm của tôi là nếu bạn chuyển thành công thành GNU/Linux, mà không có các cuộc gọi pthread_cancel() thì bạn sẽ hầu như không sao.

BTW, bạn đang cố xây dựng loại thư viện nào? Nó sử dụng cái gì? Mạng, chủ đề ...

PS: Ngay cả Linux không hoàn toàn POSIX.

2

bộ nhớ dùng chung cũng là thứ bạn có thể tìm thấy được thực hiện khác nhau trong Android. bị đánh mạnh trong khi cố gắng làm việc với shm_open và shm_unlink trên hạt nhân Android. Android triển khai bộ nhớ chia sẻ không đồng bộ (ashmem).

+0

Có, người ta phải gọi ashmem_create_region và chia sẻ mô tả tập tin được trả về giữa các quá trình thông qua binder để mmap nó. – olegst

Các vấn đề liên quan