2012-11-14 26 views

Trả lời

6

Tôi đã dành khá nhiều thời gian xung quanh mã nguồn Android trong vài năm qua, vì vậy hãy để tôi chụp ảnh giải thích các thư mục khác nhau trong thư mục gốc. Đây là những khoảng (tùy thuộc một chút vào phiên bản android):

  • bionic

    • Các c thư viện chuẩn được sử dụng và phát triển cho Android cụ thể.
  • khởi động

    • Chứa bootloader (mà sản xuất thiết bị thông thường cung cấp) và các ứng dụng phục hồi đó là thực hiện khi điện thoại được khởi động vào chế độ phục hồi.
  • build

    • Android có rất độc đáo xây dựng hệ thống mô-đun, mà bản thân nó được xây dựng trên đỉnh bình thường make-files. Ví dụ: trong build/target/products bạn sẽ tìm thấy tất cả các mục tiêu xây dựng chung mà bạn nhìn thấy khi bạn khởi chạy lunch.
  • cts

    • Compatibility Test Suite. Khi một nhà sản xuất thiết bị muốn có được thiết bị của họ được chứng nhận (và do đó có được Google Play và các ứng dụng độc quyền khác), họ cần phải vượt qua CTS. Nguồn của CTS được chứa trong thư mục này.
  • Dalvik

    • The dalvik virtual machine. Android sử dụng java cho phần tốt hơn của khung cũng như cho tất cả các ứng dụng. Bởi vì mỗi ứng dụng chạy như là quá trình riêng của nó dưới uid riêng của nó, trong máy ảo của riêng nó, máy ảo phải có một bộ nhớ khá nhỏ, do đó, Android đã chọn sử dụng một máy ảo tùy chỉnh cho Java được gọi là dalvik. Nguồn dalvik được đặt ở đây.
  • phát triển

    • Tôi đã không được sử dụng kho lưu trữ này thực sự, nhưng có vẻ như việc hỗ trợ các công cụ để phát triển ứng dụng Android được đặt ở đây.
  • thiết bị

    • Mỗi thiết bị nhà cung cấp đặt tất cả những thứ mà định nghĩa thiết bị cụ thể của họ vào đây. Ví dụ: bạn có thể cung cấp một số devices/{yourname}/products/{yourdevice}.mk xác định chính xác ứng dụng nào sẽ được tạo cho thiết bị của bạn (cũng như một vài thứ khác). Thao tác này sẽ thêm mục nhập vào menu ăn trưa có tên là {yourdevice} mà bạn có thể tạo.
  • docs

    • Theo như tôi hiểu được điều này thực sự là nguồn gốc của http://source.android.com.
  • bên ngoài

    • Hầu như tất cả các dự án bên thứ ba mà Android kéo trong và cấu tạo nên cơ sở Android Linux OS đều nằm ở đây. Chúng được duy trì trong kho lưu trữ git của riêng chúng, giúp dễ dàng kéo các phiên bản mới từ phía trên. Bạn thấy những thứ như bzip2, dbus, ping, tcpdump và nhiều dự án khác tại đây.
  • khung

    • Đây là nguồn gốc của khuôn khổ Android. Tất cả nội dung bạn sử dụng khi tạo ứng dụng cho Android. Tôi nghĩ rằng nó là một nơi nào đó khoảng 50% mã Java và 50% C++ (và đôi khi C), được ràng buộc với nhau bằng cách sử dụng jni. Ví dụ: khi bạn phát một số âm thanh trong ứng dụng, có thể bạn đang truy cập AudioManager. Nguồn của AudioManager cũng như tất cả nguồn Android bên trong hỗ trợ AudioManager được đặt dưới frameworks/base/media. Bạn sẽ tìm thấy phần lớn SDK Android được triển khai ở đâu đó dưới frameworks/base/.
  • phần cứng

    • cuộc đàm phán Android để một tập hợp các thư viện mà sau đó điều khiển phần cứng (như máy rung, ánh sáng, cảm biến khoảng cách, gps, âm thanh, vv). Các thư viện này được gọi chung là HAL (Lớp trừu tượng phần cứng). Một số triển khai mặc định được chứa trong thư mục hardware, tuy nhiên các nhà sản xuất triển khai các thư viện của riêng họ và đặt chúng trong hardware/{manufcaturename} (hoặc trong device/{manufacture}).
  • libcore

    • Tôi không biết về việc này.
  • ndk

    • Các native development kit cho phép các nhà phát triển ứng dụng để mã hóa một số (hoặc tất cả) các ứng dụng của họ như mã gốc (trong c và C++ thường). Về cơ bản nó là một toolchain để crosscompile đến các kiến ​​trúc cpu Android khác nhau chạy trên.
  • ra

    • Tất cả Android xây dựng hiện vật được đặt ở đây. Vì vậy, việc xóa thư mục out sẽ làm sạch hoàn toàn các nguồn. out được chia thành các thư mục khác nhau, các thư mục chính là hosttarget nơi các công cụ được biên dịch cho máy chủ (ví dụ: adb) và cho thiết bị đích (phần lớn hệ thống android) được tách riêng. Có các phân mục khác bên dưới và nói chung thư mục out được sắp xếp khá tốt, vì vậy bạn chỉ nên khám phá nó một chút.
  • gói

    • Những chứa tất cả các ứng dụng mặc định, các nhà cung cấp, inputmethods, và như vậy, được xây dựng cùng với Android. Ứng dụng điện thoại, danh bạ, lịch, máy tính, bàn phím mềm mặc định, v.v., được đặt ở đây. Chúng không phải là ứng dụng của bên thứ 3, chúng là ứng dụng nội bộ mà nhiều ứng dụng trong số đó được tạo dựa trên apis android không công khai. Vì vậy, hầu hết các ứng dụng ở đây không thể xây dựng dựa trên SDK Android công khai (ví dụ: trong nhật thực), nhưng phải được xây dựng như là một phần của quá trình xây dựng Android hoàn chỉnh.
  • dựng sẵn

    • Stuff được phân phối cùng với Android là mã nhị phân. Điều chính nằm ở đây là crosscompiler (s) để xây dựng Android cho ARM (và bây giờ cũng x86). Chúng được dựng sẵn sao cho bạn không phải tự mình xây dựng các crosscompilers. (Điều này có thể mất thời gian nếu bạn bên cạnh Android cũng đã phải biên dịch crosscompilers rất.)
  • sdk

    • Tất cả các công cụ mà là một phần của Android SDK, chẳng hạn như DDMS , bộ mô phỏng, sdkmanager vv
  • hệ thống

    • Quy trình hệ thống cốt lõi chạy trên thiết bị Android. Đây là những chương trình gốc (c hoặc C++). Mediaservice là một ví dụ về một dịch vụ hệ thống như vậy.

Đây là tất cả từ kinh nghiệm của tôi với làm việc với các nguồn Android, tôi không có bất kỳ tài liệu tham khảo (khác).Tôi hy vọng điều này sẽ giúp bạn có được một cái nhìn tổng quan về cấu trúc thư mục.

+1

Rất hữu ích. Cảm ơn bạn! – jgro

+1

chính xác những gì cần thiết ... cảm ơn – Pawan

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